You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/04/05 15:15:28 UTC

cvs commit: cocoon-2.2/src/webapp/WEB-INF cocoon.xconf

cziegeler    2004/04/05 06:15:28

  Modified:    src/java/org/apache/cocoon/bean CocoonBean.java
               lib      jars.xml
               src/java/org/apache/cocoon/components/container
                        CocoonContainer.java
               tools/targets compile-build.xml
               src/java/org/apache/cocoon cocoon.roles
               src/java/org/apache/cocoon/components/cprocessor
                        TreeProcessor.java
               src/webapp/WEB-INF cocoon.xconf
  Added:       legal    commons-beanutils-1.6.1.jar.license.txt
               lib/core excalibur-fortress-container-20040405.jar
                        commons-beanutils-1.6.1.jar
  Removed:     lib/core avalon-fortress-container-1.1.jar
  Log:
  Back to ECM configuration files with Fortress for compatibility
  - We only have to fix the sitemap processor as currently the sitemap components still need meta info
  
  Revision  Changes    Path
  1.1                  cocoon-2.2/legal/commons-beanutils-1.6.1.jar.license.txt
  
  Index: commons-beanutils-1.6.1.jar.license.txt
  ===================================================================
  /*
   * $Header: /home/cvs/cocoon-2.2/legal/commons-beanutils-1.6.1.jar.license.txt,v 1.1 2004/04/05 13:15:27 cziegeler Exp $
   * $Revision: 1.1 $
   * $Date: 2004/04/05 13:15:27 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowledgement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgement may appear in the software itself,
   *    if and wherever such third-party acknowledgements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  
  
  
  1.53      +3 -1      cocoon-2.2/src/java/org/apache/cocoon/bean/CocoonBean.java
  
  Index: CocoonBean.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/bean/CocoonBean.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- CocoonBean.java	11 Mar 2004 09:14:32 -0000	1.52
  +++ CocoonBean.java	5 Apr 2004 13:15:27 -0000	1.53
  @@ -24,6 +24,7 @@
   
   import org.apache.avalon.fortress.ContainerManager;
   import org.apache.avalon.fortress.impl.DefaultContainerManager;
  +import org.apache.avalon.fortress.impl.role.ECMRoleManager;
   import org.apache.avalon.fortress.util.FortressConfig;
   import org.apache.avalon.fortress.util.LifecycleExtensionManager;
   import org.apache.avalon.framework.CascadingRuntimeException;
  @@ -233,8 +234,9 @@
           m_confBuilder.setContextClassLoader( m_parentClassLoader );
           m_confBuilder.setCommandFailureHandlerClass( CocoonCommandFailureHandler.class );
           m_confBuilder.setContainerClass(CocoonContainer.class);
  +        m_confBuilder.setRoleManagerClass(ECMRoleManager.class);
           m_confBuilder.setRoleManagerConfiguration(m_roleConfigURI);
  -        
  +
           m_confBuilder.setLifecycleExtensionManager( getLifecycleExtensionManager() );
   
           DefaultContext initContext = new ComponentContext( m_confBuilder.getContext() );
  
  
  
  1.133     +16 -2     cocoon-2.2/lib/jars.xml
  
  Index: jars.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/lib/jars.xml,v
  retrieving revision 1.132
  retrieving revision 1.133
  diff -u -r1.132 -r1.133
  --- jars.xml	23 Mar 2004 07:59:28 -0000	1.132
  +++ jars.xml	5 Apr 2004 13:15:27 -0000	1.133
  @@ -38,7 +38,7 @@
         This is the Avalon container used by Cocoon.
       </description>
       <used-by>Cocoon</used-by>
  -    <lib>core/avalon-fortress-container-1.1.jar</lib>
  +    <lib>core/excalibur-fortress-container-20040405.jar</lib>
       <homepage>http://avalon.apache.org/excalibur/fortress/</homepage>
     </file>
     
  @@ -469,5 +469,19 @@
       <lib>core/commons-lang-2.0.jar</lib>
       <homepage>http://jakarta.apache.org/commons/lang/</homepage>
     </file>
  +
  +  <file>
  +    <title>Jakarta Commons Beantuils</title>
  +    <description>
  +      The Java language provides Reflection and Introspection APIs 
  +      (see the java.lang.reflect and java.beans packages in the JDK Javadocs). 
  +      However, these APIs can be quite complex to understand and utilize. 
  +      The BeanUtils component provides easy-to-use wrappers around these capabilities.
  +    </description>
  +    <used-by>Fortress</used-by>
  +    <lib>core/commons-beanutils-1.6.1.jar</lib>
  +    <homepage>http://jakarta.apache.org/commons/beanutils/</homepage>
  +  </file>
  +
   
   </jars>
  
  
  
  1.4       +2 -2      cocoon-2.2/src/java/org/apache/cocoon/components/container/CocoonContainer.java
  
  Index: CocoonContainer.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/container/CocoonContainer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CocoonContainer.java	13 Mar 2004 18:00:44 -0000	1.3
  +++ CocoonContainer.java	5 Apr 2004 13:15:27 -0000	1.4
  @@ -16,7 +16,7 @@
   package org.apache.cocoon.components.container;
   
   import org.apache.avalon.fortress.impl.AbstractContainer;
  -import org.apache.avalon.fortress.impl.DefaultContainer;
  +import org.apache.avalon.fortress.impl.DefaultECMContainer;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.service.ServiceException;
  @@ -30,7 +30,7 @@
    * @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
    * @version CVS $ Revision: 1.1 $
    */
  -public class CocoonContainer extends DefaultContainer {
  +public class CocoonContainer extends DefaultECMContainer {
       
       /**
        * Provide some validation for the core Cocoon components
  
  
  
  1.1                  cocoon-2.2/lib/core/excalibur-fortress-container-20040405.jar
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.2/lib/core/commons-beanutils-1.6.1.jar
  
  	<<Binary file>>
  
  
  1.7       +1 -1      cocoon-2.2/tools/targets/compile-build.xml
  
  Index: compile-build.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/tools/targets/compile-build.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- compile-build.xml	31 Mar 2004 10:28:34 -0000	1.6
  +++ compile-build.xml	5 Apr 2004 13:15:28 -0000	1.7
  @@ -41,7 +41,7 @@
           <include name="**/*.java"/>
         </fileset>
       </fortress-meta>
  -
  +    
       <!-- compile mock classes -->
       <mkdir dir="${build.mocks}"/>
       <javac srcdir="${mocks}"
  
  
  
  1.19      +106 -113  cocoon-2.2/src/java/org/apache/cocoon/cocoon.roles
  
  Index: cocoon.roles
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/cocoon.roles,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- cocoon.roles	10 Mar 2004 09:46:24 -0000	1.18
  +++ cocoon.roles	5 Apr 2004 13:15:28 -0000	1.19
  @@ -15,20 +15,36 @@
     limitations under the License.
   -->
   <!DOCTYPE role-list [
  -<!ELEMENT role-list (role+)>
  -<!ELEMENT role (component*)>
  -<!ELEMENT component EMPTY>
  -<!ATTLIST role name CDATA #REQUIRED>
  -<!ATTLIST component 
  -  shorthand CDATA #REQUIRED
  -  class CDATA #REQUIRED
  -  handler CDATA #IMPLIED
  +<!ELEMENT role-list (role+)> 
  +<!ELEMENT role (hint*)>
  +<!ELEMENT hint EMPTY>
  +<!ATTLIST role name CDATA #REQUIRED
  +               shorthand CDATA #REQUIRED
  +               default-class CDATA #IMPLIED
  +>
  +<!ATTLIST hint shorthand CDATA #REQUIRED
  +               class CDATA #REQUIRED
   >
   ]>
   
   <role-list>
   
  +  <role name="org.apache.excalibur.source.SourceFactorySelector"
  +        shorthand="source-factories"
  +        default-class="org.apache.avalon.framework.service.DefaultServiceSelector">
  +  </role>
  +
  +  <role name="org.apache.excalibur.source.SourceResolver"
  +        shorthand="source-resolver"
  +        default-class="org.apache.excalibur.source.impl.SourceResolverImpl"/>
  +
  +  <!-- The entity resolver used by most parsers -->
  +  <role name="org.apache.excalibur.xml.EntityResolver"
  +        shorthand="entity-resolver"
  +        default-class="org.apache.cocoon.components.resolver.DefaultResolver"/>
  +
     <!-- Parser:
  +  
          Starting with Cocoon 2.1 we have a bunch of different parser:
          - a SAX parser (producing SAX events)
          - a DOM parser (producint a document)
  @@ -36,133 +52,110 @@
          ...
     -->
   
  -  <!-- This is the default SAX parser -->
  -  <role name="org.apache.excalibur.xml.sax.SAXParser">
  -    <component
  -      shorthand="xml-parser"
  -      class="org.apache.excalibur.xml.impl.JaxpParser"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -
  -  <!-- This is the default DOM parser 
  -  <role name="org.apache.excalibur.xml.dom.DOMParser">
  -    <component
  -      shorthand="dom-parser"
  -      class="org.apache.excalibur.xml.impl.JaxpParser"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -  -->
  -  
  -  <role name="org.apache.excalibur.xml.xslt.XSLTProcessor">
  -    <component 
  -      shorthand="xslt-processor"
  -      class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  +  <!-- This is the usual SAX parser -->
  +  <role name="org.apache.excalibur.xml.sax.SAXParser"
  +        shorthand="xml-parser"
  +        default-class="org.apache.excalibur.xml.impl.JaxpParser"/>
  +
  +  <!-- This is the usual DOM parser -->
  +  <role name="org.apache.excalibur.xml.dom.DOMParser"
  +        shorthand="dom-parser"
  +        default-class="org.apache.excalibur.xml.impl.JaxpParser"/>
  +
  +  <!-- A Dom Serializer -->
  +  <role default-class="org.apache.excalibur.xml.dom.DefaultDOMSerializer" name="org.apache.excalibur.xml.dom.DOMSerializer" shorthand="dom-serializer"/>
  +
  +  <!-- XSLT: -->
  +  <role name="org.apache.excalibur.xml.xslt.XSLTProcessor"
  +        shorthand="xslt-processor"
  +        default-class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"/>
  +
  +  <role name="org.apache.excalibur.xml.xpath.XPathProcessor"
  +        shorthand="xpath-processor"
  +        default-class="org.apache.excalibur.xml.xpath.XPathProcessorImpl"/>
   
  -  <role name="org.apache.excalibur.xmlizer.XMLizer">
  -    <component 
  -      shorthand="xmlizer"
  -      class="org.apache.excalibur.xmlizer.DefaultXMLizer"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />  
  -  </role>
  -  
  -  <role name="org.apache.excalibur.xml.xpath.XPathProcessor">
  -    <component
  -      shorthand="xpath-processor"
  -      class="org.apache.excalibur.xml.xpath.XPathProcessorImpl"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -  
     <!-- Stores: -->
  -  <!--
  -  <role name="org.apache.excalibur.store.Store">
  -    <component 
  -      shorthand="persistent-store"
  -      class="org.apache.cocoon.components.store.impl.DefaultStore"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -  
  -  <role name="org.apache.excalibur.store.Store/TransientStore">
  -    <component
  -      shorthand="transient-store"
  -      class="org.apache.excalibur.store.impl.MRUMemoryStore"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -
  -  <role name="org.apache.excalibur.store.StoreJanitor">
  -    <component
  -      shorthand="store-janitor"
  -      class="org.apache.excalibur.store.impl.StoreJanitorImpl"
  -      handler="org.apache.avalon.fortress.impl.handler.ThreadSafeComponentHandler"
  -    />
  -  </role>
  -
  -  -->
  -  <role name="org.apache.cocoon.components.modules.input.SitemapVariableHolder">
  -    <component 
  -      shorthand="global-variables"
  -      class="org.apache.cocoon.components.modules.input.SitemapVariableHolder"
  -    />
  -  </role>
  -  
  -  <!--
  -  <role name="org.apache.cocoon.components.language.generator.ServerPagesSelector"
  -       shorthand="server-pages"
  -       default-class="org.apache.cocoon.components.language.generator.GeneratorSelector"/>
  -
  -  <role name="org.apache.cocoon.components.language.markup.MarkupLanguageSelector"
  -        shorthand="markup-languages"
  -        default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector">
  -    <hint shorthand="sitemap-language" class="org.apache.cocoon.components.language.markup.CocoonMarkupLanguage"/>
  -    <hint shorthand="xsp-language" class="org.apache.cocoon.components.language.markup.xsp.XSPMarkupLanguage"/>
  -  </role>
  -
  -  <role name="org.apache.cocoon.components.language.programming.ProgrammingLanguageSelector"
  -        shorthand="programming-languages"
  -        default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector">
  -    <hint shorthand="java-language" class="org.apache.cocoon.components.language.programming.java.JavaLanguage"/>
  -    <hint shorthand="js-language" class="org.apache.cocoon.components.language.programming.javascript.JavascriptLanguage"/>
  -    <hint shorthand="python-language" class="org.apache.cocoon.components.language.programming.python.PythonLanguage"/>
  -  </role>
  -
  -  <role name="org.apache.cocoon.components.language.generator.ProgramGenerator"
  -        shorthand="program-generator"
  -        default-class="org.apache.cocoon.components.language.generator.ProgramGeneratorImpl"/>
  +  <role name="org.apache.excalibur.store.Store"
  +       shorthand="store"
  +       default-class="org.apache.cocoon.components.store.impl.DefaultStore"/>
  +
  +  <role name="org.apache.excalibur.store.Store/PersistentStore"
  +        shorthand="persistent-store"
  +        default-class="org.apache.cocoon.components.store.impl.DefaultPersistentStore"/>
  +
  +  <role name="org.apache.excalibur.store.Store/TransientStore"
  +        shorthand="transient-store"
  +        default-class="org.apache.cocoon.components.store.impl.DefaultTransientStore"/>
  +
  +  <role name="org.apache.excalibur.store.StoreJanitor"
  +       shorthand="store-janitor"
  +       default-class="org.apache.excalibur.store.impl.StoreJanitorImpl"/>
  +
  +  <role name="org.apache.cocoon.Processor"
  +        shorthand="sitemap"
  +        default-class="org.apache.cocoon.components.cprocessor.TreeProcessor"/>
  +
  +  <role name="org.apache.cocoon.ModifiableProcessor"
  +        shorthand="cocoon"
  +        default-class="org.apache.cocoon.Cocoon"/>
   
     <role name="org.apache.cocoon.components.classloader.ClassLoaderManager"
           shorthand="classloader"
           default-class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
   
  -  <role name="org.apache.cocoon.components.image.ImageEncoderSelector"
  -        shorthand="image-encoder"/>
  +  <role name="org.apache.excalibur.xmlizer.XMLizer"
  +        shorthand="xmlizer"
  +        default-class="org.apache.excalibur.xmlizer.DefaultXMLizer"/>
   
     <role name="org.apache.avalon.excalibur.monitor.Monitor"
           shorthand="monitor"
           default-class="org.apache.avalon.excalibur.monitor.ActiveMonitor">
     </role>
   
  -  <role name="org.apache.cocoon.components.xscript.XScriptManager"
  -        shorthand="xscript"
  -        default-class="org.apache.cocoon.components.xscript.XScriptManagerImpl"/>
  +  <role name="org.apache.cocoon.components.sax.XMLSerializer"
  +        shorthand="xml-serializer"
  +        default-class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"/>
  +
  +  <role name="org.apache.cocoon.components.sax.XMLDeserializer"
  +        shorthand="xml-deserializer"
  +        default-class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"/>
  +
  +  <role name="org.apache.cocoon.components.notification.NotifyingBuilder"
  +        shorthand="notifying-builder"
  +        default-class="org.apache.cocoon.components.notification.DefaultNotifyingBuilder"/>
  +
  +  <role name="org.apache.cocoon.caching.Cache"
  +        shorthand="cache"
  +        default-class="org.apache.cocoon.caching.impl.CacheImpl"/>
   
  +  <!-- i18n components for resource bundle handling -->
     <role name="org.apache.cocoon.i18n.BundleFactory"
           shorthand="i18n-bundles"
           default-class="org.apache.cocoon.i18n.XMLResourceBundleFactory"/>
   
  -  <role name="org.apache.cocoon.components.flow.ContinuationsManager"
  +  <role name="org.apache.cocoon.components.flow.ContinuationsManager" 
           shorthand="continuations-manager"
           default-class="org.apache.cocoon.components.flow.ContinuationsManagerImpl" />
   
  +  <!-- input/output modules -->
  +  <role name="org.apache.cocoon.components.modules.input.InputModuleSelector"
  +        shorthand="input-modules"
  +        default-class="org.apache.avalon.framework.service.DefaultServiceSelector"/>
  +
  +  <role name="org.apache.cocoon.components.modules.output.OutputModuleSelector"
  +        shorthand="output-modules"
  +        default-class="org.apache.avalon.framework.service.DefaultServiceSelector"/>
  +
  +  <role name="org.apache.cocoon.components.modules.input.SitemapVariableHolder"
  +        shorthand="global-variables"
  +        default-class="org.apache.cocoon.components.modules.input.SitemapVariableHolder"/>
  +  
  +  <!-- Storing data in the current request -->
     <role name="org.apache.cocoon.components.persistence.RequestDataStore"
           shorthand="request-data-store"
           default-class="org.apache.cocoon.components.persistence.RequestDataStoreImpl"/>
  -  -->
  +
  +  <role name="org.apache.cocoon.components.flow.Interpreter"
  +        shorthand="fom-javascript-interpreter"
  +        default-class="org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter"/>
   </role-list>
  
  
  
  1.28      +21 -1     cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/TreeProcessor.java
  
  Index: TreeProcessor.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/cprocessor/TreeProcessor.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- TreeProcessor.java	19 Mar 2004 11:10:07 -0000	1.27
  +++ TreeProcessor.java	5 Apr 2004 13:15:28 -0000	1.28
  @@ -26,6 +26,7 @@
   
   import org.apache.avalon.excalibur.logger.LoggerManager;
   import org.apache.avalon.fortress.impl.DefaultContainerManager;
  +import org.apache.avalon.fortress.util.ContextManagerConstants;
   import org.apache.avalon.fortress.util.FortressConfig;
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.activity.Initializable;
  @@ -35,6 +36,7 @@
   import org.apache.avalon.framework.configuration.NamespacedSAXConfigurationHandler;
   import org.apache.avalon.framework.container.ContainerUtil;
   import org.apache.avalon.framework.context.Context;
  +import org.apache.avalon.framework.context.ContextException;
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.context.DefaultContext;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
  @@ -305,7 +307,7 @@
       
       private void createContainer() throws Exception {
           // create the sitemap container
  -        DefaultContext context = new DefaultContext(m_context);
  +        DefaultContext context = new HidingContextImpl(m_context);
           context.put(TreeProcessor.CONTEXT_TREE_PROCESSOR, this);
           context.makeReadOnly();
           FortressConfig config = new FortressConfig(context);
  @@ -585,4 +587,22 @@
           }
       }
   
  +    protected static final class HidingContextImpl extends DefaultContext {
  +        
  +        public HidingContextImpl(Context parent) {
  +            super(parent);
  +        }
  +        
  +        
  +        /* (non-Javadoc)
  +         * @see org.apache.avalon.framework.context.Context#get(java.lang.Object)
  +         */
  +        public Object get(Object key) throws ContextException {
  +            if ( ContextManagerConstants.ROLE_MANAGER_CLASS.equals(key) ) {
  +                throw new ContextException("Key " + key + " is not available.");
  +            }
  +            return super.get(key);
  +        }
  +    }
   }
  +
  
  
  
  1.44      +301 -593  cocoon-2.2/src/webapp/WEB-INF/cocoon.xconf
  
  Index: cocoon.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/webapp/WEB-INF/cocoon.xconf,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- cocoon.xconf	10 Mar 2004 10:05:06 -0000	1.43
  +++ cocoon.xconf	5 Apr 2004 13:15:28 -0000	1.44
  @@ -15,7 +15,7 @@
     limitations under the License.
   -->
   
  -<cocoon version="2.2" proxy-type="none">
  +<cocoon version="2.2">
   
   <!--+
       |  This is the Apache Cocoon configuration file. This is the place
  @@ -24,13 +24,6 @@
       |  (stuff like XML parsers or XSLT processors).
       +-->
   
  -<!-- =========================== Cocoon =============================== -->
  -
  -  <cocoon
  -    id="cocoon"
  -    logger="cocoon"
  -  />
  -
   <!-- =========================== Sitemap =============================== -->
   
     <!--+
  @@ -44,363 +37,15 @@
         |   Set to "no", the sitemap is generated once at startup.
         |   Set to "yes", the sitemap is regenerated if it changes.
         |
  -      | For development environment, set the check-reload to yes.
  -      | For production environment, it is advisable to set check-reload to no.
  -      +-->
  -  <sitemap
  -    id="sitemap"
  -    file="context://sitemap.xmap"
  -    check-reload="yes"
  -    logger="sitemap"
  -  />
  -
  -<!-- ================================= XML ================================ -->
  -
  -  <!--+
  -      | XML Parser
  -      |
  -      | The default parser used in Apache Cocoon is
  -      | org.apache.excalibur.xml.impl.JaxpParser. Apache Cocoon requires a
  -      | JAXP 1.1 parser.
  -      | If you have problems because your servlet environment uses its own
  -      | parser not conforming to JAXP 1.1 try using the alternative
  -      | XercesParser instead of the JaxpParser. To activate the XercesParser,
  -      | change the class attribute to
  -      |   class="org.apache.excalibur.xml.impl.XercesParser"
  -      | You will also need to add a system property to your JVM,
  -      | probably on the startup of your servlet engine like this:
  -      | -Dorg.apache.excalibur.xml.sax.SAXParser=org.apache.excalibur.xml.impl.XercesParser
  -      |
  -      | Configuration for the JaxpParser (not the XercesParser!):
  -      | - validate (boolean, default = false): This parameter causes the parser
  -      |     to be a validating parser.
  -      |     XML validation is only being used for the documentation build.
  -      |     (If you are going to use it elsewhere, then do so with caution.)
  -      |     You really should have validated all of your XML documents already,
  -      |     according to their proper DTD or schema. Do not expect Cocoon
  -      |     to do it.
  -      | - namespace-prefixes (boolean, default = false) : do we want
  -      |     namespaces declarations also as 'xmlns:' attributes ?
  -      |     Note : setting this to true confuses some XSL processors
  -      |     (e.g. Saxon).
  -      | - stop-on-warning (boolean, default = true) : should the parser
  -      |     stop parsing if a warning occurs ?
  -      | - stop-on-recoverable-error (boolean, default = true) : should the
  -      |     parser stop parsing if a recoverable error occurs ?
  -      | - reuse-parsers (boolean, default = true) : do we want to reuse
  -      |     parsers or create a new parser for each parse ?
  -      |     Note : even if this parameter is true, parsers are not recycled
  -      |     in case of parsing errors : some parsers (e.g. Xerces) do not like
  -      |     to be reused after failure.
  -      | - sax-parser-factory (string) : the name of the SAXParserFactory
  -      |     implementation class to be used instead of using the standard
  -      |     JAXP mechanism (SAXParserFactory.newInstance()). This allows to
  -      |     choose unambiguously the JAXP implementation to be used when
  -      |     several of them are available in the classpath.
  -      | - document-builder-factory (string) : the name of the
  -      |     DocumentBuilderFactory implementation to be used (similar to
  -      |     sax-parser-factory for DOM).
  -      +-->
  -  <xml-parser 
  -    id="sax-parser"
  -    activation="inline"
  -    logger="core.xml-parser" 
  -    pool-grow="4" pool-max="32" pool-min="8">
  -    
  -    <parameter name="validate" value="false"/>
  -    <parameter name="namespace-prefixes" value="false"/>
  -    <parameter name="stop-on-warning" value="true"/>
  -    <parameter name="stop-on-recoverable-error" value="true"/>
  -    <parameter name="reuse-parsers" value="false"/>
  -    <!-- drop-dtd-comments: causes all comment events originating from DTD
  -         comments to be dropped right after parsing -->
  -    <parameter name="drop-dtd-comments" value="true"/>
  -  </xml-parser>
  -
  -  <!--+
  -      | XSLT Processor
  -      |
  -      | 'incremental-processing' (only works with Xalan) allows the XSLT
  -      | processor to start the output of the transformation as soon as possible.
  -      | if set to false, the transforer waits until the end of the
  -      | transformation to deliver the output.
  -      | WARNING: * if you enable incremental-processing, you should be aware of
  -      |            the following bug:
  -      |            http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13186
  -      |          * incremental-processing creates an additional, non-pooled thread.
  -      |          * using incremental-processing does not save memory, the input
  -      |            tree will still be build completely.
  -      |          * incremental processing is a 'static' thing in Xalan: if you
  -      |            enable it on one xslt-processor, enable it on all.
  -      +-->
  -  <xslt-processor id="xslt" logger="core.xslt-processor" default="true">
  -    <parameter name="use-store" value="false"/>
  -    <parameter name="incremental-processing" value="false"/>
  -  </xslt-processor>
  -
  -  <!--+
  -      | XSLT Processor using xsltc from Xalan
  -      +-->
  -  <xslt-processor id="xsltc" logger="core.xslt-processor">
  -    <parameter name="use-store" value="false"/>
  -    <parameter name="transformer-factory" value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl"/>
  -  </xslt-processor>
  -  
  -  <!--+
  -      | Xalan XSLT Processor
  -      +-->
  -  <xslt-processor id="xalan" logger="core.xslt-processor">
  -    <parameter name="use-store" value="false"/>
  -    <parameter name="incremental-processing" value="false"/>
  -    <parameter name="transformer-factory" value="org.apache.xalan.processor.TransformerFactoryImpl"/>
  -  </xslt-processor>
  -
  -  <!--+
  -      | Xpath Processor
  -      +-->
  -  <xpath-processor id="xpath-processor" logger="core.xpath-processor" />
  -
  -  <!-- The XMLizers converts different mime-types to XML -->
  -  <xmlizer id="xmlizer" logger="core.xmlizer">
  -    <parser role="org.apache.excalibur.xml.sax.SAXParser" mime-type="text/xml" />
  -  </xmlizer>
  -  
  -  <!--+
  -      | Saxon XSLT Processor
  -      | For old (6.5.2) Saxon use:
  -      |  <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/>
  -      | For new (7.x?) Saxon use:
  -      |  <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/>
  -  <component id="saxon"
  -             logger="core.xslt-processor">
  -     <parameter name="use-store" value="false"/>
  -     <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/>
  -  </component>
  -  +-->
  -
  -  <!--+
  -      | Source Factories
  -      |
  -      | Each source factory adds a special uri schemes to the system.
  -      +-->
  -  <url-source id="url" logger="core.source.url" />
  -  <context-source id="context" logger="core.source.context" />
  -  <cocoon-source id="cocoon" logger="core.source.cocoon" />
  -  <file-source id="file" logger="core.source.file" />
  -  <resource-source id="resource" logger="core.source.resource" />
  -	
  -  <!--+
  -      | Source Resolver
  -      | 
  -      | Custom source resolver acting both as Cocoon's own environment
  -      | SourceResolver and excalibur SourceResolver.
  -      +-->
  -  <source-resolver id="cocoon-source-resolver" logger="core.source-resolver" />
  -
  -    <!--+
  -      | Entity resolution catalogs
  -      |
  -      | The default catalog is distributed at WEB-INF/entities/catalog
  -      | This is the contextual pathname for Cocoon resources.
  -      | You can override this path, if necessary, using the "catalog" parameter:
  -      |
  -      |    <parameter name="catalog" value="WEB-INF/entities/catalog"/>
  -      |
  -      | However, it is probably desirable to leave this default catalog config
  -      | and declare your own local catalogs, which are loaded in addition to
  -      | the system catalog.
  -      |
  -      | There are various ways to do local configuration (see "Entity Catalogs"
  -      | documentation). One way is via the CatalogManager.properties file.
  -      | As an additional method, you can specify the "local-catalog"
  -      | parameter here.
  -      |
  -      | local-catalog:
  -      |   The full filesystem pathname to a single local catalog file.
  -      |
  -      |  <parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
  -      |
  -      | verbosity:
  -      | The level of messages for status/debug (messages go to standard output)
  -      | The following messages are provided ...
  -      |  0 = none
  -      |  1 = ? (... not sure yet)
  -      |  2 = 1+, Loading catalog, Resolved public, Resolved system
  -      |  3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
  -      |  10 = 3+, List all catalog entries when loading a catalog
  -      |    (Cocoon also logs the "Resolved public" messages.)
  -      |
  -      |     <parameter name="verbosity" value="2"/>
  -      +-->
  -  <entity-resolver id="entity-resolver" logger="core.entity-resolver">
  -    <parameter name="catalog" value="WEB-INF/entities/catalog"/>
  -    <parameter name="verbosity" value="1"/>
  -  </entity-resolver>
  -
  -<!-- =================== Sitemap Input/Output Modules ====================== -->
  -
  -  <!--+
  -      | InputModules are a replacement to reading values directly
  -      | e.g. from request parameters. By using this abstraction and
  -      | indirection, other components can be more generic and changes
  -      | to the application logic are easier.
  -      |
  -      | A number of components already use InputModules: the sitemap processor, 
  -      | flow, some matchers, the linkrewriting transformer, database actions
  -      | and more.
  -      |
  -      | For example the sitemap processor allows to obtain a value
  -      | named "foo" from an the InputModule for request parameters by
  -      | writing {request-param:foo} wherever a sitemap variable is
  -      | allowed. 
  -      |
  -      | Some InputModules need the help of other InputModules to
  -      | obtain values and only apply a function to the obtained value
  -      | or change the name of the attribute. These modules usually
  -      | carry "Meta" in their name. An example is the ChainMetaModule
  -      | which tries several other modules in turn until a non-null
  -      | value is obtained or all modules are tied.
  -	  |
  -      | For details and optional configuration parameters refer to the
  -      | accompanying javadocs.
  -      +-->
  -  <request-param-input 
  -    id="request-param" 
  -    logger="core.modules.input" 
  -  />
  -  <request-input 
  -    id="request" 
  -    logger="core.modules.input" 
  -  />
  -  <properties-file-input
  -    id="cocoon-properties"
  -    logger="core.modules.logger">
  -    <file src="resource://org/apache/cocoon/cocoon.properties" />
  -  </properties-file-input>
  -  <global-input 
  -    id="global" 
  -    logger="core.modules.input" 
  -  />
  -  <global-variables id="global-variables"/>
  -  
  -  <notifying-builder id="notifying" />
  -  
  -  <cache id="cache" />
  -  
  -<!-- ============================ Object Stores =========================== -->
  -
  -  <!--+
  -      | Store: generic store. The default implementation is an in-memory store
  -      | backed by the persistent store (see below). This forms a two-stage
  -      | cache composed of a fast in-memory MRU front-end and a persistent
  -      | back-end storing less used objects.
  -      |
  -      | Common configuration parameters:
  -      | maxobjects: Indicates how many objects will be hold in the cache.
  -      |    When the number of maxobjects has been reached. The last object
  -      |    in the cache will be thrown out.
  -      +-->
  -  <store id="Store" default="true" logger="core.store">
  -    <parameter name="maxobjects" value="100"/>
  -  </store>
  -  
  -  <!--+
  -      | Transient Store: holds objects that don't have to survive shutdown
  -      |
  -      | Common configuration parameters:
  -      | maxobjects: Indicates how many objects will be hold in the cache.
  -      |    When the number of maxobjects has been reached. The last object
  -      |    in the cache will be thrown out.
  -      +-->
  -  <transient-store id="TransientStore" logger="core.store.transient">
  -    <parameter name="maxobjects" value="100"/>
  -  </transient-store>
  -
  -  <!--+
  -      | Persistent Store: holds objects that have to survive shutdown.
  -      | WARNING: FilesystemStore is broken. Cocoon uses DefaultPersistentStore based
  -      | on the Avalon Excalibur JispStore instead.
  -      |
  -      | Common configuration parameters:
  -      |  use-cache-directory: Indicates that cache directory specified in
  -      |                       web.xml should be used.
  -      |  use-work-directory: Indicates that work directory specified in
  -      |                      web.xml should be used.
  -      |  directory: Specifies directory to use. Absolute or relative to the
  -      |             work directory.
  -      |
  -      | DefaultStore configuration parameters:
  -      |  datafile: Name of the store file to use. Defaults to cocoon.dat
  -      |  indexfile: Name of the index file to use. Defaults to cocoon.idx
  -      |  order: FIXME: put description here.
  -      +-->
  -  <persistent-store id="PersistentStore" logger="core.store.persistent">
  -    <parameter name="use-cache-directory" value="true"/>
  -    <parameter name="order" value="2701"/>
  -  </persistent-store>
  -  
  -  <!--+
  -      | Store Janitor: the store garbage collector and memory usage controller.
  -      |
  -      | WARNING: Be careful with the heapsize and freememory parameters.
  -      |           Wrong values can cause high cpu usage.
  -      |
  -      | Example configuration:
  -      | Jvm settings:
  -      |    -Xmx200000000
  -      | store-janitor settings:
  -      |    <parameter name="freememory" value="5000000"/>
  -      |    <parameter name="heapsize" value="196000000"/>
  -      |
  -      | It is recommended to have heapsize equal to -Xmx, especially on Sun's
  -      | JVM which are unable to shrink its heap once it grows above minimum.
  -      | Freememory should be greater than amount of memory necessary for normal
  -      | application operation.
  -      | BUT: The heap size of the memory of the JVM is a little bit less than
  -      |      the value you specify for -Xmx, so you have to set the heapsize
  -      |      for the store janitor to a value which is lower (2% less seems
  -      |      to be a working value).
  -      +-->
  -  <store-janitor id="StoreJanitor" logger="core.store.janitor">
  -    <!-- How much free memory shall be available in the jvm -->
  -    <parameter name="freememory" value="2048000"/>
  -    <!-- Indicates the limit of the jvm memory consumption. The default max
  -         heapsize for Sun's JVM is (almost) 64Mb -->
  -    <parameter name="heapsize" value="66600000"/>
  -    <!-- How often shall the cleanup thread check memory -->
  -    <parameter name="cleanupthreadinterval" value="10"/>
  -    <!-- Experimental adaptive algorithm for cleanup interval
  -    <parameter name="adaptivethreadinterval" value="true"/>
  -    -->
  -    <!-- Indicates the thread priority of the cleanup thread -->
  -    <parameter name="threadpriority" value="5"/>
  -    <!-- How much percent of the elements of each registered Store
  -         shall be removed when low on memory. Default 10% -->
  -    <parameter name="percent_to_free" value="10"/>
  -    <!-- Invoke the garbage collector when low memory is reached -->
  -    <parameter name="invokegc" value="false"/>
  -  </store-janitor>
  -  
  -  <!--+
  -      | XML compiler/decompiler
  -      |
  -      | these components are used to process SAX events and produce a binary
  -      | representation that is much more compact and efficient for
  -      | subsequent parsing. These are used by the cache system to save
  -      | the intermediate results of the pipeline stages reducing the overhead
  -      | of xml parsing/serialization.
  +      | For development environment, set the check-reload to yes.
  +      | For production environment, it is advisable to set check-reload to no.
         +-->
  -  <xml-serializer
  -    id="xml-serializer"
  -    logger="core.xml-serializer"
  -    pool-grow="4" pool-max="32" pool-min="2"
  -  />
  -  <xml-deserializer
  -    id="xml-deserializer"
  -    logger="core.xml-serializer"
  -    pool-grow="4" pool-max="32" pool-min="2"
  +  <sitemap
  +    file="context://sitemap.xmap"
  +    check-reload="yes"
  +    logger="sitemap"
     />
  -  
  +
   <!-- ========================= Sitemap Flowscript ========================== -->
   
     <!--+
  @@ -428,7 +73,7 @@
         |       whether support for the JavaScript debugger should be enabled
         |       in the control flow.
         +-->
  -  <fom-javascript-interpreter id="javascript" logger="flow">
  +  <fom-javascript-interpreter logger="flow">
       <load-on-startup>resource://org/apache/cocoon/components/flow/javascript/fom/fom_system.js</load-on-startup>
       <reload-scripts>true</reload-scripts>
       <check-time>4000</check-time>
  @@ -446,14 +91,12 @@
         | expiring continuations. Currently only the "periodic" type is
         | supported.
         +-->
  -  <continuations-manager id="default" logger="flow" time-to-live="3600000">
  +  <continuations-manager logger="flow.manager" time-to-live="3600000">
       <expirations-check type="periodic">
         <offset>180000</offset>
         <period>180000</period>
       </expirations-check>
     </continuations-manager>
  -  
  -<!-- TODO: entries below are still 2.1 configuration -->
   
   <!-- =================== Sitemap Input/Output Modules ====================== -->
   
  @@ -492,6 +135,7 @@
       <component-instance logger="core.modules.input" name="request-attr"     class="org.apache.cocoon.components.modules.input.RequestAttributeModule"/>
       <component-instance logger="core.modules.input" name="request-header"   class="org.apache.cocoon.components.modules.input.HeaderAttributeModule"/>
       <component-instance logger="core.modules.input" name="session-attr"     class="org.apache.cocoon.components.modules.input.SessionAttributeModule"/>
  +    <component-instance logger="core.modules.input" name="system-property"  class="org.apache.cocoon.components.modules.input.SystemPropertyModule"/>
       <component-instance logger="core.modules.input" name="constant"         class="org.apache.cocoon.components.modules.input.StringConstantModule"/>
       <component-instance logger="core.modules.input" name="random"           class="org.apache.cocoon.components.modules.input.RandomNumberModule"/>
       <component-instance logger="core.modules.input" name="digest"       class="org.apache.cocoon.components.modules.input.DigestMetaModule"/>
  @@ -516,7 +160,7 @@
       <component-instance class="org.apache.cocoon.components.modules.input.PropertiesFileModule" logger="core.modules.input" name="cocoon-properties">
         <file src="resource://org/apache/cocoon/cocoon.properties" />
       </component-instance>
  -
  +    
       <!-- The 'defaults', 'myxml' and 'slashdot' input modules are used
            in the samples -->
       <component-instance logger="core.modules.input" name="defaults"     class="org.apache.cocoon.components.modules.input.DefaultsModule">
  @@ -560,243 +204,304 @@
       <component-instance logger="core.modules.output" name="session-attr"   class="org.apache.cocoon.components.modules.output.SessionAttributeOutputModule"/>
     </output-modules>
   
  -<!-- ================ Internationalization Catalogs =================== -->
  +<!-- ================================= XML ================================ -->
   
     <!--+
  -      | I18n Bundle Factory
  +      | Source Factories
         |
  -      | BundleFactory loads Bundles with i18n resources for the given locale.
  -      | Bundles are loaded from the 'catalogue_location'. Bundle base name is
  -      | 'catalogue_name' value.
  -      | If 'cache-at-startup' is true then BundleFactory preloads bundles.
  +      | Each source factory adds a special uri schemes to the system.
         +-->
  -  <i18n-bundles logger="core.i18n-bundles">
  -    <catalogue-name>messages</catalogue-name>
  -    <catalogue-location>i18n/translations</catalogue-location>
  -    <cache-at-startup>true</cache-at-startup>
  -  </i18n-bundles>
  +  <source-factories>
  +    <component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource"/>
  +    <component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/>
  +    <component-instance class="org.apache.cocoon.components.source.impl.SitemapSourceFactory" name="cocoon"/>
  +    <!-- The "file:" protocol is modifiable (can be written to) and traversable (directory structures
  +         can be crawled). -->
  +    <component-instance class="org.apache.excalibur.source.impl.FileSourceFactory" name="file"/>
  +<!--
  +    <component-instance class="org.apache.cocoon.components.source.impl.PartSourceFactory" name="upload"/>
  +-->
  +    <!-- the "*" protocol handles all uri schemes that are not explicitely specified. This includes all
  +         JDK standard protocols. -->
  +    <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/>
  +  </source-factories>
  +<!-- ============================ Object Stores =========================== -->
  +
  +  <!--+
  +      | Transient Store: holds objects that don't have to survive shutdown
  +      |
  +      | Common configuration parameters:
  +      | maxobjects: Indicates how many objects will be hold in the cache.
  +      |    When the number of maxobjects has been reached. The last object
  +      |    in the cache will be thrown out.
  +      +-->
  +  <transient-store logger="core.store.transient">
  +    <parameter name="maxobjects" value="100"/>
  +  </transient-store>
  +  
  +  <!--+
  +      | Store: generic store. The default implementation is an in-memory store
  +      | backed by the persistent store (see below). This forms a two-stage
  +      | cache composed of a fast in-memory MRU front-end and a persistent
  +      | back-end storing less used objects.
  +      |
  +      | Common configuration parameters:
  +      | maxobjects: Indicates how many objects will be hold in the cache.
  +      |    When the number of maxobjects has been reached. The last object
  +      |    in the cache will be thrown out.
  +      +-->
  +  <store logger="core.store">
  +    <parameter name="maxobjects" value="100"/>
  +  </store>
   
  -<!-- ================ XSP (eXtensible Server Pages) ===================== -->
  +  <!--+
  +      | Persistent Store: holds objects that have to survive shutdown.
  +      | WARNING: FilesystemStore is broken. Cocoon uses DefaultPersistentStore based
  +      | on the Avalon Excalibur JispStore instead.
  +      |
  +      | Common configuration parameters:
  +      |  use-cache-directory: Indicates that cache directory specified in
  +      |                       web.xml should be used.
  +      |  use-work-directory: Indicates that work directory specified in
  +      |                      web.xml should be used.
  +      |  directory: Specifies directory to use. Absolute or relative to the
  +      |             work directory.
  +      |
  +      | DefaultStore configuration parameters:
  +      |  datafile: Name of the store file to use. Defaults to cocoon.dat
  +      |  indexfile: Name of the index file to use. Defaults to cocoon.idx
  +      |  order: FIXME: put description here.
  +      +-->
  +  <persistent-store logger="core.store.persistent">
  +    <parameter name="use-cache-directory" value="true"/>
  +    <parameter name="order" value="2701"/>
  +  </persistent-store>
  +  
  +  <!--+
  +      | Store Janitor: the store garbage collector and memory usage controller.
  +      |
  +      | WARNING: Be careful with the heapsize and freememory parameters.
  +      |           Wrong values can cause high cpu usage.
  +      |
  +      | Example configuration:
  +      | Jvm settings:
  +      |    -Xmx200000000
  +      | store-janitor settings:
  +      |    <parameter name="freememory" value="5000000"/>
  +      |    <parameter name="heapsize" value="196000000"/>
  +      |
  +      | It is recommended to have heapsize equal to -Xmx, especially on Sun's
  +      | JVM which are unable to shrink its heap once it grows above minimum.
  +      | Freememory should be greater than amount of memory necessary for normal
  +      | application operation.
  +      | BUT: The heap size of the memory of the JVM is a little bit less than
  +      |      the value you specify for -Xmx, so you have to set the heapsize
  +      |      for the store janitor to a value which is lower (2% less seems
  +      |      to be a working value).
  +      +-->
  +  <store-janitor logger="core.store.janitor">
  +    <!-- How much free memory shall be available in the jvm -->
  +    <parameter name="freememory" value="2048000"/>
  +    <!-- Indicates the limit of the jvm memory consumption. The default max
  +         heapsize for Sun's JVM is (almost) 64Mb -->
  +    <parameter name="heapsize" value="66600000"/>
  +    <!-- How often shall the cleanup thread check memory -->
  +    <parameter name="cleanupthreadinterval" value="10"/>
  +    <!-- Experimental adaptive algorithm for cleanup interval
  +    <parameter name="adaptivethreadinterval" value="true"/>
  +    -->
  +    <!-- Indicates the thread priority of the cleanup thread -->
  +    <parameter name="threadpriority" value="5"/>
  +    <!-- How much percent of the elements of each registered Store
  +         shall be removed when low on memory. Default 10% -->
  +    <parameter name="percent_to_free" value="10"/>
  +    <!-- Invoke the garbage collector when low memory is reached -->
  +    <parameter name="invokegc" value="false"/>
  +  </store-janitor>
  +  
  +  <!--+
  +      | Entity resolution catalogs
  +      |
  +      | The default catalog is distributed at WEB-INF/entities/catalog
  +      | This is the contextual pathname for Cocoon resources.
  +      | You can override this path, if necessary, using the "catalog" parameter:
  +      |
  +      |    <parameter name="catalog" value="WEB-INF/entities/catalog"/>
  +      |
  +      | However, it is probably desirable to leave this default catalog config
  +      | and declare your own local catalogs, which are loaded in addition to
  +      | the system catalog.
  +      |
  +      | There are various ways to do local configuration (see "Entity Catalogs"
  +      | documentation). One way is via the CatalogManager.properties file.
  +      | As an additional method, you can specify the "local-catalog"
  +      | parameter here.
  +      |
  +      | local-catalog:
  +      |   The full filesystem pathname to a single local catalog file.
  +      |
  +      |  <parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
  +      |
  +      | verbosity:
  +      | The level of messages for status/debug (messages go to standard output)
  +      | The following messages are provided ...
  +      |  0 = none
  +      |  1 = ? (... not sure yet)
  +      |  2 = 1+, Loading catalog, Resolved public, Resolved system
  +      |  3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
  +      |  10 = 3+, List all catalog entries when loading a catalog
  +      |    (Cocoon also logs the "Resolved public" messages.)
  +      |
  +      |     <parameter name="verbosity" value="2"/>
  +      +-->
  +  <entity-resolver logger="core.resolver">
  +   <parameter name="catalog" value="WEB-INF/entities/catalog"/>
  +   <parameter name="verbosity" value="1"/>
  +  </entity-resolver>
   
     <!--+
  -      | Program Generator
  +      | XML Parser
         |
  -      | The ProgamGenerator builds programs from a XML document written in a
  -      | MarkupLanguage.
  +      | Apache Cocoon requires a JAXP 1.1 parser. The default parser is
  +      | org.apache.excalibur.xml.impl.JaxpParser. 
  +      | Note: If you have problems because your servlet environment uses its
  +      | own parser not conforming to JAXP 1.1 try using the alternative
  +      | XercesParser instead of the JaxpParser. To activate the XercesParser,
  +      | change the class attribute to
  +      |   class="org.apache.excalibur.xml.impl.XercesParser"
  +      | You will also need to add a system property to your JVM,
  +      | probably on the startup of your servlet engine like this:
  +      | -Dorg.apache.excalibur.xml.sax.SAXParser=org.apache.excalibur.xml.impl.XercesParser
         |
  -      |    auto-reload: whether the system should check if the source was
  -      |                 modified and reload of consequence.
  -      |    root-package: the java package to use for the generated classes
  -      |    preload: whether the system should preload the necessary components
  +      | Configuration parameters for the JaxpParser (not the XercesParser!):
  +      | - validate (boolean, default = false): should the parser validate
  +      |     parsed documents?
  +      |     Note: XML validation is only being used for the documentation build.
  +      |     (If you are going to use it elsewhere, then do so with caution.)
  +      |     You really should have validated all of your XML documents already,
  +      |     according to their proper DTD or schema. Do not expect Cocoon
  +      |     to do it.
  +      | - namespace-prefixes (boolean, default = false) : do we want
  +      |     namespaces declarations also as 'xmlns:' attributes ?
  +      |     Note : setting this to true confuses some XSL processors
  +      |     (e.g. Saxon).
  +      | - stop-on-warning (boolean, default = true) : should the parser
  +      |     stop parsing if a warning occurs ?
  +      | - stop-on-recoverable-error (boolean, default = true) : should the
  +      |     parser stop parsing if a recoverable error occurs ?
  +      | - reuse-parsers (boolean, default = true) : do we want to reuse
  +      |     parsers or create a new parser for each parse ?
  +      |     Note : even if this parameter is true, parsers are not recycled
  +      |     in case of parsing errors : some parsers (e.g. Xerces) do not like
  +      |     to be reused after failure.
  +      | - sax-parser-factory (string, optional) : the name of the
  +      |     SAXParserFactory implementation class to be used instead of using
  +      |     the standard JAXP mechanism (SAXParserFactory.newInstance()). This
  +      |     allows to choose unambiguously the JAXP implementation to be used
  +      |     when several of them are available in the classpath.
  +      | - document-builder-factory (string, optional) : the name of the
  +      |     DocumentBuilderFactory implementation to be used (similar to
  +      |     sax-parser-factory for DOM).
  +      | - drop-dtd-comments : should comment() events from DTD's be dropped?
  +      |     Note: Since this implementation does not support the DeclHandler
  +      |     interface anyway, it is quite useless to only have the comments
  +      |     from DTD. And the comment events from the internal DTD subset
  +      |     would appear in the serialized output again.
         +-->
  -  <program-generator logger="core.program-generator">
  -    <parameter name="auto-reload" value="true"/>
  -    <parameter name="root-package" value="org.apache.cocoon.www"/>
  -    <parameter name="preload" value="true"/>
  -  </program-generator>
  +  <xml-parser class="org.apache.excalibur.xml.impl.JaxpParser"
  +             logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
  +    <parameter name="validate" value="false"/>
  +    <parameter name="namespace-prefixes" value="false"/>
  +    <parameter name="stop-on-warning" value="true"/>
  +    <parameter name="stop-on-recoverable-error" value="true"/>
  +    <parameter name="reuse-parsers" value="false"/>
  +    <parameter name="drop-dtd-comments" value="true"/>
  +  </xml-parser>
   
     <!--+
  -      | Programming Languages for the XSP pages
  +      | XSLT Processor
  +      |
  +      | 'incremental-processing' (only works with Xalan) allows the XSLT
  +      | processor to start the output of the transformation as soon as possible.
  +      | if set to false, the transforer waits until the end of the
  +      | transformation to deliver the output.
  +      | WARNING: * if you enable incremental-processing, you should be aware of
  +      |            the following bug:
  +      |            http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13186
  +      |          * incremental-processing creates an additional, non-pooled thread.
  +      |          * using incremental-processing does not save memory, the input
  +      |            tree will still be build completely.
  +      |          * incremental processing is a 'static' thing in Xalan: if you
  +      |            enable it on one xslt-processor, enable it on all.
         +-->
  -  <programming-languages>
  -    <java-language name="java" logger="core.language.java">
  +  <xslt-processor logger="core.xslt-processor">
  +     <parameter name="use-store" value="true"/>
  +    <parameter name="incremental-processing" value="false"/>
  +  </xslt-processor>
   
  -      <!-- Specifies which formatter to use to format source code.
  -           This parameter is optional.
  -           It is commented out because of bug #5689: Java "code-formatter"
  -           incorrectly formats double values -->
  -      <!--parameter name="code-formatter" value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/-->
  +  <!--+
  +      | XSLT Processor using xsltc from Xalan
  +      | For Interpreted Xalan use:
  +      | <transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory>
  +      +-->
  +  <component logger="core.xslt-processor"
  +             role="org.apache.excalibur.xml.xslt.XSLTProcessor/xsltc"
  +             class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl">
  +     <parameter name="use-store" value="true"/>
  +    <parameter name="transformer-factory" value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl"/>
  +  </component>
  +  
  +  <!--+
  +      | Xalan XSLT Processor
  +      +-->
  +  <component logger="core.xslt-processor"
  +             role="org.apache.excalibur.xml.xslt.XSLTProcessor/xalan"
  +             class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl">
  +     <parameter name="use-store" value="true"/>
  +    <parameter name="incremental-processing" value="false"/>
  +    <parameter name="transformer-factory" value="org.apache.xalan.processor.TransformerFactoryImpl"/>
  +  </component>
   
  -      <!-- A singleton-like implementation of a ClassLoader -->
  -      <parameter name="class-loader" value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
  +  <!--+
  +      | Saxon XSLT Processor
  +      | For old (6.5.2) Saxon use:
  +      |  <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/>
  +      | For new (7.x?) Saxon use:
  +      |  <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/>
  +  <component logger="core.xslt-processor"
  +             role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon"
  +             class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl">
  +     <parameter name="use-store" value="true"/>
  +     <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/>
  +  </component>
  +  +-->
   
  -      <!--+
  -          | Specifies which Java compiler to use. Possible variants are:
  -          |
  -          |  - Javac: the java compiler that comes with JDK
  -          |  - Pizza: the Pizza java compiler
  -          |  - Jikes: the Jikes java compiler
  -          |  - EclipseJavaCompiler: the Eclipse JTD java compiler
  -          |
  -          | NOTE: the Eclipse JTD is the only java compiler that is capable
  -          |       of imports classes thru the context classloader. All other
  -          |       compilers import classes from the JVM classpath and might
  -          |       normally result in ClassNotFound problems at compilation
  -          |       time. It is *HIGHLY* suggested that you use this compiler
  -          |       or you might experience problems in some servlet containers.
  -          +-->
  -      <!--parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.Javac"/-->
  -      <!--parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.Pizza"/-->
  -      <!--parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.Jikes"/-->
  -      <parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.EclipseJavaCompiler"/>
  +  <!-- Xpath Processor: -->
  +  <xpath-processor class="org.apache.excalibur.xml.xpath.XPathProcessorImpl" logger="core.xpath-processor"/>
  +	
  +  <!-- The XMLizers converts different mime-types to XML -->
  +  <xmlizer>
  +      <parser role="org.apache.excalibur.xml.sax.SAXParser" mime-type="text/xml"/>
  +  </xmlizer>
   
  -    </java-language>
  +<!-- ========================= Protocol Handlers =========================== -->
  +  
   
  -    <!-- Interpreted JavaScript language -->
  -    <js-language name="js" logger="core.language.js"/>
  -  </programming-languages>
  +<!-- ================ Internationalization Catalogs =================== -->
   
     <!--+
  -      | Logicsheets
  -      |
  -      | This section defines the XSP logicsheets. A logicsheet is a special
  -      | XSLT stylesheet used to translate user-defined dynamic markup into
  -      | equivalent XSP markup that embeds directives for a given markup
  -      | language.
  +      | I18n Bundle Factory
         |
  -      | Logicsheets are the XSP equivalent of taglibs. For info about
  -      | the tags included in the default taglibs, please, refer to the
  -      | documentation.
  +      | BundleFactory loads Bundles with i18n resources for the given locale.
  +      | Bundles are loaded from the 'catalogue_location'. Bundle base name is
  +      | 'catalogue_name' value.
  +      | If 'cache-at-startup' is true then BundleFactory preloads bundles.
         +-->
  -  <markup-languages>
  -    <xsp-language logger="core.markup.xsp" name="xsp">
  -      <parameter name="prefix" value="xsp"/>
  -      <parameter name="uri" value="http://apache.org/xsp"/>
  -
  -      <!--+
  -          | Properties for the java language
  -          +-->
  -      <target-language name="java">
  -        <!-- Defines the XSP Core logicsheet for the Java language -->
  -        <parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
  -
  -        <!-- The Request logicsheet: access request parameters -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-request"/>
  -          <parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Response logicsheet: access response parameters -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-response"/>
  -          <parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Session logicsheet: manages and access the session -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-session"/>
  -          <parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/session.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Cookie logicsheet: manages and access cookies  -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-cookie"/>
  -          <parameter name="uri" value="http://apache.org/xsp/cookie/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/cookie.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Log logicsheet: access the cocoon logs from an xsp page  -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="log"/>
  -          <parameter name="uri" value="http://apache.org/xsp/log/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/log.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Utility logicsheet -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="util"/>
  -          <parameter name="uri" value="http://apache.org/xsp/util/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/util.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The xsp-formval taglib serves as interface to retrieve
  -             validation results from a request attribute -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-formval"/>
  -          <parameter name="uri" value="http://apache.org/xsp/form-validator/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/form-validator.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The sel taglib allows to put multiple pages / view into
  -             one xsp. While in general it is good style to put
  -             different views into different xsp because they're more
  -             easily maintained, this is a useful feature with
  -             e.g. with long forms that are broken into parts -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="sel"/>
  -          <parameter name="uri" value="http://apache.org/xsp/sel/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/sel.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The Action logicsheet -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="action"/>
  -          <parameter name="uri" value="http://apache.org/cocoon/action/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/action.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The capture taglib is for capturing parts of the XSP-generated
  -             XML as XML fragments or DOM nodes -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="capture"/>
  -          <parameter name="uri" value="http://apache.org/cocoon/capture/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/capture.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The XScript logicsheet -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xscript"/>
  -          <parameter name="uri" value="http://apache.org/xsp/xscript/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xscript.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The SOAP logicsheet -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="soap"/>
  -          <parameter name="uri" value="http://apache.org/xsp/soap/3.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/soap.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The JPath logicsheet -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="jpath"/>
  -          <parameter name="uri" value="http://apache.org/xsp/jpath/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/jpath.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <!-- The input logicsheet allows easy access to InputModules -->
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="input"/>
  -          <parameter name="uri" value="http://apache.org/cocoon/xsp/input/1.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/input.xsl"/>
  -        </builtin-logicsheet>
  -      </target-language>
  -
  -      <!--+
  -          | Properties for the javascript language
  -          +-->
  -      <target-language name="js">
  -        <parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/xsp.xsl"/>
  -
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-request"/>
  -          <parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/request.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-response"/>
  -          <parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/response.xsl"/>
  -        </builtin-logicsheet>
  -
  -        <builtin-logicsheet>
  -          <parameter name="prefix" value="xsp-session"/>
  -          <parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
  -          <parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/session.xsl"/>
  -        </builtin-logicsheet>
  -      </target-language>
  -    </xsp-language>
  -  </markup-languages>
  -
  -  <!-- Xscript -->
  -  <xscript logger="core.xscript">
  -    <parameter name="xscript:copy-of" value="resource://org/apache/cocoon/components/xscript/xslt/copy-of.xsl"/>
  -    <parameter name="xscript:value-of" value="resource://org/apache/cocoon/components/xscript/xslt/value-of.xsl"/>
  -  </xscript>
  +  <i18n-bundles logger="core.i18n-bundles">
  +    <catalogue-name>messages</catalogue-name>
  +    <catalogue-location>context://samples/i18n/translations</catalogue-location>
  +    <cache-at-startup>true</cache-at-startup>
  +  </i18n-bundles>
   
   <!-- ====================== System Components =========================== -->
   
  @@ -806,22 +511,25 @@
     <classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl" logger="core.classloader"/>
   
     <!--+
  +      | XML compiler/decompiler
  +          |
  +      | these components are used to process SAX events and produce a binary
  +      | representation that is much more compact and efficient for
  +      | subsequent parsing. These are used by the cache system to save
  +      | the intermediate results of the pipeline stages reducing the overhead
  +      | of xml parsing/serialization.
  +          +-->
  +  <xml-serializer class="org.apache.cocoon.components.sax.XMLByteStreamCompiler" logger="core.xml-serializer" pool-grow="4" pool-max="32" pool-min="8"/>
  +  <xml-deserializer class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter" logger="core.xml-deserializer" pool-grow="4" pool-max="32" pool-min="8"/>
  +
  +  <!--+
         | The Monitor keeps track on changes to a Resource.
         +-->
     <monitor logger="core.monitor">
       <thread frequency="10000" priority="5"/>
     </monitor>
   
  -  <!--+
  -      | The Cache Manager is a component that can be used to cache content.
  -      | It is currently used by the cinclude transformer
  -      +-->
  -  <component class="org.apache.cocoon.transformation.helpers.DefaultIncludeCacheManager" 
  -             role="org.apache.cocoon.transformation.helpers.IncludeCacheManager">
  -    <!-- Set the preemptive-loader-url to a pipeline inside Cocoon that
  -         contains the preemptive loader action. The URL must be absolute! 
  -    <parameter name="preemptive-loader-url" 
  -               value="http://localhost:8080/cocoon/samples/cinclude/loader"/>
  -    -->
  - </component>
  +  <cocoon/>
  +  <source-resolver/>
  +  <cache/>
   </cocoon>