Cocoon 2.2 will rock!

Posted on Sun 20 March 2005
Since december, a number of small but important features have been added to Cocoon's main development branch that really make life easier when developping applications.

Includes in cocoon.xconf and sitemap component declarations.
In the 2.1.x branch, there is only one configuration file that results from the merge at build time of all configuraiton snippets brought by each of the used blocks. It really doesn't make it easy to add or remove blocks, nor to clearly separate what's application-specific from what is needed by the Cocoon platform.

In the 2.2 branch, the main cocoon.xconf is just a bunch of includes with wildcards. Adding or removing a block just consists in moving around a .xconf file and the associated jar files in the apprioriate directories.

A lazy loading mode for components.
Cocoon 2.1.x is slow to start, because all components defined in cocoon.xconf are loaded at startup, even if never actually used. And since customizing the configuration was difficult (see above) most applications had way too much components in their configuration.

An optional lazy-loading mode now loads components (including their classes) only when they are first used. Cocoon now starts about 4 times faster.

A reloadable classpath for each sitemap
Developping new components for Cocoon involves a lot of stop and restart each time a code modification is done. The sitemap now accepts an additional configuration to setup a local classpath composed of libraries and class directories. This saves a lot of time, and also allows self-contain mini-applications composed of a sitemap, the needed resources and classes.

Reloading after a class change currently requires to "touch" the sitemap, but that should be automatic soon.

Hosting other IoC containers
Considering that all IoC containers more or less have a similar component lookup semantic and accept a hierarchical organization of subcontainers, Cocoon can now host other containers such as Spring. Hivemind and Pico support should be easy to add.

After embracing a lot of XML-related libraries, Cocoon now embraces modern IoC containers beside the now aging Avalon interfaces.

Cocoon 2.2 will be great! There is currently no defined schedule for this release, but considering these new features, it's very likely that the pressure will grow for a release in the coming months...

Local training

Meritocracy, doocracy and Iwilldoitocracy