What is Fusion?

As of Jetspeed 1.6, Jetspeed-1 now supports the Java Portlet API Standard. The specification and standard are also known as JSR-168, or the Portlet API. Note that Fusion is an optional feature of Jetspeed 1.6. You must specifically build Fusion, or download the Fusion distribution as it is not included in the default distribution or in the default build.

Fusion enables Jetspeed-1 to run standard Java Portlet applications in Jetspeed-1. This was made possible by leveraging the component architecture in Jetspeed-2. The Jetspeed-2 portal engine is compliant with the Java Portlet Standard. Fusion embeds the Jetspeed-2 portal engine inside of the Jetspeed-1 portal.

Deploying and Running Jetspeed Fusion Distributions

The distribution of Fusion is made up of:

  • A WAR file: jetspeed.war
  • Common jars, see table below
  • Database configuration

Fusion Distributions

Jetspeed is downloaded from the Apache distributions site. Jetspeed and Jetspeed Fusion are available in several distribution formats:

Jetspeed 1.6Warjetspeed.warJetspeed 1.6 without Fusion. Standalone, ready to run as is against Hypersonic DB. Just drop it in your app server.
Jetspeed 1.6 + FusionWarjetspeed.warJetspeed 1.6 with Fusion. Configured against Hypersonic DB. Requires database and supporting jars.
Jetspeed 1.6 + TomcatZipjetspeed-1.6.zip, jetspeed-1.6.tar.gzJetspeed 1.6 with Tomcat, No Fusion. Comes with a configured Hypersonic DB, Tomcat, ready to run.
Jetspeed 1.6 + Tomcat + FusionZipjetspeed-fusion-1.6.zip, jetspeed-fusion-1.6.tar.gzJetspeed 1.6 with Tomcat, Fusion. Comes with a configured Hypersonic DB, Fusion, Tomcat, ready to run.
Fusion 1.6 Support JarsZipjetspeed-fusion-support-1.6.zip, jetspeed-fusion-support-1.6.tar.gzFusion 1.6 support jars. See table below.
Fusion 1.6 Database ConfigurationZipjetspeed-fusion-db-1.6.zip, jetspeed-fusion-db-1.6.tar.gzFusion 1.6 database configuration.

Fusion Common Jars

Jetspeed Fusion does require more configuration than a standard Jetspeed 1.6 installation. This is because of the nature of the Portlet API: portlet applications are deployed as WAR files and run in their web application, separate from the portal. With Fusion, we need to install several support jars into the common or shared class path area of your particular application server. The 1.6 release comes with a packaged Fusion and Tomcat 5 combination, ready to run. If you are installing to your own application server, you will need some extra setup for Fusion to run. In this example, we are using Tomcat 5. The following jars need to be placed into Tomcat's shared/lib directory:

jetspeed-api-*The Jetspeed-2 API interfaces
pluto-*The Pluto Container implementation
portlet-api-*The Portlet API interfaces
jetspeed-commons-*The Jetspeed-2 Cross Context support classes
jetspeed-commons-*The Jetspeed-2 Cross Context support classes
portals-bridges-commons-*The Portals Bridges support classes
The * denotes a particular version, such as 2.0-M3 with Jetspeed 1.6.

See the section on building from source below for details on how to automate the process.


Fusion has its own set of database tables in addition to Jetspeed-1 database tables. This means you have two sets of database scripts to run: one set for Jetspeed-1, one set for Fusion. If you are using Hypersonic, Fusion requires a second database instance to be running. With the Jetspeed Fusion 1.6 Database Configuration distribution, there are scripts for configuring your Fusion database for several database backends. If you are using Hypersonic, the fusion database distribution comes with a pre-built database ready to run. Just start the database using the provided script.

From the CVS, you can start the database from the fusion directory by typing: maven db.fusion.start

Deploying Portlet Applications

Deploying a portlet application to Jetspeed is very easy. Make sure that Jetspeed is running in an application server. In this example, we will assume its Tomcat. All you need to do is drop the portlet application archive (WAR) file into the Jetspeed deploy directory, and Jetspeed handles the rest automatically. This feature is called Auto Deployment.

