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>&lt;beans&gt;
      &lt;bean id="dispatcher" scope="prototype"
        name="org.apache.cocoon.transformation.Transformer/dispatcher"
(2 equal lines skipped)
      &lt;/bean&gt;
    &lt;/beans&gt;</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)