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.
The distribution of Fusion is made up of:
Jetspeed is downloaded from the Apache distributions site. Jetspeed and Jetspeed Fusion are available in several distribution formats:
Distribution | Type | Package | Description |
---|---|---|---|
Jetspeed 1.6 | War | jetspeed.war | Jetspeed 1.6 without Fusion. Standalone, ready to run as is against Hypersonic DB. Just drop it in your app server. |
Jetspeed 1.6 + Fusion | War | jetspeed.war | Jetspeed 1.6 with Fusion. Configured against Hypersonic DB. Requires database and supporting jars. |
Jetspeed 1.6 + Tomcat | Zip | jetspeed-1.6.zip, jetspeed-1.6.tar.gz | Jetspeed 1.6 with Tomcat, No Fusion. Comes with a configured Hypersonic DB, Tomcat, ready to run. |
Jetspeed 1.6 + Tomcat + Fusion | Zip | jetspeed-fusion-1.6.zip, jetspeed-fusion-1.6.tar.gz | Jetspeed 1.6 with Tomcat, Fusion. Comes with a configured Hypersonic DB, Fusion, Tomcat, ready to run. |
Fusion 1.6 Support Jars | Zip | jetspeed-fusion-support-1.6.zip, jetspeed-fusion-support-1.6.tar.gz | Fusion 1.6 support jars. See table below. |
Fusion 1.6 Database Configuration | Zip | jetspeed-fusion-db-1.6.zip, jetspeed-fusion-db-1.6.tar.gz | Fusion 1.6 database configuration. |
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:
JAR | Description |
---|---|
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 |
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 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
${TOMCAT_HOME}/webapps/jetspeed/WEB-INF/deploy/
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.
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
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
It is expected that the user is familiar with both the Apache Maven project tool and the Apache Ant build tool.
Please set these values in your ${USER_HOME}/build.properties
file:
property | example | what 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.major | 5 | Are 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.user | your-tomcat-manager-user | a Tomcat user with the manager role. See the Tomcat Configuration section below. |
org.apache.jetspeed.services.autodeployment.password | your-tomcat-manager-user-password | The 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.
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'?> <tomcat-users> <role rolename="manager"/> <user username="j2deployer" password="j2deployer" roles="manager"/> </tomcat-users>
org.apache.jetspeed.services.autodeployment.user=j2deployer org.apache.jetspeed.services.autodeployment.password=j2deployer
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 startup(.sh|.bat)