JBuilder Enterprise 7.0 configuration
Tools configuration
JBuilder Enterprise 7.0
JTogether CC 6.0
Illustrator 10


This procedure explains how to configure JBuilder for testing, running and debugging Shaman.

$SHAMAN_ROOT is the root directory of your Shaman development project.

This procedure has been successfully tested with JBuilder Enterprise 7.0.


Create a $SHAMAN_ROOT/jbuilder directory. Checkout latest version from CVS repository.

Place following distributions in $SHAMAN_HOME/install directory :

  • jakarta-tomcat-4.0.3.zip
  • cocoon-2.0.2-src.zip
  • jakarta-slide-1.0.16.zip

Create a JBuilder User Library named "Shaman libs" using all jars included in $SHAMAN_ROOT/lib.

Add following JBuilder recognized file suffixes (IDE options > File types) :

  • DTD File : ent
  • DTD File : pen
  • XML File : xconf
  • XML File : svg
  • XML File : roles
  • XSP : xmap

And restart JBuilder.

"ShamanBuild" project

Create a new JBuilder Project.

Wizard page 1
  • Name : ShamanBuild
  • Directory : $SHAMAN_ROOT/jbuilder/ShamanBuild
  • Working dir : $SHAMAN_ROOT/
Wizard page 2
  • Output path : $SHAMAN_ROOT/jbuilder/ShamanBuild/classes
  • Backup path : $SHAMAN_ROOT/jbuilder/bak
  • Working dir : $SHAMAN_ROOT/
  • Source dir : $SHAMAN_ROOT/src/spirit-src/

Remove Documentation dirs.

Add "Shaman libs" in required libraries.

Wizard page 3

Select ISO-8859-1 as encoding.

Disable automatic package discovery and compilation.

Project additional configuration

Add file $SHAMAN_HOME/src/build/build.xml to the project.

Select the build.xml node, and, in its Properties, uncheck Ant > Use Borland Java compiler.

Build products

Expand build.xml node, and choose "Make" on build-products target.

Declare under JBuilder a User Library named "Shaman-Cocoon 2.0.2". Reference $SHAMAN_ROOT/build/products/jars/cocoon-2.0.2.jar .

JBuilder Server configuration

In JBuilder main menu > Tools > Configure Servers..., choose Tomcat 4.0.

In right pane, check Enable Server.

Set Home Directory to

Set VM Parameters to

In "Class" tab, add the following .jar file : $SHAMAN_HOME/build/products/jakarta-tomcat-4.0.3/bin/bootstrap.jar

Note The configuration defined above will impact all JBuilder projects for the given JBuilder installation.

"Shaman" project

Create a new JBuilder project.

Wizard page 1
  • Name : Shaman
  • Directory : $SHAMAN_ROOT/jbuilder/Shaman
Wizard page 2
  • Output path : $SHAMAN_ROOT/jbuilder/classes
  • Backup path : $SHAMAN_ROOT/jbuilder/Shaman/bak
  • Working dir : $SHAMAN_ROOT/jbuilder/Shaman

Set source paths to following paths :

  • $SHAMAN_ROOT/src/java (select as "default")
  • $SHAMAN_ROOT/src/spirit-src
  • $SHAMAN_ROOT/src/patches
  • $SHAMAN_ROOT/src/junit (select as "test")

Add following libraries in Required Libraries :

  • Shaman libs
  • Shaman-Cocoon 2.0.2
  • Unit Test

Wizard page 3

Select ISO-8859-1 as encoding.

Disable automatic package discovery and compilation.

Project additional configuration

In Project Properties, choose Server tab, and select "Single server for all services in project", with Tomcat 4.0.

In Project Properties > Build > Resource, choose to copy following file types :

  • ent
  • pen
  • dtd
  • xsp
  • xsl
  • xsd
  • xmap
  • xconf
  • svg
  • txt
  • roles
  • properties
Packages addition

Add all relevant Java packages. The list may vary during development, try with the following packages :

  • all packages under fr.paris5.shaman,
  • org.apache.avalon.framework.component
  • org.apache.avalon.framework.thread

RMI stubs compilation

For all classes in fr.paris5.shaman.insight.server.rmi, perform the following operations :

  • Select (right-click) Properties > Build
  • Check Generate RMI Stub / Skeleton
  • Set the following option : -v1.2

Automated tests

In Project Properties, create a new Runtime Configuration named "Shaman Tests". Select the Test tab.

Choose fr.paris5.shaman.ShamanTest as main class (or fr.paris5.shaman.insight.InsightTest if the previous did not exist).

Choose JBuilder Test Runner as Test runner.

As VM Parameters, enter (all in one line) :
-Djava.rmi.server.codebase=file:$SHAMAN_ROOT\jbuilder\classes\ -Djava.security.policy=file:$SHAMAN_ROOT\src\policies\insight-test.policy

Choose Project > Rebuild project.

Launch Tools > RMI Registry.

Run the "Tests" Runtime Configuration. All tests should run correctly.

Web application "shaman-spirit"

Create a new Web Application :

  • Name : shaman-spirit
  • Directory : $SHAMAN_HOME/src/spirit-webapp

In shaman-spirit Web Application Properties > Directories, check "Include regular content in WEB-INF..."

In shaman-spirit Web Application Properties, check following file types :

  • Archive File
  • DTD files
  • GIF image
  • HTML file
  • JPEG image
  • JSP Tag Library Descriptor file
  • JSP file
  • Java Network Launching Protocol file
  • JavaScript file
  • PNG image
  • Properties file
  • Schema file
  • Sound file
  • Text file
  • WML File
  • Web Binary Content
  • Web Support file
  • XML Schema files
  • XML Transformation Stylesheets
  • XML file
  • XML-DBMS XML to database mapping files
  • XSP's ...

In shaman-spirit Web Application Properties, enter WAR directory :
$SHAMAN_HOME/jbuilder/Shaman .

Create a "Shaman-Spirit" Project Folder. With Add Files / Folders command, add CatalogManager.properties which should normally appear in the Packages list.

On Windows Explorer, flag $SHAMAN_ROOT/src/spirit-webapp/WEB-INF/web.xml as "read only".

In Project Properties > Run, create a new Runtime Configuration. Choose Server. Check that TCP port does not conflict with other applications. Create a new Run Configuration named "Shaman-Spirit WebApp".

Validate and Run it. Open a valid resource under
(another port maybe required).

Known problem

Please note that often, JBuilder rewrites the content of $SHAMAN_ROOT/src/**/WEB-INF/web.xml. This causes the Cocoon Servlet to cease working (a 404 appears instead of the requested resource). If this happens, overwrite web.xml content with a file with correct content.
It seems that it doesn't happen when keeping web.xml open in the IDE.

Copyright 2002 Laurent Caillette and l'Université René Descartes, Paris 5.
All rights reserved.