Wednesday, September 5, 2007

JBoss Portal Modularization

We started a few weeks ago to modularize the portal code base. There are several good reasons to do it and it was probably the best time to do it, i.e just after the 2.6 major release.

Probably the best reason is that we want now to decouple the modules life cycle from the portal life cycle. It makes code easier to maintain as it decouples the branching and versionning from the portal, it also improves greatly the QA since the portal releases can reuse tested and released modules.

Part of this effort is the creation of a new module called "web" whose goal is to provide an abstraction layer for non portable servlet container features. Indeed portal and portlet applications require some obscure modifications operated at the web application level and today there is no universal and portable way to achieve it. There are several ways to achieve it and this module aims to define a service provider interface (SPI) that can be implemented by servlet containers. We have an universal implementation that will work with any servlet container above 2.5 version of the spec at the expense of requiring a pre modification of the web application by the developer. For Tomcat we have developped a transparent solution that do not require modification of the web application. We will of course provide more implementations in the future depending on the need to integrate with other web containers.

The portlet container module has also been extracted and now the testsuite passes fully in Tomcat 6 which is a great news for us. The portlet container test suite is built on top of the web module and the new JBoss Microcontainer 2.0 (Beta3).

Bolek has extracted the identity module and has integrated the work done by Sohil at the SSO level in the same module.

This modularization will help the Portal Team to build the next generation of JBoss Portal that will be container agnostic and based on top of JBoss Microcontainer framework!

No comments: