Apache » Cocoon »

  Cocoon 3

Cocoon 3

Apache Cocoon 3

Apache Cocoon 3 is a major rewrite of Cocoon 2.2. Like Cocoon 2 it is based around the concept of pipelines and sitemaps and it is very similar to Cocoon 2.2 in many respects but is slimmed down and designed to be easily used with Java code (= no frameworks required!). On top of this, Cocoon 3 has the goal of becoming the best available platform for RESTful webservices and web applications.


Apache Cocoon 3.0.0-alpha-3 is available for download. Please read our alpha software warning message before using it.

Using Pipelines in Java has never been so easy

Here is an example that transforms an XML document by reading it from an URL, will be processed including linked documents following the XInclude recommendation, then will be transformed applying a stylesheet, validated against an XSchema, and finally serialized:

URL base = this.getClass().getResource("http://com.acme/");

Pipeline<SAXPipelineComponent> pipeline = new NonCachingPipeline<SAXPipelineComponent>();
pipeline.addComponent(new XMLGenerator(new URL(base, "feed.xml")));
pipeline.addComponent(new XIncludeTransformer(base));
pipeline.addComponent(new XSLTTransformer(this.getClass().getResource("/trax.xslt")));
pipeline.addComponent(new SchemaProcessorTransformer(this.getClass().getResource("/validate.xsd")));
pipeline.addComponent(new XMLSerializer());

ByteArrayOutputStream baos = new ByteArrayOutputStream();

The idea behind using a pipeline for this purpose is that the content of the pipeline (in this case SAX events) is streamed without any necessary serialization or deserialization steps between the components.

Sitemaps and integration with Java Servlets

But there is more that Cocoon 3 offers. See our features list.