| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 1999-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!-- SVN $Id$ --> |
| <components> |
| |
| <!--+ |
| | This file defines the Cocoon core components. |
| +--> |
| |
| <!-- Include the core roles definitions. This is for the sake of clarity, |
| as they are implicitely loaded at startup, but we may want to remove |
| this implicit behaviour in the future now that we have the include |
| mechanism. --> |
| <include src="resource://org/apache/cocoon/cocoon.roles"/> |
| |
| <!-- =========================== Sitemap =============================== --> |
| |
| <!--+ |
| | New implementation of the sitemap. It is interpreted, so load times |
| | are super-fast, and request processing is slightly faster than with |
| | the compiled engine thanks to the HotSpot VM. |
| | |
| | Reloading of the sitemap: |
| | If a sitemap is checked for reloading is determined by the |
| | org.apache.cocoon.reloading (resp. org.apache.cocoon.reloading.sitemap) |
| | property. |
| | 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 file="context://sitemap.xmap" logger="sitemap"/> |
| |
| <!-- ========================= Sitemap Flowscript ========================== --> |
| |
| <!--+ |
| | The <flow-interpreters> element is used to describe the flowscript |
| | engines usedd by the current instance. |
| | |
| | The attributes recognized by the <flow-interpreters> element are: |
| | |
| | default (string value): |
| | |
| | the default interpreted language assumed for <map:script> |
| | elements which do not specify a "language" attribute. If not |
| | present, the first language that's described within the |
| | <flow-interpreters> element is assumed to be the default |
| | language. |
| | |
| | Within <flow-interpreters> only <component-instance> elements are |
| | recognized. The attributes recognized by this element are "name" |
| | and "class". "name" specifies the name of a scripting language, |
| | and "class" defines the Java class that implements it. See |
| | org.apache.cocoon.components.flow.Interpreter for the Cocoon |
| | interface with an scripting language interpreter. |
| | |
| | A <component-instance> element contains as subelements the |
| | following elements: |
| | |
| | reload-scripts (boolean value, default false): |
| | whether to check if the scripts source files are modified. |
| | Checking for modification is an expensive operation, so leave |
| | it disabled in a production environment. If not present it is |
| | assumed to be "false" (if no property is overriding this). When |
| | "true" *all* script files are |
| | checked for modification on each function invocation done using |
| | <map:call function="...">, but not more frequent than the value |
| | of "check-time" (see below). |
| | The default for this function is determined by the value of the |
| | reloading property 'org.apache.cocoon.reloading.flow'. |
| | |
| | check-time (long value, default 1000): |
| | time in miliseconds between the checks for the last modification |
| | date of script files. |
| | |
| | debugger (boolean value, default false): |
| | whether support for the JavaScript debugger should be enabled in |
| | the control flow. |
| +--> |
| <flow-interpreters default="javascript" logger="flow"> |
| <!-- FOM (Flow Object Model) --> |
| <component-instance exported="false" name="javascript" class="org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter"> |
| <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> |
| --> |
| <!-- <debugger>enabled</debugger> --> <!-- JavaScript Debugger support --> |
| </component-instance> |
| </flow-interpreters> |
| |
| <!--+ |
| | Configuration for the continuations manager. |
| | |
| | This section specifies the default time-to-live of continuations |
| | in miliseconds using the "time-to-live" attribute of |
| | the <continuations-manager> element. |
| | |
| | The <expirations-check> element specifies different policies for |
| | expiring continuations. Currently only the "periodic" type is |
| | supported. |
| | |
| | If you need higher security you can bind your continuations |
| | to session. This way only the session that initially created |
| | the continuation can later resume it. Also if session gets |
| | invalidated all continuations are invalidated as well. |
| | Enable this feature for web applications by setting |
| | 'session-bound-continuations' to true. |
| +--> |
| <continuations-manager logger="flow.manager" time-to-live="3600000" |
| session-bound-continuations="false"> |
| <expirations-check type="periodic"> |
| <offset>180000</offset> |
| <period>180000</period> |
| </expirations-check> |
| </continuations-manager> |
| |
| <!-- =================== 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. |
| +--> |
| <input-modules> |
| <component-instance logger="core.modules.input" name="url-encode" class="org.apache.cocoon.components.modules.input.URLEncodeModule"> |
| <encoding>UTF-8</encoding> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="url-decode" class="org.apache.cocoon.components.modules.input.URLDecodeModule"> |
| <encoding>UTF-8</encoding> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="global" class="org.apache.cocoon.components.modules.input.GlobalInputModule"/> |
| <component-instance logger="core.modules.input" name="request" class="org.apache.cocoon.components.modules.input.RequestModule"/> |
| <component-instance logger="core.modules.input" name="baselink" class="org.apache.cocoon.components.modules.input.BaseLinkModule" /> |
| <component-instance logger="core.modules.input" name="session" class="org.apache.cocoon.components.modules.input.SessionModule"/> |
| <component-instance logger="core.modules.input" name="environment-attr" class="org.apache.cocoon.components.modules.input.EnvironmentAttributeModule"/> |
| <component-instance logger="core.modules.input" name="request-param" class="org.apache.cocoon.components.modules.input.RequestParameterModule"/> |
| <component-instance logger="core.modules.input" name="raw-request-param" class="org.apache.cocoon.components.modules.input.RawRequestParameterModule"/> |
| <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-scoped-attr" class="org.apache.cocoon.components.modules.input.RequestScopedAttributeModule"/> |
| <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="cookie" class="org.apache.cocoon.components.modules.input.CookieModule"/> |
| <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"/> |
| <component-instance logger="core.modules.input" name="date" class="org.apache.cocoon.components.modules.input.DateInputModule"> |
| <!-- <format>EEE, d MMM yyyy HH:mm:ss Z</format> --> |
| <!--Eg: Mon, 28 Oct 2002 03:08:49 +1100 --> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="nullinput" class="org.apache.cocoon.components.modules.input.NullInputModule"/> |
| <component-instance logger="core.modules.input" name="realpath" class="org.apache.cocoon.components.modules.input.RealPathModule"/> |
| <component-instance logger="core.modules.input" name="contextpath" class="org.apache.cocoon.components.modules.input.ContextPathModule"/> |
| <component-instance logger="core.modules.input" name="naming" class="org.apache.cocoon.components.modules.input.NamingInputModule"> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="cocoon-properties" class="org.apache.cocoon.components.modules.input.PropertiesFileModule"> |
| <file src="resource://org/apache/cocoon/cocoon.properties" /> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="flow-attribute" class="org.apache.cocoon.components.modules.input.FlowAttributeModule"/> |
| <component-instance logger="core.modules.input" name="flow-attr" class="org.apache.cocoon.components.modules.input.FlowAttributeModule"/> |
| <component-instance logger="core.modules.input" name="flow-continuation" class="org.apache.cocoon.components.modules.input.FlowContinuationModule"/> |
| |
| <component-instance logger="core.modules.input" name="xmlmeta" class="org.apache.cocoon.components.modules.input.XMLMetaModule"/> |
| <component-instance logger="core.modules.input" name="mapmeta" class="org.apache.cocoon.components.modules.input.MapMetaModule"/> |
| <component-instance logger="core.modules.input" name="datemeta" class="org.apache.cocoon.components.modules.input.DateMetaInputModule"/> |
| <component-instance logger="core.modules.input" name="jxpath" class="org.apache.cocoon.components.modules.input.JXPathMetaModule"/> |
| <component-instance logger="core.modules.input" name="simplemap" class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"/> |
| <component-instance logger="core.modules.input" name="locate" class="org.apache.cocoon.components.modules.input.LocateResource"/> |
| <component-instance logger="core.modules.input" name="chain" class="org.apache.cocoon.components.modules.input.ChainMetaModule"> |
| <input-module name="request-param"/> |
| <input-module name="request-attr"/> |
| <input-module name="session-attr"/> |
| <input-module name="defaults"/> |
| </component-instance> |
| |
| <!--+ |
| | Following three modules definitions, 'defaults', 'myxml', and |
| | 'slashdot', are used only in the samples. |
| +--> |
| <component-instance logger="core.modules.input" name="defaults" class="org.apache.cocoon.components.modules.input.DefaultsModule"> |
| <values> |
| <skin>defaultSkin</skin> |
| <base-url>http://localhost:8080/cocoon</base-url> |
| </values> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="myxml" class="org.apache.cocoon.components.modules.input.XMLFileModule"> |
| <file src="context://samples/modules/forrestconf.xml"/> |
| </component-instance> |
| <component-instance logger="core.modules.input" name="slashdot" class="org.apache.cocoon.components.modules.input.XMLFileModule"> |
| <file src="http://slashdot.org/slashdot.rss"/> |
| </component-instance> |
| |
| </input-modules> |
| |
| <!--+ |
| | OutputModules are companion modules for InputModules. |
| | |
| | The same principles apply here, only that OutputModules allow |
| | writing data to places. Apparently, there are a lot less |
| | places to write to than to read data from, thus there are only |
| | a few OutputModules coming with Apache Cocoon. |
| | |
| | One special feature of OutputModules is, that they expose some |
| | limited transactional behaviour. Hence it does not suffice to |
| | write a value, but it is required to confirm this at the |
| | end. Until then, the value could not be read from the |
| | corresponding InputModule. This behaviour is not enfored but |
| | it should be expected. Omitting a commit or rollback is an |
| | error. |
| | |
| | OutputModules are currently used by flow, a number of actions |
| | and transformers. |
| +--> |
| <output-modules> |
| <component-instance logger="core.modules.output" name="request-attr" class="org.apache.cocoon.components.modules.output.RequestAttributeOutputModule"/> |
| <component-instance logger="core.modules.output" name="request-attr-map" class="org.apache.cocoon.components.modules.output.RequestAttributeMap"/> |
| <component-instance logger="core.modules.output" name="session-attr" class="org.apache.cocoon.components.modules.output.SessionAttributeOutputModule"/> |
| </output-modules> |
| |
| <!-- ================================= XML ================================ --> |
| |
| <!--+ |
| | 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> |
| |
| <!--+ |
| | XML Parser |
| | |
| | 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 |
| | |
| | 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. |
| +--> |
| <xml-parser class="org.apache.excalibur.xml.impl.JaxpParser" |
| logger="core.xml-parser" pool-max="32"> |
| <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> |
| |
| <!--+ |
| | 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://issues.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 logger="core.xslt"> |
| <parameter name="use-store" value="true"/> |
| <parameter name="incremental-processing" value="false"/> |
| </xslt-processor> |
| |
| <!--+ |
| | XSLT Processor using xsltc from Xalan |
| | For Interpreted Xalan use: |
| | <transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory> |
| +--> |
| <component logger="core.xslt" |
| role="org.apache.excalibur.xml.xslt.XSLTProcessor/xsltc" |
| class="org.apache.cocoon.components.xslt.TraxProcessor"> |
| <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" |
| role="org.apache.excalibur.xml.xslt.XSLTProcessor/xalan" |
| class="org.apache.cocoon.components.xslt.TraxProcessor"> |
| <parameter name="use-store" value="true"/> |
| <parameter name="incremental-processing" value="false"/> |
| <parameter name="transformer-factory" value="org.apache.xalan.processor.TransformerFactoryImpl"/> |
| </component> |
| |
| <!--+ |
| | Saxon XSLT Processor |
| | For old (6.5.2) Saxon use: |
| | <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/> |
| | For new (7+) Saxon use: |
| | <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/> |
| <component logger="core.xslt" |
| role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon" |
| class="org.apache.cocoon.components.xslt.TraxProcessor"> |
| <parameter name="use-store" value="true"/> |
| <parameter name="transformer-factory" value="com.icl.saxon.TransformerFactoryImpl"/> |
| </component> |
| +--> |
| |
| <!--+ |
| | Xpath Processor (Based on Xalan) |
| +--> |
| <xpath-processor class="org.apache.excalibur.xml.xpath.XPathProcessorImpl" logger="core.xpath"/> |
| |
| <!--+ |
| | The XMLizers converts different mime-types to XML |
| +--> |
| <xmlizer logger="core.xmlizer"> |
| <parser role="org.apache.excalibur.xml.sax.SAXParser" mime-type="text/xml"/> |
| </xmlizer> |
| |
| <!-- ============================ Object Stores =========================== --> |
| |
| <!--+ |
| | Transient Store: holds objects that don't have to survive shutdown |
| | |
| | Common configuration parameters: |
| | maxobjects: Indicates how many objects will be held 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="1000"/> |
| </transient-store> |
| |
| <!--+ |
| | Store: generic store. The default implementation is an in-memory store |
| | backed by a disk store (based on EHCache). This forms a two-stage |
| | cache composed of a fast in-memory MRU front-end and a persistent |
| | back-end which stores the less-used objects. |
| | |
| | Common configuration parameters: |
| | maxobjects: Indicates how many objects will be held 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="1000"/> |
| <parameter name="use-cache-directory" value="true"/> |
| </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? |
| | If not specified, defaults to 1Mb. |
| +--> |
| <parameter name="freememory" value="2048000"/> |
| <!--+ |
| | How much memory at max jvm can consume? |
| | The default max heapsize for Sun's JVM is (almost) 64Mb, |
| | can be increased by specifying -Xmx command line parameter. |
| | If not specified, defaults to 66600000 bytes. |
| +--> |
| <parameter name="heapsize" value="66600000"/> |
| <!--+ |
| | How often shall the cleanup thread check memory? |
| | If not specified, defaults to 10 seconds. |
| +--> |
| <parameter name="cleanupthreadinterval" value="10"/> |
| <!--+ |
| | Experimental adaptive algorithm for cleanup interval |
| <parameter name="adaptivethreadinterval" value="true"/> |
| +--> |
| <!--+ |
| | What percent of the store elements shall be dropped on low memory? |
| | If not specified, defaults to 10% |
| +--> |
| <parameter name="percent_to_free" value="10"/> |
| <!--+ |
| | Shall garbage collector be invoked on low memory? |
| | If not specified, defaults to false. |
| +--> |
| <parameter name="invokegc" value="false"/> |
| <!--+ |
| | Name of the thread pool to use. |
| | If not specified, defaults to 'daemon'. |
| +--> |
| <parameter name="thread-pool" value="daemon"/> |
| |
| <!--+ |
| | What should be the priority of the cleanup thread? |
| | This parameter is used only by older implementation of the janitor. |
| | New implementation uses centrally configured thread pool (see |
| | thread-pools element below). |
| <parameter name="threadpriority" value="5"/> |
| +--> |
| </store-janitor> |
| |
| <!-- ========================= Protocol Handlers =========================== --> |
| |
| <!--+ |
| | Source Factories |
| | |
| | Each source factory adds a special uri schemes to the system. |
| +--> |
| <source-factories> |
| <component-instance name="resource" class="org.apache.excalibur.source.impl.ResourceSourceFactory"/> |
| <component-instance name="context" class="org.apache.cocoon.components.source.impl.ContextSourceFactory"/> |
| <component-instance name="cocoon" class="org.apache.cocoon.components.source.impl.SitemapSourceFactory"/> |
| |
| <!--+ |
| | The "file:" source protocol is modifiable (can be written to) and |
| | traversable (directory structures can be crawled). |
| +--> |
| <component-instance name="file" class="org.apache.excalibur.source.impl.FileSourceFactory"/> |
| <component-instance name="upload" class="org.apache.cocoon.components.source.impl.PartSourceFactory"/> |
| <component-instance name="module" class="org.apache.cocoon.components.source.impl.ModuleSourceFactory"/> |
| <component-instance name="xmodule" class="org.apache.cocoon.components.source.impl.XModuleSourceFactory"/> |
| <component-instance name="zip" class="org.apache.cocoon.components.source.impl.ZipSourceFactory"/> |
| <component-instance name="empty" class="org.apache.cocoon.components.source.impl.EmptySourceFactory"/> |
| |
| <!--+ |
| | The "*" protocol handles all uri schemes that are not explicitely |
| | specified. This includes all JDK standard protocols. |
| +--> |
| <component-instance name="*" class="org.apache.excalibur.source.impl.URLSourceFactory"/> |
| </source-factories> |
| |
| <!-- ================ Internationalization Catalogs =================== --> |
| |
| <!--+ |
| | I18n Bundle Factory |
| | |
| | BundleFactory loads Bundles with i18n resources for the given locale. |
| | Default location for bundles specified with the 'catalogue-location'. |
| +--> |
| <i18n-bundles logger="core.i18n"> |
| <!--+ |
| | Role of the store component to be used for caching loaded bundles. |
| +--> |
| <store-role>org.apache.excalibur.store.Store/TransientStore</store-role> |
| <!--+ |
| | Reload check delay. Default 60000 (1 minute), 0 means no delay |
| | (check always), -1 means no reload. |
| +--> |
| <reload-interval>60000</reload-interval> |
| <!--+ |
| | Location of the default message catalogue. Optional. |
| +--> |
| <catalogue-location>context://samples/i18n/translations</catalogue-location> |
| </i18n-bundles> |
| |
| <!-- ====================== System Components =========================== --> |
| |
| <!--+ |
| | 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> |
| |
| <!--+ |
| | Runnable manager |
| | |
| | This component manages commands (Runnables) executed in background using |
| | preconfigured pools of worker threads |
| +--> |
| <runnable-manager logger="core.runnable"> |
| <!--+ |
| | This is the default configuration of the runnable-manager. More |
| | indepth information can be found at |
| | http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/PooledExecutor.html |
| | The following elements can be used: |
| | |
| | thread-factory: specifies the fully qualified class name of an |
| | org.apache.cocoon.components.thread.ThreadFactory |
| | implementation. It is responsible to create Thread |
| | classes. |
| | thread-pools: container element for thread-pool elements. |
| | name: required name of the pool. |
| | priority: optional priority all threads of the pool will |
| | have (the ThreadFactory will be set to this |
| | priority).The possible values are: |
| | MIN: corresponds to Thread#MIN_PRIORITY |
| | NORM: corresponds to Thread#NORM_PRIORITY (default) |
| | MAX: corresponds to Thread#MAX_PRIORITY |
| | daemon: whether newly created Threads should run in |
| | daemon mode or not. Default to false. |
| | queue-size: optional size of a queue to hold Runnables if the |
| | pool is full. Possible values are: |
| | less than 0: unbounded (default) |
| | equal to 0: no queue at all |
| | greater than 0: size of the queue |
| | max-pool-size: optional maximum number of threads in the pool. |
| | Defaults to 5. |
| | NOTE: if a queue is specified (queue-sie != 0) |
| | this value will be ignored. |
| | min-pool-size: optional minimum number of threads in the pool. |
| | Defaults to 5. |
| | NOTE: if a queue has been specified (queue-sie != 0) |
| | this value will be used as the maximum of |
| | thread running concurrently. |
| | keep-alive-time-ms: The time in ms an idle thread should keep alive |
| | before it might get garbage collected. This |
| | defaults to 60000 ms. |
| | block-policy; The policy to be used if all resources (thread in |
| | the pool and slots in the queue) are exhausted. |
| | Possible values are: |
| | ABORT: Throw a RuntimeException |
| | DISCARD: Throw away the current request |
| | and return. |
| | DISCARDOLDEST: Throw away the oldest request |
| | and return. |
| | RUN (default): The thread making the execute |
| | request runs the task itself. |
| | This policy helps guard against |
| | lockup. |
| | WAIT: Wait until a thread becomes |
| | available. This policy should, in |
| | general, not be used if the |
| | minimum number of threads is zero, |
| | in which case a thread may never |
| | become available. |
| | shutdown-graceful: Terminate thread pool after processing all |
| | Runnables currently in queue. Any Runnable entered |
| | after this point will be discarded. A shut down |
| | pool cannot be restarted. This also means that a |
| | pool will need keep-alive-time-ms to terminate. |
| | The default value not to shutdown graceful. |
| | shutdown-wait-time-ms: The time in ms to wait before issuing an |
| | immediate shutdown after a graceful shutdown |
| | has been requested. |
| +--> |
| <thread-factory>org.apache.cocoon.components.thread.DefaultThreadFactory</thread-factory> |
| <thread-pools> |
| <!--+ |
| | This is the default thread pool. It's use fits best for short |
| | running background tasks. |
| +--> |
| <thread-pool> |
| <name>default</name> |
| <priority>NORM</priority> |
| <daemon>false</daemon> |
| <queue-size>-1</queue-size> |
| <max-pool-size>5</max-pool-size> |
| <min-pool-size>5</min-pool-size> |
| <keep-alive-time-ms>60000</keep-alive-time-ms> |
| <block-policy>ABORT</block-policy> |
| <shutdown-graceful>false</shutdown-graceful> |
| <shutdown-wait-time-ms>-1</shutdown-wait-time-ms> |
| </thread-pool> |
| <!--+ |
| | This thread pool should be used for daemons (permanently running |
| | threads). |
| +--> |
| <thread-pool> |
| <name>daemon</name> |
| <priority>NORM</priority> |
| <daemon>true</daemon> |
| <queue-size>0</queue-size> |
| <max-pool-size>-1</max-pool-size> |
| <min-pool-size>1</min-pool-size> |
| <keep-alive-time-ms>60000</keep-alive-time-ms> |
| <block-policy>ABORT</block-policy> |
| <shutdown-graceful>false</shutdown-graceful> |
| <shutdown-wait-time-ms>-1</shutdown-wait-time-ms> |
| </thread-pool> |
| </thread-pools> |
| </runnable-manager> |
| |
| </components> |