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