BT

Struts 2 Experiments with Hot Deployable Plugins

by Andy Roberts on Aug 08, 2007 |

Apache Struts, the ubiquitous Java web application framework, received a promising feature that permits hot-deployable plugins. Struts developer, Don Brown, revealed last week that work had begun on allowing plugins to be added, removed and upgraded instantly, without the need to restart the entire application.

Brown mentioned how he was impressed by the plugin systems used by Atlassian's JIRA and Confluence products (Atlassian happens to be Brown's employer) which supports hot-deployable plugins. He wanted to bring something similar to Struts, which would clearly benefit from having such a feature. Thus work began on the OSGi plugin.

On top of the advantages of being able to maintain application uptime, and thus eliminate interruptions to users, there are pluses for the application development side also. Don notes:

This capability is so powerful that internally we are moving more and more functionality into plugins as a way to organise our codebase and keep it tightly-focused and agile.

The new Struts plugin allows the developer to split up applications into discrete jars, or "bundles", which when placed in the appropriate location on the server will be picked up by the OSGi plugin and deployed. Minimal effort is required to get the plugin up and running, and one of Brown's goals is to keep bundle development simple by hiding many of the OSGi complexities from the developer (of course, he's preparing for a small backlash as he admits "OSGi experts would lament" at his decision).

Currently, the OSGi Plugin is in its early stages and has not had sufficient levels of testing to be classed as ready for production. There are several limitations in the current release, namely lack of a GUI administration utility; only Velocity templates are supported; plus certain restrictions on what is permissible within a bundle (no 3rd party jars). The source is publically available via the Apache Struts 2 sandbox, and in true Apache style, community participation is welcome. As of yet, there's no hint that the plugin innovations in Struts 2 will be back-ported to Struts 1.

Hello stranger!

You need to Register an InfoQ account or to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

They read my mind by Simon Pink

This is exactly what we need for our applications. We make numerous wesbites, each containing the same modules plus a few custom modules. OSGi is the perfect glue for true modularity. Exciting stuff, I am looking forward to seeing where this leads...

Re: They read my mind by Don Brown

I've found this capability is especially valuable in hosted, or software-as-a-service models, where uptime is paramount. Having the ability to install a new admin tool, report, or nightly job without affecting the site is very useful. Large applications tend to build their own plugin module, so why not make that a standard service in the web framework that even small apps can use?

OSGi will become hotter than it already is. by Richard L. Burton III

You're going to see a strong movement in OSGi support for web based applications and SOA. OSGi provides more than just hot deployment, but the ability to deployment multiple versions of a service at one time. This allows for developers to migrate applications over to a newer version when the time and budget allows for it without having to write a bunch of hackish code to do this. Then again, you should also consider an ESB at that point :)

Best Regards,
Richard L. Burton III

Did anything ever come of this exercise? by Andy Doddington

2007 seems an awful long time ago :-(

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT