Apache Cocoon is a web development framework built around the concepts of separation of concerns and component-based web development. The TEI consortium website is dynamically produced from TEI XML using Cocoon.
Note that Cocoon is no longer being updated.
Apache Cocoon is a web development framework built around the concepts of separation of concerns (making sure people can interact and collaborate on a project, without stepping on each other toes) and component-based web development.
Cocoon implements these concepts around the notion of "component pipelines", each component on the pipeline specializing on a particular operation. This makes it possible to use a "building block" approach for web solutions, hooking together components into pipelines without any required programming.
Cocoon is "web glue for your web application development needs". It is a glue that keeps concerns separate and allows parallel evolution of the two sides, improving development pace and reducing the chance of conflicts.
Cocoon has been designed to coexist and interoperate side-by-side with your existing J2EE solutions or to give them new functionality without requiring any change in the existing infrastructure.
Cocoon interacts with many data sources, including filesystems, RDBMS, LDAP, native XML databases, SAP® systems and network-based data sources. It adapts content delivery to the capabilities of different devices like HTML, WML, PDF, SVG, and RTF, to name just a few. You can run Cocoon as a Servlet as well as through a powerful, commandline interface. The deliberate design of its abstract environment gives you the freedom to extend its functionality to meet your special needs in a highly modular fashion.
There are many different ways to install Cocoon, and so it is probably best that you look at the Cocoon installation instructions. Those using debian-compatible systems can install a packaged version of cocoon provided by the late Sebastian Rahtz: see http://tei.oucs.ox.ac.uk/teideb/ .
Cocoon is also distributed with the eXist XML database already built into it (Cocoon built with eXist as a "block") by the eXist project. If you are likely to want both eXist and Cocoon, this is a very handy package. This blog entry gives is a step-by-step guide used by staff at the UVic HCMC when they deploy a new Cocoon+eXist instance under the Tomcat servlet container.