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>