Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News An Inside Look at the Geronimo Plugins System

An Inside Look at the Geronimo Plugins System

One of the top items listed in the new Geronimo 1.1 release is plugin support. Plugins are touted as being easy to install, automatically downloading dependencies, and eliminating the need for server restarts. Plugin setup can be copied from one server to another to simplify development, transition to from development to production, and cloning of production servers in a clustered environment. InfoQ recently caught up with Geronimo committers Bruce Snyder and Aaron Mulder for more details:

InfoQ asked Bruce about the key advantages of the plugins system:

The plugin system in Geronimo is especially unique and a very useful feature. The Geronimo deployer can be used to not only query a given Geronimo server for installed plugins, but it can also be used to install plugins from server to server. This is very handy in both development and production. For example, a Geronimo instance can be set up and then mirrored across a farm of machines using the plugin architecture or individual plugins can be plucked and installed from one Geronimo instance to another.

The eventual idea is that the community will help to create a repository of plugins for use by anyone and will hopefully be housed at Because the plugin architecture and design is so unique and easy to work with, it could easily lend itself to creating a market for commercial Geronimo plugins.

InfoQ then asked Aaron about how the plugin system benefits application developers:

The main benefit for applications is that when you install an application via a plugin, you're sure it's been deployed to at least one other Geronimo server (so it can't have invalid configuration syntax, for example), and any dependencies are automatically installed with the application (such as third-party libraries, a database connection pool or security realm, etc.).

Aaron then went on to comment that installing features and extensions to the Geronimo server eliminates the need for a new version/distribution of Geronimo. They can be installed at runtime without the need for restarting the server.

Current Plugins Include:

  • Sample applications for Geronimo
  • Quartz scheduler integration, allowing you to deploy scheduled jobs in a JAR with an XML file defining the schedule, or to deploy scheduled jobs as part of a J2EE application
  • Liferay integration, running a full enterprise portal server within Geronimo.
  • Apache Directory integration, running an LDAP server within Geronimo
  • A plugin adding advanced Oracle database integration to Geronimo (allowing the use of Oracle XA drivers from the Geronimo admin console)

There are also a number of plugins either in discussion or active development:

  • File archiving for Geronimo applications
  • JasperReports integration allowing you to deploy report templates with an associated XML file identifying a data source to get the data from, archiving features such as "save each report for 2 week, etc.
  • JPA (Java Persistence Architecture) integration allowing web applications to use the JPA features defined in Java EE 5
  • ServiceMix integration to run a JBI (Java Business Integration) ESB (Enterprise Service Bus) within Geronimo
  • Mule integration to run a POJO-based ESB within Geronimo

Rate this Article