When you are ready to deploy a new portlet application to the server, simply copy the war file into the Jetspeed-1 Auto Deployment directory located under


Jetspeed will automatically pick up and deploy the application within 10 seconds or so. You can then go to the portlet customizer, and select the portlets that you deployed and place them in your portal. From the Customizer Add Portlet page, there are two filters to help you find JSR-168 standard portlets: JSR-168 and Portlet API. Once you've selected the portlets in the customizer, you can then start using the portlets immediately.

Running Fusion on App Servers

Fusion should run on any application server. We have a Wiki page with the status of successfully installed application servers and the instructions on how to do so here: Fusion Wiki

Building Fusion

The instructions here are for those who would like to build Fusion from source. By default, Jetspeed 1.6 builds without Fusion. To build Fusion, enable the build by setting this property in your $HOME/build.properties and then follow the instructions in this section:

            org.apache.jetspeed.fusion = true
            # this property is required for the Jetspeed-1 Plugin
            # its usually set to your Tomcat home, for example:
            maven.war.appserver.home = /home/jetspeed/jakarta-tomcat-5.0.30

Build Requirements

It is expected that the user is familiar with both the Apache Maven project tool and the Apache Ant build tool.

  • Ant 1.5 or higher
  • Maven 1.0 or higher
  • Java 1.4.2_02 or higher
  • Servlet 2.3:

    Tomcat 5.0.30 (or higher)


    Tomcat 5.5.8 (or higher)

1. Get Maven Ready

If you have not already done so, download and install Maven.

2. Build Properties

Please set these values in your ${USER_HOME}/build.properties file:

propertyexamplewhat is it?
org.apache.jetspeed.project.home/home/apache/jakarta-jetspeed-2/The root of your Jetspeed-2 source installation (see example on left).
org.apache.jetspeed.server.home${CATALINA_HOME}/The root of your Tomcat server installation.
org.apache.jetspeed.catalina.version.major5Are you using Tomcat 5.0.x (use: 5) or 5.5.x? (use: 5.5)
org.apache.jetspeed.server.shared${org.apache.jetspeed.server.home}/shared/lib/The location of the shared jars in your Tomcat installation.
org.apache.jetspeed.deploy.war.dir${org.apache.jetspeed.server.home}/webapps/The location to deploy web application in Tomcat.
org.apache.jetspeed.services.autodeployment.useryour-tomcat-manager-usera Tomcat user with the manager role. See the Tomcat Configuration section below.
org.apache.jetspeed.services.autodeployment.passwordyour-tomcat-manager-user-passwordThe password of the Tomcat manager user.

To develop or deploy Jetspeed with another database (not the default HSQL), see the property configuration in the Database Configuration documentation.

3. Tomcat Configuration

Fusion now can use the Tomcat manager application for managing portlet applications through its new Portlet Application Lifecycle Manager Portlet. To be able to do so it needs a configured Tomcat user with the predefined 'manager' role in the ${CATALINA_HOME}/conf/tomcat-users.xml.

A minimal example tomcat-users.xml could look like:

    <?xml version='1.0' encoding='utf-8'?>
      <role rolename="manager"/>
      <user username="j2deployer" password="j2deployer" roles="manager"/>
Make sure to use a more appropriate username and password.

With the above example the required autodeployment properties should be set as:

4. Database Configuration

See the Fusion Database Configuration page.

5. Building with Maven

Now that you have all the requirements and properties configured, you are ready to go. Change directory to the jetspeed-1 source home, and run the following commands:

     maven clean war
     # optional, only required if using Hypersonic
     cd fusion
     maven db.fusion.start
     # (new shell required here unless you run the previous command in another shell)
     cd ..
     ## if you are using another database, make sure to copy the JDBC driver into the 
     ## app server's classpath. With Tomcat5, JDBC drivers co into common/endorsed     
    maven deploy
    cd ${TOMCAT_HOME}/bin