Author: rgardler Date: Tue Mar 27 14:23:44 2007 New Revision: 523086 URL: http://svn.apache.org/viewvc?view=rev&rev=523086 Log: - rename webapp build target to run-webapp to distinguish the resulting webapp from one suitable for deployment (use the war target for that) - provide a new xconf that is used in the war to ensure plugins can be found
Added: forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf (with props) Modified: forrest/trunk/main/targets/webapp.xml Modified: forrest/trunk/main/targets/webapp.xml URL: http://svn.apache.org/viewvc/forrest/trunk/main/targets/webapp.xml?view=diff&rev=523086&r1=523085&r2=523086 ============================================================================== --- forrest/trunk/main/targets/webapp.xml (original) +++ forrest/trunk/main/targets/webapp.xml Tue Mar 27 14:23:44 2007 @@ -16,7 +16,7 @@ limitations under the License. --> -<project default="webapp" basedir="." name="webapp"> +<project default="run-webapp" basedir="." name="run-webapp"> <target name="project.webapp.defined" unless="project.webapp"> <fail> @@ -68,7 +68,7 @@ Builds a cocoon webapp of your project for remote deployment. param: location to put generated webapp ${project.webapp} =============================================================== --> - <target name="webapp" depends="webapp-local, copy-xdocs, copy-content" + <target name="run-webapp" depends="webapp-local, copy-xdocs, copy-content" description="Generates a dynamic servlet-based website (an unpackaged webapp)."> <!-- @@ -180,12 +180,14 @@ Builds a cocoon .war for your project based on the siteplan. param: location to put generated war ${project.war} =============================================================== --> - <target name="war" depends="webapp" + <target name="war" depends="run-webapp" description="* Generates a dynamic servlet-based website (a packaged .war file)"> + <move file="${project.webapp}/WEB-INF/xconf/forrest-core-webapp.xconf" tofile="${project.webapp}/WEB-INF/xconf/forrest-core.xconf"/> + <jar destfile="${project.war}"> <fileset dir="${project.webapp}"/> - <fileset dir="${forrest.home}"> + <fileset dir="${forrest.home}"> <include name="${build.plugins-dir}/**"/> </fileset> </jar> Added: forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf?view=auto&rev=523086 ============================================================================== --- forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf (added) +++ forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf Tue Mar 27 14:23:44 2007 @@ -0,0 +1,916 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. +--> + + +<!-- + This xconf file is used in the deployed war file, it is identical to + the forrest-core.xconf file with the exception the the location of the + plugin files. +--> + +<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"/> + +<!--+ + | This is the Apache Cocoon configuration file. This is the place + | where you configure the components that Cocoon uses internally (stuff + | like the cache) or handles to the pipeline components + | (stuff like XML parsers or XSLT processors). + +--> + +<!--+ + | cocoon-template and cocoon-template-expression block + | config - start + +--> + <component role="org.apache.cocoon.template.script.ScriptManager" class="org.apache.cocoon.template.script.DefaultScriptManager"/> + <component role="org.apache.cocoon.template.script.InstructionFactory" class="org.apache.cocoon.template.script.DefaultInstructionFactory"/> + <component role="org.apache.cocoon.template.expression.StringTemplateParser" class="org.apache.cocoon.template.expression.JXTGStringTemplateParser"/> + + <!-- Include roles --> + <include src="resource://org/apache/cocoon/components/expression/expression.roles"/> + <include src="resource://org/apache/cocoon/components/accessor/accessor.roles"/> + + <expression-factory/> + <expression-compilers> + <component-instance class="org.apache.cocoon.components.expression.jxpath.JXPathCompiler" name="default"/> + <component-instance class="org.apache.cocoon.components.expression.jexl.JexlCompiler" name="jexl"/> + <component-instance class="org.apache.cocoon.components.expression.jxpath.JXPathCompiler" name="jxpath"/> + </expression-compilers> + <string-template-parsers> + <component-instance class="org.apache.cocoon.template.expression.JXTGStringTemplateParser" name="jxtg"/> + <component-instance class="org.apache.cocoon.template.expression.DefaultStringTemplateParser" name="default"/> + </string-template-parsers> +<!--+ + | cocoon-template and cocoon-template-expression block + | config - end + +--> +<!-- =========================== 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: + | The check-reload attribute determines if the sitemap is to be + | reloaded on change. + | 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 check-reload="yes" file="context://sitemap.xmap" logger="sitemap"/> + <!-- config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml" --> + <!-- ========================= 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 class="org.apache.cocoon.components.modules.input.GlobalInputModule" logger="core.modules.input" name="global"/> + <component-instance class="org.apache.cocoon.components.modules.input.RequestModule" logger="core.modules.input" name="request"/> + <component-instance class="org.apache.cocoon.components.modules.input.BaseLinkModule" logger="core.modules.input" name="baselink"/> + <component-instance class="org.apache.cocoon.components.modules.input.SessionModule" logger="core.modules.input" name="session"/> + <component-instance class="org.apache.cocoon.components.modules.input.RequestParameterModule" logger="core.modules.input" name="request-param"/> + <component-instance class="org.apache.cocoon.components.modules.input.RawRequestParameterModule" logger="core.modules.input" name="raw-request-param"/> + <component-instance class="org.apache.cocoon.components.modules.input.RequestAttributeModule" logger="core.modules.input" name="request-attr"/> + <component-instance class="org.apache.cocoon.components.modules.input.HeaderAttributeModule" logger="core.modules.input" name="request-header"/> + <component-instance class="org.apache.cocoon.components.modules.input.SessionAttributeModule" logger="core.modules.input" name="session-attr"/> + <component-instance class="org.apache.cocoon.components.modules.input.SystemPropertyModule" logger="core.modules.input" name="system-property"/> + <component-instance class="org.apache.cocoon.components.modules.input.StringConstantModule" logger="core.modules.input" name="constant"/> + <component-instance class="org.apache.cocoon.components.modules.input.RandomNumberModule" logger="core.modules.input" name="random"/> + <component-instance class="org.apache.cocoon.components.modules.input.DigestMetaModule" logger="core.modules.input" name="digest"/> + <component-instance class="org.apache.cocoon.components.modules.input.DateInputModule" logger="core.modules.input" name="date"> + <!-- <format>EEE, d MMM yyyy HH:mm:ss Z</format> --> + <!--Eg: Mon, 28 Oct 2002 03:08:49 +1100 --> + </component-instance> + <component-instance class="org.apache.cocoon.components.modules.input.NullInputModule" logger="core.modules.input" name="nullinput"/> + <component-instance class="org.apache.cocoon.components.modules.input.RealPathModule" logger="core.modules.input" name="realpath"/> + <component-instance class="org.apache.cocoon.components.modules.input.XMLMetaModule" logger="core.modules.input" name="xmlmeta"/> + <component-instance class="org.apache.cocoon.components.modules.input.MapMetaModule" logger="core.modules.input" name="mapmeta"/> + <component-instance class="org.apache.cocoon.components.modules.input.DateMetaInputModule" logger="core.modules.input" name="datemeta"/> + <component-instance class="org.apache.cocoon.components.modules.input.JXPathMetaModule" logger="core.modules.input" name="jxpath"/> + <component-instance class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" logger="core.modules.input" name="simplemap"/> + + <component-instance logger="core.modules.input" name="forrest" 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="properties"/> + </component-instance> + + + <component-instance name="properties" class="org.apache.forrest.conf.ForrestConfModule"> + <values> + <forrest.skin>@project.skin@</forrest.skin> + <forrest.menu-scheme>@project.menu-scheme@</forrest.menu-scheme> + <forrest.bugtracking-url>@project.bugtracking-url@</forrest.bugtracking-url> + <forrest.issues-rss-url>@project.issues-rss-url@</forrest.issues-rss-url> + <forrest.i18n>@project.i18n@</forrest.i18n> + <forrest.home>@forrest.home@/</forrest.home> + <forrest.context>@context.home@</forrest.context> + <forrest.skins-dir>@context.home@/skins/</forrest.skins-dir> + <forrest.stylesheets>@context.home@/resources/stylesheets</forrest.stylesheets> + <forrest.plugins-src>@forrest.home@/plugins</forrest.plugins-src> + <forrest.whiteboard-plugins-src>@forrest.home@/whiteboard/plugins</forrest.whiteboard-plugins-src> + <forrest.plugins>@context.home@/build/plugins</forrest.plugins> + <forrest.locationmap>@context.home@/locationmap.xml</forrest.locationmap> + <home>@project.home@</home> + <staging-dir>@project.build-dir@/@project.site@</staging-dir> + <skin>@project.skin@</skin> + <sitemap>@project.home@/@project.sitemap@</sitemap> + <status>@project.home@/@project.status@</status> + <skinconf>@project.home@/@project.skinconf@</skinconf> + <doc>@project.home@/@project.content-dir@/</doc> + <content>@project.home@/@project.raw-content-dir@/</content> + <conf>@project.home@/@project.conf-dir@/</conf> + <content.xdocs>@project.home@/@project.xdocs-dir@/</content.xdocs> + <translations>@project.home@/@project.translations-dir@</translations> + <resources>@project.home@/@project.resources-dir@/</resources> + <resources.stylesheets>@project.home@/@project.stylesheets-dir@/</resources.stylesheets> + <resources.images>@project.home@/@project.images-dir@/</resources.images> + <skins-dir>@project.home@/@project.skins-dir@/</skins-dir> + <temp-dir>@project.temp-dir@</temp-dir> + </values> + </component-instance> + + <component-instance + class="org.apache.cocoon.components.modules.input.XMLFileModule" + logger="core.modules.xml" name="skinconf"/> + + <component-instance + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.mapper" name="conf"> + <input-module name="skinconf"> + <file src="cocoon://skinconf.xml" reloadable="true" /> + </input-module> + <prefix>/skinconfig/</prefix> + </component-instance> + + <!-- For the site: scheme --> + <component-instance + class="org.apache.cocoon.components.modules.input.XMLFileModule" + logger="core.modules.mapper.link" name="linkmap"> + </component-instance> + + <!-- Links to URIs within the site --> + <component-instance + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.mapper.link" name="site"/> + + <!-- Links to external URIs, as distinct from 'site' URIs --> + <component-instance + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.mapper.link" name="ext"/> + + <!-- LocationMap is used to map one URL to another, allowing content to be stored anywhere --> + <component-instance + class="org.apache.forrest.locationmap.LocationMapModule" + logger="core.modules.mapper.lm" name="lm"> + <file src="cocoon://locationmap.xml"/> + <cacheable>true</cacheable> + <cache-lifespan>100000</cache-lifespan> + </component-instance> + +</input-modules> + + + +<!-- ================================= XML ================================ --> + + <!--+ + | Source Factories + | + | Each source factory adds a special uri schemes to the system. + +--> + <source-factories> + <component-instance name="file" class="org.apache.excalibur.source.impl.FileSourceFactory"/> + <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"/> + <component-instance class="org.apache.cocoon.components.source.impl.ZipSourceFactory" name="zip"/> + <component-instance class="org.apache.forrest.locationmap.source.impl.LocationmapSourceFactory" name="lm"/> + <!-- the "*" protocol handles all uri schemes that are not explicitely specified. This includes all + JDK standard protocols, with special handling of the "file:" protocol which is modifiable + (can be written to) and traversable (directory structures can be crawled). --> + <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/> + </source-factories> + <!--+ + | 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 the Apache Forrest documentation: + | http://forrest.apache.org/docs/your-project.html + | http://forrest.apache.org/docs/validation.html + | + | 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.) + +--> + <entity-resolver logger="core.resolver"> + <parameter name="catalog" value="resources/schema/catalog.xcat"/> +<!-- See FOR-917 testing new Cocoon "running modes" + <parameter name="verbosity" value="1"/> +--> + <parameter name="verbosity" value="${org.apache.xml.resolver.verbosity}"/> + </entity-resolver> + + <!--+ + | 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 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="sax-parser-factory" value="???"/--> + <!--parameter name="document-builder-factory" value="???"/--> + <!-- 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://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-processor"> + <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 class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl" logger="core.xslt-processor" role="org.apache.excalibur.xml.xslt.XSLTProcessor/xsltc"> + <parameter name="use-store" value="false"/> + <parameter name="transformer-factory" value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl"/> + </component> + + <!--+ + | Xalan XSLT Processor + +--> + <component class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl" logger="core.xslt-processor" role="org.apache.excalibur.xml.xslt.XSLTProcessor/xalan"> + <parameter name="use-store" value="false"/> + <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-processor" + role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon" + class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"> + <parameter name="use-store" value="false"/> + <parameter name="incremental-processing" value="false"/> + <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/> + </component> + + <!-- 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 mime-type="text/xml" role="org.apache.excalibur.xml.sax.SAXParser"/> + <!--..... Start configuration from 'tidy' --> + + + <parser mime-type="text/html" role="org.apache.excalibur.xml.sax.SAXParser/HTML"/> + +<!--..... End configuration from 'tidy' --> +</xmlizer> + +<!-- ============================ Object Stores =========================== --> + + <!--+ + | Transient Store: holds objects that don't have to survive shutdown + +--> + <transient-store logger="core.store.transient"> + + <!--+ + | 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. + +--> + <parameter name="maxobjects" value="100"/> + + <!-- Turns swapping of the objects into persistent cache on and off. --> + <parameter name="use-persistent-cache" value="false"/> + </transient-store> + + <!--+ + | 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. + +--> + <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. + | + | 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="150000000"/> + | + | 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. + +--> + <store-janitor logger="core.store.janitor"> + <!-- How much free memory shall be available in the jvm --> + <parameter name="freememory" value="1000000"/> + <!-- Indicates the limit of the jvm memory consumption. The default max + heapsize for Sun's JVM is 64Mb --> + <parameter name="heapsize" value="67108864"/> + <!-- How often shall the cleanup thread check memory --> + <parameter name="cleanupthreadinterval" value="10"/> + <!-- 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"/> + </store-janitor> + +<!-- ========================= Protocol Handlers =========================== --> + + +<!-- ================ Internationalization Catalogs =================== --> + + <!--+ + | I18n Bundle Factory + | + | 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. + +--> + <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> + +<!-- ================ XSP (eXtensible Server Pages) ===================== --> + + <!--+ + | Program Generator + | + | The ProgamGenerator builds programs from a XML document written in a + | MarkupLanguage. + | + | 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 + +--> + <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> + + <!--+ + | Programming Languages for the XSP pages + +--> + <programming-languages> + <java-language logger="core.language.java" name="java"> + + <!-- 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"/--> + + <!-- A singleton-like implementation of a ClassLoader --> + <parameter name="class-loader" value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/> + + <!--+ + | 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"/> + + </java-language> + + <!-- Interpreted JavaScript language --> + <js-language logger="core.language.js" name="js"/> + </programming-languages> + + <!--+ + | Logisheets + | + | 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. + | + | Logicsheets are the XSP equivalent of taglibs. For info about + | the tags included in the default taglibs, please, refer to the + | documentation. + +--> + <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> + +<!-- ====================== System Components =========================== --> + + <!--+ + | The core classloader implementation + +--> + <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 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> + +<!-- ========== Components used for Lucene-based searching ========== --> + + <!-- Include roles --> + <include src="resource://org/apache/cocoon/components/search/lucene.roles"/> + + <!-- Search: + These are the components that handle the search. + + Cocoon indexer writes into an index. + Cocoon searcher reads from an index, returning matched hits. + Cocoon crawler crawls all links starting from a given base URI. + Lucene xml indexer builds a lucene document from XML content. + --> + <cocoon-indexer logger="core.search.indexer"/> + <cocoon-searcher logger="core.search.searcher"/> + <cocoon-crawler logger="core.search.crawler"/> + <lucene-xml-indexer logger="core.search.lucene"/> + +<!-- ========== Components used for profiling ========== --> + <include src="resource://org/apache/cocoon/components/profiler/profiler.roles"/> + <profiler results="20"/><!-- default is 10 --> + +<!-- ========== Components used for debugging ========== --> +<!--+ + | Send sitemap execution messages to the debug log category. + | Warning: It is very verbose. Off by default. + +--> +<!-- +<component role="org.apache.cocoon.sitemap.SitemapExecutor" + class="org.apache.cocoon.profiler.debugging.SimpleSitemapExecutor" + logger="debug"/> +--> + +<!-- ========== Components used for xml validation ========== --> + <include src="resource://org/apache/cocoon/components/validation/validation.roles"/> + <!--+ + | The shared Validator instance in Cocoon. + | + | This defaults to an instance of a "CachedValidator". To disable schema + | caching add the following attribute to the <validator ... /> element: + | + | class="org.apache.cocoon.components.validation.impl.DefaultValidator" + +--> + <validator logger="core.validation"> + <schema-parser name="jing" class="org.apache.cocoon.components.validation.jing.JingSchemaParser"/> + <schema-parser name="jaxp" class="org.apache.cocoon.components.validation.jaxp.JaxpSchemaParser"> + <factory-class>org.apache.xerces.jaxp.validation.XMLSchemaFactory</factory-class> + </schema-parser> + </validator> + + <!--+ + | 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 + +--> + <thread-factory>org.apache.cocoon.components.thread.DefaultThreadFactory</thread-factory> + <thread-pools> + <!--+ + | 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> Propchange: forrest/trunk/main/webapp/WEB-INF/xconf/forrest-core-webapp.xconf ------------------------------------------------------------------------------ svn:eol-style = native