InfoQ

News

An Inside Look at the Geronimo Plugins System

Posted by Scott Delap on Jul 28, 2006 09:53 AM

Community
Java
Topics
Application Servers
Tags
Geronimo
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 geronimoplugins.com. 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

No comments

Reply

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.