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.
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
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
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 →