You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by da...@cocoon.zones.apache.org on 2008/08/27 14:24:35 UTC
[DAISY] Updated: New in 2.2
A document has been updated:
http://cocoon.zones.apache.org/daisy/documentation/1420.html
Document ID: 1420
Branch: main
Language: default
Name: New in 2.2 (unchanged)
Document Type: Cocoon Document (unchanged)
Updated on: 8/27/08 12:24:22 PM
Updated by: David Legg
A new version has been created, state: draft
Parts
=====
Content
-------
This part has been updated.
Mime type: text/xml (unchanged)
File name: (unchanged)
Size: 5551 bytes (previous version: 5613 bytes)
Content diff:
<html>
<body>
<p>While developing Cocoon 2.2 the main goal was simplicity, modularity and
--- consistent configuration. This page is a summary of all the new features and
+++ consistent configuration. This page is a summary of the new features and
improvements.</p>
<h1>General</h1>
(13 equal lines skipped)
<li>An optional additional validation of sitemaps based on an XML schema
definition is configureable.</li>
<li>Cocoon 2.2 uses Comons Logging instead of Avalon Logkit as logging interface
--- and Log4j as logging implementation. (<em>Also see the 'Incompatibles changes'
--- section of this document.</em>)</li>
+++ and Log4j as logging implementation. (<em>See Also the 'Incompatible changes'
+++ section below.</em>)</li>
</ul>
<h1>Modularity</h1>
(13 equal lines skipped)
<h1>Configuration and Deployment</h1>
<ul>
--- <li>Cocoon 2.1 was configured at build time. This means that you have to build
--- Cocoon 2.1 yourself in order to get the Cocoon that you need for your
--- application. There was no simple upgrade path from one minor/patch release to
--- the next. Cocoon 2.2 expands the meaning of blocks. Blocks have become binary
--- deployment units which follow a particular directory structure and can provide
--- Servlet-Services, Java services, Java classes and resources and Cocoon specific
--- files (templates, stylesheets, etc.).</li>
+++ <li>Cocoon 2.1 had to be configured at build time. This meant you had to build
+++ Cocoon 2.1 yourself in order to get the kind of Cocoon needed by your
+++ application. There was no simple upgrade path from one minor release to the
+++ next. Cocoon 2.2 overcomes this problem by expanding the meaning of blocks.
+++ Blocks have become binary deployment units which follow a particular directory
+++ structure and can provide Servlet-Services, Java services, Java classes and
+++ resources and Cocoon specific files (templates, stylesheets, etc.).</li>
<li>Cocoon blocks express their dependencies using project object model
descriptors (POM 4.0) defined by the Maven project. This makes it easy to build
--- Cocoon 2.2 based projects with Maven 2 though it's no hard requirement.</li>
--- <li>Cocoon 2.2 provides a consistent way of configuration based on the Cocoon
--- Spring Configurator - a new Cocoon sub project. It supports the configuration of
--- components based on the Spring property placeholder configurer and the property
--- overrider configurer and is aware of running modes, i.e. you can provide special
--- properties for different environments (e.g. development, test, production).</li>
+++ Cocoon 2.2 based projects with Maven 2 (though it's not a requirement).</li>
+++ <li>Cocoon 2.2 provides a consistent way to configure your application based on
+++ the Cocoon Spring Configurator - a new Cocoon sub project. It supports the
+++ configuration of components based on the Spring property placeholder configurer
+++ and the property overrider configurer and is aware of running modes, i.e. you
+++ can provide special properties for different environments (e.g. development,
+++ test, production).</li>
<li>Cocoon 2.2 uses Jakarta Commons Logging 1.1 as logging framework and Log4j
as default implementation.</li>
<li>The number of dependencies of a minimal Cocoon application (sitemaps,
--- pipelines, XML templates) was reduced and together they amount to less than
+++ pipelines, XML templates) has been reduced and together they amount to less than
10MB (incl. Xalan and Xerces libs!).</li>
</ul>
<h1>Tools</h1>
+++ <p>The Cocoon Maven 2 plugin makes it very easy to use Cocoon together with
+++ Maven 2 as a build system. The main features are:</p>
+++
<ul>
--- <li>The Cocoon Maven 2 plugin makes is very easy to use Cocoon together with
--- Maven 2 as build system. The main features are</li>
--- <ul>
--- <li>starting a block as web application (+ support for the automatical reload of
--- Java classes and all other resources),</li>
--- <li>rewritting web.xml to weave in a shielding classloader that reverses the
+++ <li>The ability to start a block as a web application (+ support for the
+++ automatic reload of Java classes and all other resources),</li>
+++ <li>Rewriting web.xml to weave in a shielding classloader that reverses the
classloading hierarchy in order to avoid classloader problems (e.g. with XML
libraries),</li>
--- <li>a block can supply xpatch files to patch the <tt>web.xml </tt>of the
+++ <li>A block can supply xpatch files to patch the <tt>web.xml </tt>of the
destination web application.</li>
--- </ul>
---
<li>Schema files for sitemaps.</li>
</ul>
(8 equal lines skipped)
<h1>Migrating 2.1 components</h1>
<p>When you have avalon based components that you want to use with the new
--- spring configuration system make sure you are configure them right. Avalon based
--- components were implementing an interface to e.g. be Threadsafe. In Spring you
+++ spring configuration system, make sure you configure them correctly. Avalon
+++ based components implementing an interface to e.g. be Threadsafe. In Spring you
will need to configure the scope (default is singletone). If you see a lot of
NPE in concurrency tests then you would need to use the prototype scope as shown
below.</p>
---
--- <pre/>
---
<pre><beans>
<bean id="dispatcher" scope="prototype"
name="org.apache.cocoon.transformation.Transformer/dispatcher"
(2 equal lines skipped)
</bean>
</beans></pre>
---
--- <pre/>
---
<h1>Incompatible changes</h1>
<ul>
--- <li>All Cocoon components don't implement the Avalon Logkit logging interfaces
+++ <li>Cocoon components no longer implement the Avalon Logkit logging interface
(<tt><a href="http://excalibur.apache.org/apidocs/org/apache/avalon/framework/logger/Logger.html">org.apache.avalon.framework.logger.Logger</a></tt>
--- ) anymore but Commons logging instead. This change also makes it possible to
--- configure components via Spring configuration files. If you extend one of those
--- components (e.g.
+++ ). Instead they use Commons logging. This change makes it possible to configure
+++ components via Spring configuration files. If you extend a component (e.g.
<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/transformation/AbstractSAXTransformer.html">AbstractSAXTransformer</a>),
--- you have to change the logger implementation and to recompile your classes. We
--- are sorry but there is no backwards compatible way in doing this move from
--- Avalon Logkit to Commons Logging.</li>
+++ you have to change the logger implementation and recompile your classes. There
+++ is, unfortunately, no backwards compatible way of doing this.</li>
</ul>
</body>
(1 equal lines skipped)