The main design goal of Apache Cocoon 2.2 was providing better support for modularization:
Cocoon is based on the
framework. The Spring Configurator and the Servlet Service Framework are
two subprojects having Spring as main dependency. It's important to note that
both can be reused outside of Cocoon Core.
The Spring Configurator provides basic support for configuring web applications that make use of Spring. The Servlet Service Framework enables modularization based on the javax.servlet.Servlet interface. Those servlet services are polymorphic.
Cocoon Core provides implementations of a sitemap engine and of pipelines. It also establishes a contract to add modules. The unit of modularization in Cocoon is called blocks. This list gives an overview of what additional functionality is available. Web applications based on Cocoon are also developed following the block contracts.