apache > cocoon

Cocoon Features

General information

  • Apache Cocoon is a web development framework built around the concepts of component-based web development and separation of concerns, ensuring that people can interact and collaborate on a project without stepping on each other toes.
  • Cocoon implements these concepts around the notion of component pipelines, each component on the pipeline specializing in a particular operation (usual pipeline uses a Generator, Transformers and a Serializer). This makes it possible to use a Lego(tm)-like approach in building web solutions, hooking together components into pipelines without requiring programming.
  • Advanced Control Flow: continuation-based page flow hides the complexity of request/response processing and is cleanly separated from the view and data components.
  • Cocoon is open source software (based on the Apache Software License).
  • Cocoon does not duplicate efforts but tightly integrates many technologies.
  • Cocoon is in use at many live sites and on many company networks.
  • Cocoon has a strong community, with many active developers and more than plenty of active committers!
  • There is free support from the thousands of people on our mailing lists and commercial support is available from various companies and consultants.
  • There are many Cocoon sessions at different conferences:
  • To get started see the "first steps" documentation track. Basically you only need to download Cocoon, unpack it and follow the simple INSTALL.txt instructions. A minimal version of the Jetty servlet container is included with Cocoon.

Usage scenarios

As you would expect, all of these scenarios can be combined.

  • Dynamic multi-channel web publishing (see below for the possible datasources and output formats)
  • Create static content (automatically) by separating data from view
  • Offline generation modes with Cocoon's own offline facilities: command-line interface (CLI), ant task, bean. Also with Apache Forrest which utilises Cocoon.
  • Dynamic document preparation with Apache Forrest, the 'forrest run' mode. Use many different data input formats, see the transformed result immediately in the browser.
  • Advanced web applications with J2EE integration (with separation of your data, the view and the flow logic --> this really means you can change one of the parts without touching another)
  • Develop your company portal using the Cocoon Portal framework
  • Support multiple clients, layouts and languages (i18n) without code duplication
  • Integrate Cocoon with your existing web applications or use it to put a better face on them (page scraping)
  • Add full-text search to any datasource that can be converted to XML (see below)
  • Use Cocoon as the base for Enterprise Application Integration (EAI)
  • Use Cocoon as the base for your Content Management System (CMS) (see Apache Lenya for a Cocoon based CMS)
  • Use Cocoon for producing mobile content (mobile phones, pdas)
  • Datawarehouse reporting across multiple formats (see xReporter)

Connect your datasources

Out of the box, the following data can be converted to XML to be processed by Cocoon pipelines.

Transform your XML based on standards

Serialize your XML to various output formats

What else we can do for you

  • Coexist and interoperate side-by-side with your existing J2EE solutions (EJB, JMS, ...)
  • Build your Portals based on Cocoon
  • Scheduler - Run background tasks for maintenance, etc.
  • Caching on many levels
  • Integrated search engine (using Lucene)
  • DELI (detect client configuration)
  • Catalog Entity Resolver to map to local copies of DTDs and other resources
  • Publish your own WebServices (Apache Axis is integrated)
  • Java Mail support
  • Easy integration of object-relational frameworks (OJB, Hibernate, ...)
  • I18n support (translation support)
  • Easily extensible by clear interfaces (write your own components following Avalon patterns)
  • Many, many examples and samples
  • Configurable build mechanism based on Ant (you decide which parts of Cocoon you need)
  • Integration of Java data binding frameworks (Castor, Betwixt)

Form handling frameworks

  • Enhanced form handling with strong validation through Cocoon Forms
  • Easy integration of (future) XForms clients

Cocoon deployment and integration

  • Cocoon can be run in every servlet container or J2EE application server that supports Java Servlets 2.2 and above, e.g. Tomcat, Jetty, JBoss JRun, Resin, Websphere, Weblogic, ...
  • Command line execution, without requiring a servlet container
  • Embeddable in any Java application