A brief introduction to Geronimo and Pluto
Apache Geronimo is a new member of the Java™platform, Enterprise Edition (Java EE) Server family (version 1.0 was released in January 2006). It is a powerful combination of several other projects, including OPENEJB, Axis, Jetty, Tomcat, ActiveMQ, and ServiceMix. Geronimo has recently been widely publicized because it is another Java 2 Platform, Enterprise Edition (EE) certified server. It is built from scratch using a dependency injection container. Geronimo also provides fine-grained control over class loader, allowing you to specify parent-child relationships, rather than just deleting all the classes in the shared Lib directory, and hoping that there are no problems.
Apache Pluto is a reference implementation of the Portlet specification. Pluto itself is not a full-featured portal server; instead, it is a lightweight portlet container that is suitable for embedding into a full-fledged portal server or testing a portlet. Pluto is currently used in several open source portal servers, such as Apache Jetspeed 2, Uportal, and Jahia. Pluto now supports version 1.0 of the Portlet specification (JSR 168), and version 2.0 of the specification (JSR 286) is currently under development.
If you are using Pluto to develop a portlet or portal server, it is meaningful to use it in conjunction with Geronimo. This is especially true if the portal or Portlet uses features specific to Geronimo, such as GBeans. Pluto's Web site does not explain how to install Pluto on Geronimo, but you can make some adjustments to the installation method.
Install Geronimo
Installing Geronimo is simple: simply install the Jetty-geronimo package from the Geronimo Web site and extract it into the Geronimo_home directory. Like Apache Tomcat, you can start the server with a startup script (or a batch file) that is located in the Geronimo_home/bin directory.
Note: A Geronimo 2.0-m2 with Jetty is used in this article. These steps have not been tested against other versions or Tomcat-geronimo packages.
Installing Pluto
Download the Pluto 1.1 package from the Pluto site and unzip it into the Pluto_home directory. The package is a binary version of the Pluto container that is bound to Tomcat, so you need to do some extra work to make it run on Geronimo.
Note: Pluto 1.1 is used in this paper. These steps have not been tested against previous versions.
To add a library to the repository
Pluto requires that some jar files be placed in a shared location so that the Portlet application and the portal driver itself can use the jar files. Starting with version 1.1, Geronimo supports shared library directories. However, creating explicit dependencies is a better choice because it allows finer control.
To define dependencies between libraries, libraries must be available for the Geronimo repository. All Pluto dependencies are in the Pluto_home/shared/lib directory. However, because Geronimo already has some of these libraries installed, just add some of these libraries to the repository:
Pluto-container-1.1.0.jar
Pluto-descriptor-api-1.1.0.jar
Pluto-descriptor-impl-1.1.0.jar
Pluto-taglib-1.1.0.jar