Author: sylvain Date: Wed Dec 29 12:39:50 2004 New Revision: 123675 URL: http://svn.apache.org/viewcvs?view=rev&rev=123675 Log: Add an include feature to xconf files. cocoon.xconf is now just a set of includes Added: cocoon/trunk/src/blocks/apples/WEB-INF/ cocoon/trunk/src/blocks/apples/WEB-INF/xconf/ cocoon/trunk/src/blocks/apples/WEB-INF/xconf/cocoon-apples.xconf (contents, props changed) cocoon/trunk/src/blocks/apples/conf/include-apples.xconf (contents, props changed) cocoon/trunk/src/blocks/authentication-fw/WEB-INF/ cocoon/trunk/src/blocks/authentication-fw/WEB-INF/xconf/ cocoon/trunk/src/blocks/authentication-fw/WEB-INF/xconf/cocoon-authentication-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/authentication-fw/conf/include-authentication-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/authentication-fw/java/org/apache/cocoon/webapps/authentication/authentication.roles cocoon/trunk/src/blocks/axis/WEB-INF/ cocoon/trunk/src/blocks/axis/WEB-INF/xconf/ cocoon/trunk/src/blocks/axis/WEB-INF/xconf/cocoon-axis.xconf (contents, props changed) cocoon/trunk/src/blocks/axis/conf/include-axis.xconf (contents, props changed) cocoon/trunk/src/blocks/axis/java/org/apache/cocoon/components/axis/axis.roles cocoon/trunk/src/blocks/cron/WEB-INF/ cocoon/trunk/src/blocks/cron/WEB-INF/xconf/ cocoon/trunk/src/blocks/cron/WEB-INF/xconf/cocoon-cron.xconf (contents, props changed) cocoon/trunk/src/blocks/cron/conf/include-cron.xconf (contents, props changed) cocoon/trunk/src/blocks/databases/WEB-INF/ cocoon/trunk/src/blocks/databases/WEB-INF/xconf/ cocoon/trunk/src/blocks/databases/WEB-INF/xconf/cocoon-databases.xconf (contents, props changed) cocoon/trunk/src/blocks/databases/conf/include-databases.xconf (contents, props changed) cocoon/trunk/src/blocks/databases/java/org/apache/cocoon/components/database/ cocoon/trunk/src/blocks/databases/java/org/apache/cocoon/components/database/database.roles cocoon/trunk/src/blocks/deli/WEB-INF/xconf/ cocoon/trunk/src/blocks/deli/WEB-INF/xconf/cocoon-deli.xconf (contents, props changed) cocoon/trunk/src/blocks/deli/conf/include-deli.xconf (contents, props changed) cocoon/trunk/src/blocks/deli/java/org/apache/cocoon/components/deli/deli.roles cocoon/trunk/src/blocks/eventcache/WEB-INF/ cocoon/trunk/src/blocks/eventcache/WEB-INF/xconf/ cocoon/trunk/src/blocks/eventcache/WEB-INF/xconf/cocoon-eventcache.xconf (contents, props changed) cocoon/trunk/src/blocks/eventcache/conf/include-eventcache.xconf (contents, props changed) cocoon/trunk/src/blocks/faces/WEB-INF/xconf/ cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces-samples.xconf (contents, props changed) cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces.xconf (contents, props changed) cocoon/trunk/src/blocks/faces/conf/include-faces.xconf (contents, props changed) cocoon/trunk/src/blocks/forms/WEB-INF/ cocoon/trunk/src/blocks/forms/WEB-INF/xconf/ cocoon/trunk/src/blocks/forms/WEB-INF/xconf/cocoon-forms.xconf (contents, props changed) cocoon/trunk/src/blocks/forms/conf/include-forms.xconf (contents, props changed) cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/forms.roles cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor.xml (contents, props changed) cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_binding.xml (contents, props changed) cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_html2xml.xsl (contents, props changed) cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_template.xml (contents, props changed) cocoon/trunk/src/blocks/hsqldb/WEB-INF/ cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/ cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf (contents, props changed) cocoon/trunk/src/blocks/hsqldb/conf/include-hsqldb.xconf (contents, props changed) cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/hsqldb.roles cocoon/trunk/src/blocks/html/WEB-INF/xconf/ cocoon/trunk/src/blocks/html/WEB-INF/xconf/cocoon-html.xconf (contents, props changed) cocoon/trunk/src/blocks/html/conf/include-html.xconf (contents, props changed) cocoon/trunk/src/blocks/javaflow/WEB-INF/ cocoon/trunk/src/blocks/javaflow/WEB-INF/xconf/ cocoon/trunk/src/blocks/javaflow/WEB-INF/xconf/cocoon-javaflow.xconf (contents, props changed) cocoon/trunk/src/blocks/javaflow/conf/include-javaflow.xconf (contents, props changed) cocoon/trunk/src/blocks/jms/WEB-INF/ cocoon/trunk/src/blocks/jms/WEB-INF/xconf/ cocoon/trunk/src/blocks/jms/WEB-INF/xconf/cocoon-jms.xconf (contents, props changed) cocoon/trunk/src/blocks/jms/conf/include-jms.xconf (contents, props changed) cocoon/trunk/src/blocks/jms/java/org/apache/cocoon/components/jms/jms.roles cocoon/trunk/src/blocks/jsp/WEB-INF/ cocoon/trunk/src/blocks/jsp/WEB-INF/xconf/ cocoon/trunk/src/blocks/jsp/WEB-INF/xconf/cocoon-jsp.xconf (contents, props changed) cocoon/trunk/src/blocks/jsp/conf/include-jsp.xconf (contents, props changed) cocoon/trunk/src/blocks/jsp/java/org/apache/cocoon/components/jsp/jsp.roles cocoon/trunk/src/blocks/linkrewriter/WEB-INF/ cocoon/trunk/src/blocks/linkrewriter/WEB-INF/xconf/ cocoon/trunk/src/blocks/linkrewriter/WEB-INF/xconf/cocoon-linkrewriter.xconf (contents, props changed) cocoon/trunk/src/blocks/linkrewriter/conf/include-linkrewriter.xconf (contents, props changed) cocoon/trunk/src/blocks/lucene/WEB-INF/ cocoon/trunk/src/blocks/lucene/WEB-INF/xconf/ cocoon/trunk/src/blocks/lucene/WEB-INF/xconf/cocoon-lucene.xconf (contents, props changed) cocoon/trunk/src/blocks/lucene/conf/include-lucene.xconf (contents, props changed) cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/components/search/lucene.roles cocoon/trunk/src/blocks/mail/WEB-INF/ cocoon/trunk/src/blocks/mail/WEB-INF/xconf/ cocoon/trunk/src/blocks/mail/WEB-INF/xconf/cocoon-mail.xconf (contents, props changed) cocoon/trunk/src/blocks/mail/conf/include-mail.xconf (contents, props changed) cocoon/trunk/src/blocks/ojb/WEB-INF/ cocoon/trunk/src/blocks/ojb/WEB-INF/xconf/ cocoon/trunk/src/blocks/ojb/WEB-INF/xconf/cocoon-ojb.xconf (contents, props changed) cocoon/trunk/src/blocks/ojb/conf/include-ojb.xconf (contents, props changed) cocoon/trunk/src/blocks/ojb/java/org/apache/cocoon/ojb/ojb.roles cocoon/trunk/src/blocks/portal-fw/WEB-INF/ cocoon/trunk/src/blocks/portal-fw/WEB-INF/xconf/ cocoon/trunk/src/blocks/portal-fw/WEB-INF/xconf/cocoon-portal-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/portal-fw/conf/include-portal-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/portal-fw/java/org/apache/cocoon/webapps/portal/portal.roles cocoon/trunk/src/blocks/portal/WEB-INF/xconf/ cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal-samples.xconf (contents, props changed) cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal.xconf (contents, props changed) cocoon/trunk/src/blocks/portal/conf/include-portal.xconf (contents, props changed) cocoon/trunk/src/blocks/profiler/WEB-INF/ cocoon/trunk/src/blocks/profiler/WEB-INF/xconf/ cocoon/trunk/src/blocks/profiler/WEB-INF/xconf/cocoon-profiler.xconf (contents, props changed) cocoon/trunk/src/blocks/profiler/conf/include-profiler.xconf (contents, props changed) cocoon/trunk/src/blocks/profiler/java/org/apache/cocoon/components/profiler/profiler.roles cocoon/trunk/src/blocks/qdox/WEB-INF/ cocoon/trunk/src/blocks/qdox/WEB-INF/xconf/ cocoon/trunk/src/blocks/qdox/WEB-INF/xconf/cocoon-qdox.xconf (contents, props changed) cocoon/trunk/src/blocks/qdox/conf/include-qdox.xconf (contents, props changed) cocoon/trunk/src/blocks/repository/WEB-INF/ cocoon/trunk/src/blocks/repository/WEB-INF/xconf/ cocoon/trunk/src/blocks/repository/WEB-INF/xconf/cocoon-repository.xconf (contents, props changed) cocoon/trunk/src/blocks/repository/conf/include-repository.xconf (contents, props changed) cocoon/trunk/src/blocks/repository/java/org/apache/cocoon/components/repository/repository.roles cocoon/trunk/src/blocks/scratchpad/WEB-INF/ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf (contents, props changed) cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-groovyflow.xconf (contents, props changed) cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-intercepted-flow.xconf (contents, props changed) cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-zip-source.xconf (contents, props changed) cocoon/trunk/src/blocks/scratchpad/conf/include-scratchpad.xconf (contents, props changed) cocoon/trunk/src/blocks/session-fw/WEB-INF/ cocoon/trunk/src/blocks/session-fw/WEB-INF/xconf/ cocoon/trunk/src/blocks/session-fw/WEB-INF/xconf/cocoon-session-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/session-fw/conf/include-session-fw.xconf (contents, props changed) cocoon/trunk/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/session.roles cocoon/trunk/src/blocks/slide/WEB-INF/xconf/ cocoon/trunk/src/blocks/slide/WEB-INF/xconf/cocoon-slide.xconf (contents, props changed) cocoon/trunk/src/blocks/slide/conf/include-slide.xconf (contents, props changed) cocoon/trunk/src/blocks/slide/java/org/apache/cocoon/components/slide/slide.roles cocoon/trunk/src/blocks/taglib/WEB-INF/ cocoon/trunk/src/blocks/taglib/WEB-INF/xconf/ cocoon/trunk/src/blocks/taglib/WEB-INF/xconf/cocoon-taglib.xconf (contents, props changed) cocoon/trunk/src/blocks/taglib/conf/include-taglib.xconf (contents, props changed) cocoon/trunk/src/blocks/web3/WEB-INF/ cocoon/trunk/src/blocks/web3/WEB-INF/xconf/ cocoon/trunk/src/blocks/web3/WEB-INF/xconf/cocoon-web3.xconf (contents, props changed) cocoon/trunk/src/blocks/web3/conf/include-web3.xconf (contents, props changed) cocoon/trunk/src/blocks/web3/java/org/apache/cocoon/components/web3/web3.roles cocoon/trunk/src/blocks/webdav/WEB-INF/ cocoon/trunk/src/blocks/webdav/WEB-INF/xconf/ cocoon/trunk/src/blocks/webdav/WEB-INF/xconf/cocoon-webdav.xconf (contents, props changed) cocoon/trunk/src/blocks/webdav/conf/include-webdav.xconf (contents, props changed) cocoon/trunk/src/blocks/woody/WEB-INF/ cocoon/trunk/src/blocks/woody/WEB-INF/xconf/ cocoon/trunk/src/blocks/woody/WEB-INF/xconf/cocoon-woody.xconf (contents, props changed) cocoon/trunk/src/blocks/woody/conf/include-woody.xconf (contents, props changed) cocoon/trunk/src/blocks/woody/java/org/apache/cocoon/woody/woody.roles cocoon/trunk/src/blocks/xmldb/WEB-INF/xconf/ cocoon/trunk/src/blocks/xmldb/WEB-INF/xconf/cocoon-xmldb.xconf (contents, props changed) cocoon/trunk/src/blocks/xmldb/conf/include-xmldb.xconf (contents, props changed) cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java (contents, props changed) cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java (contents, props changed) cocoon/trunk/src/core/java/org/apache/cocoon/core/source/ cocoon/trunk/src/core/java/org/apache/cocoon/core/source/SimpleSourceResolver.java (contents, props changed) cocoon/trunk/src/webapp/WEB-INF/xconf/ cocoon/trunk/src/webapp/WEB-INF/xconf/cocoon-core.xconf (contents, props changed) Removed: cocoon/trunk/src/blocks/apples/conf/apples-processor.xconf cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xconf cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xroles cocoon/trunk/src/blocks/authentication-fw/conf/provider.xconf cocoon/trunk/src/blocks/axis/conf/soapserver.xconf cocoon/trunk/src/blocks/axis/conf/soapserver.xroles cocoon/trunk/src/blocks/cron/conf/cron.xconf cocoon/trunk/src/blocks/databases/conf/blob.xconf cocoon/trunk/src/blocks/databases/conf/datasources.xconf cocoon/trunk/src/blocks/databases/conf/db-modules-input.xconf cocoon/trunk/src/blocks/databases/conf/db-modules.xconf cocoon/trunk/src/blocks/databases/conf/db-modules.xroles cocoon/trunk/src/blocks/deli/conf/deli.xconf cocoon/trunk/src/blocks/deli/conf/deli.xroles cocoon/trunk/src/blocks/eventcache/conf/eventcache.xconf cocoon/trunk/src/blocks/eventcache/conf/jmslistener.xconf cocoon/trunk/src/blocks/faces/conf/faces-taglib.samplesxconf cocoon/trunk/src/blocks/faces/conf/faces-taglib.xconf cocoon/trunk/src/blocks/forms/conf/forms-binding.xconf cocoon/trunk/src/blocks/forms/conf/forms-binding.xroles cocoon/trunk/src/blocks/forms/conf/forms-cache.xroles cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf cocoon/trunk/src/blocks/forms/conf/forms-datatype.xroles cocoon/trunk/src/blocks/forms/conf/forms-expression.xconf cocoon/trunk/src/blocks/forms/conf/forms-expression.xroles cocoon/trunk/src/blocks/forms/conf/forms-form.xconf cocoon/trunk/src/blocks/forms/conf/forms-form.xroles cocoon/trunk/src/blocks/forms/conf/forms-generator.xmap cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xconf cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xroles cocoon/trunk/src/blocks/forms/conf/forms-transformator.xmap cocoon/trunk/src/blocks/forms/conf/forms-validators.xconf cocoon/trunk/src/blocks/forms/conf/forms-validators.xroles cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xconf cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xroles cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xconf cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xroles cocoon/trunk/src/blocks/html/conf/tidy.xconf cocoon/trunk/src/blocks/html/conf/tidy.xroles cocoon/trunk/src/blocks/javaflow/conf/javaflow.xconf cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xconf cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xroles cocoon/trunk/src/blocks/jsp/conf/jsp.xconf cocoon/trunk/src/blocks/jsp/conf/jsp.xroles cocoon/trunk/src/blocks/linkrewriter/conf/linkrewriter.xconf cocoon/trunk/src/blocks/lucene/conf/lucene.xconf cocoon/trunk/src/blocks/lucene/conf/lucene.xroles cocoon/trunk/src/blocks/mail/conf/mailsender.xconf cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xconf cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xroles cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xconf cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xroles cocoon/trunk/src/blocks/ojb/conf/ojb.xconf cocoon/trunk/src/blocks/ojb/conf/ojb.xroles cocoon/trunk/src/blocks/portal-fw/conf/portal.xconf cocoon/trunk/src/blocks/portal-fw/conf/portal.xroles cocoon/trunk/src/blocks/portal-fw/conf/provider.xconf cocoon/trunk/src/blocks/portal/conf/authportal.samplesxconf cocoon/trunk/src/blocks/portal/conf/modules.xconf cocoon/trunk/src/blocks/portal/conf/portal.samplesxconf cocoon/trunk/src/blocks/portal/conf/portal.xconf cocoon/trunk/src/blocks/portal/conf/protocol.xconf cocoon/trunk/src/blocks/profiler/conf/profiler.xconf cocoon/trunk/src/blocks/profiler/conf/profiler.xroles cocoon/trunk/src/blocks/qdox/conf/qdox.xconf cocoon/trunk/src/blocks/repository/conf/SourceRepository.xconf cocoon/trunk/src/blocks/repository/conf/SourceRepository.xroles cocoon/trunk/src/blocks/repository/conf/repository-manager.xconf cocoon/trunk/src/blocks/repository/conf/repository-source.xconf cocoon/trunk/src/blocks/repository/conf/sourcedescriptor.xconf cocoon/trunk/src/blocks/scratchpad/conf/caching-source.xconf cocoon/trunk/src/blocks/scratchpad/conf/delay-refresher.xconf cocoon/trunk/src/blocks/scratchpad/conf/groovyflow.xconf cocoon/trunk/src/blocks/scratchpad/conf/intercepted-flow.xconf cocoon/trunk/src/blocks/scratchpad/conf/zip-source.xconf cocoon/trunk/src/blocks/session-fw/conf/modules.xconf cocoon/trunk/src/blocks/session-fw/conf/session.xconf cocoon/trunk/src/blocks/session-fw/conf/session.xroles cocoon/trunk/src/blocks/slide/conf/slide-module.xconf cocoon/trunk/src/blocks/slide/conf/slide-repository.xconf cocoon/trunk/src/blocks/slide/conf/slide-repository.xroles cocoon/trunk/src/blocks/slide/conf/slide-source.xconf cocoon/trunk/src/blocks/taglib/conf/jxpath.xconf cocoon/trunk/src/blocks/taglib/conf/tag.xconf cocoon/trunk/src/blocks/web3/conf/web3.xconf cocoon/trunk/src/blocks/web3/conf/web3.xroles cocoon/trunk/src/blocks/webdav/conf/webdav-repository.xconf cocoon/trunk/src/blocks/webdav/conf/webdav-source.xconf cocoon/trunk/src/blocks/woody/conf/woody-binding.xconf cocoon/trunk/src/blocks/woody/conf/woody-binding.xroles cocoon/trunk/src/blocks/woody/conf/woody-cache.xroles cocoon/trunk/src/blocks/woody/conf/woody-datatype.xconf cocoon/trunk/src/blocks/woody/conf/woody-datatype.xroles cocoon/trunk/src/blocks/woody/conf/woody-expression.xconf cocoon/trunk/src/blocks/woody/conf/woody-expression.xroles cocoon/trunk/src/blocks/woody/conf/woody-form.xconf cocoon/trunk/src/blocks/woody/conf/woody-form.xroles cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xconf cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xroles cocoon/trunk/src/blocks/woody/conf/woody-validators.xconf cocoon/trunk/src/blocks/woody/conf/woody-validators.xroles cocoon/trunk/src/blocks/xmldb/conf/xmldb.xconf cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SelectorBasedComponentHandler.java Modified: cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java cocoon/trunk/src/blocks/xsp/conf/xsp.xroles cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf cocoon/trunk/status.xml cocoon/trunk/tools/src/blocks-build.xsl cocoon/trunk/tools/targets/compile-build.xml cocoon/trunk/tools/targets/webapp-build.xml
Added: cocoon/trunk/src/blocks/apples/WEB-INF/xconf/cocoon-apples.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/WEB-INF/xconf/cocoon-apples.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/apples/WEB-INF/xconf/cocoon-apples.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <flow-interpreters> + <component-instance + class="org.apache.cocoon.components.flow.apples.ApplesProcessor" + name="apples" logger="apples"> + </component-instance> + </flow-interpreters> +</components> Deleted: /cocoon/trunk/src/blocks/apples/conf/apples-processor.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/conf/apples-processor.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/apples/conf/include-apples.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/conf/include-apples.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/apples/conf/include-apples.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-apples.xconf']"> + <include src="WEB-INF/xconf/cocoon-apples.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/authentication-fw/WEB-INF/xconf/cocoon-authentication-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/WEB-INF/xconf/cocoon-authentication-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/authentication-fw/WEB-INF/xconf/cocoon-authentication-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/webapps/authentication/authentication.roles"/> + + <authentication-manager logger="core.authentication-manager"/> + + <session-context-providers> + <component-instance class="org.apache.cocoon.webapps.authentication.context.AuthenticationContextProvider" name="authentication"/> + </session-context-providers> +</components> Deleted: /cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/conf/authentication.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/authentication-fw/conf/include-authentication-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/conf/include-authentication-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/authentication-fw/conf/include-authentication-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-authentication-fw.xconf']"> + <include src="WEB-INF/xconf/cocoon-authentication-fw.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/authentication-fw/conf/provider.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/conf/provider.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/authentication-fw/java/org/apache/cocoon/webapps/authentication/authentication.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/authentication-fw/java/org/apache/cocoon/webapps/authentication/authentication.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/authentication-fw/java/org/apache/cocoon/webapps/authentication/authentication.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.webapps.authentication.AuthenticationManager" + shorthand="authentication-manager" + default-class="org.apache.cocoon.webapps.authentication.components.DefaultAuthenticationManager"/> + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/axis/WEB-INF/xconf/cocoon-axis.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/axis/WEB-INF/xconf/cocoon-axis.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/axis/WEB-INF/xconf/cocoon-axis.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/axis/axis.roles"/> + + <soap-server logger="core.source.soapserver"> + <managed-services> + <descriptor src="resource://org/apache/cocoon/webservices/memory/DeploymentDescriptor.wsdd"/> + <descriptor src="resource://org/apache/cocoon/webservices/system/DeploymentDescriptor.wsdd"/> + <descriptor src="resource://org/apache/cocoon/webservices/cache/DeploymentDescriptor.wsdd"/> + </managed-services> + </soap-server> +</components> Added: cocoon/trunk/src/blocks/axis/conf/include-axis.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/axis/conf/include-axis.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/axis/conf/include-axis.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-axis.xconf']"> + <include src="WEB-INF/xconf/cocoon-axis.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/axis/conf/soapserver.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/axis/conf/soapserver.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/axis/conf/soapserver.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/axis/conf/soapserver.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/axis/java/org/apache/cocoon/components/axis/axis.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/axis/java/org/apache/cocoon/components/axis/axis.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/axis/java/org/apache/cocoon/components/axis/axis.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.axis.SoapServer" + shorthand="soap-server" + default-class="org.apache.cocoon.components.axis.SoapServerImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/cron/WEB-INF/xconf/cocoon-cron.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/WEB-INF/xconf/cocoon-cron.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/cron/WEB-INF/xconf/cocoon-cron.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,168 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component role="org.apache.cocoon.components.cron.JobScheduler" + class="org.apache.cocoon.components.cron.CocoonQuartzJobScheduler" + logger="cron"> + <!--+ + | Definitions for a thread pool used to schedule jobs + +--> + <thread-pool> + <!--+ + | Should we queue up execution requests if the pool is busy? + | Defaults to false + +--> + <use-queueing>false</use-queueing> + + <!--+ + | How big should the queue be. + | Defaults to unlimited size (<0 == default) + +--> + <queue-size>-1</queue-size> + + <!--+ + | The maximum size of the pool. + | Defaults to Integer.MAX_VALUE (<0 == default) + +--> + <max-pool-size>-1</max-pool-size> + + <!--+ + | The minimum size of the pool. + | Defaults to 1 (<0 == default) + +--> + <min-pool-size>1</min-pool-size> + + <!--+ + | How long will an idle thread be kept before it will be discarded. + | Defaults to 60000ms (<0 == default) + +--> + <keep-alive-time-ms>60000</keep-alive-time-ms> + + <!--+ + | Which blocking policy should be used if the maximum pool + | size and queue size is bounded: + | 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. + | Abort: Throw a RuntimeException + | Discard: Throw away the current request and return. + | DiscardOldest: Throw away the oldest request and return. + +--> + <block-policy>RUN</block-policy> + + <!--+ + | Should queued and running jobs be given a chance to finished + | on system shutdown. Defaults to true + +--> + <shutdown-graceful>true</shutdown-graceful> + + <!--+ + | The maximum time to wait for running jobs to complete. + | Defaults to unlimited time (<0 == default) + +--> + <shutdown-wait-time-ms>5000</shutdown-wait-time-ms> + </thread-pool> + + <!--+ + | Definition of the JobStore. + | Store type can be one of "ram" (default), "tx", or "cmt". + | + | "tx" and "cmt" stores require datasource configuration. + | (Attributes delegate and provider are optional) + <store type="tx" delegate="org.quartz.impl.jdbcjobstore.StdJDBCDelegate"> + <datasource provider="jndi">jdbc/MyJobStoreDS</datasource> + </store> + +--> + <store type="ram"/> + + <!-- Definintions of triggers --> + <triggers> + <!--+ + | A trigger element has the following attributes: + | name: A name for the trigger. Mandatory + | target: A role name to lookup the job object in the ServiceManager. Mandatory + | concurrent-runs: Is it allowed to reschedule a job even if the previous one is + | still running. Optionl, defaults to true. + | A trigger element has the following child elements: + | cron: A string expression defining the scheduling timing. + | Optional. If not specified the following elements are explored: + | seconds: Expression for the secods part of a cron expression. + | minutes: Expression for the minutes part of a cron expression. + | hours: Expression for the hours part of a cron expression. + | days: Expression for the days part of a cron expression. + | month: Expression for the months part of a cron expression. + | weekdays: Expression for the weekdays part of a cron expression. + | years: Expression for the years part of a cron expression. + | For detailed information about the expressions look at the + | documentation. + +--> + + <!--+ + | Sample trigger definitions, use components defined below. + <trigger name="test-job1" + target="org.apache.cocoon.components.cron.CronJob/test" + concurrent-runs="false"> + <cron>*/12 * * * * ? *</cron> + </trigger> + <trigger name="test-job2" + target="org.apache.cocoon.components.cron.CronJob/test" + concurrent-runs="true"> + <seconds>*/12</seconds> + <minutes>*/5</minutes> + <hours>8,10,12,14,16,18</hours> + <days>?</days> + <months>*</months> + <weekdays>SUN-FRI</weekdays> + </trigger> + <trigger name="pipeline-test" + target="org.apache.cocoon.components.cron.CronJob/pipeline-test" + concurrent-runs="true"> + <minutes>0</minutes> + <hours>12</hours> + <days>?</days> + <months>*</months> + <weekdays>MON-FRI</weekdays> + </trigger> + +--> + </triggers> + </component> + + <!--+ + | Sample definition of the TestCronJob cron job, used by + | trigger configuration above. + <component role="org.apache.cocoon.components.cron.CronJob/test" + class="org.apache.cocoon.components.cron.TestCronJob" + logger="cron.test"> + <msg>I'm here</msg> + <sleep>23000</sleep> + <pipeline>samples/hello-world/hello.xhtml</pipeline> + </component> + +--> + + <!--+ + | Sample definition of the CocoonPipelineCronJob cron job, used by + | trigger configuration above. + <component role="org.apache.cocoon.components.cron.CronJob/pipeline-test" + class="org.apache.cocoon.components.cron.CocoonPipelineCronJob" + logger="cron.pipeline"> + <pipeline>samples/hello-world/hello.xhtml</pipeline> + </component> + +--> + +</components> Deleted: /cocoon/trunk/src/blocks/cron/conf/cron.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/conf/cron.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/cron/conf/include-cron.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/conf/include-cron.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/cron/conf/include-cron.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-cron.xconf']"> + <include src="WEB-INF/xconf/cocoon-cron.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/databases/WEB-INF/xconf/cocoon-databases.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/WEB-INF/xconf/cocoon-databases.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/databases/WEB-INF/xconf/cocoon-databases.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/database/database.roles"/> + + <source-factories> + <!-- blob pseudo protocol --> + <component-instance name="blob" class="org.apache.cocoon.components.source.impl.BlobSourceFactory"/> + </source-factories> + + <datasources> + <jdbc logger="core.datasources.personnel" name="personnel"> + <!-- + If you have an Oracle database, and are using the the + pool-controller below, you should add the attribute + "oradb" and set it to true. + + <pool-controller min="5" max="10" oradb="true"/> + + That way the test to see if the server has disconnected + the JdbcConnection will function properly. + --> + <pool-controller max="10" min="5"/> + <!-- + If you need to ensure an autocommit is set to true or + false, then create the "auto-commit" element below. + + <auto-commit>false</auto-commit> + + The default is true. + --> + <dburl>jdbc:hsqldb:hsql://localhost:9002</dburl> + <user>sa</user> + <password></password> + </jdbc> + </datasources> + + <input-modules> + <component-instance logger="core.modules.input" name="collection" class="org.apache.cocoon.components.modules.input.CollectionMetaModule"/> + </input-modules> + + <autoincrement-modules> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.HsqlIdentityAutoIncrementModule"/> +<!-- + Choose the one suitable for your DBMS. You *can* have more than + one at a time, but they need to have different names. You then + need to specify explicitly, which one to use in your descriptor + file. + + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.ManualAutoIncrementModule"/> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.IfxSerialAutoIncrementModule"/> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.McKoiSequenceModule"/> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.MysqlAutoIncrementModule"/> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.PgsqlAutoIncrementModule"/> + <component-instance logger="core.modules.auto" name="auto" class="org.apache.cocoon.components.modules.database.SQLServerIdentityAutoIncrementModule"/> +--> + </autoincrement-modules> + +</components> Deleted: /cocoon/trunk/src/blocks/databases/conf/blob.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/blob.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/databases/conf/datasources.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/datasources.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/databases/conf/db-modules-input.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/db-modules-input.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/databases/conf/db-modules.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/db-modules.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/databases/conf/db-modules.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/db-modules.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/databases/conf/include-databases.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/conf/include-databases.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/databases/conf/include-databases.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-databases.xconf']"> + <include src="WEB-INF/xconf/cocoon-databases.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/databases/java/org/apache/cocoon/components/database/database.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/databases/java/org/apache/cocoon/components/database/database.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/databases/java/org/apache/cocoon/components/database/database.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + + <role name="org.apache.avalon.excalibur.datasource.DataSourceComponentSelector" + shorthand="datasources" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> + <hint shorthand="jdbc" class="org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource"/> + <!-- hint shorthand="jdbc" class="org.apache.avalon.excalibur.datasource.JdbcDataSource"/ --> + <hint shorthand="j2ee" class="org.apache.avalon.excalibur.datasource.J2eeDataSource"/> + <hint shorthand="informix" class="org.apache.avalon.excalibur.datasource.InformixDataSource"/> + </role> + + + <!-- database modules --> + + <role name="org.apache.cocoon.components.modules.database.AutoIncrementModuleSelector" + shorthand="autoincrement-modules" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/deli/WEB-INF/xconf/cocoon-deli.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/deli/WEB-INF/xconf/cocoon-deli.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/deli/WEB-INF/xconf/cocoon-deli.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/deli/deli.roles"/> + + <!--+ + | Deli CC/PP Database + | + | Deli matches the requesting user agent with a database of CC/PP + | profiles and augments the set of variables available to any XSLT + | stylesheet with stuff like user agent screen size, or color depth + | that can be useful for tuning your output to the various devices. + | + | Note: this is mostly useful for mobile agents such as cell phones + | or PDA where it's possible to associate the user-agent with the + | device that runs on. + +--> + <deli class="org.apache.cocoon.components.deli.DeliImpl"> + <parameter name="deli-config-file" value="WEB-INF/deli/config/deliConfig.xml"/> + </deli> +</components> Deleted: /cocoon/trunk/src/blocks/deli/conf/deli.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/deli/conf/deli.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/deli/conf/deli.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/deli/conf/deli.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/deli/conf/include-deli.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/deli/conf/include-deli.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/deli/conf/include-deli.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-deli.xconf']"> + <include src="WEB-INF/xconf/cocoon-deli.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/deli/java/org/apache/cocoon/components/deli/deli.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/deli/java/org/apache/cocoon/components/deli/deli.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/deli/java/org/apache/cocoon/components/deli/deli.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.deli.Deli" + shorthand="deli" + default-class="org.apache.cocoon.components.deli.DeliImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/eventcache/WEB-INF/xconf/cocoon-eventcache.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/eventcache/WEB-INF/xconf/cocoon-eventcache.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/eventcache/WEB-INF/xconf/cocoon-eventcache.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component class="org.apache.cocoon.caching.impl.JMSEventMessageListener" + role="org.apache.cocoon.caching.impl.JMSEventMessageListener" logger="core.jms"> + <parameter name="connection" value="local-topics"/> + <parameter name="topic" value="topic1"/> + <!-- + <parameter name="eventcache-role" value="org.apache.cocoon.caching.Cache/EventAware"/> + --> + </component> + + <component role="org.apache.cocoon.caching.Cache/EventAware" + class="org.apache.cocoon.caching.impl.EventAwareCacheImpl"/> + <!-- The event registry which maps Cache events to Pipeline keys --> + <!--component role="org.apache.cocoon.caching.EventRegistry" + class="org.apache.cocoon.caching.impl.DefaultEventRegistryImpl"/--> + <component role="org.apache.cocoon.caching.EventRegistry" + class="org.apache.cocoon.caching.impl.StoreEventRegistryImpl"/> +</components> Deleted: /cocoon/trunk/src/blocks/eventcache/conf/eventcache.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/eventcache/conf/eventcache.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/eventcache/conf/include-eventcache.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/eventcache/conf/include-eventcache.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/eventcache/conf/include-eventcache.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-eventcache.xconf']"> + <include src="WEB-INF/xconf/cocoon-eventcache.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/eventcache/conf/jmslistener.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/eventcache/conf/jmslistener.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces-samples.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces-samples.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces-samples.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component-instance role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.core.container.DefaultServiceSelector"> + <!-- + - CarStore Demo taglib: Custom components + --> + <taglib name="http://java.sun.com/jsf/demo/components" logger="sitemap.taglib.jsf.demo" class="org.apache.cocoon.core.container.CocoonServiceSelector"> + <tag name="area" class="org.apache.cocoon.faces.samples.components.taglib.AreaTag" logger="sitemap.taglib.jsf.demo"/> + <tag name="map" class="org.apache.cocoon.faces.samples.components.taglib.MapTag" logger="sitemap.taglib.jsf.demo"/> + </taglib> + + <!-- + - CarStore Demo taglib: Custom validator + --> + <taglib name="urn:carstoretaglibrary_1.1" logger="sitemap.taglib.jsf.carstore" class="org.apache.cocoon.core.container.CocoonServiceSelector"> + <tag name="format_validator" class="org.apache.cocoon.faces.samples.carstore.FormatValidatorTag" logger="sitemap.taglib.jsf.carstore"/> + </taglib> + + </component-instance> +</components> Added: cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/faces/WEB-INF/xconf/cocoon-faces.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component-instance role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.core.container.DefaultServiceSelector"> + <taglib name="http://java.sun.com/jsf/core" logger="sitemap.taglib.jsf" class="org.apache.cocoon.core.container.CocoonServiceSelector"> + <tag name="actionListener" class="org.apache.cocoon.faces.taglib.ActionListenerTag" logger="sitemap.taglib.jsf"/> + <tag name="attribute" class="org.apache.cocoon.faces.taglib.AttributeTag" logger="sitemap.taglib.jsf"/> + <tag name="convertDateTime" class="org.apache.cocoon.faces.taglib.ConvertDateTimeTag" logger="sitemap.taglib.jsf"/> + <tag name="converter" class="org.apache.cocoon.faces.taglib.ConverterTag" logger="sitemap.taglib.jsf"/> + <tag name="convertNumber" class="org.apache.cocoon.faces.taglib.ConvertNumberTag" logger="sitemap.taglib.jsf"/> + <tag name="facet" class="org.apache.cocoon.faces.taglib.FacetTag" logger="sitemap.taglib.jsf"/> + <tag name="loadBundle" class="org.apache.cocoon.faces.taglib.LoadBundleTag" logger="sitemap.taglib.jsf"/> + <tag name="param" class="org.apache.cocoon.faces.taglib.ParameterTag" logger="sitemap.taglib.jsf"/> + <tag name="selectItem" class="org.apache.cocoon.faces.taglib.SelectItemTag" logger="sitemap.taglib.jsf"/> + <tag name="selectItems" class="org.apache.cocoon.faces.taglib.SelectItemsTag" logger="sitemap.taglib.jsf"/> + <tag name="subview" class="org.apache.cocoon.faces.taglib.SubviewTag" logger="sitemap.taglib.jsf"/> + <tag name="validateDoubleRange" class="org.apache.cocoon.faces.taglib.ValidateDoubleRangeTag" logger="sitemap.taglib.jsf"/> + <tag name="validateLength" class="org.apache.cocoon.faces.taglib.ValidateLengthTag" logger="sitemap.taglib.jsf"/> + <tag name="validateLongRange" class="org.apache.cocoon.faces.taglib.ValidateLongRangeTag" logger="sitemap.taglib.jsf"/> + <tag name="validator" class="org.apache.cocoon.faces.taglib.ValidatorTag" logger="sitemap.taglib.jsf"/> + <tag name="valueChangeListener" class="org.apache.cocoon.faces.taglib.ValueChangeListenerTag" logger="sitemap.taglib.jsf"/> + <tag name="verbatim" class="org.apache.cocoon.faces.taglib.VerbatimTag" logger="sitemap.taglib.jsf"/> + <tag name="view" class="org.apache.cocoon.faces.taglib.ViewTag" logger="sitemap.taglib.jsf"/> + </taglib> + <taglib name="http://java.sun.com/jsf/html" logger="sitemap.taglib.jsf.html" class="org.apache.cocoon.core.container.CocoonServiceSelector"> + <tag name="column" class="org.apache.cocoon.faces.taglib.html.ColumnTag" logger="sitemap.taglib.jsf.html"/> + <tag name="commandButton" class="org.apache.cocoon.faces.taglib.html.CommandButtonTag" logger="sitemap.taglib.jsf.html"/> + <tag name="commandLink" class="org.apache.cocoon.faces.taglib.html.CommandLinkTag" logger="sitemap.taglib.jsf.html"/> + <tag name="dataTable" class="org.apache.cocoon.faces.taglib.html.DataTableTag" logger="sitemap.taglib.jsf.html"/> + <tag name="form" class="org.apache.cocoon.faces.taglib.html.FormTag" logger="sitemap.taglib.jsf.html"/> + <tag name="graphicImage" class="org.apache.cocoon.faces.taglib.html.GraphicImageTag" logger="sitemap.taglib.jsf.html"/> + <tag name="inputHidden" class="org.apache.cocoon.faces.taglib.html.InputHiddenTag" logger="sitemap.taglib.jsf.html"/> + <tag name="inputSecret" class="org.apache.cocoon.faces.taglib.html.InputSecretTag" logger="sitemap.taglib.jsf.html"/> + <tag name="inputText" class="org.apache.cocoon.faces.taglib.html.InputTextTag" logger="sitemap.taglib.jsf.html"/> + <tag name="inputTextarea" class="org.apache.cocoon.faces.taglib.html.InputTextareaTag" logger="sitemap.taglib.jsf.html"/> + <tag name="message" class="org.apache.cocoon.faces.taglib.html.MessageTag" logger="sitemap.taglib.jsf.html"/> + <tag name="messages" class="org.apache.cocoon.faces.taglib.html.MessagesTag" logger="sitemap.taglib.jsf.html"/> + <tag name="outputFormat" class="org.apache.cocoon.faces.taglib.html.OutputFormatTag" logger="sitemap.taglib.jsf.html"/> + <tag name="outputLabel" class="org.apache.cocoon.faces.taglib.html.OutputLabelTag" logger="sitemap.taglib.jsf.html"/> + <tag name="outputLink" class="org.apache.cocoon.faces.taglib.html.OutputLinkTag" logger="sitemap.taglib.jsf.html"/> + <tag name="outputText" class="org.apache.cocoon.faces.taglib.html.OutputTextTag" logger="sitemap.taglib.jsf.html"/> + <tag name="panelGrid" class="org.apache.cocoon.faces.taglib.html.PanelGridTag" logger="sitemap.taglib.jsf.html"/> + <tag name="panelGroup" class="org.apache.cocoon.faces.taglib.html.PanelGroupTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectBooleanCheckbox" class="org.apache.cocoon.faces.taglib.html.SelectBooleanCheckboxTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectManyCheckbox" class="org.apache.cocoon.faces.taglib.html.SelectManyCheckboxTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectManyListbox" class="org.apache.cocoon.faces.taglib.html.SelectManyListboxTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectManyMenu" class="org.apache.cocoon.faces.taglib.html.SelectManyMenuTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectOneListbox" class="org.apache.cocoon.faces.taglib.html.SelectOneListboxTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectOneMenu" class="org.apache.cocoon.faces.taglib.html.SelectOneMenuTag" logger="sitemap.taglib.jsf.html"/> + <tag name="selectOneRadio" class="org.apache.cocoon.faces.taglib.html.SelectOneRadioTag" logger="sitemap.taglib.jsf.html"/> + </taglib> + </component-instance> +</components> Deleted: /cocoon/trunk/src/blocks/faces/conf/faces-taglib.samplesxconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/faces/conf/faces-taglib.samplesxconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/faces/conf/faces-taglib.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/faces/conf/faces-taglib.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/faces/conf/include-faces.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/faces/conf/include-faces.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/faces/conf/include-faces.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-faces.xconf']"> + <include src="WEB-INF/xconf/cocoon-faces.xconf"/> + <include src="WEB-INF/xconf/cocoon-faces-samples.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/forms/WEB-INF/xconf/cocoon-forms.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/WEB-INF/xconf/cocoon-forms.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/WEB-INF/xconf/cocoon-forms.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,184 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/forms/forms.roles"/> + + <forms-binding logger="forms.binding"> + <bindings> + <binding name="group" src="org.apache.cocoon.forms.binding.GroupJXPathBindingBuilder"/> + <binding name="value" src="org.apache.cocoon.forms.binding.ValueJXPathBindingBuilder"/> + <binding name="multi-value" src="org.apache.cocoon.forms.binding.MultiValueJXPathBindingBuilder"/> + <binding name="context" src="org.apache.cocoon.forms.binding.ContextJXPathBindingBuilder"/> + <binding name="repeater" src="org.apache.cocoon.forms.binding.RepeaterJXPathBindingBuilder"/> + <binding name="simple-repeater" src="org.apache.cocoon.forms.binding.SimpleRepeaterJXPathBindingBuilder"/> + <binding name="temp-repeater" src="org.apache.cocoon.forms.binding.TempRepeaterJXPathBindingBuilder"/> + <binding name="aggregate" src="org.apache.cocoon.forms.binding.AggregateJXPathBindingBuilder"/> + <binding name="set-attribute" src="org.apache.cocoon.forms.binding.SetAttributeJXPathBindingBuilder"/> + <binding name="insert-node" src="org.apache.cocoon.forms.binding.InsertNodeJXPathBindingBuilder"/> + <binding name="delete-node" src="org.apache.cocoon.forms.binding.DeleteNodeJXPathBindingBuilder"/> + <binding name="insert-bean" src="org.apache.cocoon.forms.binding.InsertBeanJXPathBindingBuilder"/> + <binding name="javascript" src="org.apache.cocoon.forms.binding.JavaScriptJXPathBindingBuilder"/> + <binding name="custom" src="org.apache.cocoon.forms.binding.CustomJXPathBindingBuilder" /> + <binding name="case" src="org.apache.cocoon.forms.binding.CaseJXPathBindingBuilder"/> + <binding name="class" src="org.apache.cocoon.forms.binding.ClassJXPathBindingBuilder"/> + <binding name="new" src="org.apache.cocoon.forms.binding.NewJXPathBindingBuilder"/> + <binding name="struct" src="org.apache.cocoon.forms.binding.StructJXPathBindingBuilder"/> + <binding name="union" src="org.apache.cocoon.forms.binding.UnionJXPathBindingBuilder"/> + </bindings> + </forms-binding> + + <!--+ + | forms's datatypes and validation rules. + +--> + <forms-datatype logger="forms"> + <datatypes> + <datatype name="string" src="org.apache.cocoon.forms.datatype.typeimpl.StringTypeBuilder"> + <convertors default="dummy" plain="dummy"> + <convertor name="dummy" src="org.apache.cocoon.forms.datatype.convertor.DummyStringConvertorBuilder"/> + <convertor name="htmlcleaner" src="org.apache.cocoon.forms.datatype.convertor.HtmlCleaningConvertorBuilder"/> + <convertor name="html2xml" src="org.apache.cocoon.forms.datatype.convertor.HTMLtoXMLStringConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="integer" src="org.apache.cocoon.forms.datatype.typeimpl.IntegerTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainIntegerConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingIntegerConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="long" src="org.apache.cocoon.forms.datatype.typeimpl.LongTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainLongConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingLongConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="decimal" src="org.apache.cocoon.forms.datatype.typeimpl.DecimalTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainDecimalConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingDecimalConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="float" src="org.apache.cocoon.forms.datatype.typeimpl.FloatTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainFloatConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingFloatConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="double" src="org.apache.cocoon.forms.datatype.typeimpl.DoubleTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainDoubleConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingDoubleConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="date" src="org.apache.cocoon.forms.datatype.typeimpl.DateTypeBuilder"> + <convertors default="formatting" plain="millis"> + <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingDateConvertorBuilder"/> + <convertor name="millis" src="org.apache.cocoon.forms.datatype.convertor.MillisDateConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="boolean" src="org.apache.cocoon.forms.datatype.typeimpl.BooleanTypeBuilder"> + <convertors default="plain" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainBooleanConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="enum" src="org.apache.cocoon.forms.datatype.typeimpl.EnumTypeBuilder"> + <convertors default="enum" plain="enum"> + <convertor name="enum" src="org.apache.cocoon.forms.datatype.convertor.EnumConvertorBuilder"/> + </convertors> + </datatype> + </datatypes> + <validation-rules> + <!-- old-style datatype validators (deprecated) --> + <validation-rule name="length" src="org.apache.cocoon.forms.datatype.validationruleimpl.LengthValidationRuleBuilder"/> + <validation-rule name="email" src="org.apache.cocoon.forms.datatype.validationruleimpl.EmailValidationRuleBuilder"/> + <validation-rule name="value-count" src="org.apache.cocoon.forms.datatype.validationruleimpl.ValueCountValidationRuleBuilder"/> + <validation-rule name="range" src="org.apache.cocoon.forms.datatype.validationruleimpl.RangeValidationRuleBuilder"/> + <validation-rule name="assert" src="org.apache.cocoon.forms.datatype.validationruleimpl.AssertValidationRuleBuilder"/> + <validation-rule name="mod10" src="org.apache.cocoon.forms.datatype.validationruleimpl.Mod10ValidationRuleBuilder"/> + <validation-rule name="regexp" src="org.apache.cocoon.forms.datatype.validationruleimpl.RegExpValidationRuleBuilder"/> + </validation-rules> + </forms-datatype> + + <forms-expression logger="forms.expression"> + <function name="Null" class="org.apache.cocoon.forms.expression.NullFunction"/> + <function name="IsNull" class="org.apache.cocoon.forms.expression.IsNullFunction"/> + <function name="String" class="org.apache.cocoon.forms.expression.StringFunction"/> + </forms-expression> + + <!--+ + | forms's FormManager component + +--> + <forms-formmanager> + <widgets> + <widget name="form" src="org.apache.cocoon.forms.formmodel.FormDefinitionBuilder"/> + <widget name="field" src="org.apache.cocoon.forms.formmodel.FieldDefinitionBuilder"/> + <widget name="group" src="org.apache.cocoon.forms.formmodel.GroupDefinitionBuilder"/> + <widget name="repeater" src="org.apache.cocoon.forms.formmodel.RepeaterDefinitionBuilder"/> + <widget name="booleanfield" src="org.apache.cocoon.forms.formmodel.BooleanFieldDefinitionBuilder"/> + <widget name="multivaluefield" src="org.apache.cocoon.forms.formmodel.MultiValueFieldDefinitionBuilder"/> + <widget name="action" src="org.apache.cocoon.forms.formmodel.ActionDefinitionBuilder"/> + <widget name="repeater-action" src="org.apache.cocoon.forms.formmodel.RepeaterActionDefinitionBuilder"/> + <widget name="row-action" src="org.apache.cocoon.forms.formmodel.RowActionDefinitionBuilder"/> + <widget name="submit" src="org.apache.cocoon.forms.formmodel.SubmitDefinitionBuilder"/> + <widget name="button" src="org.apache.cocoon.forms.formmodel.ButtonDefinitionBuilder"/> + <widget name="aggregatefield" src="org.apache.cocoon.forms.formmodel.AggregateFieldDefinitionBuilder"/> + <widget name="output" src="org.apache.cocoon.forms.formmodel.OutputDefinitionBuilder"/> + <widget name="upload" src="org.apache.cocoon.forms.formmodel.UploadDefinitionBuilder"/> + <widget name="messages" src="org.apache.cocoon.forms.formmodel.MessagesDefinitionBuilder"/> + <widget name="class" src="org.apache.cocoon.forms.formmodel.ClassDefinitionBuilder"/> + <widget name="new" src="org.apache.cocoon.forms.formmodel.NewDefinitionBuilder"/> + <widget name="struct" src="org.apache.cocoon.forms.formmodel.StructDefinitionBuilder"/> + <widget name="union" src="org.apache.cocoon.forms.formmodel.UnionDefinitionBuilder"/> + </widgets> + </forms-formmanager> + + <forms-selection-lists default="default"> + <selection-list name="default" class="org.apache.cocoon.forms.datatype.DefaultSelectionListBuilder"/> + <selection-list name="flow-jxpath" class="org.apache.cocoon.forms.datatype.FlowJXPathSelectionListBuilder"/> + <selection-list name="enum" class="org.apache.cocoon.forms.datatype.EnumSelectionListBuilder"/> + <selection-list name="java" class="org.apache.cocoon.forms.datatype.JavaSelectionListBuilder"/> + </forms-selection-lists> + + <forms-validators> + <!-- new-style validators --> + <validator name="javascript" class="org.apache.cocoon.forms.validation.impl.JavaScriptValidatorBuilder"/> + <validator name="length" class="org.apache.cocoon.forms.validation.impl.LengthValidatorBuilder"/> + <validator name="email" class="org.apache.cocoon.forms.validation.impl.EmailValidatorBuilder"/> + <validator name="value-count" class="org.apache.cocoon.forms.validation.impl.ValueCountValidatorBuilder"/> + <validator name="range" class="org.apache.cocoon.forms.validation.impl.RangeValidatorBuilder"/> + <validator name="assert" class="org.apache.cocoon.forms.validation.impl.AssertValidatorBuilder"/> + <validator name="mod10" class="org.apache.cocoon.forms.validation.impl.Mod10ValidatorBuilder"/> + <validator name="regexp" class="org.apache.cocoon.forms.validation.impl.RegExpValidatorBuilder"/> + </forms-validators> + + <forms-widgetlisteners> + <listener name="java" class="org.apache.cocoon.forms.event.impl.JavaClassWidgetListenerBuilder"/> + <listener name="javascript" class="org.apache.cocoon.forms.event.impl.JavaScriptWidgetListenerBuilder"/> + </forms-widgetlisteners> + + <!--+ + | Sitemap components + +--> + <generators> + <generator name="forms" logger="forms" src="org.apache.cocoon.forms.generation.FormsGenerator"/> + </generators> + + <transformers> + <transformer name="forms" logger="forms" src="org.apache.cocoon.forms.transformation.FormsTemplateTransformer"/> + </transformers> + +</components> \ No newline at end of file Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-binding.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-binding.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-binding.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-binding.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-cache.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-cache.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-datatype.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-datatype.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-datatype.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-expression.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-expression.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-expression.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-expression.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-form.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-form.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-form.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-form.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-generator.xmap Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-generator.xmap?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-selection-lists.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-transformator.xmap Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-transformator.xmap?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-validators.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-validators.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-validators.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-validators.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-widgetlisteners.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/forms/conf/include-forms.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/include-forms.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/conf/include-forms.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-forms.xconf']"> + <include src="WEB-INF/xconf/cocoon-forms.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/forms.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/forms.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/forms.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.forms.binding.BindingManager" + shorthand="forms-binding" + default-class="org.apache.cocoon.forms.binding.JXPathBindingManager"/> + + <role name="org.apache.cocoon.forms.CacheManager" + shorthand="forms-cachemanager" + default-class="org.apache.cocoon.forms.DefaultCacheManager"/> + + <role name="org.apache.cocoon.forms.datatype.DatatypeManager" + shorthand="forms-datatype" + default-class="org.apache.cocoon.forms.datatype.DefaultDatatypeManager"/> + + <role name="org.apache.cocoon.forms.expression.ExpressionManager" + shorthand="forms-expression" + default-class="org.apache.cocoon.forms.expression.DefaultExpressionManager"/> + + <role name="org.apache.cocoon.forms.FormManager" + shorthand="forms-formmanager" + default-class="org.apache.cocoon.forms.DefaultFormManager"/> + + <role name="org.apache.cocoon.forms.datatype.SelectionListBuilderSelector" + shorthand="forms-selection-lists" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + + <role name="org.apache.cocoon.forms.validation.WidgetValidatorBuilderSelector" + shorthand="forms-validators" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + + <role name="org.apache.cocoon.forms.event.WidgetListenerBuilderSelector" + shorthand="forms-widgetlisteners" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + +</role-list> \ No newline at end of file Modified: cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js&r1=123674&p2=cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js (original) +++ cocoon/trunk/src/blocks/forms/samples/flow/forms_flow_example.js Wed Dec 29 12:39:50 2004 @@ -147,4 +147,11 @@ ); } +function do_xdoceditor() { + var form = new Form("forms/xdoceditor.xml"); + form.showForm("xdoceditor-display-pipeline.jx"); + + print(form.lookupWidget("doc").getValue()); +} + Added: cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor.xml?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor.xml Wed Dec 29 12:39:50 2004 @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<!--+ + | CVS $Id$ + +--> + +<fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition" + xmlns:i18n="http://apache.org/cocoon/i18n/2.1"> + + <fd:widgets> + + <fd:field id="title" required="true"> + <fd:datatype base="string"/> + </fd:field> + + <fd:field id="version"> + <fd:datatype base="string"/> + </fd:field> + + <!--todo: add "authors" repeater --> + + <fd:field id="body"> + <fd:datatype base="string"> + <fd:convertor type="html-to-xml"> + <fd:html-to-xml src="forms/xdoceditor_html2xml.xsl"/> + <fd:xml-to-html src="forms/xdoceditor_xml2html.xsl"/> + </fd:convertor> + </fd:datatype> + </fd:field> + + <fd:submit id="ok" action-command="foo" > + <fd:label>Submit</fd:label> + </fd:submit> + </fd:widgets> + +</fd:form> Added: cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_binding.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_binding.xml?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_binding.xml Wed Dec 29 12:39:50 2004 @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<!--+ + | CVS $Id$ + +--> + +<fb:context xmlns:fb="http://apache.org/cocoon/forms/1.0#binding" + path="."> + + <fb:simple-repeater id="contacts" parent-path="contacts" row-path="contact"> + <fb:value id="ID" path="@id"/> + <fb:value id="firstname" path="firstname"/> + <fb:value id="lastname" path="lastname"/> + </fb:simple-repeater> + +</fb:context> Added: cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_html2xml.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_html2xml.xsl?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_html2xml.xsl Wed Dec 29 12:39:50 2004 @@ -0,0 +1,48 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + +<xsl:template match="body"> + <body> + <xsl:apply-templates select="children::node()[1]"> + <xsl:with-param name="level" select="0"/> + </xsl:apply-templates> + </body> +</xsl:template> + +<xsl:template match="h1|h2|h3"> + <xsl:param name="stop-id"/> + <xsl:if test="generate-id() != $stop-id"> + <xsl:variable name="name" select="name(.)"/> + <xsl:variable name="nextHeader" select="following-sibling::*[name() = $name]"/> + + <xsl:variable name="next-id" select="generate-id($nextHeader)"/> + + <xsl:element name="s{substring(name(.), 2)}"> + <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute> + <xsl:apply-templates select="following-sibling::node()[1]"> + <xsl:with-param name="stop-id" select="$next-id"/> + </xsl:apply-templates> + </xsl:element> + + <xsl:apply-templates select="$nextHeader"/> + </xsl:if> +</xsl:template> + +<xsl:template match="*"> + <xsl:param name="stop-id"/> + <xsl:if test="generate-id() != $stop-id"> + <xsl:copy> + <xsl:copy-of select="@*"/> + <xsl:apply-templates> + <xsl:with-param name="stop-id" select="$stop-id"/> + </xsl:apply-templates> + </xsl:copy> + </xsl:if> +</xsl:template> + +<!-- unknown elements: only copy the text --> +<xsl:template match="*"> + <xsl:value-of select="."/> +</xsl:template> + + +</xsl:stylesheet> \ No newline at end of file Added: cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_template.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_template.xml?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/forms/samples/forms/xdoceditor_template.xml Wed Dec 29 12:39:50 2004 @@ -0,0 +1,111 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- This file is similar to form1_template_action.xml. They differ in group layout, + form's action attribute (to use continuations) and, this one is a dynamic form + template that changes the 'contacts' repeater layout depending on its size --> +<page xmlns:ft="http://apache.org/cocoon/forms/1.0#template" + xmlns:fi="http://apache.org/cocoon/forms/1.0#instance" + xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"> + + <!-- Import the macros that define CForms template elements --> + <jx:import uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/> + + <title>Dynamic template</title> + <style type="text/css"> + /* Additional styles for alternating row colors */ + .forms-row-0 td { + padding: 5px; + background-color: #E0E0E0; + } + + .forms-row-1 td { + padding: 5px; + } + </style> + + <content> + <ft:form-template action="#{$continuation/id}.continue" method="POST"> + + <p>This is an example of how dynamic templates (using the JX macros) allow to change the + page structure depending on the form contents. By adding or removing rows in the repeater + below you will see:</p> + <ul> + <li>when there are no contacts, only the "Add contact" button is displayed and the table isn't shown,</li> + <li>when there are some contacts, the "move up" and "move down" buttons are not shown on the first and last lines, respectively.</li> + </ul> + <jx:choose> + <jx:when test="${form.getChild('contacts').getSize() == 0}"> + <p><strong><em>There are no contacts to display</em></strong></p> + </jx:when> + <jx:otherwise> + + <table border="1"> + <tr> + <th><ft:repeater-widget-label id="contacts" widget-id="firstname"/></th> + <th><ft:repeater-widget-label id="contacts" widget-id="lastname"/></th> + <th><ft:repeater-widget-label id="contacts" widget-id="ID"/></th> + <th><ft:repeater-widget-label id="contacts" widget-id="select"/></th> + </tr> + <!-- The contents of the repeater-widget element is a template that will + be applied to each row in the repeater. --> + <ft:repeater-widget id="contacts"> + <tr class="forms-row-${repeaterLoop.index % 2}"> + <td><ft:widget id="firstname"/></td> + <td><ft:widget id="lastname"/></td> + <td><ft:widget id="ID"/></td> + <td> + <!-- Don't display the "move up" button on the first row --> + <jx:choose> + <jx:when test="${repeaterLoop.first}"> + <img src="resources/img/blank_btn.gif"/> + </jx:when> + <jx:otherwise> + <ft:widget id="up"> + <fi:styling type="image" src="resources/img/move_up.gif"/> + </ft:widget> + </jx:otherwise> + </jx:choose> + <!-- Don't display the "move down" button on the first row --> + <jx:choose> + <jx:when test="${repeaterLoop.last}"> + <img src="resources/img/blank_btn.gif"/> + </jx:when> + <jx:otherwise> + <ft:widget id="down"> + <fi:styling type="image" src="resources/img/move_down.gif"/> + </ft:widget> + </jx:otherwise> + </jx:choose> + <ft:widget id="select"/> + </td> + </tr> + </ft:repeater-widget> + </table> + </jx:otherwise> + </jx:choose> + <p> + <ft:widget id="addcontact"/> + <jx:if test="${widget.getChild('contacts').getSize() > 0}"> + <ft:widget id="removecontacts"/> + </jx:if> + </p> + <ft:widget id="submit"/><br/> + <a href="./do-dynaRepeater.flow">Restart this sample</a> - <a href="./">Back to samples</a> + + </ft:form-template> + </content> +</page> Added: cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/hsqldb/WEB-INF/xconf/cocoon-hsqldb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/hsqldb/hsqldb.roles"/> + + <!--+ + | HSQLDB Server for samples: + | + | port : number port where the server is listening + | silent : true/false display all queries + | trace : true/false display JDBC trace messages + +--> + <hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl" + logger="core.hsqldb-server" + pool-max="1" pool-min="1"> + <parameter name="port" value="9002"/> + <parameter name="silent" value="true"/> + <parameter name="trace" value="false"/> + <parameter name="thread-pool-name" value="daemon"/> + </hsqldb-server> + +</components> Deleted: /cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/conf/hsqldb.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/hsqldb/conf/include-hsqldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/conf/include-hsqldb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/hsqldb/conf/include-hsqldb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-hsqldb.xconf']"> + <include src="WEB-INF/xconf/cocoon-hsqldb.xconf"/> +</xconf> Added: cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/hsqldb.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/hsqldb.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb/hsqldb.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.hsqldb.Server" shorthand="hsqldb-server" default-class="org.apache.cocoon.components.hsqldb.ServerImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/html/WEB-INF/xconf/cocoon-html.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/html/WEB-INF/xconf/cocoon-html.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/html/WEB-INF/xconf/cocoon-html.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component-instance + role="org.apache.excalibur.xml.sax.SAXParser/HTML" + class="org.apache.excalibur.xml.sax.JTidyHTMLParser" + mime-type="text/html"/> + +</components> Added: cocoon/trunk/src/blocks/html/conf/include-html.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/html/conf/include-html.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/html/conf/include-html.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-html.xconf']"> + <include src="WEB-INF/xconf/cocoon-html.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/html/conf/tidy.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/html/conf/tidy.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/html/conf/tidy.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/html/conf/tidy.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/javaflow/WEB-INF/xconf/cocoon-javaflow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/javaflow/WEB-INF/xconf/cocoon-javaflow.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/javaflow/WEB-INF/xconf/cocoon-javaflow.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <flow-interpreters> + <component-instance name="java" class="org.apache.cocoon.components.flow.java.JavaInterpreter"/> + </flow-interpreters> +</components> Added: cocoon/trunk/src/blocks/javaflow/conf/include-javaflow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/javaflow/conf/include-javaflow.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/javaflow/conf/include-javaflow.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-javaflow.xconf']"> + <include src="WEB-INF/xconf/cocoon-javaflow.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/javaflow/conf/javaflow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/javaflow/conf/javaflow.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/jms/WEB-INF/xconf/cocoon-jms.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jms/WEB-INF/xconf/cocoon-jms.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jms/WEB-INF/xconf/cocoon-jms.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/jms/jms.roles"/> + + <!-- + + | Configuration of a set JMS Connections. + | Three types of connections can be configured: + | - general <connection>s: created by a call to ConnectionFactory.createConnection() + | - <topic-connection>s: created by a call to TopicConnectionFactory.createTopicConnection() + | - <queue-connection>s: created by a call to QeueuConnectionFactory.createQueueConnection() + | + | Each connection must have a unique name. This is the name other components + | use to retrieve it. + | + | All connection types support the same set of parameters: + | - javax.naming.*: properties used to create the initial JNDI context. + | JNDI parameters must be specified with their literal values here. + | For example, javax.naming.Context.INITIAL_CONTEXT_FACTORY is + | equivalent to "java.naming.factory.initial". + | - connection-factory: the JNDI lookup name of the javax.jms.ConnectionFactory service. + | - username / password: optional connection credentials + + --> + <jms-connection-manager logger="core.jms"> + <topic-connection name="local-topics"> + <parameter name="java.naming.factory.initial" value="org.exolab.jms.jndi.InitialContextFactory"/> + <parameter name="java.naming.provider.url" value="rmi://localhost:1099/"/> + <!-- OpenJMS RMI topic connection factory --> + <parameter name="connection-factory" value="JmsTopicConnectionFactory"/> + <!-- + <parameter name="username" value="user"/> + <parameter name="password" value="secret"/> + --> + </topic-connection> + </jms-connection-manager> +</components> Added: cocoon/trunk/src/blocks/jms/conf/include-jms.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jms/conf/include-jms.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jms/conf/include-jms.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-jms.xconf']"> + <include src="WEB-INF/xconf/cocoon-jms.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jms/conf/jms-connection-manager.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/jms/java/org/apache/cocoon/components/jms/jms.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jms/java/org/apache/cocoon/components/jms/jms.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jms/java/org/apache/cocoon/components/jms/jms.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.jms.JMSConnectionManager" + shorthand="jms-connection-manager" + default-class="org.apache.cocoon.components.jms.JMSConnectionManagerImpl"/> + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/jsp/WEB-INF/xconf/cocoon-jsp.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jsp/WEB-INF/xconf/cocoon-jsp.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jsp/WEB-INF/xconf/cocoon-jsp.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/jsp/jsp.roles"/> + + <!-- JSP Engine: + The JSPGenerator and JSPReader select a JSPEngine component. The JSPEngine component + launches a JSP servlet engine of your servlet container, feeds the + HttpRequest into the JSP servlet engine, and pipes the jsp response as + SAX events into Cocoon2. The JSP page is specified by the HttpRequest. + This way you can continue to use your JSP pages. Your migration from JSP + to XSP may be done step by step. You may specify your JSP pages either as + JSP scriptlets or as JSP-XML. But keep in mind that your JSP output should + be valid XML. + --> + <jsp-engine logger="core.jsp-engine"> + <parameter name="servlet-class" value="org.apache.jasper.servlet.JspServlet"/> + </jsp-engine> + + <!-- + Alternative implementation that uses a RequestDispatcher for running named Servlets. + --> + <!-- + <jsp-engine logger="core.jsp-engine" class="org.apache.cocoon.components.jsp.JSPEngineImplNamedDispatcherInclude"> + <parameter name="servlet-name" value="*.jsp"/> + <parameter name="forward" value="false"/> + </jsp-engine> + --> +</components> Added: cocoon/trunk/src/blocks/jsp/conf/include-jsp.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jsp/conf/include-jsp.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jsp/conf/include-jsp.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-jsp.xconf']"> + <include src="WEB-INF/xconf/cocoon-jsp.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/jsp/conf/jsp.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jsp/conf/jsp.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/jsp/conf/jsp.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jsp/conf/jsp.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/jsp/java/org/apache/cocoon/components/jsp/jsp.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/jsp/java/org/apache/cocoon/components/jsp/jsp.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/jsp/java/org/apache/cocoon/components/jsp/jsp.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.jsp.JSPEngine" + shorthand="jsp-engine" + default-class="org.apache.cocoon.components.jsp.JSPEngineImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/linkrewriter/WEB-INF/xconf/cocoon-linkrewriter.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/linkrewriter/WEB-INF/xconf/cocoon-linkrewriter.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/linkrewriter/WEB-INF/xconf/cocoon-linkrewriter.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <input-modules> + + <!-- For the sitedemo sample --> + <component-instance + class="org.apache.cocoon.components.modules.input.XMLFileModule" + logger="core.modules.xml" name="linkmap"> + <file src="cocoon://samples/linkrewriter/sitedemo/linkmap"/> + <!-- Shouldn't this be the default? --> + <reloadable>true</reloadable> + </component-instance> + <component-instance + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.mapper" name="site"> + <input-module name="linkmap"/> + <prefix>/site/</prefix> + <suffix>/@href</suffix> + </component-instance> + + <!-- For the bookdemo sample --> + <component-instance + class="org.apache.cocoon.components.modules.input.XMLFileModule" + logger="core.modules.xml" name="book-raw"> + <!-- Shouldn't this be the default? --> + <file src="cocoon://samples/linkrewriter/bookdemo/linkmap"/> + <reloadable>true</reloadable> + </component-instance> + <component-instance + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.mapper" name="book"> + <input-module name="book-raw"/> + </component-instance> + + </input-modules> +</components> Added: cocoon/trunk/src/blocks/linkrewriter/conf/include-linkrewriter.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/linkrewriter/conf/include-linkrewriter.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/linkrewriter/conf/include-linkrewriter.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-linkrewriter.xconf']"> + <include src="WEB-INF/xconf/cocoon-linkrewriter.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/linkrewriter/conf/linkrewriter.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/linkrewriter/conf/linkrewriter.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/lucene/WEB-INF/xconf/cocoon-lucene.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/WEB-INF/xconf/cocoon-lucene.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/lucene/WEB-INF/xconf/cocoon-lucene.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/search/lucene.roles"/> + + <!-- Search: + These are the components that handle the search. + + Cocoon indexer write into an index. + Cocoon searcher reads form an index, returning matched hits. + Cocoon crawler crawls all links starting from a given base URI. + Lucene xml indexer build 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> Added: cocoon/trunk/src/blocks/lucene/conf/include-lucene.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/conf/include-lucene.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/lucene/conf/include-lucene.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-lucene.xconf']"> + <include src="WEB-INF/xconf/cocoon-lucene.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/lucene/conf/lucene.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/conf/lucene.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/lucene/conf/lucene.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/conf/lucene.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/components/search/lucene.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/components/search/lucene.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/lucene/java/org/apache/cocoon/components/search/lucene.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <!-- Lucene Components --> + <role name="org.apache.cocoon.components.search.LuceneCocoonIndexer" shorthand="cocoon-indexer" +default-class="org.apache.cocoon.components.search.SimpleLuceneCocoonIndexerImpl"/> + + <role name="org.apache.cocoon.components.search.LuceneCocoonSearcher" shorthand="cocoon-searcher" +default-class="org.apache.cocoon.components.search.SimpleLuceneCocoonSearcherImpl"/> + + <role name="org.apache.cocoon.components.search.LuceneXMLIndexer" shorthand="lucene-xml-indexer" +default-class="org.apache.cocoon.components.search.SimpleLuceneXMLIndexerImpl"/> + + <role name="org.apache.cocoon.components.crawler.CocoonCrawler" shorthand="cocoon-crawler" +default-class="org.apache.cocoon.components.crawler.SimpleCocoonCrawlerImpl"/> + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/mail/WEB-INF/xconf/cocoon-mail.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/mail/WEB-INF/xconf/cocoon-mail.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/mail/WEB-INF/xconf/cocoon-mail.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <!--+ + | Component for simplified mail sending. + +--> + <component role="org.apache.cocoon.mail.MailSender" + class="org.apache.cocoon.mail.MailMessageSender" + logger="core.mail.MailSender"> + <!--+ + | SMTP host name, user name, and password. + <smtp-host>127.0.0.1</smtp-host> + <smtp-user>john</smtp-user> + <smtp-password>john</smtp-password> + +--> + </component> +</components> Added: cocoon/trunk/src/blocks/mail/conf/include-mail.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/mail/conf/include-mail.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/mail/conf/include-mail.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-mail.xconf']"> + <include src="WEB-INF/xconf/cocoon-mail.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/mail/conf/mailsender.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/mail/conf/mailsender.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/ojb/WEB-INF/xconf/cocoon-ojb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/WEB-INF/xconf/cocoon-ojb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/ojb/WEB-INF/xconf/cocoon-ojb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/ojb/ojb.roles"/> + + <!-- ODMG Implementation Interface --> + <ojb-odmg logger="core.ojb-odmg"/> + <!-- PersistenceBroker Interface --> + <ojb-pb logger="core.ojb-pb"/> + + <!-- Persistent Manager Factory for JDO --> + <!-- uncomment in order to set the logger to a category other than core.startup + <ojb-jdo class="org.apache.cocoon.ojb.jdo.components.JdoPMFImpl" logger="core.ojb-jdo"/> + --> + +</components> Added: cocoon/trunk/src/blocks/ojb/conf/include-ojb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/include-ojb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/ojb/conf/include-ojb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-ojb.xconf']"> + <include src="WEB-INF/xconf/cocoon-ojb.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb-odmg.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb-pb.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/ojb/conf/ojb.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/conf/ojb.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/ojb/java/org/apache/cocoon/ojb/ojb.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/ojb/java/org/apache/cocoon/ojb/ojb.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/ojb/java/org/apache/cocoon/ojb/ojb.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.ojb.broker.components.PBFactory" + shorthand="ojb-pb" + default-class="org.apache.cocoon.ojb.broker.components.PBFactoryImpl"/> + + <role name="org.apache.cocoon.ojb.odmg.components.OdmgImplementation" + shorthand="ojb-odmg" + default-class="org.apache.cocoon.ojb.odmg.components.OdmgImplementationImpl"/> + + <role name="org.apache.cocoon.ojb.jdo.components.JdoPMF" + shorthand="ojb-jdo" + default-class="org.apache.cocoon.ojb.jdo.components.JdoPMFImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/portal-fw/WEB-INF/xconf/cocoon-portal-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/WEB-INF/xconf/cocoon-portal-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal-fw/WEB-INF/xconf/cocoon-portal-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/webapps/portal/portal.roles"/> + + <portal-manager logger="core.portal-manager" + pool-max="32" pool-min="8" pool-grow="4"/> + + <session-context-providers> + <component-instance class="org.apache.cocoon.webapps.portal.context.SessionContextProviderImpl" name="portal"/> + </session-context-providers> +</components> Added: cocoon/trunk/src/blocks/portal-fw/conf/include-portal-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/conf/include-portal-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal-fw/conf/include-portal-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-portal-fw.xconf']"> + <include src="WEB-INF/xconf/cocoon-portal-fw.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/portal-fw/conf/portal.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/conf/portal.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/portal-fw/conf/portal.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/conf/portal.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/portal-fw/conf/provider.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/conf/provider.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/portal-fw/java/org/apache/cocoon/webapps/portal/portal.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal-fw/java/org/apache/cocoon/webapps/portal/portal.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal-fw/java/org/apache/cocoon/webapps/portal/portal.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.webapps.portal.components.PortalManager" + shorthand="portal-manager" + default-class="org.apache.cocoon.webapps.portal.components.PortalManagerImpl"/> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal-samples.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal-samples.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal-samples.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,292 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <!-- THIS IS A SAMPLE PORTAL + It demonstrates several features of the portal engine, + so it's not optimized for production. Make sure that + if you use the portal for your own projects that you + remove all unused stuff from the configuration! + --> + <component class="org.apache.cocoon.portal.impl.PortalServiceImpl" logger="portal" role="org.apache.cocoon.portal.PortalService"> + <portals> + <portal name="portal"> + <profile-manager>org.apache.cocoon.portal.profile.ProfileManager/Auth</profile-manager> + </portal> + </portals> + </component> + + <component class="org.apache.cocoon.portal.profile.impl.AuthenticationProfileManager" logger="portal" role="org.apache.cocoon.portal.profile.ProfileManager/Auth"> + </component> + + <!-- Renderer configuration --> + <component class="org.apache.cocoon.core.container.DefaultServiceSelector" role="org.apache.cocoon.portal.layout.renderer.RendererSelector"> + <renderer name="column" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/column.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="column-layout"/> + </aspect> + <aspect type="composite-content"> + <parameter name="root-tag" value="false"/> + </aspect> + </aspects> + </renderer> + <renderer name="row" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/row.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="row-layout"/> + </aspect> + <aspect type="composite-content"> + <parameter name="root-tag" value="false"/> + </aspect> + </aspects> + </renderer> + <renderer name="tab" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/tab.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="tab-layout"/> + </aspect> + <aspect type="history"/> + <aspect type="tab-content"> + <parameter name="root-tag" value="false"/> + <parameter name="store" value="session"/> + </aspect> + </aspects> + </renderer> + <renderer name="rawtab" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="parameter"> + <parameter name="tag-name" value="tab-layout"/> + </aspect> + <aspect type="history"/> + <aspect type="tab-content"> + <parameter name="root-tag" value="false"/> + <parameter name="store" value="session"/> + </aspect> + </aspects> + </renderer> + <renderer name="linktab" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal"> + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/linktab.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="linktab-layout"/> + </aspect> + <aspect type="history"/> + <aspect type="tab-content"> + <parameter name="root-tag" value="false"/> + <parameter name="store" value="session"/> + </aspect> + </aspects> + </renderer> + <renderer name="window" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/window.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="window"/> + </aspect> + <aspect type="window"> + <parameter name="root-tag" value="false"/> + </aspect> + <aspect type="coplet-removing"/> + <aspect type="coplet-full-screen"/> + <aspect type="coplet-sizing"/> + <aspect type="history"/> + <aspect type="basket"/> + <aspect type="coplet-cinclude"/> + </aspects> + </renderer> + <renderer name="frame" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" > + <aspects> + <aspect type="frame"> + <parameter name="store" value="request"/> + </aspect> + </aspects> + </renderer> + <renderer name="nowindow" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal"> + <aspects> + <aspect type="history"/> + <aspect type="coplet"/> + </aspects> + </renderer> + <renderer name="portlet-window" + class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" + logger="portal"> + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/window.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="window"/> + </aspect> + <aspect type="portlet-window"> + <parameter name="root-tag" value="false"/> + </aspect> + <aspect type="coplet-removing"/> + <aspect type="history"/> + <aspect type="basket"/> + <aspect type="coplet-cinclude"/> + </aspects> + </renderer> + <renderer name="link" + class="org.apache.cocoon.portal.layout.renderer.impl.DefaultLinkRenderer" + logger="portal"/> + <renderer name="decorated-frame" class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal"> + <aspects> + <aspect type="xslt"> + <parameter name="style" value="{global:skin}styles/frame.xsl"/> + </aspect> + <aspect type="parameter"> + <parameter name="tag-name" value="frame"/> + </aspect> + <aspect type="frame"> + <parameter name="store" value="request"/> + </aspect> + </aspects> + </renderer> + </component> + +<!-- Layout factory configuration --> +<component class="org.apache.cocoon.portal.layout.impl.DefaultLayoutFactory" + role="org.apache.cocoon.portal.layout.LayoutFactory"> + <layouts> + <layout name="column" + class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl"> + <renderers default="column"> + <renderer name="column"/> + </renderers> + </layout> + <layout name="row" + class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl"> + <renderers default="row"> + <renderer name="row"/> + </renderers> + </layout> + <layout name="tab" + class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" + item-class="org.apache.cocoon.portal.layout.NamedItem"> + <renderers default="tab"> + <renderer name="tab"/> + </renderers> + </layout> + <layout name="rawtab" + class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" + item-class="org.apache.cocoon.portal.layout.NamedItem"> + <renderers default="rawtab"> + <renderer name="rawtab"/> + </renderers> + </layout> + <layout name="linktab" + class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" + item-class="org.apache.cocoon.portal.layout.NamedItem"> + <renderers default="linktab"> + <renderer name="linktab"/> + </renderers> + </layout> + <layout name="frame" + class="org.apache.cocoon.portal.layout.impl.FrameLayout" + create-id="true"> + <renderers default="frame"> + <renderer name="frame"/> + </renderers> + </layout> + <layout name="coplet" + class="org.apache.cocoon.portal.layout.impl.CopletLayout"> + <renderers default="window"> + <renderer name="window"/> + <renderer name="portlet-window"/> + <renderer name="nowindow"/> + </renderers> + </layout> + <layout name="link" + class="org.apache.cocoon.portal.layout.impl.LinkLayout" + create-id="true"> + <renderers default="link"> + <renderer name="link"/> + </renderers> + <aspects> + <aspect name="link-layout-key" + class="java.lang.String" + store="session" + auto-create="false"> + </aspect> + <aspect name="link-layout-id" + class="java.lang.String" + store="session" + auto-create="false"> + </aspect> + <!-- + <aspect name="static" + class="java.lang.Boolean" + store="persistent" + auto-create="true" + value="false"> + </aspect> + --> + </aspects> + </layout> + </layouts> +</component> + +<!-- Coplet factory configuration --> +<component class="org.apache.cocoon.portal.coplet.impl.DefaultCopletFactory" + role="org.apache.cocoon.portal.coplet.CopletFactory"> + <coplets> + <coplet name="standard" + class="org.apache.cocoon.portal.coplet.CopletData"> + <coplet-data-aspects> + <!-- Use only the 'memory' aspect store with aspect datas! --> + <aspect auto-create="true" class="java.lang.Boolean" name="sizable" store="memory" value="true"/> + <aspect auto-create="true" class="java.lang.Boolean" name="mandatory" store="memory" value="false"/> + <!-- + <aspect name="maxpageable" + class="java.lang.Boolean" + store="memory" + auto-create="true" + value="true"/> + --> + </coplet-data-aspects> + + <coplet-instance-data-aspects> + <!-- Choose from tempory, request and session aspect store: --> + <aspect name="size" + class="java.lang.Integer" + store="session" + auto-create="true" + value="1"/> + <aspect name="fullScreen" + class="java.lang.Boolean" + store="temporary" + auto-create="true" + value="false"/> + </coplet-instance-data-aspects> + </coplet> + </coplets> + </component> +</components> Added: cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal/WEB-INF/xconf/cocoon-portal.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,160 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <!-- Portal service definition template + <component class="org.apache.cocoon.portal.impl.PortalServiceImpl" logger="portal" role="org.apache.cocoon.portal.PortalService"> + <portals> + *** Here comes the portal configuration *** + </portals> + </component> + --> + <source-factories> + <!-- portal protocol --> + <component-instance class="org.apache.cocoon.portal.source.CopletSourceFactory" name="coplet"/> + </source-factories> + <input-modules> + <component-instance logger="core.modules.input" name="coplet" class="org.apache.cocoon.portal.components.modules.input.CopletModule"/> + <component-instance logger="core.modules.input" name="portal-layout" class="org.apache.cocoon.portal.components.modules.input.LayoutModule"/> + </input-modules> + + <!-- Event Aspect configuration --> + <component class="org.apache.cocoon.core.container.DefaultServiceSelector" role="org.apache.cocoon.portal.event.aspect.EventAspectSelector"> + <aspect name="action-counter" class="org.apache.cocoon.portal.event.aspect.impl.ActionCounterEventAspect"/> + <aspect name="request-parameter" class="org.apache.cocoon.portal.event.aspect.impl.RequestParameterEventAspect"/> + <aspect name="frame" class="org.apache.cocoon.portal.event.aspect.impl.FrameEventAspect"/> + <aspect name="link" class="org.apache.cocoon.portal.event.aspect.impl.LinkEventAspect" /> + <aspect name="full-screen-coplet" class="org.apache.cocoon.portal.event.aspect.impl.FullScreenCopletEventAspect"/> + + <!-- This aspect sets headers on the response that tell the client to not cache the response: --> + <aspect name="no-client-caching" class="org.apache.cocoon.portal.event.aspect.impl.NoClientCachingEventAspect"/> + </component> + + <component class="org.apache.cocoon.portal.event.impl.DefaultEventManager" logger="portal" role="org.apache.cocoon.portal.event.EventManager"> + <event-aspects> + <aspect type="action-counter"/> + <aspect type="frame"/> + <aspect type="link"/> + <aspect type="full-screen-coplet"/> + <aspect type="request-parameter"/> + </event-aspects> + <!-- add a new instance of each class as a subscriber: --> + <subscriber-classes> + <class name="org.apache.cocoon.portal.event.subscriber.impl.DefaultChangeAspectDataEventSubscriber"/> + <class name="org.apache.cocoon.portal.event.subscriber.impl.DefaultJXPathEventSubscriber"/> + <class name="org.apache.cocoon.portal.event.subscriber.impl.DefaulCopletDataEventSubscriber"/> + </subscriber-classes> + <!-- add each component as a subscriber (the component should be thread safe): --> + <subscriber-roles> + <!-- <role name="AVALON-ROLE"/> --> + </subscriber-roles> + </component> + + <!-- This is the portal manager. + If you don't need the JSR-168 support uncomment the following line and comment out + the definition below: + <component class="org.apache.cocoon.portal.impl.PortalManagerImpl" + logger="portal" role="org.apache.cocoon.portal.PortalManager"/> + + --> + <component class="org.apache.cocoon.portal.impl.PortletPortalManager" + logger="portal" role="org.apache.cocoon.portal.PortalManager"/> + + <component class="org.apache.cocoon.portal.impl.DefaultLinkService" logger="portal" role="org.apache.cocoon.portal.LinkService"/> + + <component class="org.apache.cocoon.portal.event.impl.DefaultEventConverter" logger="portal" role="org.apache.cocoon.portal.event.EventConverter"> + </component> + + <!-- Coplet Adapter configuration --> + <component class="org.apache.cocoon.core.container.DefaultServiceSelector" + role="org.apache.cocoon.portal.coplet.adapter.CopletAdapterSelector"> + <!-- This is the pipeline/uri based adapter --> + <coplet-adapter name="uri" + class="org.apache.cocoon.portal.coplet.adapter.impl.URICopletAdapter" + logger="portal"/> + <!-- This is the JSR-168 adapter --> + <coplet-adapter name="portlet" + class="org.apache.cocoon.portal.coplet.adapter.impl.PortletAdapter" + logger="portal"/> + <!-- This is an extension of the uri adapter --> + <coplet-adapter name="caching-uri" + class="org.apache.cocoon.portal.coplet.adapter.impl.CachingURICopletAdapter" logger="portal"/> + <!-- This is the application adapter --> + <coplet-adapter name="application" + class="org.apache.cocoon.portal.coplet.adapter.impl.ApplicationCopletAdapter" logger="portal"/> + </component> + + + <!-- Renderer Aspect configuration --> + <component class="org.apache.cocoon.core.container.DefaultServiceSelector" role="org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectSelector"> + <aspect name="composite-content" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.CompositeContentAspect"/> + <aspect name="tab-content" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.TabContentAspect"/> + <aspect name="window" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.WindowAspect"/> + <aspect name="portlet-window" + class="org.apache.cocoon.portal.layout.renderer.aspect.impl.PortletWindowAspect"/> + + <!-- This aspect can be used to render the minimize/maximize buttons --> + <aspect name="coplet-sizing" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.SizingAspect"/> + + <!-- This aspect can be used to render the remove button --> + <aspect name="coplet-removing" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.RemovableAspect"/> + + <!-- This aspect can be used to render a full-screen button --> + <aspect name="coplet-full-screen" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.FullScreenCopletAspect"/> + + <!-- This aspect can be used to render cinclude statements that will be used to include the coplet content, + use the coplet aspect below to directly stream the content --> + <aspect name="coplet-cinclude" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.CIncludeCopletAspect"/> + + <!-- This aspect creates a history of all layout aspect datas, + coplet aspect datas and coplet attributes. It can be used by + the bookmark action to browse the history --> + <aspect name="history" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.HistoryAspect"/> + + <!-- This aspect can be used to render the content of the coplet --> + <aspect name="coplet" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.DefaultCopletAspect"/> + <aspect name="frame" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.FrameAspect"/> + <aspect name="xslt" class="org.apache.cocoon.portal.layout.renderer.aspect.impl.XSLTAspect"/> + <aspect class="org.apache.cocoon.portal.layout.renderer.aspect.impl.ParameterAspect" name="parameter"/> + <!-- This is the special basket renderer --> + <aspect class="org.apache.cocoon.portal.coplets.basket.AddToBasketAspect" name="basket"/> + </component> + + <!-- Aspect Storage configuration --> + <component class="org.apache.cocoon.core.container.DefaultServiceSelector" + role="org.apache.cocoon.portal.aspect.AspectDataStoreSelector"> + <store name="temporary" class="org.apache.cocoon.portal.aspect.impl.TemporaryAspectDataStore"/> + <store name="request" class="org.apache.cocoon.portal.aspect.impl.RequestAspectDataStore"/> + <store name="session" class="org.apache.cocoon.portal.aspect.impl.SessionAspectDataStore"/> + <store name="persistent" class="org.apache.cocoon.portal.aspect.impl.PersistentAspectDataStore"/> + <store name="memory" class="org.apache.cocoon.portal.aspect.impl.MemoryAspectDataStore"/> + </component> + +<component class="org.apache.cocoon.components.persistence.CastorSourceConverter" role="org.apache.cocoon.components.persistence.CastorSourceConverter"> + <mapping-source source="layout">resource://org/apache/cocoon/portal/layout/layout.xml</mapping-source> + <mapping-source source="copletbasedata">resource://org/apache/cocoon/portal/coplet/copletbasedata.xml</mapping-source> + <mapping-source source="copletdata">resource://org/apache/cocoon/portal/coplet/copletdata.xml</mapping-source> + <mapping-source source="copletinstancedata">resource://org/apache/cocoon/portal/coplet/copletinstancedata.xml</mapping-source> + </component> + <component class="org.apache.cocoon.portal.profile.impl.MapProfileLS" role="org.apache.cocoon.portal.profile.ProfileLS" /> + + <component class="org.apache.cocoon.components.variables.DefaultVariableResolverFactory" role="org.apache.cocoon.components.variables.VariableResolverFactory" /> + <!-- This is the basket manager --> + <component class="org.apache.cocoon.portal.coplets.basket.BasketManagerImpl" + role="org.apache.cocoon.portal.coplets.basket.BasketManager"/> + +</components> Deleted: /cocoon/trunk/src/blocks/portal/conf/authportal.samplesxconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/authportal.samplesxconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/portal/conf/include-portal.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/include-portal.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/portal/conf/include-portal.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-portal.xconf']"> + <include src="WEB-INF/xconf/cocoon-portal.xconf"/> + <include src="WEB-INF/xconf/cocoon-portal-samples.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/portal/conf/modules.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/modules.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/portal/conf/portal.samplesxconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/portal.samplesxconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/portal/conf/portal.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/portal.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/portal/conf/protocol.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/protocol.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/profiler/WEB-INF/xconf/cocoon-profiler.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/profiler/WEB-INF/xconf/cocoon-profiler.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/profiler/WEB-INF/xconf/cocoon-profiler.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/profiler/profiler.roles"/> + + <!--+ + | Profiler: + | The profiler facilitates the gathering of statistics about timings of + | different steps of pipelines. + +--> + <profiler results="10"/> + +</components> Added: cocoon/trunk/src/blocks/profiler/conf/include-profiler.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/profiler/conf/include-profiler.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/profiler/conf/include-profiler.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-profiler.xconf']"> + <include src="WEB-INF/xconf/cocoon-profiler.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/profiler/conf/profiler.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/profiler/conf/profiler.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/profiler/conf/profiler.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/profiler/conf/profiler.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/profiler/java/org/apache/cocoon/components/profiler/profiler.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/profiler/java/org/apache/cocoon/components/profiler/profiler.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/profiler/java/org/apache/cocoon/components/profiler/profiler.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.profiler.Profiler" + shorthand="profiler" + default-class="org.apache.cocoon.components.profiler.ProfilerImpl"/> +</role-list> \ No newline at end of file Modified: cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java&r1=123674&p2=cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java (original) +++ cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java Wed Dec 29 12:39:50 2004 @@ -67,7 +67,7 @@ throws Exception { return AbstractComponentHandler.getComponentHandler( - clazz, config, manager, context, getLogger(), null, null); + null, clazz, config, manager, context, getLogger(), null, null); } public CompiledComponent newInstance() throws Exception { Added: cocoon/trunk/src/blocks/qdox/WEB-INF/xconf/cocoon-qdox.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/qdox/WEB-INF/xconf/cocoon-qdox.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/qdox/WEB-INF/xconf/cocoon-qdox.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <source-factories> + <component-instance + class="org.apache.cocoon.components.source.impl.QDoxSourceFactory" + logger="core.sources.qdox" + name="qdox"> + <include-inheritance value="yes" /> + + <!-- these source-roots must be configured for your system! --> + <source-roots group="test-source"> + <!-- test source-root as mentioned in the qdox block samples.xml file --> + <source-root uri="file:///tmp/qdox-test"/> + <!-- test source-root for linux (replace the above) --> + <!-- <source-root uri="jar:file:///usr/java/j2sdk1.4.2_03/src.zip!"/> --> + </source-roots> + + <!-- examples of other source-roots + <source-roots group="JDK"> + <source-root uri="jar:file:///tmp/jdk-src.zip!" /> + </source-roots> + <source-roots group="Avalon"> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon-logkit/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon-excalibur/component/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon-excalibur/sourceresolve/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon-excalibur/pool/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/jakarta-avalon-excalibur/xmlutil/src/java" /> + </source-roots> + <source-roots group="Cocoon"> + <source-root uri="file://D:/cvs-workspaces/apache/xml-cocoon2/src/java" /> + <source-root uri="file://D:/cvs-workspaces/apache/xml-cocoon2/src/deprecated/java" /> + </source-roots> + --> + + </component-instance> + </source-factories> +</components> Added: cocoon/trunk/src/blocks/qdox/conf/include-qdox.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/qdox/conf/include-qdox.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/qdox/conf/include-qdox.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-qdox.xconf']"> + <include src="WEB-INF/xconf/cocoon-qdox.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/qdox/conf/qdox.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/qdox/conf/qdox.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/repository/WEB-INF/xconf/cocoon-repository.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/WEB-INF/xconf/cocoon-repository.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/repository/WEB-INF/xconf/cocoon-repository.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/repository/repository.roles"/> + + <source-repository logger="core.source-repository" /> + + <!-- put your repository implementations here like + <component role="org.apache.cocoon.components.repository.RepositoryManager" + class="org.apache.cocoon.components.repository.RepositoryManager" + logger="core.repository"> + + <repository name="webdav" class="org.apache.cocoon.components.repository.impl.WebDAVRepository"/> + + </component> + --> + + <source-factories> + <!-- pseudo protocol for the repository source wrapper --> + <component-instance + name="repository" + class="org.apache.cocoon.components.source.impl.RepositorySourceFactory" + /> + </source-factories> + + <component role="org.apache.cocoon.components.source.SourceDescriptor" + class="org.apache.cocoon.components.source.impl.SourceDescriptorManager" + logger="core.source.sourcedescriptor"> + + <sourceinspector class="org.apache.cocoon.components.source.impl.XPathSourceInspector"> + <parameter name="namespace" value="http://xml.apache.org/cocoon/xdoc/1.0"/> + <parameter name="name" value="title"/> + <parameter name="extension" value=".xdoc"/> + <parameter name="xpath" value="/document/header/title"/> + </sourceinspector> + + <sourceinspector class="org.apache.cocoon.components.source.impl.JPEGSourceInspector"/> + <sourceinspector class="org.apache.cocoon.components.source.impl.GIFSourceInspector"/> + + <!-- You need to have databases block included to use this feature + <sourcedescriptor class="org.apache.cocoon.components.source.impl.SimpleJdbcSourceDescriptor"> + <property name="author" namespace="meta" /> + <property name="keyword" namespace="meta" /> + <datasource>personnel</datasource> + </sourcedescriptor> + --> + + </component> + +</components> Deleted: /cocoon/trunk/src/blocks/repository/conf/SourceRepository.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/SourceRepository.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/repository/conf/SourceRepository.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/SourceRepository.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/repository/conf/include-repository.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/include-repository.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/repository/conf/include-repository.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-repository.xconf']"> + <include src="WEB-INF/xconf/cocoon-repository.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/repository/conf/repository-manager.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/repository-manager.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/repository/conf/repository-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/repository-source.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/repository/conf/sourcedescriptor.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/conf/sourcedescriptor.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/repository/java/org/apache/cocoon/components/repository/repository.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/repository/java/org/apache/cocoon/components/repository/repository.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/repository/java/org/apache/cocoon/components/repository/repository.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.repository.SourceRepository" + shorthand="source-repository" + default-class="org.apache.cocoon.components.repository.SourceRepositoryImpl" + /> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,97 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <source-factories> + + <!--+ + | Caching source protocol. + | This protocol extension implements a proxy-like source + | that can cache the contents of its delegate source. + | + | The uri syntax is as follows: + | cached:subprotocol:/path[?cocoon:cache-expires=60][&cache-name=main] + | + | Where: + | - 'cached' is the caching source protocol scheme name as defined below. + | - 'subprotcol:/path' identifies the source to get the actual contents from + | eg. http://cocoon.apache.org/doco.html?version=1.2 + | - optional querystring parameters that start with 'cocoon:' represent special + | instructions to pass to the implementation. + | + | The protocol can be parametrized as follows: + | - 'async' (false). When this is set to true cached source contents are updated + | in the background. + | - 'cache-role' (org.apache.cocoon.caching.Cache). Use this if you want to use + | a Cache other than the default one. + | - 'refresher-role' (org.apache.cocoon.components.source.impl.Refresher). Use this + | if you wish to use a Refresher other than the default one. + | A Refresher is used when asynchronic caching is turned on. It is responsible for + | updating the cached contents in the background. + | - 'default-expires' (-1). The expires value if it is not specified on the source + | itself. The default value of -1 means to never expire. + +--> + <component-instance name="cached" + class="org.apache.cocoon.components.source.impl.CachingSourceFactory" + logger="core.source.cached"> + <!-- + <parameter name="async" value="true"/> + <parameter name="cache-role" value="org.apache.cocoon.caching.Cache"/> + <parameter name="default-expires" value="-1"/> + --> + <parameter name="refresher-role" value="org.apache.cocoon.components.source.impl.Refresher/Delay"/> + </component-instance> + </source-factories> + + <!--+ + | A Refresher is a component that is used by the CachingSource protocol. + | It is responsible for updating the cached contents of sources that are + | registered with it by the protocol. + | The DelayRefresher is an implementation that periodically updates the + | sources. + | It recognizes the following parameters: + | - 'write-interval' (0). The Refresher can persist its list of registered + | sources to update periodically. This parameter specifies how often + | it should write this list to file. Specifying a value of 0 (the default) + | means that target configurations will not be persisted at all. + | - 'write-file' (refresher-targets.xml). Specifying a different value + | than the default for this parameter only makes sense if you configure + | more than one DelayRefreshers. It represents the file name, relative to + | the cocoon working directory of the file the refresher writes its list + | of registered target configurations to. + | - 'update-target-role' (org.apache.cocoon.components.cron.CronJob/UpdateTarget) + | The role name of the CronJob to use for updating the Sources. + +--> + <component role="org.apache.cocoon.components.source.impl.Refresher/Delay" + class="org.apache.cocoon.components.source.impl.DelayRefresher" + logger="core.refresher.delay"> + <!-- + <parameter name="write-interval" value="0"/> + <parameter name="write-file" value="refresher-targets.xml"/> + <parameter name="update-target-role" value="org.apache.cocoon.components.cron.CronJob/UpdateTarget"/> + --> + </component> + + <!--+ + | This is the default CronJob for updating the Source files + | used by the DelayRefresher. + +--> + <component role="org.apache.cocoon.components.cron.CronJob/UpdateTarget" + class="org.apache.cocoon.components.source.impl.UpdateTarget" + logger="core.refresher.update"/> + +</components> \ No newline at end of file Added: cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-groovyflow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-groovyflow.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-groovyflow.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<!-- + Copyright 2002-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. +--> + +<components> +<!-- + <flow-interpreters> + <component-instance name="groovy" class="org.apache.cocoon.components.flow.groovy.GroovyInterpreter"/> + </flow-interpreters> +--> +</components> Added: cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-intercepted-flow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-intercepted-flow.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-intercepted-flow.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,49 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <flow-interpreters> + + <!-- Intercepted, FOM-aware JavaScript Interpreter --> + <component-instance class="org.apache.cocoon.components.flow.javascript.fom.AO_FOM_JavaScriptInterpreter" name="intercepted-javascript"> + <load-on-startup>resource://org/apache/cocoon/components/flow/javascript/fom/ao_fom_system.js</load-on-startup> + <reload-scripts>true</reload-scripts> + <check-time>40</check-time> + <!-- <debugger>enabled</debugger> --> <!-- JavaScript Debugger support --> + + <!-- ************* interception support ***************** --> + <!-- on/off switch --> + <enable-interception>true</enable-interception> + <!-- list of all functions that stop flow execution --> + <cont-creating-functions> + <function>cocoon.sendPageAndWait()</function> + <function>woody.send()</function> + </cont-creating-functions> + <!-- the result script is copied in the same directory as the basescript + if the file protocol is used to resolve the script + + WARNING: + the result script is streamed into the same directory as the basescript + with the only difference that "_intercepted.js" is appended. So make + sure that you don't create any files with the name + [yourPath]/[yourBasescript-name]_intercepted.js which will be overwritten + + --> + <serialize-result-script>false</serialize-result-script> + </component-instance> + </flow-interpreters> +</components> Added: cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-zip-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-zip-source.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/scratchpad/WEB-INF/xconf/cocoon-scratchpad-zip-source.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <source-factories> + <!-- zip pseudo protocol --> + <component-instance class="org.apache.cocoon.components.source.impl.ZipSourceFactory" name="zip"/> + </source-factories> +</components> Deleted: /cocoon/trunk/src/blocks/scratchpad/conf/caching-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/caching-source.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/scratchpad/conf/delay-refresher.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/delay-refresher.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/scratchpad/conf/groovyflow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/groovyflow.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/scratchpad/conf/include-scratchpad.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/include-scratchpad.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/scratchpad/conf/include-scratchpad.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf']"> + <include src="WEB-INF/xconf/cocoon-scratchpad-caching-source.xconf"/> + <include src="WEB-INF/xconf/cocoon-scratchpad-groovyflow.xconf"/> + <include src="WEB-INF/xconf/cocoon-scratchpad-intercepted-flow.xconf"/> + <include src="WEB-INF/xconf/cocoon-scratchpad-zip-source.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/scratchpad/conf/intercepted-flow.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/intercepted-flow.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/scratchpad/conf/zip-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/scratchpad/conf/zip-source.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/session-fw/WEB-INF/xconf/cocoon-session-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/WEB-INF/xconf/cocoon-session-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/session-fw/WEB-INF/xconf/cocoon-session-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/webapps/session/session.roles"/> + + <input-modules> + <!-- This input module provides access to the information of a session context --> + <component-instance logger="core.modules.input" name="session-context" class="org.apache.cocoon.webapps.session.components.ContextInputModule"/> + </input-modules> + + <session-manager logger="core.session-manager"/> + <session-form-manager logger="core.session-manager"/> + <session-transaction-manager logger="core.session-manager"/> + <session-context-manager logger="core.session-manager"/> + + <session-media-manager logger="core.media-manager" + pool-max="32" pool-min="8" pool-grow="4"> + <mediatypes default="html"> + <media name="wap" useragent="Nokia"/> + <media name="wap" useragent="UP"/> + <media name="wap" useragent="Wapalizer"/> + </mediatypes> + </session-media-manager> + + <session-context-providers> + <component-instance name="request" + class="org.apache.cocoon.webapps.session.context.StandardSessionContextProvider"/> + <component-instance name="temporary" + class="org.apache.cocoon.webapps.session.context.StandardSessionContextProvider"/> + </session-context-providers> + +</components> Added: cocoon/trunk/src/blocks/session-fw/conf/include-session-fw.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/conf/include-session-fw.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/session-fw/conf/include-session-fw.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-session-fw.xconf']"> + <include src="WEB-INF/xconf/cocoon-session-fw.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/session-fw/conf/modules.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/conf/modules.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/session-fw/conf/session.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/conf/session.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/session-fw/conf/session.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/conf/session.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/session.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/session.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/session-fw/java/org/apache/cocoon/webapps/session/session.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.webapps.session.ContextManager" + shorthand="session-context-manager" + default-class="org.apache.cocoon.webapps.session.components.DefaultContextManager"/> + + <role name="org.apache.cocoon.webapps.session.FormManager" + shorthand="session-form-manager" + default-class="org.apache.cocoon.webapps.session.components.DefaultFormManager"/> + + <role name="org.apache.cocoon.webapps.session.MediaManager" + shorthand="session-media-manager" + default-class="org.apache.cocoon.webapps.session.components.DefaultMediaManager"/> + + <role name="org.apache.cocoon.webapps.session.SessionManager" + shorthand="session-manager" + default-class="org.apache.cocoon.webapps.session.components.DefaultSessionManager"/> + + <role name="org.apache.cocoon.webapps.session.TransactionManager" + shorthand="session-transaction-manager" + default-class="org.apache.cocoon.webapps.session.components.DefaultTransactionManager"/> + + <role name="org.apache.cocoon.webapps.session.context.SessionContextProviderSelector" + shorthand="session-context-providers" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> + </role> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/slide/WEB-INF/xconf/cocoon-slide.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/WEB-INF/xconf/cocoon-slide.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/slide/WEB-INF/xconf/cocoon-slide.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/slide/slide.roles"/> + + <!--+ + | Jakarta Slide repository + | + | The Slide repository handles serveral sources sorted in namspaces. + +--> + <slide-repository + logger="slide.repository" + file="context://WEB-INF/slide.xconf" + /> + + <source-factories> + <!-- pseudo protocol for Jakarta Slide repositories --> + <component-instance + name="slide" + logger="slide.source" + class="org.apache.cocoon.components.source.impl.SlideSourceFactory" + /> + </source-factories> + + <input-modules> + <component-instance + name="slide" + class="org.apache.cocoon.components.modules.input.XMLFileModule" + logger="core.modules.slide"> + <reloadable>false</reloadable> + <cacheable>false</cacheable> + <file src="context://WEB-INF/slide.xconf"/> + </component-instance> + + <component-instance + name="slide-config" + class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" + logger="core.modules.slide-config"> + <prefix>/slide/[EMAIL PROTECTED]'cocoon']/configuration</prefix> + <input-module name="slide" /> + </component-instance> + </input-modules> +</components> Added: cocoon/trunk/src/blocks/slide/conf/include-slide.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/include-slide.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/slide/conf/include-slide.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-slide.xconf']"> + <include src="WEB-INF/xconf/cocoon-slide.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-module.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-module.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-repository.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-repository.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-repository.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-repository.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-source.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/slide/java/org/apache/cocoon/components/slide/slide.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/java/org/apache/cocoon/components/slide/slide.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/slide/java/org/apache/cocoon/components/slide/slide.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.components.slide.SlideRepository" + shorthand="slide-repository" + default-class="org.apache.cocoon.components.slide.impl.SlideRepositoryImpl" + /> +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/taglib/WEB-INF/xconf/cocoon-taglib.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/taglib/WEB-INF/xconf/cocoon-taglib.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/taglib/WEB-INF/xconf/cocoon-taglib.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,49 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <component role="org.apache.cocoon.jxpath.JXPathCocoonContexts" + class="org.apache.cocoon.jxpath.JXPathCocoonContexts" + logger="core.jxpath"/> + + <component role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.core.container.DefaultServiceSelector"> + <taglib name="urn:apache:taglib:core" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.core"> + <tag name="source" class="org.apache.cocoon.taglib.core.SourceTag" logger="sitemap.taglib.core.source" /> + </taglib> + <taglib name="urn:apache:taglib:datetime" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.datetime"> + <tag name="months" class="org.apache.cocoon.taglib.datetime.MonthsTag" logger="sitemap.taglib.datetime.months" /> + </taglib> + <taglib name="urn:apache:taglib:i18n" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.i18n"> + <tag name="locale" class="org.apache.cocoon.taglib.i18n.LocaleTag" logger="sitemap.taglib.i18n.Locale" /> + </taglib> + <taglib name="urn:apache:taglib:jxpath:core" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.jxpath"> + <tag name="out" class="org.apache.cocoon.taglib.jxpath.core.OutTag" logger="sitemap.taglib.jxpath.core.out" /> + <tag name="forEach" class="org.apache.cocoon.taglib.jxpath.core.ForEachTag" logger="sitemap.taglib.jxpath.core.forEach" /> + </taglib> + <taglib name="urn:apache:taglib:string" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.string"> + <tag name="lower" class="org.apache.cocoon.taglib.string.LowerCaseTag" logger="sitemap.taglib.string.lower" /> + <tag name="textRecording" class="org.apache.cocoon.taglib.string.TextRecordingTag" logger="sitemap.taglib.string.textRecording" /> + <tag name="trim" class="org.apache.cocoon.taglib.string.TrimTag" logger="sitemap.taglib.string.trim" /> + <tag name="upper" class="org.apache.cocoon.taglib.string.UpperCaseTag" logger="sitemap.taglib.string.upper" /> + </taglib> + <taglib name="urn:apache:taglib:test" class="org.apache.cocoon.core.container.CocoonServiceSelector" logger="sitemap.taglib.test"> + <tag name="hello" class="org.apache.cocoon.taglib.test.HelloWorldTag" logger="sitemap.taglib.test.hello" /> + <tag name="iteration" class="org.apache.cocoon.taglib.test.IterationTestTag" logger="sitemap.taglib.test.iteration" /> + </taglib> + </component> + +</components> Added: cocoon/trunk/src/blocks/taglib/conf/include-taglib.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/taglib/conf/include-taglib.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/taglib/conf/include-taglib.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-taglib.xconf']"> + <include src="WEB-INF/xconf/cocoon-taglib.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/taglib/conf/jxpath.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/taglib/conf/jxpath.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/taglib/conf/tag.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/taglib/conf/tag.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/web3/WEB-INF/xconf/cocoon-web3.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/web3/WEB-INF/xconf/cocoon-web3.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/web3/WEB-INF/xconf/cocoon-web3.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/components/web3/web3.roles"/> + + <web3 logger="core.web3"> + <!-- optional + <class>put your DSImpl here</class> + --> + <backend name="indy"> + <pool size="10" trace="false" level="0"> + <client>100</client> + <user>user</user> + <password>secret</password> + <language>DE</language> + <route>indy</route> + <system>00</system> + <gateway>sapgw00</gateway> + <program-id>USR-GR02</program-id> + </pool> + </backend> + </web3> + + <web3-streamer logger="core.web3"> + <default name="default" logger="core.web3.default-streamer"/> + </web3-streamer> + + <web3-client logger="core.web3-client"/> +</components> Added: cocoon/trunk/src/blocks/web3/conf/include-web3.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/web3/conf/include-web3.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/web3/conf/include-web3.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-web3.xconf']"> + <include src="WEB-INF/xconf/cocoon-web3.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/web3/conf/web3.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/web3/conf/web3.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/web3/conf/web3.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/web3/conf/web3.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/web3/java/org/apache/cocoon/components/web3/web3.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/web3/java/org/apache/cocoon/components/web3/web3.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/web3/java/org/apache/cocoon/components/web3/web3.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + + <role name="org.apache.cocoon.components.web3.Web3DataSourceSelector" + shorthand="web3" + default-class="org.apache.cocoon.components.web3.impl.Web3DataSourceSelectorImpl"/> + + <role name="org.apache.cocoon.components.web3.Web3StreamerSelector" + shorthand="web3-streamer" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> + <hint shorthand="default" + class="org.apache.cocoon.components.web3.impl.DefaultWeb3StreamerImpl"/> + <!-- your streamer here --> + </role> + + <role name="org.apache.cocoon.components.web3.Web3Client" + shorthand="web3-client" + default-class="org.apache.cocoon.components.web3.impl.Web3ClientImpl"/> + + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/webdav/WEB-INF/xconf/cocoon-webdav.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/webdav/WEB-INF/xconf/cocoon-webdav.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/webdav/WEB-INF/xconf/cocoon-webdav.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <!-- depends on the repository block --> + <include src="WEB-INF/xconf/cocoon-repository.xconf"/> + + <component role="org.apache.cocoon.components.repository.RepositoryManager" + class="org.apache.cocoon.components.repository.RepositoryManager" + logger="core.repository"> + + <repository name="webdav" class="org.apache.cocoon.components.repository.impl.WebDAVRepository"/> + + </component> + + <source-factories> + <!-- pseudo protocol for WebDAV repositories --> + <component-instance name="webdav" + class="org.apache.cocoon.components.source.impl.WebDAVSourceFactory"/> + </source-factories> +</components> Added: cocoon/trunk/src/blocks/webdav/conf/include-webdav.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/webdav/conf/include-webdav.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/webdav/conf/include-webdav.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-webdav.xconf']"> + <include src="WEB-INF/xconf/cocoon-webdav.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/webdav/conf/webdav-repository.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/webdav/conf/webdav-repository.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/webdav/conf/webdav-source.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/webdav/conf/webdav-source.xconf?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/woody/WEB-INF/xconf/cocoon-woody.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/WEB-INF/xconf/cocoon-woody.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/woody/WEB-INF/xconf/cocoon-woody.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,157 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <include src="resource://org/apache/cocoon/woody/woody.roles"/> + + <woody-binding logger="woody.binding"> + <bindings> + <binding name="value" src="org.apache.cocoon.woody.binding.ValueJXPathBindingBuilder"/> + <binding name="multi-value" src="org.apache.cocoon.woody.binding.MultiValueJXPathBindingBuilder"/> + <binding name="context" src="org.apache.cocoon.woody.binding.ContextJXPathBindingBuilder"/> + <binding name="repeater" src="org.apache.cocoon.woody.binding.RepeaterJXPathBindingBuilder"/> + <binding name="simple-repeater" src="org.apache.cocoon.woody.binding.SimpleRepeaterJXPathBindingBuilder"/> + <binding name="temp-repeater" src="org.apache.cocoon.woody.binding.TempRepeaterJXPathBindingBuilder"/> + <binding name="aggregate" src="org.apache.cocoon.woody.binding.AggregateJXPathBindingBuilder"/> + <binding name="set-attribute" src="org.apache.cocoon.woody.binding.SetAttributeJXPathBindingBuilder"/> + <binding name="insert-node" src="org.apache.cocoon.woody.binding.InsertNodeJXPathBindingBuilder"/> + <binding name="delete-node" src="org.apache.cocoon.woody.binding.DeleteNodeJXPathBindingBuilder"/> + <binding name="insert-bean" src="org.apache.cocoon.woody.binding.InsertBeanJXPathBindingBuilder"/> + <binding name="unique-field" src="org.apache.cocoon.woody.binding.UniqueFieldJXPathBindingBuilder"/> + <binding name="javascript" src="org.apache.cocoon.woody.binding.JavaScriptJXPathBindingBuilder"/> + <binding name="case" src="org.apache.cocoon.woody.binding.CaseJXPathBindingBuilder"/> + <binding name="class" src="org.apache.cocoon.woody.binding.ClassJXPathBindingBuilder"/> + <binding name="new" src="org.apache.cocoon.woody.binding.NewJXPathBindingBuilder"/> + <binding name="struct" src="org.apache.cocoon.woody.binding.StructJXPathBindingBuilder"/> + <binding name="union" src="org.apache.cocoon.woody.binding.UnionJXPathBindingBuilder"/> + </bindings> + </woody-binding> + + <!--+ + | Woody's datatypes and validation rules. + +--> + <woody-datatype logger="woody"> + <datatypes> + <datatype name="string" src="org.apache.cocoon.woody.datatype.typeimpl.StringTypeBuilder"> + <convertors default="dummy" plain="dummy"> + <convertor name="dummy" src="org.apache.cocoon.woody.datatype.convertor.DummyStringConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="integer" src="org.apache.cocoon.woody.datatype.typeimpl.IntegerTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainIntegerConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingIntegerConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="long" src="org.apache.cocoon.woody.datatype.typeimpl.LongTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainLongConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingLongConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="decimal" src="org.apache.cocoon.woody.datatype.typeimpl.DecimalTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainDecimalConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingDecimalConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="float" src="org.apache.cocoon.woody.datatype.typeimpl.FloatTypeBuilder"> + <convertors default="formatting" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainFloatConvertorBuilder"/> + <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingFloatConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="date" src="org.apache.cocoon.woody.datatype.typeimpl.DateTypeBuilder"> + <convertors default="formatting" plain="millis"> + <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingDateConvertorBuilder"/> + <convertor name="millis" src="org.apache.cocoon.woody.datatype.convertor.MillisDateConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="boolean" src="org.apache.cocoon.woody.datatype.typeimpl.BooleanTypeBuilder"> + <convertors default="plain" plain="plain"> + <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainBooleanConvertorBuilder"/> + </convertors> + </datatype> + <datatype name="enum" src="org.apache.cocoon.woody.datatype.typeimpl.EnumTypeBuilder"> + <convertors default="enum" plain="enum"> + <convertor name="enum" src="org.apache.cocoon.woody.datatype.convertor.EnumConvertorBuilder"/> + </convertors> + </datatype> + </datatypes> + <validation-rules> + <!-- old-style datatype validators (deprecated) --> + <validation-rule name="length" src="org.apache.cocoon.woody.datatype.validationruleimpl.LengthValidationRuleBuilder"/> + <validation-rule name="email" src="org.apache.cocoon.woody.datatype.validationruleimpl.EmailValidationRuleBuilder"/> + <validation-rule name="value-count" src="org.apache.cocoon.woody.datatype.validationruleimpl.ValueCountValidationRuleBuilder"/> + <validation-rule name="range" src="org.apache.cocoon.woody.datatype.validationruleimpl.RangeValidationRuleBuilder"/> + <validation-rule name="assert" src="org.apache.cocoon.woody.datatype.validationruleimpl.AssertValidationRuleBuilder"/> + <validation-rule name="mod10" src="org.apache.cocoon.woody.datatype.validationruleimpl.Mod10ValidationRuleBuilder"/> + <validation-rule name="regexp" src="org.apache.cocoon.woody.datatype.validationruleimpl.RegExpValidationRuleBuilder"/> + </validation-rules> + </woody-datatype> + + <woody-expression logger="woody.expression"> + <function name="Null" class="org.apache.cocoon.woody.expression.NullFunction"/> + <function name="IsNull" class="org.apache.cocoon.woody.expression.IsNullFunction"/> + <function name="String" class="org.apache.cocoon.woody.expression.StringFunction"/> + </woody-expression> + + <!--+ + | Woody's FormManager component + +--> + <woody-formmanager> + <widgets> + <widget name="form" src="org.apache.cocoon.woody.formmodel.FormDefinitionBuilder"/> + <widget name="field" src="org.apache.cocoon.woody.formmodel.FieldDefinitionBuilder"/> + <widget name="repeater" src="org.apache.cocoon.woody.formmodel.RepeaterDefinitionBuilder"/> + <widget name="booleanfield" src="org.apache.cocoon.woody.formmodel.BooleanFieldDefinitionBuilder"/> + <widget name="multivaluefield" src="org.apache.cocoon.woody.formmodel.MultiValueFieldDefinitionBuilder"/> + <widget name="action" src="org.apache.cocoon.woody.formmodel.ActionDefinitionBuilder"/> + <widget name="repeater-action" src="org.apache.cocoon.woody.formmodel.RepeaterActionDefinitionBuilder"/> + <widget name="row-action" src="org.apache.cocoon.woody.formmodel.RowActionDefinitionBuilder"/> + <widget name="submit" src="org.apache.cocoon.woody.formmodel.SubmitDefinitionBuilder"/> + <widget name="button" src="org.apache.cocoon.woody.formmodel.ButtonDefinitionBuilder"/> + <widget name="aggregatefield" src="org.apache.cocoon.woody.formmodel.AggregateFieldDefinitionBuilder"/> + <widget name="output" src="org.apache.cocoon.woody.formmodel.OutputDefinitionBuilder"/> + <widget name="upload" src="org.apache.cocoon.woody.formmodel.UploadDefinitionBuilder"/> + <widget name="messages" src="org.apache.cocoon.woody.formmodel.MessagesDefinitionBuilder"/> + <widget name="class" src="org.apache.cocoon.woody.formmodel.ClassDefinitionBuilder"/> + <widget name="new" src="org.apache.cocoon.woody.formmodel.NewDefinitionBuilder"/> + <widget name="struct" src="org.apache.cocoon.woody.formmodel.StructDefinitionBuilder"/> + <widget name="union" src="org.apache.cocoon.woody.formmodel.UnionDefinitionBuilder"/> + </widgets> + </woody-formmanager> + + <woody-selection-lists default="default"> + <selection-list name="default" class="org.apache.cocoon.woody.datatype.DefaultSelectionListBuilder"/> + <selection-list name="flow-jxpath" class="org.apache.cocoon.woody.datatype.FlowJXPathSelectionListBuilder"/> + <selection-list name="enum" class="org.apache.cocoon.woody.datatype.EnumSelectionListBuilder"/> + </woody-selection-lists> + + <woody-validators> + <!-- new-style validators --> + <validator name="javascript" class="org.apache.cocoon.woody.validation.impl.JavaScriptValidatorBuilder"/> + <validator name="length" class="org.apache.cocoon.woody.validation.impl.LengthValidatorBuilder"/> + <validator name="email" class="org.apache.cocoon.woody.validation.impl.EmailValidatorBuilder"/> + <validator name="value-count" class="org.apache.cocoon.woody.validation.impl.ValueCountValidatorBuilder"/> + <validator name="range" class="org.apache.cocoon.woody.validation.impl.RangeValidatorBuilder"/> + <validator name="assert" class="org.apache.cocoon.woody.validation.impl.AssertValidatorBuilder"/> + <validator name="mod10" class="org.apache.cocoon.woody.validation.impl.Mod10ValidatorBuilder"/> + <validator name="regexp" class="org.apache.cocoon.woody.validation.impl.RegExpValidatorBuilder"/> + </woody-validators> + +</components> Added: cocoon/trunk/src/blocks/woody/conf/include-woody.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/include-woody.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/woody/conf/include-woody.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-woody.xconf']"> + <include src="WEB-INF/xconf/cocoon-woody.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-binding.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-binding.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-binding.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-binding.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-cache.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-cache.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-datatype.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-datatype.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-datatype.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-datatype.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-expression.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-expression.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-expression.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-expression.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-form.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-form.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-form.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-form.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-selection-lists.xroles?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-validators.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-validators.xconf?view=auto&rev=123674 ============================================================================== Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-validators.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-validators.xroles?view=auto&rev=123674 ============================================================================== Added: cocoon/trunk/src/blocks/woody/java/org/apache/cocoon/woody/woody.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/java/org/apache/cocoon/woody/woody.roles?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/woody/java/org/apache/cocoon/woody/woody.roles Wed Dec 29 12:39:50 2004 @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<!-- + 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. +--> +<!-- $Id$ --> +<role-list> + <role name="org.apache.cocoon.woody.binding.BindingManager" + shorthand="woody-binding" + default-class="org.apache.cocoon.woody.binding.JXPathBindingManager"/> + + <role name="org.apache.cocoon.woody.CacheManager" + shorthand="woody-cachemanager" + default-class="org.apache.cocoon.woody.DefaultCacheManager"/> + + <role name="org.apache.cocoon.woody.datatype.DatatypeManager" + shorthand="woody-datatype" + default-class="org.apache.cocoon.woody.datatype.DefaultDatatypeManager"/> + + <role name="org.apache.cocoon.woody.expression.ExpressionManager" + shorthand="woody-expression" + default-class="org.apache.cocoon.woody.expression.DefaultExpressionManager"/> + + <role name="org.apache.cocoon.woody.FormManager" + shorthand="woody-formmanager" + default-class="org.apache.cocoon.woody.DefaultFormManager"/> + + <role name="org.apache.cocoon.woody.datatype.SelectionListBuilderSelector" + shorthand="woody-selection-lists" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + + <role name="org.apache.cocoon.woody.validation.WidgetValidatorBuilderSelector" + shorthand="woody-validators" + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> + +</role-list> \ No newline at end of file Added: cocoon/trunk/src/blocks/xmldb/WEB-INF/xconf/cocoon-xmldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xmldb/WEB-INF/xconf/cocoon-xmldb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/xmldb/WEB-INF/xconf/cocoon-xmldb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<!-- + 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. +--> + +<components> + <source-factories> + <!-- xmldb pseudo protocol --> + <component-instance class="org.apache.cocoon.components.source.impl.XMLDBSourceFactory" name="xmldb"> + <!--+ + | Xindice 1.1 XML-RPC driver. See Xindice javadoc for configuration options. + +--> + <driver class="org.apache.xindice.client.xmldb.DatabaseImpl" type="xindice"> + <!-- Specifies xindice web application context path. + Default is "/xindice/". + <service-location>/xindice/</service-location> + --> + + <!-- Specifies name of the XML-RPC 'driver' (XML parser) to use. + Default is "xerces". + <xmlrpc-driver>xerces</xmlrpc-driver> + --> + </driver> + + <!--+ + | Xindice 1.1 Embedded driver. See Xindice javadoc for configuration options. + +--> + <driver class="org.apache.xindice.client.xmldb.DatabaseImpl" type="xindice-embed"> + <!-- Specifies path to the Xindice configuration file. + If missing, buit-in configuration defaults will be used. + <configuration>/opt/xindice/config/system.xml</configuration> + --> + + <!-- Specifies path to the Xindice DB home directory. + Default is `pwd` (current working directory). + <db-home>/var/xindice/db</db-home> + --> + + <managed>true</managed> + </driver> + + <!-- Add here other XML:DB compliant databases' drivers --> + </component-instance> + </source-factories> +</components> Added: cocoon/trunk/src/blocks/xmldb/conf/include-xmldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xmldb/conf/include-xmldb.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/blocks/xmldb/conf/include-xmldb.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- + 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$ --> + +<xconf xpath="/cocoon" unless="[EMAIL PROTECTED]'WEB-INF/xconf/cocoon-xmldb.xconf']"> + <include src="WEB-INF/xconf/cocoon-xmldb.xconf"/> +</xconf> Deleted: /cocoon/trunk/src/blocks/xmldb/conf/xmldb.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xmldb/conf/xmldb.xconf?view=auto&rev=123674 ============================================================================== Modified: cocoon/trunk/src/blocks/xsp/conf/xsp.xroles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/conf/xsp.xroles?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/xsp/conf/xsp.xroles&r1=123674&p2=cocoon/trunk/src/blocks/xsp/conf/xsp.xroles&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/xsp/conf/xsp.xroles (original) +++ cocoon/trunk/src/blocks/xsp/conf/xsp.xroles Wed Dec 29 12:39:50 2004 @@ -24,14 +24,14 @@ <role name="org.apache.cocoon.components.language.markup.MarkupLanguageSelector" shorthand="markup-languages" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> <hint shorthand="sitemap-language" class="org.apache.cocoon.components.language.markup.CocoonMarkupLanguage"/> <hint shorthand="xsp-language" class="org.apache.cocoon.components.language.markup.xsp.XSPMarkupLanguage"/> </role> <role name="org.apache.cocoon.components.language.programming.ProgrammingLanguageSelector" shorthand="programming-languages" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> <hint shorthand="java-language" class="org.apache.cocoon.components.language.programming.java.JavaLanguage"/> <hint shorthand="js-language" class="org.apache.cocoon.components.language.programming.javascript.JavascriptLanguage"/> <hint shorthand="python-language" class="org.apache.cocoon.components.language.programming.python.PythonLanguage"/> Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java&r1=123674&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java (original) +++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java Wed Dec 29 12:39:50 2004 @@ -89,6 +89,7 @@ throws ConfigurationException { try { this.generatorHandler = AbstractComponentHandler.getComponentHandler( + null, // role ServerPagesGenerator.class, conf, this.manager, Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java&r1=123674&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java (original) +++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java Wed Dec 29 12:39:50 2004 @@ -15,20 +15,27 @@ */ package org.apache.cocoon.components.language.generator; +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.context.Contextualizable; +import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; +import org.apache.avalon.framework.service.Serviceable; +import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.Constants; import org.apache.cocoon.components.classloader.ClassLoaderManager; import org.apache.cocoon.components.language.programming.Program; import org.apache.cocoon.core.container.AbstractComponentHandler; -import org.apache.cocoon.core.container.CocoonServiceSelector; import org.apache.cocoon.core.container.ComponentHandler; -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - /** * This interface is the common base of all Compiled Components. This * includes Sitemaps and XSP Pages @@ -37,19 +44,28 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a> * @version CVS $Id$ */ -public class GeneratorSelector -extends CocoonServiceSelector { +public class GeneratorSelector extends AbstractLogEnabled implements ThreadSafe, Contextualizable, Serviceable { public static String ROLE = "org.apache.cocoon.components.language.generator.ServerPages"; + private Context context; + + private ServiceManager serviceManager; + + /** Static component mapping handlers. */ + protected final Map componentMapping = Collections.synchronizedMap(new HashMap()); + + /** Used to map roles to ComponentHandlers. */ + protected final Map componentHandlers = Collections.synchronizedMap(new HashMap()); + protected ClassLoaderManager classManager; - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) - */ - public void service(ServiceManager manager) - throws ServiceException { - super.service(manager); + public void contextualize(Context context) { + this.context = context; + } + + public void service(ServiceManager manager) throws ServiceException { + this.serviceManager = manager; this.classManager = (ClassLoaderManager) manager.lookup(ClassLoaderManager.ROLE); @@ -60,9 +76,6 @@ } } - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.ServiceSelector#select(java.lang.Object) - */ public Object select(Object hint) throws ServiceException { AbstractComponentHandler handler = (AbstractComponentHandler) this.componentHandlers.get(hint); @@ -82,9 +95,6 @@ } } - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.ServiceSelector#release(java.lang.Object) - */ public void release(Object component) { AbstractComponentHandler handler = (AbstractComponentHandler)componentMapping.remove(component); if (handler != null) { @@ -127,9 +137,6 @@ } } - /* (non-Javadoc) - * @see org.apache.avalon.framework.activity.Disposable#dispose() - */ public void dispose() { this.serviceManager.release(this.classManager); @@ -155,7 +162,5 @@ keyList.clear(); } - - super.dispose(); } } Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java&r1=123674&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java (original) +++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java Wed Dec 29 12:39:50 2004 @@ -49,6 +49,7 @@ throws Exception { return AbstractComponentHandler.getComponentHandler( + null, // role program, new DefaultConfiguration("", "GeneratorSelector"), manager, context, getLogger(), null, null); Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java?view=diff&rev=123675&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java&r1=123674&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java&r2=123675 ============================================================================== --- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java (original) +++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java Wed Dec 29 12:39:50 2004 @@ -69,7 +69,7 @@ throws Exception { return AbstractComponentHandler.getComponentHandler( - clazz, config, manager, context, getLogger(), null, null); + null, clazz, config, manager, context, getLogger(), null, null); } public CompiledComponent newInstance() throws Exception { Modified: cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/components/ServiceInfo.java Wed Dec 29 12:39:50 2004 @@ -46,7 +46,7 @@ public ServiceInfo() { this.model = MODEL_PRIMITIVE; } - + /** * @return Returns the model. */ @@ -198,6 +198,9 @@ this.configuration = configuration; } + public String getLocation() { + return this.configuration.getLocation(); + } /* (non-Javadoc) * @see java.lang.Object#toString() Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java Wed Dec 29 12:39:50 2004 @@ -49,10 +49,13 @@ /** State management boolean stating whether the Handler is initialized or not */ protected boolean initialized = false; + + private ServiceInfo info; /** * Looks up and returns a component handler for a given component class. * + * @param role the component's role. Can be <code>null</code> if the role isn't known. * @param componentClass Class of the component for which the handle is * being requested. * @param configuration The configuration for this component. @@ -63,7 +66,8 @@ * * @throws Exception If there were any problems obtaining a ComponentHandler */ - public static ComponentHandler getComponentHandler( final Class componentClass, + public static ComponentHandler getComponentHandler( final String role, + final Class componentClass, final Configuration configuration, final ServiceManager serviceManager, final Context context, @@ -111,23 +115,32 @@ } // Create the factory to use to create the instances of the Component. - ComponentFactory factory = new ComponentFactory( - serviceManager, - context, - logger, - loggerManager, - roleManager, - info); + ComponentFactory factory; + + if (DefaultServiceSelector.class.isAssignableFrom(componentClass)) { + // Special factory for DefaultServiceSelector + factory = new DefaultServiceSelector.Factory(serviceManager, context, logger, loggerManager, + roleManager, info, role); + + } else if (StandaloneServiceSelector.class.isAssignableFrom(componentClass)) { + // Special factory for StandaloneServiceSelector + factory = new StandaloneServiceSelector.Factory(serviceManager, context, logger, loggerManager, + roleManager, info); + + } else { + factory = new ComponentFactory(serviceManager, context, logger, loggerManager, + roleManager, info); + } AbstractComponentHandler handler; if( info.getModel() == ServiceInfo.MODEL_POOLED ) { - handler = new PoolableComponentHandler( logger, factory, configuration ); + handler = new PoolableComponentHandler( info, logger, factory, configuration ); } else if( info.getModel() == ServiceInfo.MODEL_SINGLETON ) { - handler = new ThreadSafeComponentHandler( logger, factory ); + handler = new ThreadSafeComponentHandler( info, logger, factory ); } else { // This is a SingleThreaded component - handler = new SingleThreadedComponentHandler( logger, factory ); + handler = new SingleThreadedComponentHandler( info, logger, factory ); } return handler; @@ -136,10 +149,15 @@ /** * Creates a new ComponentHandler. */ - public AbstractComponentHandler(Logger logger, ComponentFactory factory) { + public AbstractComponentHandler(ServiceInfo info, Logger logger, ComponentFactory factory) { + this.info = info; this.logger = logger; this.factory = factory; } + + public ServiceInfo getInfo() { + return this.info; + } /** * Get an instance of the type of component handled by this handler. @@ -219,6 +237,13 @@ */ protected abstract void doPut( Object component ) throws Exception; + /** + * Default here is to return <code>false</code> + */ + public boolean isSingleton() { + return false; + } + /** * Returns <code>true</code> if this component handler can safely be * disposed (i.e. none of the components it is handling are still Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java Wed Dec 29 12:39:50 2004 @@ -98,6 +98,7 @@ /** * Obtain a new ComponentHandler for the specified component. * + * @param role the component's role. * @param componentClass Class of the component for which the handle is * being requested. * @param configuration The configuration for this component. @@ -105,11 +106,13 @@ * * @throws Exception If there were any problems obtaining a ComponentHandler */ - protected ComponentHandler getComponentHandler( final Class componentClass, + protected ComponentHandler getComponentHandler( final String role, + final Class componentClass, final Configuration configuration, final ServiceManager serviceManager) throws Exception { - return AbstractComponentHandler.getComponentHandler(componentClass, + return AbstractComponentHandler.getComponentHandler(role, + componentClass, configuration, serviceManager, this.context, @@ -125,7 +128,7 @@ // check for old excalibur class names - we only test against the selector // implementation if ( "org.apache.cocoon.components.ExtendedComponentSelector".equals(className)) { - className = CocoonServiceSelector.class.getName(); + className = DefaultServiceSelector.class.getName(); } try { @@ -137,7 +140,7 @@ this.addComponent( role, clazz, configuration ); } catch( final ClassNotFoundException cnfe ) { final String message = "Could not get class (" + className + ") for role " - + role + " on configuration element " + configuration.getName(); + + role + " at " + configuration.getLocation(); if( this.getLogger().isErrorEnabled() ) { this.getLogger().error( message, cnfe ); @@ -145,8 +148,8 @@ throw new ConfigurationException( message, cnfe ); } catch( final ServiceException ce ) { - final String message = "Bad component "+ className + " for role " + role - + " on configuration element " + configuration.getName(); + final String message = "Cannot setup class "+ className + " for role " + role + + " at " + configuration.getLocation(); if( this.getLogger().isErrorEnabled() ) { this.getLogger().error( message, ce ); @@ -154,7 +157,7 @@ throw new ConfigurationException( message, ce ); } catch( final Exception e ) { - final String message = "Unexpected exception for role [" + role + "]"; + final String message = "Unexpected exception when setting up role " + role + " at " + configuration.getLocation(); if( this.getLogger().isErrorEnabled() ) { this.getLogger().error( message, e ); } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java Wed Dec 29 12:39:50 2004 @@ -17,45 +17,76 @@ package org.apache.cocoon.core.container; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Set; +import org.apache.avalon.framework.CascadingRuntimeException; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.DefaultConfiguration; +import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.context.ContextException; +import org.apache.avalon.framework.logger.Logger; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.components.ServiceInfo; +import org.apache.cocoon.core.source.SimpleSourceResolver; +import org.apache.excalibur.source.Source; +import org.apache.excalibur.source.SourceResolver; /** * Default service manager for Cocoon's components. * - * @version CVS $Revision: 1.6 $Id: CocoonServiceManager.java 55165 2004-10-20 16:51:50Z cziegeler $ + * @version SVN $Revision: 1.6 $Id: CocoonServiceManager.java 55165 2004-10-20 16:51:50Z cziegeler $ */ public class CocoonServiceManager extends AbstractServiceManager implements ServiceManager, Configurable { + /** The location where this manager is defined */ + protected String location; + /** The parent ServiceManager */ protected ServiceManager parentManager; - + /** added component handlers before initialization to maintain * the order of initialization */ private final List newComponentHandlers = new ArrayList(); + /** Temporary list of parent-aware components. Will be null for most of + * our lifecycle. */ + private ArrayList parentAwareComponents = new ArrayList(); + + /** The resolver used to resolve includes. It is lazily loaded in [EMAIL PROTECTED] #getSourceResolver()}. */ + private SourceResolver cachedSourceResolver; + /** Create the ServiceManager with a Classloader and parent ServiceManager */ public CocoonServiceManager( final ServiceManager parent, final ClassLoader loader ) { super(loader); this.parentManager = parent; + + RoleManager parentRoleManager = null; // get role manager and logger manager if ( parent instanceof CocoonServiceManager ) { - this.roleManager = ((CocoonServiceManager)parent).roleManager; + parentRoleManager = ((CocoonServiceManager)parent).roleManager; this.loggerManager = ((CocoonServiceManager)parent).loggerManager; } + + // Always create a role manager, it can be filled several times either through + // the root "roles" attribute or through loading of includes + this.roleManager = new RoleManager(parentRoleManager); + } + + public void enableLogging(Logger logger) { + super.enableLogging(logger); + this.roleManager.enableLogging(logger); } /* (non-Javadoc) @@ -117,7 +148,8 @@ final Configuration configuration = new DefaultConfiguration( "", "-" ); - handler = this.getComponentHandler( componentClass, + handler = this.getComponentHandler(role, + componentClass, configuration, this); @@ -236,7 +268,7 @@ // should not be removed until the ComponentLocator is disposed. All // other components have an entry for each instance which should be // removed. - if( !( handler instanceof ThreadSafeComponentHandler ) ) { + if( !handler.isSingleton() ) { // Remove the component before calling put. This is critical to avoid the // problem where another thread calls put on the same component before // remove can be called. @@ -258,43 +290,97 @@ " but its handler could not be located." ); } } + + public void configure(Configuration configuration) throws ConfigurationException { + // Setup location + if (this.location == null) { + // First call to configure() + this.location = configuration.getLocation(); + } + + try { + // and load configuration with a empty list of loaded configurations + doConfigure(configuration, new HashSet()); + } finally { + // Release any source resolver that may have been created to load includes + releaseCachedSourceResolver(); + } + } - /* (non-Javadoc) - * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration) - */ - public void configure( final Configuration configuration ) - throws ConfigurationException { - if( null == roleManager ) { - final RoleManager roleInfo = new RoleManager(); - roleInfo.enableLogging( getLogger() ); - roleInfo.configure( configuration ); - this.roleManager = roleInfo; - this.getLogger().debug( "No RoleManager given, deriving one from configuration" ); + private void doConfigure(final Configuration configuration, Set loadedURIs) throws ConfigurationException { + + // Read roles + String rolesURI = configuration.getAttribute("roles", null); + if (rolesURI != null) { + Configuration roles = loadConfiguration(rolesURI, configuration.getLocation()); + this.roleManager.configure(roles); } // Set components - final Configuration[] configurations = configuration.getChildren(); for( int i = 0; i < configurations.length; i++ ) { - String type = configurations[ i ].getName(); - - if( !type.equals( "role" ) ) { - String role = configurations[ i ].getAttribute( "role", "" ); - String className = configurations[ i ].getAttribute( "class", "" ); - - if( role.equals( "" ) ) { - role = roleManager.getRoleForName( type ); + Configuration componentConfig = configurations[i]; + + String componentName = componentConfig.getName(); + + if ("include".equals(componentName)) { + String includeURI = componentConfig.getAttribute("src"); + if (loadedURIs.contains(includeURI)) { + // Already loaded: skip to next configuration element + continue; + } + // load it and store it in the read set + Configuration includeConfig = loadConfiguration(includeURI, componentConfig.getLocation()); + loadedURIs.add(includeURI); + + // what is it? + String includeKind = includeConfig.getName(); + if (includeKind.equals("components")) { + // more components + doConfigure(includeConfig, loadedURIs); + } else if (includeKind.equals("role-list")) { + // more roles + this.roleManager.configure(includeConfig); + } else { + throw new ConfigurationException("Unknow document '" + includeKind + "' included at " + + componentConfig.getLocation()); } - if( null != role && !role.equals( "" ) ) { - if( className.equals( "" ) ) { - final ServiceInfo info = roleManager.getDefaultServiceInfoForRole( role ); - className = info.getServiceClassName(); + } else { + // Component declaration + // Find the role + String role = componentConfig.getAttribute("role", null); + if (role == null) { + // Get the role from the role manager if not explicitely specified + role = roleManager.getRoleForName(componentName); + if (role == null) { + // Unknown role + throw new ConfigurationException("Unknown component type '" + componentName + + "' at " + componentConfig.getLocation()); } - - this.addComponent(className, role, configurations[i]); } + + // Find the className + String className = componentConfig.getAttribute("class", null); + if (className == null) { + // Get the default class name for this role + final ServiceInfo info = roleManager.getDefaultServiceInfoForRole(role); + if (info == null) { + throw new ConfigurationException("Cannot find a class for role " + role + " at " + componentConfig.getLocation()); + } + className = info.getServiceClassName(); + } + + // If it has a "name" attribute, add it to the role (similar to the + // declaration within a service selector) + // Note: this has to be done *after* finding the className above as we change the role + String name = componentConfig.getAttribute("name", null); + if (name != null) { + role = role + "/" + name; + } + + this.addComponent(className, role, componentConfig); } } } @@ -353,6 +439,36 @@ } } this.newComponentHandlers.clear(); + + // Initialize parent aware components + if (this.parentAwareComponents == null) { + throw new ServiceException(null, "CocoonServiceManager already initialized"); + } + + // Set parents for parentAware components + Iterator iter = this.parentAwareComponents.iterator(); + while (iter.hasNext()) { + String role = (String)iter.next(); + if ( this.parentManager != null && this.parentManager.hasService( role ) ) { + // lookup new component + Object component = null; + try { + component = this.lookup( role ); + ((CocoonServiceSelector)component).setParentLocator( this.parentManager, role ); + } catch (ServiceException ignore) { + // we don't set the parent then + } finally { + this.release( component ); + } + } + } + this.parentAwareComponents = null; // null to save memory, and catch logic bugs. + +// Object[] keyArray = this.componentHandlers.keySet().toArray(); +// Arrays.sort(keyArray); +// for (int i = 0; i < keyArray.length; i++) { +// System.err.println("Component key = " + keyArray[i]); +// } } /* (non-Javadoc) @@ -413,14 +529,22 @@ "Cannot add components to an initialized CocoonServiceManager." ); } - try { - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( "Attempting to get handler for role [" + role + "]" ); - } + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( "Attempting to get handler for role [" + role + "]" ); + } - final ComponentHandler handler = this.getComponentHandler( component, - configuration, - this); + ComponentHandler handler = (ComponentHandler)this.componentHandlers.get(role); + if (handler != null) { + // Overloaded component: we only allow selectors to be overloaded + ServiceInfo info = handler.getInfo(); + if (!DefaultServiceSelector.class.isAssignableFrom(component) || + !DefaultServiceSelector.class.isAssignableFrom(info.getServiceClass())) { + throw new ServiceException(role, "Component declared at " + info.getLocation() + " is redefined at " + + configuration.getLocation()); + } + } + try { + handler = this.getComponentHandler(role, component, configuration, this); if( this.getLogger().isDebugEnabled() ) { this.getLogger().debug( "Handler type = " + handler.getClass().getName() ); @@ -433,19 +557,80 @@ } catch( final Exception e ) { throw new ServiceException( role, "Could not set up component handler.", e ); } + + if ( CocoonServiceSelector.class.isAssignableFrom( component ) ) { + this.parentAwareComponents.add(role); + } + // Initialize shadow selector now, it will feed this service manager + if ( DefaultServiceSelector.class.isAssignableFrom( component )) { + try { + handler.initialize(); + } catch(ServiceException se) { + throw se; + } catch(Exception e) { + throw new ServiceException(role, "Could not initialize selector", e); + } + } } - void addComponentFromSelector(CocoonServiceSelector selector, - String roleName, - String key) - throws Exception { - if ( this.disposed ) { - throw new ServiceException( this.toString(), - "Cannot add components to a disposed CocoonServiceManager." ); - } - final String role = roleName + '/' + key; - final ComponentHandler handler = new SelectorBasedComponentHandler(selector, key); - this.componentHandlers.put( role, handler ); - } + /** + * Load a Configuration from a given URI. If the parent manager does not exist or does not + * provide a source resolver, a simple one is created here to load the file. + * + * @param uri the configuration's URI + * @param location the location where the load occurs (used to raise meaningful errors) + * @return the configuration + * @throws ConfigurationException + */ + private Configuration loadConfiguration(String uri, String location) throws ConfigurationException { + + // First get a source resolver + if (this.cachedSourceResolver == null) { + + if (this.parentManager != null && this.parentManager.hasService(SourceResolver.ROLE)) { + try { + this.cachedSourceResolver = (SourceResolver)this.parentManager.lookup(SourceResolver.ROLE); + } catch(ServiceException se) { + // Unlikely to happen + throw new CascadingRuntimeException("Cannot get source resolver from parent, at " + location, se); + } + } else { + // Create our own + SimpleSourceResolver simpleSR = new SimpleSourceResolver(); + simpleSR.enableLogging(getLogger()); + try { + simpleSR.contextualize(this.context); + } catch (ContextException ce) { + throw new CascadingRuntimeException("Cannot setup source resolver, at " + location, ce); + } + this.cachedSourceResolver = simpleSR; + } + } + Configuration result; + + try { + Source src = this.cachedSourceResolver.resolveURI(uri); + DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); + result = builder.build(src.getInputStream(), src.getURI()); + } catch (ConfigurationException ce) { + throw ce; + } catch (Exception e) { + throw new ConfigurationException("Cannot load '" + uri + "' at " + location, e); + } + + return result; + } + + /** + * Release the source resolver that may have been created by the first call to + * loadConfiguration(). + */ + private void releaseCachedSourceResolver() { + if (this.cachedSourceResolver != null && + this.parentManager != null && this.parentManager.hasService(SourceResolver.ROLE)) { + this.parentManager.release(this.cachedSourceResolver); + } + this.cachedSourceResolver = null; + } } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java Wed Dec 29 12:39:50 2004 @@ -16,446 +16,11 @@ */ package org.apache.cocoon.core.container; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.apache.avalon.framework.configuration.Configurable; -import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.configuration.ConfigurationException; -import org.apache.avalon.framework.service.ServiceException; -import org.apache.avalon.framework.service.ServiceManager; -import org.apache.avalon.framework.service.ServiceSelector; -import org.apache.avalon.framework.service.Serviceable; -import org.apache.cocoon.components.ServiceInfo; - /** * Default component selector for Cocoon's components. * * @version CVS $Id: CocoonServiceSelector.java 55144 2004-10-20 12:26:09Z ugo $ */ -public class CocoonServiceSelector -extends AbstractServiceManager -implements ServiceSelector, Serviceable, Configurable { - - /** The application context for components - */ - protected ServiceManager serviceManager; - - /** The parent selector, if any */ - protected CocoonServiceSelector parentSelector; - - /** The parent locator, if any */ - protected ServiceManager parentLocator; - - /** The role of this selector. Set in <code>configure()</code>. */ - protected String roleName; - - /** The default key */ - protected String defaultKey; - - /** Create the selector */ - public CocoonServiceSelector() { - super(null); - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.ServiceSelector#select(java.lang.Object) - */ - public Object select( Object hint ) - throws ServiceException { - final String key; - if (hint == null) { - key = this.defaultKey; - } else { - key = hint.toString(); - } - - if( !this.initialized ) { - if( this.getLogger().isWarnEnabled() ) { - this.getLogger().warn( "Selecting a component on an uninitialized service selector " - + "with key [" + key + "]" ); - } - } - - if( this.disposed ) { - throw new IllegalStateException( - "You cannot select a component from a disposed service selector." ); - } - - ComponentHandler handler = (ComponentHandler)this.componentHandlers.get( key ); - - // Retrieve the instance of the requested component - if( null == handler ) { - // Doesn't exist here : try in parent selector - if ( this.parentSelector != null ) { - return this.parentSelector.select(key); - } - final String message = this.roleName - + ": service selector could not find the component for key [" + key + "]"; - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( message ); - } - throw new ServiceException( key, message ); - } - - Object component = null; - - try { - component = handler.get(); - } catch( final ServiceException ce ) { - //rethrow - throw ce; - } catch( final Exception e ) { - final String message = this.roleName - + ": service selector could not access the component for key [" + key + "]"; - - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( message, e ); - } - throw new ServiceException( key, message, e ); - } - - if( null == component ) { - // Doesn't exist here : try in parent selector - if ( this.parentSelector != null ) { - component = this.parentSelector.select(key); - } else { - final String message = this.roleName - + ": service selector could not find the component for key [" + key + "]"; - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( message ); - } - throw new ServiceException( key, message ); - } - } - - this.componentMapping.put( component, handler ); - return component; - - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.ServiceSelector#isSelectable(java.lang.Object) - */ - public boolean isSelectable( Object hint ) { - final String key; - if (hint == null) { - key = this.defaultKey; - } else { - key = hint.toString(); - } - - if( !this.initialized ) return false; - if( this.disposed ) return false; - - boolean exists = false; - - try { - ComponentHandler handler = (ComponentHandler)this.componentHandlers.get( key ); - exists = (handler != null); - } catch( Throwable t ) { - // We can safely ignore all exceptions - } - - if ( !exists && this.parentSelector != null ) { - exists = this.parentSelector.isSelectable( key ); - } - return exists; - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.ServiceSelector#release(java.lang.Object) - */ - public void release( final Object component ) { - if( null == component ) { - return; - } - - // Was it selected on the parent ? - if ( this.parentSelector != null && - this.parentSelector.canRelease(component) ) { - this.parentSelector.release(component); - - } else { - final ComponentHandler handler = - (ComponentHandler)this.componentMapping.get( component ); - - if( null == handler ) { - this.getLogger().warn( "Attempted to release a " + component.getClass().getName() - + " but its handler could not be located." ); - return; - } - - // ThreadSafe components will always be using a ThreadSafeComponentHandler, - // they will only have a single entry in the m_componentMapping map which - // should not be removed until the ComponentLocator is disposed. All - // other components have an entry for each instance which should be - // removed. - if( !( handler instanceof ThreadSafeComponentHandler ) ) { - // Remove the component before calling put. This is critical to avoid the - // problem where another thread calls put on the same component before - // remove can be called. - this.componentMapping.remove( component ); - } - - try { - handler.put( component ); - } catch( Exception e ) { - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( "Error trying to release component", e ); - } - } - } - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) - */ - public void service( final ServiceManager componentManager ) - throws ServiceException { - this.serviceManager = componentManager; - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration) - */ - public void configure( final Configuration config ) - throws ConfigurationException { - this.roleName = getRoleName(config); - - // Get default key - this.defaultKey = config.getAttribute(this.getDefaultKeyAttributeName(), null); - - // Add components - String compInstanceName = getComponentInstanceName(); - - Configuration[] instances = config.getChildren(); - - for (int i = 0; i < instances.length; i++) { - - Configuration instance = instances[i]; - - String key = instance.getAttribute("name").trim(); - - String classAttr = instance.getAttribute(getClassAttributeName(), null); - String className; - - if (compInstanceName == null) { - // component-instance implicitly defined by the presence of the 'class' attribute - if (classAttr == null) { - final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); - className = info.getServiceClassName(); - } else { - className = classAttr.trim(); - } - - } else { - // component-instances names explicitly defined - if (compInstanceName.equals(instance.getName())) { - className = (classAttr == null) ? null : classAttr.trim(); - } else { - final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); - className = info.getServiceClassName(); - } - } - - if (className == null) { - String message = "Unable to determine class name for component named '" + key + - "' at " + instance.getLocation(); - - getLogger().error(message); - throw new ConfigurationException(message); - } - - this.addComponent( className, key, instance ); - } - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.activity.Initializable#initialize() - */ - public void initialize() - throws Exception { - super.initialize(); - - List keys = new ArrayList( this.componentHandlers.keySet() ); - - for( int i = 0; i < keys.size(); i++ ) { - final Object key = keys.get( i ); - final ComponentHandler handler = - (ComponentHandler)this.componentHandlers.get( key ); - - try { - handler.initialize(); - } catch( Exception e ) { - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( "Caught an exception trying to initialize " - + "of the component handler.", e ); - } - } - - } - } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.activity.Disposable#dispose() - */ - public void dispose() { - Iterator keys = this.componentHandlers.keySet().iterator(); - List keyList = new ArrayList(); - - while( keys.hasNext() ) { - Object key = keys.next(); - ComponentHandler handler = - (ComponentHandler)this.componentHandlers.get( key ); - - handler.dispose(); - - keyList.add( key ); - } - - keys = keyList.iterator(); - - while( keys.hasNext() ) { - this.componentHandlers.remove( keys.next() ); - } - - keyList.clear(); - - if ( this.parentLocator != null ) { - this.parentLocator.release( this.parentSelector ); - this.parentLocator = null; - this.parentSelector = null; - } - - super.dispose(); - } - - /** Add a new component to the manager. - * @param key the key for the new component. - * @param component the class of this component. - * @param configuration the configuration for this component. - */ - public void addComponent( final String key, - final Class component, - final Configuration configuration ) - throws ServiceException { - if( this.initialized ) { - throw new ServiceException( key, - "Cannot add components to an initialized service selector" ); - } - - try { - final ComponentHandler handler = getComponentHandler( component, - configuration, - this.serviceManager); - - handler.initialize(); - this.componentHandlers.put( key, handler ); - - if ( this.roleName != null && this.roleName.endsWith("Selector") ) { - final String role = this.roleName.substring(0, this.roleName.length()-8); - ((CocoonServiceManager)this.serviceManager).addComponentFromSelector(this, role, key); - } - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( - "Adding " + component.getName() + " for key [" + key + "]" ); - } - } catch (ServiceException se) { - throw se; - } catch( final Exception e ) { - final String message = - "Could not set up component for key [ " + key + "]"; - if( this.getLogger().isErrorEnabled() ) { - this.getLogger().error( message, e ); - } - - throw new ServiceException(key, message, e ); - } - } - - /** - * Get the name for component-instance elements (i.e. components not defined - * by their role shortcut. If <code>null</code>, any element having a 'class' - * attribute will be considered as a component instance. - * <p> - * The default here is to return <code>null</code>, and subclasses can redefine - * this method to return particular values. - * - * @return <code>null</code>, but can be changed by subclasses - */ - protected String getComponentInstanceName() { - return null; - } - - /** - * Get the name of the attribute giving the class name of a component. - * The default here is "class", but this can be overriden in subclasses. - * - * @return "<code>class</code>", but can be changed by subclasses - */ - protected String getClassAttributeName() { - return "class"; - } - - /** - * Get the name of the attribute giving the default key to use if - * none is given. The default here is "default", but this can be - * overriden in subclasses. If this method returns <code>null</code>, - * no default key can be specified. - * - * @return "<code>default</code>", but can be changed by subclasses - */ - protected String getDefaultKeyAttributeName() { - return "default"; - } - - /** - * Get the role name for this selector. This is called by <code>configure()</code> - * to set the value of <code>this.roleName</code>. - * - * @return the role name, or <code>null<code> if it couldn't be determined. - */ - protected String getRoleName(Configuration config) { - // Get the role for this selector - String name = config.getAttribute("role", null); - if (name == null && this.roleManager != null) { - name = this.roleManager.getRoleForName(config.getName()); - } - - return name; - } - - /** - * Set the ComponentLocatorImpl that allows access to a possible - * parent of this selector - * @param locator - * @throws ServiceException - */ - public void setParentLocator(ServiceManager locator, String role) - throws ServiceException { - if (this.parentSelector != null) { - throw new ServiceException(null, "Parent selector is already set"); - } - this.parentLocator = locator; - - // Get the parent, unwrapping it as far as needed - Object parent = locator.lookup(role); - - if (parent instanceof CocoonServiceSelector) { - this.parentSelector = (CocoonServiceSelector)parent; - } else { - throw new IllegalArgumentException("Parent selector is not an extended component selector (" + parent + ")"); - } - } - - protected boolean canRelease(Object component) { - if ( this.parentSelector != null && - this.parentSelector.canRelease(component) ) { - return true; - } - return this.componentMapping.containsKey( component ); - } +public class CocoonServiceSelector extends StandaloneServiceSelector { } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java Wed Dec 29 12:39:50 2004 @@ -22,7 +22,6 @@ import org.apache.avalon.excalibur.pool.Recyclable; import org.apache.avalon.framework.container.ContainerUtil; import org.apache.avalon.framework.context.Context; -import org.apache.avalon.framework.logger.LogEnabled; import org.apache.avalon.framework.logger.Logger; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameters; @@ -36,25 +35,25 @@ */ public class ComponentFactory { - private final ServiceInfo serviceInfo; + protected final ServiceInfo serviceInfo; /** The Context for the component */ - private final Context context; + protected final Context context; /** The service manager for this component */ - private final ServiceManager serviceManager; + protected final ServiceManager serviceManager; /** The parameters for this component */ - private Parameters parameters; + protected Parameters parameters; - private final Logger logger; + protected final Logger logger; - private final LoggerManager loggerManager; + protected final LoggerManager loggerManager; - private final RoleManager roleManager; + protected final RoleManager roleManager; /** * Construct a new component factory for the specified component. @@ -73,10 +72,19 @@ final ServiceInfo info) { this.serviceManager = serviceManager; this.context = context; - this.logger = logger; this.loggerManager = loggerManager; this.roleManager = roleManager; this.serviceInfo = info; + + Logger actualLogger = logger; + // If the handler is created "manually" (e.g. XSP engine), loggerManager can be null + if(loggerManager != null && this.serviceInfo.getConfiguration() != null) { + final String category = this.serviceInfo.getConfiguration().getAttribute("logger", null); + if(category != null) { + actualLogger = loggerManager.getLoggerForCategory(category); + } + } + this.logger = actualLogger; } /** @@ -91,29 +99,9 @@ this.serviceInfo.getServiceClass().getName() + "." ); } - if ( component instanceof LogEnabled ) { - if( this.serviceInfo.getConfiguration() != null ) { - ContainerUtil.enableLogging( component, this.logger ); - } else { - final String logger = this.serviceInfo.getConfiguration().getAttribute( "logger", null ); - if( null == logger ) { - this.logger.debug( "no logger attribute available, using standard logger" ); - ContainerUtil.enableLogging( component, this.logger ); - } else { - this.logger.debug( "logger attribute is " + this.logger ); - ContainerUtil.enableLogging( component, this.loggerManager.getLoggerForCategory( logger ) ); - } - } - } - + ContainerUtil.enableLogging(component, this.logger); ContainerUtil.contextualize( component, this.context ); ContainerUtil.service( component, this.serviceManager ); - - if ( component instanceof CocoonServiceSelector ) { - ((CocoonServiceSelector)component).setLoggerManager(this.loggerManager); - ((CocoonServiceSelector)component).setRoleManager(this.roleManager); - } - ContainerUtil.configure( component, this.serviceInfo.getConfiguration() ); if( component instanceof Parameterizable ) { Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentHandler.java Wed Dec 29 12:39:50 2004 @@ -16,6 +16,8 @@ */ package org.apache.cocoon.core.container; +import org.apache.cocoon.components.ServiceInfo; + /** * This class acts like a Factory to instantiate the correct version * of the component handler that you need. @@ -40,6 +42,14 @@ */ void put( Object component ) throws Exception; + + /** + * Indicates if this handler manages a single object, i.e. all calls to [EMAIL PROTECTED] #get()} + * will return the same object. + * + * @return <code>true</code> if managed object is a singleton + */ + boolean isSingleton(); /** * Returns <code>true</code> if this component handler can safely be @@ -60,5 +70,10 @@ * Initialize this handler */ void initialize() throws Exception; + + /** + * Get the service metadata for this handler + */ + ServiceInfo getInfo(); } Added: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java Wed Dec 29 12:39:50 2004 @@ -0,0 +1,220 @@ +/* + * Copyright 2002-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. + */ +package org.apache.cocoon.core.container; + +import org.apache.avalon.excalibur.logger.LoggerManager; +import org.apache.avalon.framework.configuration.Configurable; +import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.configuration.ConfigurationException; +import org.apache.avalon.framework.container.ContainerUtil; +import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.logger.AbstractLogEnabled; +import org.apache.avalon.framework.logger.Logger; +import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; +import org.apache.avalon.framework.service.ServiceSelector; +import org.apache.avalon.framework.service.Serviceable; +import org.apache.avalon.framework.thread.ThreadSafe; +import org.apache.cocoon.components.ServiceInfo; + +/** + * Default component selector for Cocoon's components. This selector "flattens" its declaration + * by adding them as components of its containing ServiceManager. This allows a smooth transition towards + * a fully flat configuration by allowing the use of selectors in legacy components and also + * declaration of hinted components (i.e. with a role of type "rolename/hint") in the service manager. + * + * @version SVN $Id$ + */ +public class DefaultServiceSelector extends AbstractLogEnabled implements ThreadSafe, Serviceable, Configurable, ServiceSelector { + + private CocoonServiceManager manager; + private RoleManager roleManager; + private String roleName; + private String rolePrefix; + private String defaultKey; + private String location; + + public void service(ServiceManager manager) throws ServiceException { + try { + this.manager = (CocoonServiceManager)manager; + } catch (ClassCastException cce) { + throw new ServiceException ("A FlatServiceSelector can only be hosted by a CocoonServiceManager"); + } + } + + public void setRole(String role) { + this.roleName = role; + } + + public void setRoleManager(RoleManager roles) { + this.roleManager = roles; + } + + public void configure(Configuration config) throws ConfigurationException { + // Get the role for this selector + + this.location = config.getLocation(); + + if (roleName == null) { + throw new ConfigurationException("No role given for DefaultServiceSelector at " + this.location); + } + + // Remove "Selector" suffix, if any and add a trailing "/" + if (roleName.endsWith("Selector")) { + this.rolePrefix = roleName.substring(0, roleName.length() - 8) + "/"; + } else { + this.rolePrefix = roleName + "/"; + } + + // Get default key + this.defaultKey = config.getAttribute(this.getDefaultKeyAttributeName(), null); + + // Add components + String compInstanceName = getComponentInstanceName(); + + Configuration[] instances = config.getChildren(); + + for (int i = 0; i < instances.length; i++) { + + Configuration instance = instances[i]; + + String key = instance.getAttribute("name"); + + String classAttr = instance.getAttribute(getClassAttributeName(), null); + String className; + + if (compInstanceName == null) { + // component-instance implicitly defined by the presence of the 'class' attribute + if (classAttr == null) { + final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); + className = info.getServiceClassName(); + } else { + className = classAttr; + } + + } else { + // component-instances names explicitly defined + if (compInstanceName.equals(instance.getName())) { + className = (classAttr == null) ? null : classAttr; + } else { + final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); + className = info.getServiceClassName(); + } + } + + if (className == null) { + String message = "Unable to determine class name for component named '" + key + + "' at " + instance.getLocation(); + + getLogger().error(message); + throw new ConfigurationException(message); + } + + // Add this component in the manager + this.manager.addComponent(className, this.rolePrefix + key, instance); + } + } + + public Object select(Object hint) throws ServiceException { + String key = (hint == null) ? this.defaultKey : hint.toString(); + + if (key == null) { + throw new ServiceException(roleName, "Hint is null and no default hint provided for selector at " + this.location); + } + + return this.manager.lookup(this.rolePrefix + key); + } + + public boolean isSelectable(Object hint) { + String key = hint == null ? this.defaultKey : hint.toString(); + + return key != null && this.manager.hasService(this.rolePrefix + key); + } + + public void release(Object obj) { + this.manager.release(obj); + } + + // --------------------------------------------------------------- + /** + * Get the name for component-instance elements (i.e. components not defined + * by their role shortcut. If <code>null</code>, any element having a 'class' + * attribute will be considered as a component instance. + * <p> + * The default here is to return <code>null</code>, and subclasses can redefine + * this method to return particular values. + * + * @return <code>null</code>, but can be changed by subclasses + */ + protected String getComponentInstanceName() { + return null; + } + + /** + * Get the name of the attribute giving the class name of a component. + * The default here is "class", but this can be overriden in subclasses. + * + * @return "<code>class</code>", but can be changed by subclasses + */ + protected String getClassAttributeName() { + return "class"; + } + + /** + * Get the name of the attribute giving the default key to use if + * none is given. The default here is "default", but this can be + * overriden in subclasses. If this method returns <code>null</code>, + * no default key can be specified. + * + * @return "<code>default</code>", but can be changed by subclasses + */ + protected String getDefaultKeyAttributeName() { + return "default"; + } + + /** + * A special factory for <code>DefaultServiceSelector</code>, that passes it the + * <code>RoleManager</code> and its role name. + */ + public static class Factory extends ComponentFactory { + private String role; + + public Factory(ServiceManager serviceManager, Context context, Logger logger, + LoggerManager loggerManager, RoleManager roleManager, ServiceInfo info, String role) { + super(serviceManager, context, logger, loggerManager, roleManager, info); + this.role = role; + } + + public Object newInstance() + throws Exception { + final DefaultServiceSelector component = (DefaultServiceSelector)this.serviceInfo.getServiceClass().newInstance(); + + ContainerUtil.enableLogging(component, this.logger); + ContainerUtil.contextualize(component, this.context); + ContainerUtil.service(component, this.serviceManager); + + component.setRoleManager(this.roleManager); + component.setRole(this.role); + + ContainerUtil.configure(component, this.serviceInfo.getConfiguration()); + ContainerUtil.initialize(component); + ContainerUtil.start(component); + + return component; + } + } +} Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java Wed Dec 29 12:39:50 2004 @@ -21,6 +21,7 @@ import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.logger.Logger; +import org.apache.cocoon.components.ServiceInfo; /** * The PoolableComponentHandler to make sure that poolable components are initialized @@ -90,11 +91,12 @@ * managed by the ComponentHandler. * @param config The configuration to use to configure the pool. */ - public PoolableComponentHandler( final Logger logger, + public PoolableComponentHandler( final ServiceInfo info, + final Logger logger, final ComponentFactory factory, final Configuration config ) throws Exception { - super(logger, factory); + super(info, logger, factory); final int poolMax = config.getAttributeAsInteger( "pool-max", DEFAULT_MAX_POOL_SIZE ); this.max = ( poolMax <= 0 ? Integer.MAX_VALUE : poolMax ); Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/RoleManager.java Wed Dec 29 12:39:50 2004 @@ -16,13 +16,17 @@ */ package org.apache.cocoon.core.container; -import java.util.Collections; +import java.net.URL; +import java.util.Enumeration; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; +import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.cocoon.components.ServiceInfo; @@ -37,13 +41,13 @@ implements Configurable { /** Map for shorthand to role mapping */ - private Map shorthands; + private Map shorthands = new HashMap(); /** Map for role to default classname mapping */ - private Map classNames; + private Map classNames = new HashMap(); /** Map for role->key to classname mapping */ - private Map keyClassNames; + private Map keyClassNames = new HashMap(); /** Parent role manager for nested resolution */ private final RoleManager parent; @@ -157,57 +161,124 @@ */ public final void configure( final Configuration configuration ) throws ConfigurationException { - final Map shorts = new HashMap(); - final Map classes = new HashMap(); - final Map keyclasses = new HashMap(); + + // When reading a roles file, we only want "role" elements. + boolean strictMode = "roles-list".equals(configuration.getName()); - final Configuration[] roles = configuration.getChildren( "role" ); + final Configuration[] roles = configuration.getChildren(); for( int i = 0; i < roles.length; i++ ) { - final String name = roles[ i ].getAttribute( "name" ); - final String shorthand = roles[ i ].getAttribute( "shorthand" ); - final String defaultClassName = roles[ i ].getAttribute( "default-class", null ); - - shorts.put( shorthand, name ); + Configuration role = roles[i]; + + if (!"role".equals(role.getName())) { + if (strictMode) { + throw new ConfigurationException("Unexpected '" + role.getName() + "' element at " + role.getLocation()); + } else { + // Skip to next one + continue; + } + } + + final String roleName = role.getAttribute("name"); + final String shorthand = role.getAttribute("shorthand", null); + final String defaultClassName = role.getAttribute("default-class", null); + + if (shorthand != null) { + // Store the shorthand and check that its consistent with any previous one + Object previous = this.shorthands.put( shorthand, roleName ); + if (previous != null && !previous.equals(roleName)) { + throw new ConfigurationException("Shorthand '" + shorthand + "' already used for role " + + previous + ": inconsistent declaration at " + role.getLocation()); + } + } if( defaultClassName != null ) { - final ServiceInfo info = new ServiceInfo(); - info.setServiceClassName(defaultClassName); - info.fill(roles[ i ]); - classes.put( name, info ); + ServiceInfo info = (ServiceInfo)this.classNames.get(roleName); + if (info == null) { + // Create a new info and store it + info = new ServiceInfo(); + info.setServiceClassName(defaultClassName); + info.fill(role); + this.classNames.put(roleName, info); + } else { + // Check that it's consistent with the existing info + if (!defaultClassName.equals(info.getServiceClassName())) { + throw new ConfigurationException("Invalid redeclaration: default class already set to " + info.getServiceClassName() + + " for role " + roleName + " at " + role.getLocation()); + } + //FIXME: should check also other ServiceInfo members, but they're currently not used + } } - final Configuration[] keys = roles[ i ].getChildren( "hint" ); + final Configuration[] keys = role.getChildren( "hint" ); if( keys.length > 0 ) { - HashMap keyMap = new HashMap(); + Map keyMap = (Map)this.keyClassNames.get(roleName); + if (keyMap == null) { + keyMap = new HashMap(); + this.keyClassNames.put(roleName, keyMap); + } for( int j = 0; j < keys.length; j++ ) { - final String shortHand = keys[ j ].getAttribute( "shorthand" ).trim(); - final String className = keys[ j ].getAttribute( "class" ).trim(); - - final ServiceInfo info = new ServiceInfo(); - info.setServiceClassName(className); - info.fill(keys[ j ]); - - keyMap.put( shortHand, info ); - if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( "Adding key type " + shortHand + - " associated with role " + name + - " and class " + className ); + Configuration key = keys[j]; + + final String shortHand = key.getAttribute( "shorthand" ).trim(); + final String className = key.getAttribute( "class" ).trim(); + + ServiceInfo info = (ServiceInfo)keyMap.get(shortHand); + if (info == null) { + info = new ServiceInfo(); + info.setServiceClassName(className); + info.fill(key); + + keyMap.put( shortHand, info ); + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( "Adding key type " + shortHand + + " associated with role " + roleName + + " and class " + className ); + } + } else { + // Check that it's consistent with the existing info + if (!className.equals(info.getServiceClassName())) { + throw new ConfigurationException("Invalid redeclaration: class already set to " + info.getServiceClassName() + + " for hint " + shortHand + " at " + key.getLocation()); + } + //FIXME: should check also other ServiceInfo members, but they're currently not used } } - - keyclasses.put( name, Collections.unmodifiableMap( keyMap ) ); } if( this.getLogger().isDebugEnabled() ) { - this.getLogger().debug( "added Role " + name + " with shorthand " + + this.getLogger().debug( "added Role " + roleName + " with shorthand " + shorthand + " for " + defaultClassName ); } } - - this.shorthands = Collections.unmodifiableMap( shorts ); - this.classNames = Collections.unmodifiableMap( classes ); - this.keyClassNames = Collections.unmodifiableMap( keyclasses ); + } + + + + private Set loadedURLs = new HashSet(); + + public void loadFromClassPath() throws Exception { + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + Enumeration resources = cl.getResources("/org/apache/cocoon/cocoon.roles"); + + while(resources.hasMoreElements()) { + URL url = (URL)resources.nextElement(); + loadURL(url.toExternalForm()); + } + } + + public void loadURL(String resource) throws Exception { + if (!hasLoaded(resource)) { + loadedURLs.add(resource); + + DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); + Configuration config = builder.build(resource); + configure(config); + } + } + + public boolean hasLoaded(String resource) { + return loadedURLs.contains(resource) || (parent != null && parent.hasLoaded(resource)); } } Deleted: /cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SelectorBasedComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SelectorBasedComponentHandler.java?view=auto&rev=123674 ============================================================================== Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java Wed Dec 29 12:39:50 2004 @@ -17,6 +17,7 @@ package org.apache.cocoon.core.container; import org.apache.avalon.framework.logger.Logger; +import org.apache.cocoon.components.ServiceInfo; /** * The DefaultComponentHandler to make sure components are initialized @@ -35,9 +36,10 @@ * @param factory The factory object which is responsible for creating the components * managed by the handler. */ - public SingleThreadedComponentHandler( final Logger logger, + public SingleThreadedComponentHandler( final ServiceInfo info, + final Logger logger, final ComponentFactory factory ) { - super(logger, factory); + super(info, logger, factory); } /** Added: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java Wed Dec 29 12:39:50 2004 @@ -0,0 +1,489 @@ +/* + * Copyright 2002-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. + */ +package org.apache.cocoon.core.container; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.avalon.excalibur.logger.LoggerManager; +import org.apache.avalon.framework.configuration.Configurable; +import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.configuration.ConfigurationException; +import org.apache.avalon.framework.container.ContainerUtil; +import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.logger.Logger; +import org.apache.avalon.framework.service.ServiceException; +import org.apache.avalon.framework.service.ServiceManager; +import org.apache.avalon.framework.service.ServiceSelector; +import org.apache.avalon.framework.service.Serviceable; +import org.apache.cocoon.components.ServiceInfo; + +/** + * Default component selector for Cocoon's components. + * + * @version CVS $Id$ + */ +public class StandaloneServiceSelector +extends AbstractServiceManager +implements ServiceSelector, Serviceable, Configurable { + + /** The application context for components + */ + protected ServiceManager serviceManager; + + /** The parent selector, if any */ + protected CocoonServiceSelector parentSelector; + + /** The parent locator, if any */ + protected ServiceManager parentLocator; + + /** The role of this selector. Set in <code>configure()</code>. */ + protected String roleName; + + /** The default key */ + protected String defaultKey; + + /** Create the selector */ + public StandaloneServiceSelector() { + super(null); + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.service.ServiceSelector#select(java.lang.Object) + */ + public Object select( Object hint ) + throws ServiceException { + final String key; + if (hint == null) { + key = this.defaultKey; + } else { + key = hint.toString(); + } + + if( !this.initialized ) { + if( this.getLogger().isWarnEnabled() ) { + this.getLogger().warn( "Selecting a component on an uninitialized service selector " + + "with key [" + key + "]" ); + } + } + + if( this.disposed ) { + throw new IllegalStateException( + "You cannot select a component from a disposed service selector." ); + } + + ComponentHandler handler = (ComponentHandler)this.componentHandlers.get( key ); + + // Retrieve the instance of the requested component + if( null == handler ) { + // Doesn't exist here : try in parent selector + if ( this.parentSelector != null ) { + return this.parentSelector.select(key); + } + final String message = this.roleName + + ": service selector could not find the component for key [" + key + "]"; + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( message ); + } + throw new ServiceException( key, message ); + } + + Object component = null; + + try { + component = handler.get(); + } catch( final ServiceException ce ) { + //rethrow + throw ce; + } catch( final Exception e ) { + final String message = this.roleName + + ": service selector could not access the component for key [" + key + "]"; + + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( message, e ); + } + throw new ServiceException( key, message, e ); + } + + if( null == component ) { + // Doesn't exist here : try in parent selector + if ( this.parentSelector != null ) { + component = this.parentSelector.select(key); + } else { + final String message = this.roleName + + ": service selector could not find the component for key [" + key + "]"; + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( message ); + } + throw new ServiceException( key, message ); + } + } + + this.componentMapping.put( component, handler ); + return component; + + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.service.ServiceSelector#isSelectable(java.lang.Object) + */ + public boolean isSelectable( Object hint ) { + final String key; + if (hint == null) { + key = this.defaultKey; + } else { + key = hint.toString(); + } + + if( !this.initialized ) return false; + if( this.disposed ) return false; + + boolean exists = false; + + try { + ComponentHandler handler = (ComponentHandler)this.componentHandlers.get( key ); + exists = (handler != null); + } catch( Throwable t ) { + // We can safely ignore all exceptions + } + + if ( !exists && this.parentSelector != null ) { + exists = this.parentSelector.isSelectable( key ); + } + return exists; + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.service.ServiceSelector#release(java.lang.Object) + */ + public void release( final Object component ) { + if( null == component ) { + return; + } + + // Was it selected on the parent ? + if ( this.parentSelector != null && + this.parentSelector.canRelease(component) ) { + this.parentSelector.release(component); + + } else { + final ComponentHandler handler = + (ComponentHandler)this.componentMapping.get( component ); + + if( null == handler ) { + this.getLogger().warn( "Attempted to release a " + component.getClass().getName() + + " but its handler could not be located." ); + return; + } + + // ThreadSafe components will always be using a ThreadSafeComponentHandler, + // they will only have a single entry in the m_componentMapping map which + // should not be removed until the ComponentLocator is disposed. All + // other components have an entry for each instance which should be + // removed. + if( !handler.isSingleton() ) { + // Remove the component before calling put. This is critical to avoid the + // problem where another thread calls put on the same component before + // remove can be called. + this.componentMapping.remove( component ); + } + + try { + handler.put( component ); + } catch( Exception e ) { + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( "Error trying to release component", e ); + } + } + } + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) + */ + public void service( final ServiceManager componentManager ) + throws ServiceException { + this.serviceManager = componentManager; + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration) + */ + public void configure( final Configuration config ) + throws ConfigurationException { + this.roleName = getRoleName(config); + + // Get default key + this.defaultKey = config.getAttribute(this.getDefaultKeyAttributeName(), null); + + // Add components + String compInstanceName = getComponentInstanceName(); + + Configuration[] instances = config.getChildren(); + + for (int i = 0; i < instances.length; i++) { + + Configuration instance = instances[i]; + + String key = instance.getAttribute("name").trim(); + + String classAttr = instance.getAttribute(getClassAttributeName(), null); + String className; + + if (compInstanceName == null) { + // component-instance implicitly defined by the presence of the 'class' attribute + if (classAttr == null) { + final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); + className = info.getServiceClassName(); + } else { + className = classAttr.trim(); + } + + } else { + // component-instances names explicitly defined + if (compInstanceName.equals(instance.getName())) { + className = (classAttr == null) ? null : classAttr.trim(); + } else { + final ServiceInfo info = this.roleManager.getDefaultServiceInfoForKey(roleName, instance.getName()); + className = info.getServiceClassName(); + } + } + + if (className == null) { + String message = "Unable to determine class name for component named '" + key + + "' at " + instance.getLocation(); + + getLogger().error(message); + throw new ConfigurationException(message); + } + + this.addComponent( className, key, instance ); + } + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.activity.Initializable#initialize() + */ + public void initialize() + throws Exception { + super.initialize(); + + List keys = new ArrayList( this.componentHandlers.keySet() ); + + for( int i = 0; i < keys.size(); i++ ) { + final Object key = keys.get( i ); + final ComponentHandler handler = + (ComponentHandler)this.componentHandlers.get( key ); + + try { + handler.initialize(); + } catch( Exception e ) { + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( "Caught an exception trying to initialize " + + "of the component handler.", e ); + } + } + + } + } + + /* (non-Javadoc) + * @see org.apache.avalon.framework.activity.Disposable#dispose() + */ + public void dispose() { + Iterator keys = this.componentHandlers.keySet().iterator(); + List keyList = new ArrayList(); + + while( keys.hasNext() ) { + Object key = keys.next(); + ComponentHandler handler = + (ComponentHandler)this.componentHandlers.get( key ); + + handler.dispose(); + + keyList.add( key ); + } + + keys = keyList.iterator(); + + while( keys.hasNext() ) { + this.componentHandlers.remove( keys.next() ); + } + + keyList.clear(); + + if ( this.parentLocator != null ) { + this.parentLocator.release( this.parentSelector ); + this.parentLocator = null; + this.parentSelector = null; + } + + super.dispose(); + } + + /** Add a new component to the manager. + * @param key the key for the new component. + * @param component the class of this component. + * @param configuration the configuration for this component. + */ + public void addComponent( final String key, + final Class component, + final Configuration configuration ) + throws ServiceException { + if( this.initialized ) { + throw new ServiceException( key, + "Cannot add components to an initialized service selector" ); + } + + try { + final ComponentHandler handler = getComponentHandler( null, + component, + configuration, + this.serviceManager); + + handler.initialize(); + this.componentHandlers.put( key, handler ); + + if( this.getLogger().isDebugEnabled() ) { + this.getLogger().debug( + "Adding " + component.getName() + " for key [" + key + "]" ); + } + } catch (ServiceException se) { + throw se; + } catch( final Exception e ) { + final String message = + "Could not set up component for key [ " + key + "]"; + if( this.getLogger().isErrorEnabled() ) { + this.getLogger().error( message, e ); + } + + throw new ServiceException(key, message, e ); + } + } + + /** + * Get the name for component-instance elements (i.e. components not defined + * by their role shortcut. If <code>null</code>, any element having a 'class' + * attribute will be considered as a component instance. + * <p> + * The default here is to return <code>null</code>, and subclasses can redefine + * this method to return particular values. + * + * @return <code>null</code>, but can be changed by subclasses + */ + protected String getComponentInstanceName() { + return null; + } + + /** + * Get the name of the attribute giving the class name of a component. + * The default here is "class", but this can be overriden in subclasses. + * + * @return "<code>class</code>", but can be changed by subclasses + */ + protected String getClassAttributeName() { + return "class"; + } + + /** + * Get the name of the attribute giving the default key to use if + * none is given. The default here is "default", but this can be + * overriden in subclasses. If this method returns <code>null</code>, + * no default key can be specified. + * + * @return "<code>default</code>", but can be changed by subclasses + */ + protected String getDefaultKeyAttributeName() { + return "default"; + } + + /** + * Get the role name for this selector. This is called by <code>configure()</code> + * to set the value of <code>this.roleName</code>. + * + * @return the role name, or <code>null<code> if it couldn't be determined. + */ + protected String getRoleName(Configuration config) { + // Get the role for this selector + String name = config.getAttribute("role", null); + if (name == null && this.roleManager != null) { + name = this.roleManager.getRoleForName(config.getName()); + } + + return name; + } + + /** + * Set the ComponentLocatorImpl that allows access to a possible + * parent of this selector + * @param locator + * @throws ServiceException + */ + public void setParentLocator(ServiceManager locator, String role) + throws ServiceException { + if (this.parentSelector != null) { + throw new ServiceException(null, "Parent selector is already set"); + } + this.parentLocator = locator; + + // Get the parent, unwrapping it as far as needed + Object parent = locator.lookup(role); + + if (parent instanceof CocoonServiceSelector) { + this.parentSelector = (CocoonServiceSelector)parent; + } else { + throw new IllegalArgumentException("Parent selector is not an extended component selector (" + parent + ")"); + } + } + + protected boolean canRelease(Object component) { + if ( this.parentSelector != null && + this.parentSelector.canRelease(component) ) { + return true; + } + return this.componentMapping.containsKey( component ); + } + + /** + * A special factory that sets the RoleManager and LoggerManager after service() + */ + public static class Factory extends ComponentFactory { + public Factory(ServiceManager serviceManager, Context context, Logger logger, + LoggerManager loggerManager, RoleManager roleManager, ServiceInfo info) { + super(serviceManager, context, logger, loggerManager, roleManager, info); + } + + public Object newInstance() + throws Exception { + final StandaloneServiceSelector component = (StandaloneServiceSelector)this.serviceInfo.getServiceClass().newInstance(); + + ContainerUtil.enableLogging(component, this.logger); + ContainerUtil.contextualize(component, this.context); + ContainerUtil.service(component, this.serviceManager); + + component.setLoggerManager(this.loggerManager); + component.setRoleManager(this.roleManager); + + ContainerUtil.configure(component, this.serviceInfo.getConfiguration()); + ContainerUtil.initialize(component); + ContainerUtil.start(component); + + return component; + } + } +} Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java?view=diff&rev=123675&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java&r1=123674&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java&r2=123675 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ThreadSafeComponentHandler.java Wed Dec 29 12:39:50 2004 @@ -17,6 +17,7 @@ package org.apache.cocoon.core.container; import org.apache.avalon.framework.logger.Logger; +import org.apache.cocoon.components.ServiceInfo; /** * The ThreadSafeComponentHandler to make sure components are initialized @@ -36,11 +37,16 @@ * @param factory The factory object which is responsible for creating the components * managed by the handler. */ - public ThreadSafeComponentHandler( final Logger logger, + public ThreadSafeComponentHandler( final ServiceInfo info, + final Logger logger, final ComponentFactory factory ) { - super(logger, factory); + super(info, logger, factory); } + public boolean isSingleton() { + return true; + } + public void initialize() throws Exception { if( this.initialized ) { Added: cocoon/trunk/src/core/java/org/apache/cocoon/core/source/SimpleSourceResolver.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/source/SimpleSourceResolver.java?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/source/SimpleSourceResolver.java Wed Dec 29 12:39:50 2004 @@ -0,0 +1,118 @@ +/* + * Copyright 2002-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. + */ +package org.apache.cocoon.core.source; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; + +import org.apache.avalon.framework.context.Context; +import org.apache.avalon.framework.context.ContextException; +import org.apache.avalon.framework.context.Contextualizable; +import org.apache.avalon.framework.logger.AbstractLogEnabled; +import org.apache.avalon.framework.logger.Logger; +import org.apache.avalon.framework.thread.ThreadSafe; +import org.apache.excalibur.source.Source; +import org.apache.excalibur.source.SourceResolver; +import org.apache.excalibur.source.impl.ResourceSourceFactory; +import org.apache.excalibur.source.impl.URLSourceFactory; + +/** + * A minimalist <code>SourceResolver</code> that handles a fixed restricted number of protocols. It is + * used as a bootstrap resolver to load roles and imported files in a service manager. + * <p> + * The supported protocols schemes are: + * <ul> + * <li><code>resource</code> to load resources in the classpath,</li> + * <li><code>context</code> to load resources from the context, defined by the <code>context-root</code> + * entry in the Avalon [EMAIL PROTECTED] Context} (either a [EMAIL PROTECTED] File} or an [EMAIL PROTECTED] URL}), or if not + * present, from the <code>user.dir</code> system property,</li> + * <li>all standard JDK schemes (http, file, etc). + * </ul> + * Relative URIs are resolved relatively to the context root, i.e. similarily to "<code>context:</code>". + * + * @version $Id$ + */ +public final class SimpleSourceResolver extends AbstractLogEnabled + implements ThreadSafe, Contextualizable, SourceResolver { + + // The base URI, initialized in contextualize() + private String contextBase; + + // The two factories we use (no need for a selector nor a Map) + private ResourceSourceFactory resourceFactory = new ResourceSourceFactory(); + private URLSourceFactory urlFactory = new URLSourceFactory(); + + public void enableLogging(Logger logger) { + super.enableLogging(logger); + resourceFactory.enableLogging(logger); + urlFactory.enableLogging(logger); + } + + public void contextualize(Context context) throws ContextException { + try { + // Similar to Excalibur's SourceResolverImpl, and consistent with ContextHelper.CONTEXT_ROOT_URL + if( context.get("context-root") instanceof URL) { + contextBase = ((URL)context.get("context-root")).toExternalForm(); + } else { + contextBase = ((File)context.get("context-root")).toURL().toExternalForm(); + } + } catch(ContextException ce) { + //FIXME: Cocoon's CONTEXT_ROOT_URL context entry should be made consistent with Excalibur + try { + contextBase = new URL((String)context.get("root-url")).toExternalForm(); + } catch (MalformedURLException mue) { + throw new ContextException("Malformed URL for root-url", mue); + } catch (ContextException e) { + // set the base URL to the current directory + try { + contextBase = new File(System.getProperty("user.dir")).toURL().toExternalForm(); + } catch( MalformedURLException mue) { + throw new ContextException( "Malformed URL for user.dir, and no context-root exists", mue); + } + } + } catch( MalformedURLException mue) { + throw new ContextException("Malformed URL for context-root", mue); + } + + if (getLogger().isDebugEnabled()) { + getLogger().debug("Base URL set to " + this.contextBase); + } + } + + public Source resolveURI(String uri) throws MalformedURLException, IOException { + return resolveURI(contextBase, uri, null); + } + + public Source resolveURI(String base, String uri, Map params) throws MalformedURLException, IOException { + if (uri.startsWith("resource://")) { + return resourceFactory.getSource(uri, null); + } else if (uri.startsWith("context://")) { + // Strip "context://" and resolve relative to the context base + return resolveURI(this.contextBase, uri.substring("context://".length()), params); + } else { + URL url = new URL(new URL(base), uri); + return this.urlFactory.getSource(url.toExternalForm(), params); + } + } + + public void release(Source source) { + // Don't care. The factories we use here don't need that + } +} Modified: cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles?view=diff&rev=123675&p1=cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles&r1=123674&p2=cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles&r2=123675 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles (original) +++ cocoon/trunk/src/java/org/apache/cocoon/cocoon.roles Wed Dec 29 12:39:50 2004 @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> +<!-- $Id$ --> <!DOCTYPE role-list [ <!ELEMENT role-list (role+)> <!ELEMENT role (hint*)> @@ -31,7 +32,7 @@ <role name="org.apache.excalibur.source.SourceFactorySelector" shorthand="source-factories" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"> </role> <role name="org.apache.excalibur.source.SourceResolver" @@ -114,11 +115,8 @@ default-class="org.apache.cocoon.components.treeprocessor.TreeProcessor"/> <!-- the tree builder for the sitemap language (additional implementations can be added here - or in cocoon.xconf for other implementations) - - The shorthand attribute is actually of no use, but the rolemanager requires it --> + or in cocoon.xconf for other implementations) --> <role name="org.apache.cocoon.components.treeprocessor.TreeBuilder/sitemap-1.0" - shorthand="treebuilder-1.0-should-actually-never-be-used" default-class="org.apache.cocoon.components.treeprocessor.sitemap.SitemapLanguage"/> <!-- the various elements of map:components --> @@ -158,6 +156,19 @@ shorthand="notifying-builder" default-class="org.apache.cocoon.components.notification.DefaultNotifyingBuilder"/> + <!-- system-defined sitemap components --> + <role name="org.apache.cocoon.generation.Generator/<notifier>" + default-class="org.apache.cocoon.generation.NotifyingGenerator"/> + + <role name="org.apache.cocoon.generation.Generator/<aggregator>" + default-class="org.apache.cocoon.sitemap.ContentAggregator"/> + + <role name="org.apache.cocoon.transformation.Transformer/<translator>" + default-class="org.apache.cocoon.sitemap.LinkTranslator"/> + + <role name="org.apache.cocoon.transformation.Transformer/<gatherer>" + default-class="org.apache.cocoon.sitemap.LinkGatherer"/> + <!--=========================================================================--> <role name="org.apache.cocoon.components.classloader.ClassLoaderManager" @@ -167,15 +178,6 @@ <role name="org.apache.cocoon.components.image.ImageEncoderSelector" shorthand="image-encoder"/> - <role name="org.apache.avalon.excalibur.datasource.DataSourceComponentSelector" - shorthand="datasources" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"> - <hint shorthand="jdbc" class="org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource"/> - <!-- hint shorthand="jdbc" class="org.apache.avalon.excalibur.datasource.JdbcDataSource"/ --> - <hint shorthand="j2ee" class="org.apache.avalon.excalibur.datasource.J2eeDataSource"/> - <hint shorthand="informix" class="org.apache.avalon.excalibur.datasource.InformixDataSource"/> - </role> - <role name="org.apache.excalibur.xmlizer.XMLizer" shorthand="xmlizer" default-class="org.apache.excalibur.xmlizer.DefaultXMLizer"/> @@ -204,7 +206,7 @@ <!-- Control flow layer: the interpreters selector and continuations manager --> <role name="org.apache.cocoon.components.flow.Interpreter" shorthand="flow-interpreters" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"/> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> <role name="org.apache.cocoon.components.flow.ContinuationsManager" shorthand="continuations-manager" @@ -213,11 +215,11 @@ <!-- input/output modules --> <role name="org.apache.cocoon.components.modules.input.InputModuleSelector" shorthand="input-modules" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"/> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> <role name="org.apache.cocoon.components.modules.output.OutputModuleSelector" shorthand="output-modules" - default-class="org.apache.cocoon.core.container.CocoonServiceSelector"/> + default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/> <role name="org.apache.cocoon.components.modules.input.SitemapVariableHolder" shorthand="global-variables" Modified: cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java?view=diff&rev=123675&p1=cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java&r1=123674&p2=cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java&r2=123675 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/components/ContextHelper.java Wed Dec 29 12:39:50 2004 @@ -30,7 +30,7 @@ * object. Some of the constants are defined in [EMAIL PROTECTED] org.apache.cocoon.Constants}. * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Id: ContextHelper.java,v 1.9 2004/06/21 10:00:23 jeremy Exp $ + * @version CVS $Id$ */ public final class ContextHelper { @@ -48,6 +48,8 @@ public static final String CONTEXT_SITEMAP_SERVICE_MANAGER = "sitemap-service-manager"; /** Application root directory @since 2.2 */ + // FIXME(SW): it would be better for this to be named "context-root" and be a URL to be consistent + // with Excalibur's SourceResolverImpl. For now, we use this also in the core's SimpleSourceResolver public static final String CONTEXT_ROOT_URL = "root-url"; private ContextHelper() { Modified: cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java?view=diff&rev=123675&p1=cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java&r1=123674&p2=cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java&r2=123675 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java Wed Dec 29 12:39:50 2004 @@ -16,18 +16,14 @@ */ package org.apache.cocoon.components.container; -import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; -import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.cocoon.components.SitemapConfigurable; import org.apache.cocoon.components.SitemapConfigurationHolder; -import org.apache.cocoon.core.container.CocoonServiceSelector; /** * Default service manager for Cocoon's components. @@ -40,10 +36,6 @@ /** The [EMAIL PROTECTED] SitemapConfigurationHolder}s */ private Map sitemapConfigurationHolders = new HashMap(15); - /** Temporary list of parent-aware components. Will be null for most of - * our lifecycle. */ - private ArrayList parentAwareComponents = new ArrayList(); - /** Create the ServiceManager with a Classloader and parent ServiceManager */ public CocoonServiceManager( final ServiceManager parent, final ClassLoader loader ) { @@ -74,55 +66,4 @@ } } } - - /* (non-Javadoc) - * @see org.apache.avalon.framework.activity.Initializable#initialize() - */ - public void initialize() - throws Exception { - super.initialize(); - - if (this.parentAwareComponents == null) { - throw new ServiceException(null, "CocoonServiceManager already initialized"); - } - - // Set parents for parentAware components - Iterator iter = this.parentAwareComponents.iterator(); - while (iter.hasNext()) { - String role = (String)iter.next(); - if ( this.parentManager != null && this.parentManager.hasService( role ) ) { - // lookup new component - Object component = null; - try { - component = this.lookup( role ); - ((CocoonServiceSelector)component).setParentLocator( this.parentManager, role ); - } catch (ServiceException ignore) { - // we don't set the parent then - } finally { - this.release( component ); - } - } - } - this.parentAwareComponents = null; // null to save memory, and catch logic bugs. - } - - /** - * Add a new component to the manager. - * - * @param role the role name for the new component. - * @param component the class of this component. - * @param configuration the configuration for this component. - */ - public void addComponent( final String role, - final Class component, - final Configuration configuration ) - throws ServiceException { - super.addComponent( role, component, configuration ); - // Note that at this point, we're not initialized and cannot do - // lookups, so defer parental introductions to initialize(). - if ( CocoonServiceSelector.class.isAssignableFrom( component ) ) { - this.parentAwareComponents.add(role); - } - } - } Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java?view=diff&rev=123675&p1=cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java&r1=123674&p2=cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java&r2=123675 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java Wed Dec 29 12:39:50 2004 @@ -15,25 +15,13 @@ */ package org.apache.cocoon.components.treeprocessor.sitemap; -import java.util.HashSet; -import java.util.Set; - import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; -import org.apache.avalon.framework.configuration.DefaultConfiguration; import org.apache.avalon.framework.container.ContainerUtil; import org.apache.avalon.framework.service.ServiceException; -import org.apache.cocoon.acting.Action; -import org.apache.cocoon.components.pipeline.ProcessingPipeline; -import org.apache.cocoon.core.container.CocoonServiceSelector; -import org.apache.cocoon.generation.Generator; +import org.apache.cocoon.core.container.DefaultServiceSelector; import org.apache.cocoon.generation.GeneratorFactory; -import org.apache.cocoon.matching.Matcher; -import org.apache.cocoon.reading.Reader; -import org.apache.cocoon.selection.Selector; -import org.apache.cocoon.serialization.Serializer; import org.apache.cocoon.serialization.SerializerFactory; -import org.apache.cocoon.transformation.Transformer; import org.apache.cocoon.transformation.TransformerFactory; /** @@ -41,30 +29,44 @@ * * @version CVS $Id$ */ -public class ComponentsSelector extends CocoonServiceSelector { +public class ComponentsSelector extends DefaultServiceSelector { - public static final int UNKNOWN = -1; - public static final int GENERATOR = 0; - public static final int TRANSFORMER = 1; - public static final int SERIALIZER = 2; - public static final int READER = 3; - public static final int MATCHER = 4; - public static final int SELECTOR = 5; - public static final int ACTION = 6; - public static final int PIPELINE = 7; - - public static final String[] SELECTOR_ROLES = { - Generator.ROLE + "Selector", - Transformer.ROLE + "Selector", - Serializer.ROLE + "Selector", - Reader.ROLE + "Selector", - Matcher.ROLE + "Selector", - Selector.ROLE + "Selector", - Action.ROLE + "Selector", - ProcessingPipeline.ROLE + "Selector" + private static final int UNKNOWN = -1; + private static final int GENERATOR = 0; + private static final int TRANSFORMER = 1; + private static final int SERIALIZER = 2; + private static final int READER = 3; + private static final int MATCHER = 4; + private static final int SELECTOR = 5; + private static final int ACTION = 6; + private static final int PIPELINE = 7; + +// /** Role names, ordered as the constants above */ +// public static final String[] SELECTOR_ROLES = { +// Generator.ROLE + "Selector", +// Transformer.ROLE + "Selector", +// Serializer.ROLE + "Selector", +// Reader.ROLE + "Selector", +// Matcher.ROLE + "Selector", +// Selector.ROLE + "Selector", +// Action.ROLE + "Selector", +// ProcessingPipeline.ROLE + "Selector" +// }; + + /** Configuration element names, used to find the role */ + private static final String[] CONFIG_NAMES = { + "generators", + "transformers", + "serializers", + "readers", + "matchers", + "selectors", + "actions", + "pipes" }; - public static final String[] COMPONENT_NAMES = { + /** Names of children elements, according to role */ + private static final String[] COMPONENT_NAMES = { "generator", "transformer", "serializer", @@ -78,16 +80,15 @@ /** The role as an integer */ private int roleId; - /** The set of known hints, used to add standard components (see ensureExists) */ - private Set knownHints = new HashSet(); - +// /** The set of known hints, used to add standard components (see ensureExists) */ +// private Set knownHints = new HashSet(); /** * Return the component instance name according to the selector role * (e.g. "action" for "org.apache.cocoon.acting.Action"). */ protected String getComponentInstanceName() { - return (this.roleId == UNKNOWN) ? null : COMPONENT_NAMES[this.roleId]; + return COMPONENT_NAMES[this.roleId]; } /** @@ -95,7 +96,7 @@ * "class" (the default) for other roles. */ protected String getClassAttributeName() { - return (this.roleId == UNKNOWN) ? "class" : "src"; + return "src"; } /* (non-Javadoc) @@ -103,87 +104,88 @@ */ public void configure(Configuration config) throws ConfigurationException { // Who are we ? - final String role = getRoleName(config); + final String configName = config.getName(); this.roleId = UNKNOWN; // unknown - for (int i = 0; i < SELECTOR_ROLES.length; i++) { - if (SELECTOR_ROLES[i].equals(role)) { + for (int i = 0; i < CONFIG_NAMES.length; i++) { + if (CONFIG_NAMES[i].equals(configName)) { this.roleId = i; break; } } - - if (getLogger().isDebugEnabled()) { - getLogger().debug("Setting up sitemap component selector for " + - role + " (role id = " + this.roleId + ")"); + + if (this.roleId == UNKNOWN) { + throw new ConfigurationException("ComponentsSelector is reserved for sitemap components. Illegal use at " + + config.getLocation()); } super.configure(config); } - /** - * Add a component in this selector. - */ - public void addComponent(String key, Class clazz, Configuration config) throws ServiceException { - super.addComponent(key, clazz, config); - - // Add to known hints. This is needed as we cannot call isSelectable() if initialize() - // has not been called, and we cannot add components once it has been called... - this.knownHints.add(key); - } - - /** - * Ensure system-defined components exist (e.g. <aggregator>) and initialize - * the selector. - */ - public void initialize() throws Exception { - DefaultConfiguration config = null; - - // Ensure all system-defined hints exist. - // NOTE : checking this here means they can be user-defined in the sitemap - switch(this.roleId) { - case GENERATOR : - config = new DefaultConfiguration(COMPONENT_NAMES[GENERATOR], "autogenerated"); - config.setAttribute("name", "<notifier>"); - ensureExists("<notifier>", - org.apache.cocoon.sitemap.NotifyingGenerator.class, config); - - config = new DefaultConfiguration(COMPONENT_NAMES[GENERATOR], "autogenerated"); - config.setAttribute("name", "<aggregator>"); - ensureExists("<aggregator>", - org.apache.cocoon.sitemap.ContentAggregator.class, config); - break; - - case TRANSFORMER : - config = new DefaultConfiguration(COMPONENT_NAMES[TRANSFORMER], "autogenerated"); - config.setAttribute("name", "<translator>"); - ensureExists("<translator>", - org.apache.cocoon.sitemap.LinkTranslator.class, config); - - config = new DefaultConfiguration(COMPONENT_NAMES[TRANSFORMER], "autogenerated"); - config.setAttribute("name", "<gatherer>"); - ensureExists("<gatherer>", - org.apache.cocoon.sitemap.LinkGatherer.class, config); - break; - } - - super.initialize(); - - // Don't keep known hints (they're no more needed) - this.knownHints = null; - } - - /** - * Ensure a component exists or add it otherwhise. We cannot simply call hasComponent() - * since it requires to be initialized, and we want to add components, and this must - * be done before initialization. - */ - private void ensureExists(String key, Class clazz, Configuration config) throws ServiceException { - if (!this.knownHints.contains(key)) { - if (this.parentSelector == null || !this.parentSelector.isSelectable(key)) { - this.addComponent(key, clazz, config); - } - } - } +// /** +// * Add a component in this selector. +// */ +// public void addComponent(String key, Class clazz, Configuration config) throws ServiceException { +// super.addComponent(key, clazz, config); +// +// // Add to known hints. This is needed as we cannot call isSelectable() if initialize() +// // has not been called, and we cannot add components once it has been called... +// this.knownHints.add(key); +// } + +// Now defined in cocoon.roles +// /** +// * Ensure system-defined components exist (e.g. <aggregator>) and initialize +// * the selector. +// */ +// public void initialize() throws Exception { +// DefaultConfiguration config = null; +// +// // Ensure all system-defined hints exist. +// // NOTE : checking this here means they can be user-defined in the sitemap +// switch(this.roleId) { +// case GENERATOR : +// config = new DefaultConfiguration(COMPONENT_NAMES[GENERATOR], "autogenerated"); +// config.setAttribute("name", "<notifier>"); +// ensureExists("<notifier>", +// org.apache.cocoon.sitemap.NotifyingGenerator.class, config); +// +// config = new DefaultConfiguration(COMPONENT_NAMES[GENERATOR], "autogenerated"); +// config.setAttribute("name", "<aggregator>"); +// ensureExists("<aggregator>", +// org.apache.cocoon.sitemap.ContentAggregator.class, config); +// break; +// +// case TRANSFORMER : +// config = new DefaultConfiguration(COMPONENT_NAMES[TRANSFORMER], "autogenerated"); +// config.setAttribute("name", "<translator>"); +// ensureExists("<translator>", +// org.apache.cocoon.sitemap.LinkTranslator.class, config); +// +// config = new DefaultConfiguration(COMPONENT_NAMES[TRANSFORMER], "autogenerated"); +// config.setAttribute("name", "<gatherer>"); +// ensureExists("<gatherer>", +// org.apache.cocoon.sitemap.LinkGatherer.class, config); +// break; +// } +// +// super.initialize(); +// +// // Don't keep known hints (they're no more needed) +// this.knownHints = null; +// } +// +// /** +// * Ensure a component exists or add it otherwhise. We cannot simply call hasComponent() +// * since it requires to be initialized, and we want to add components, and this must +// * be done before initialization. +// */ +// private void ensureExists(String key, Class clazz, Configuration config) throws ServiceException { +// if (!this.knownHints.contains(key)) { +// if (this.parentSelector == null || !this.parentSelector.isSelectable(key)) { +// this.addComponent(key, clazz, config); +// } +// } +// } /** * Override parent to implement support for [EMAIL PROTECTED] GeneratorFactory}, Modified: cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf?view=diff&rev=123675&p1=cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf&r1=123674&p2=cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf&r2=123675 ============================================================================== --- cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf (original) +++ cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf Wed Dec 29 12:39:50 2004 @@ -18,653 +18,14 @@ <cocoon version="2.2"> <!--+ - | 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). + | This is the main Apache Cocoon configuration file. + | It contains includes for the core components and for + | each of the blocks that are to be loaded. + | + | You can add your own components here or include some + | additional external files. +--> -<!-- =========================== Sitemap =============================== --> + <include src="context://WEB-INF/xconf/cocoon-core.xconf"/> - <!--+ - | 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 - file="context://sitemap.xmap" - check-reload="yes" - 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". 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). - | - | 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 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="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="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="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> - - <!-- The 'defaults', 'myxml' and 'slashdot' input modules are used - in the samples --> - <component-instance logger="core.modules.input" name="defaults" class="org.apache.cocoon.components.modules.input.DefaultsModule"> - <values> - <skin>defaultSkin</skin> - <base-url>http://localhost:8080/cocoon</base-url> - </values> - </component-instance> - - <component-instance class="org.apache.cocoon.components.modules.input.XMLFileModule" logger="core.modules.xml" name="myxml"> - <file src="context://samples/modules/forrestconf.xml"/> - </component-instance> - <component-instance class="org.apache.cocoon.components.modules.input.XMLFileModule" logger="core.modules.xml" name="slashdot"> - <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 ================================ --> - - <!--+ - | Source Factories - | - | Each source factory adds a special uri schemes to the system. - +--> - <source-factories> - <component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource"/> - <component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/> - <component-instance class="org.apache.cocoon.components.source.impl.SitemapSourceFactory" name="cocoon"/> - <!--+ - | The "file:" source protocol is modifiable (can be written to) and - | traversable (directory structures can be crawled). - +--> - <component-instance class="org.apache.excalibur.source.impl.FileSourceFactory" name="file"/> - <component-instance class="org.apache.cocoon.components.source.impl.PartSourceFactory" name="upload"/> - <component-instance class="org.apache.cocoon.components.source.impl.ModuleSourceFactory" name="module"/> - <component-instance class="org.apache.cocoon.components.source.impl.XModuleSourceFactory" name="xmodule"/> - - <!--+ - | The "*" protocol handles all uri schemes that are not explicitely - | specified. This includes all JDK standard protocols. - +--> - <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/> - </source-factories> - - <!--+ - | 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-grow="4" pool-max="32" pool-min="8"> - <parameter name="validate" value="false"/> - <parameter name="namespace-prefixes" value="false"/> - <parameter name="stop-on-warning" value="true"/> - <parameter name="stop-on-recoverable-error" value="true"/> - <parameter name="reuse-parsers" value="false"/> - <parameter name="drop-dtd-comments" value="true"/> - </xml-parser> - - <!--+ - | 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 logger="core.xslt-processor" - role="org.apache.excalibur.xml.xslt.XSLTProcessor/xsltc" - class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"> - <parameter name="use-store" value="true"/> - <parameter name="transformer-factory" value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl"/> - </component> - - <!--+ - | Xalan XSLT Processor - +--> - <component logger="core.xslt-processor" - role="org.apache.excalibur.xml.xslt.XSLTProcessor/xalan" - class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"> - <parameter name="use-store" value="true"/> - <parameter name="incremental-processing" value="false"/> - <parameter name="transformer-factory" value="org.apache.xalan.processor.TransformerFactoryImpl"/> - </component> - - <!--+ - | 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="true"/> - <parameter name="transformer-factory" value="com.icl.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 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 --> - <parameter name="freememory" value="2048000"/> - <!-- Indicates the limit of the jvm memory consumption. The default max - heapsize for Sun's JVM is (almost) 64Mb --> - <parameter name="heapsize" value="66600000"/> - <!-- How often shall the cleanup thread check memory --> - <parameter name="cleanupthreadinterval" value="10"/> - <!-- Experimental adaptive algorithm for cleanup interval - <parameter name="adaptivethreadinterval" value="true"/> - --> - <!-- Indicates the thread priority of the cleanup thread --> - <parameter name="threadpriority" value="5"/> - <!-- How much percent of the elements of each registered Store - shall be removed when low on memory. Default 10% --> - <parameter name="percent_to_free" value="10"/> - <!-- Invoke the garbage collector when low memory is reached --> - <parameter name="invokegc" value="false"/> - </store-janitor> - -<!-- ========================= 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>context://samples/i18n/translations</catalogue-location> - <cache-at-startup>true</cache-at-startup> - </i18n-bundles> - -<!-- ====================== 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> - - <!--+ - | 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>RUN</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> </cocoon> Added: cocoon/trunk/src/webapp/WEB-INF/xconf/cocoon-core.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/webapp/WEB-INF/xconf/cocoon-core.xconf?view=auto&rev=123675 ============================================================================== --- (empty file) +++ cocoon/trunk/src/webapp/WEB-INF/xconf/cocoon-core.xconf Wed Dec 29 12:39:50 2004 @@ -0,0 +1,674 @@ +<?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: + | 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 + file="context://sitemap.xmap" + check-reload="yes" + 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". 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). + | + | 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 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="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="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="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> + + <!-- The 'defaults', 'myxml' and 'slashdot' input modules are used + in the samples --> + <component-instance logger="core.modules.input" name="defaults" class="org.apache.cocoon.components.modules.input.DefaultsModule"> + <values> + <skin>defaultSkin</skin> + <base-url>http://localhost:8080/cocoon</base-url> + </values> + </component-instance> + + <component-instance class="org.apache.cocoon.components.modules.input.XMLFileModule" logger="core.modules.xml" name="myxml"> + <file src="context://samples/modules/forrestconf.xml"/> + </component-instance> + <component-instance class="org.apache.cocoon.components.modules.input.XMLFileModule" logger="core.modules.xml" name="slashdot"> + <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 ================================ --> + + <!--+ + | Source Factories + | + | Each source factory adds a special uri schemes to the system. + +--> + <source-factories> + <component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource"/> + <component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/> + <component-instance class="org.apache.cocoon.components.source.impl.SitemapSourceFactory" name="cocoon"/> + <!--+ + | The "file:" source protocol is modifiable (can be written to) and + | traversable (directory structures can be crawled). + +--> + <component-instance class="org.apache.excalibur.source.impl.FileSourceFactory" name="file"/> + <component-instance class="org.apache.cocoon.components.source.impl.PartSourceFactory" name="upload"/> + <component-instance class="org.apache.cocoon.components.source.impl.ModuleSourceFactory" name="module"/> + <component-instance class="org.apache.cocoon.components.source.impl.XModuleSourceFactory" name="xmodule"/> + + <!--+ + | The "*" protocol handles all uri schemes that are not explicitely + | specified. This includes all JDK standard protocols. + +--> + <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/> + </source-factories> + + <!--+ + | 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-grow="4" pool-max="32" pool-min="8"> + <parameter name="validate" value="false"/> + <parameter name="namespace-prefixes" value="false"/> + <parameter name="stop-on-warning" value="true"/> + <parameter name="stop-on-recoverable-error" value="true"/> + <parameter name="reuse-parsers" value="false"/> + <parameter name="drop-dtd-comments" value="true"/> + </xml-parser> + + <!--+ + | 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 logger="core.xslt-processor" + role="org.apache.excalibur.xml.xslt.XSLTProcessor/xsltc" + class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"> + <parameter name="use-store" value="true"/> + <parameter name="transformer-factory" value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl"/> + </component> + + <!--+ + | Xalan XSLT Processor + +--> + <component logger="core.xslt-processor" + role="org.apache.excalibur.xml.xslt.XSLTProcessor/xalan" + class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl"> + <parameter name="use-store" value="true"/> + <parameter name="incremental-processing" value="false"/> + <parameter name="transformer-factory" value="org.apache.xalan.processor.TransformerFactoryImpl"/> + </component> + + <!--+ + | 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="true"/> + <parameter name="transformer-factory" value="com.icl.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 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 --> + <parameter name="freememory" value="2048000"/> + <!-- Indicates the limit of the jvm memory consumption. The default max + heapsize for Sun's JVM is (almost) 64Mb --> + <parameter name="heapsize" value="66600000"/> + <!-- How often shall the cleanup thread check memory --> + <parameter name="cleanupthreadinterval" value="10"/> + <!-- Experimental adaptive algorithm for cleanup interval + <parameter name="adaptivethreadinterval" value="true"/> + --> + <!-- Indicates the thread priority of the cleanup thread --> + <parameter name="threadpriority" value="5"/> + <!-- How much percent of the elements of each registered Store + shall be removed when low on memory. Default 10% --> + <parameter name="percent_to_free" value="10"/> + <!-- Invoke the garbage collector when low memory is reached --> + <parameter name="invokegc" value="false"/> + </store-janitor> + +<!-- ========================= 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>context://samples/i18n/translations</catalogue-location> + <cache-at-startup>true</cache-at-startup> + </i18n-bundles> + +<!-- ====================== 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> + + <!--+ + | 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>RUN</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> Modified: cocoon/trunk/status.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/status.xml?view=diff&rev=123675&p1=cocoon/trunk/status.xml&r1=123674&p2=cocoon/trunk/status.xml&r2=123675 ============================================================================== --- cocoon/trunk/status.xml (original) +++ cocoon/trunk/status.xml Wed Dec 29 12:39:50 2004 @@ -202,6 +202,11 @@ <changes> <release version="@version@" date="@date@"> + <action dev="SW" type="add"> + Add an include feature to xconf files, to allow an easier configuration of the system. + The main cocoon.xconf is now a list of inclusion of the main core components and a + separate xconf file for each block. Additional role files can also be included. + </action> <action dev="TC" type="add"> javaflow: auto-compilation for javaflow. factored out javaflow and the auto-compilation (jci) Modified: cocoon/trunk/tools/src/blocks-build.xsl Url: http://svn.apache.org/viewcvs/cocoon/trunk/tools/src/blocks-build.xsl?view=diff&rev=123675&p1=cocoon/trunk/tools/src/blocks-build.xsl&r1=123674&p2=cocoon/trunk/tools/src/blocks-build.xsl&r2=123675 ============================================================================== --- cocoon/trunk/tools/src/blocks-build.xsl (original) +++ cocoon/trunk/tools/src/blocks-build.xsl Wed Dec 29 12:39:50 2004 @@ -55,12 +55,6 @@ <!-- Files, which should no compiled or otherwise processed --> <patternset id="unprocessed.sources"> <exclude name="**/*.java"/> - <exclude name="**/*.xconf"/> - <exclude name="**/*.xroles"/> - <exclude name="**/*.xmap"/> - <exclude name="**/*.xpipe"/> - <exclude name="**/*.xlog"/> - <exclude name="**/*.xweb"/> <exclude name="**/package.html"/> </patternset> Modified: cocoon/trunk/tools/targets/compile-build.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/tools/targets/compile-build.xml?view=diff&rev=123675&p1=cocoon/trunk/tools/targets/compile-build.xml&r1=123674&p2=cocoon/trunk/tools/targets/compile-build.xml&r2=123675 ============================================================================== --- cocoon/trunk/tools/targets/compile-build.xml (original) +++ cocoon/trunk/tools/targets/compile-build.xml Wed Dec 29 12:39:50 2004 @@ -31,8 +31,6 @@ <copy todir="${build.dest}"> <fileset dir="${java}"> <exclude name="**/*.java"/> - <exclude name="**/*.xroles"/> - <exclude name="**/*.xconf"/> </fileset> </copy> Modified: cocoon/trunk/tools/targets/webapp-build.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/tools/targets/webapp-build.xml?view=diff&rev=123675&p1=cocoon/trunk/tools/targets/webapp-build.xml&r1=123674&p2=cocoon/trunk/tools/targets/webapp-build.xml&r2=123675 ============================================================================== --- cocoon/trunk/tools/targets/webapp-build.xml (original) +++ cocoon/trunk/tools/targets/webapp-build.xml Wed Dec 29 12:39:50 2004 @@ -43,12 +43,7 @@ </copy> <copy todir="${build.webapp}/WEB-INF" filtering="on"> - <fileset dir="${webapp}/WEB-INF"> - <include name="entities/**"/> - <include name="classes/**"/> - <include name="src/**"/> - <include name="*.x*"/> - </fileset> + <fileset dir="${webapp}/WEB-INF"/> </copy> <copy file="${build}/${name}.jar"