svn commit: r123675 - in cocoon/trunk: . src/blocks/apples/WEB-INF src/blocks/apples/WEB-INF/xconf src/blocks/apples/conf src/blocks/authentication-fw/WEB-INF src/blocks/authentication-fw/WEB-INF/xconf src/blocks/authentication-fw/conf src/blocks/authentication-fw/java/org/apache/cocoon/webapps/authentication src/blocks/axis/WEB-INF src/blocks/axis/WEB-INF/xconf src/blocks/axis/conf src/blocks/axis/java/org/apache/cocoon/components/axis src/blocks/cron/WEB-INF src/blocks/cron/WEB-INF/xconf src/blocks/cron/conf src/blocks/databases/WEB-INF src/blocks/databases/WEB-INF/xconf src/blocks/databases/conf src/blocks/databases/java/org/apache/cocoon/components/database src/blocks/deli/WEB-INF/xconf src/blocks/deli/conf src/blocks/deli/java/org/apache/cocoon/components/deli src/blocks/eventcache/WEB-INF src/blocks/eventcache/WEB-INF/xconf src/blocks/eventcache/conf src/blocks/faces/WEB-INF/xconf src/blocks/faces/conf src/blocks/forms/WEB-INF src/blocks/forms/WEB-INF/xconf src/blocks/forms/conf src/blocks/forms/java/org/apache/cocoon/forms src/blocks/forms/samples/flow src/blocks/forms/samples/forms src/blocks/hsqldb/WEB-INF src/blocks/hsqldb/WEB-INF/xconf src/blocks/hsqldb/conf src/blocks/hsqldb/java/org/apache/cocoon/components/hsqldb src/blocks/html/WEB-INF/xconf src/blocks/html/conf src/blocks/javaflow/WEB-INF src/blocks/javaflow/WEB-INF/xconf src/blocks/javaflow/conf src/blocks/jms/WEB-INF src/blocks/jms/WEB-INF/xconf src/blocks/jms/conf src/blocks/jms/java/org/apache/cocoon/components/jms src/blocks/jsp/WEB-INF src/blocks/jsp/WEB-INF/xconf src/blocks/jsp/conf src/blocks/jsp/java/org/apache/cocoon/components/jsp src/blocks/linkrewriter/WEB-INF src/blocks/linkrewriter/WEB-INF/xconf src/blocks/linkrewriter/conf src/blocks/lucene/WEB-INF src/blocks/lucene/WEB-INF/xconf src/blocks/lucene/conf src/blocks/lucene/java/org/apache/cocoon/components/search src/blocks/mail/WEB-INF src/blocks/mail/WEB-INF/xconf src/blocks/mail/conf src/blocks/ojb/WEB-INF src/blocks/ojb/WEB-INF/xconf src/blocks/ojb/conf src/blocks/ojb/java/org/apache/cocoon/ojb src/blocks/portal-fw/WEB-INF src/blocks/portal-fw/WEB-INF/xconf src/blocks/portal-fw/conf src/blocks/portal-fw/java/org/apache/cocoon/webapps/portal src/blocks/portal/WEB-INF/xconf src/blocks/portal/conf src/blocks/profiler/WEB-INF src/blocks/profiler/WEB-INF/xconf src/blocks/profiler/conf src/blocks/profiler/java/org/apache/cocoon/components/profiler src/blocks/python/java/org/apache/cocoon/components/language/programming/python src/blocks/qdox/WEB-INF src/blocks/qdox/WEB-INF/xconf src/blocks/qdox/conf src/blocks/repository/WEB-INF src/blocks/repository/WEB-INF/xconf src/blocks/repository/conf src/blocks/repository/java/org/apache/cocoon/components/repository src/blocks/scratchpad/WEB-INF src/blocks/scratchpad/WEB-INF/xconf src/blocks/scratchpad/conf src/blocks/session-fw/WEB-INF src/blocks/session-fw/WEB-INF/xconf src/blocks/session-fw/conf src/blocks/session-fw/java/org/apache/cocoon/webapps/session src/blocks/slide/WEB-INF/xconf src/blocks/slide/conf src/blocks/slide/java/org/apache/cocoon/components/slide src/blocks/taglib/WEB-INF src/blocks/taglib/WEB-INF/xconf src/blocks/taglib/conf src/blocks/web3/WEB-INF src/blocks/web3/WEB-INF/xconf src/blocks/web3/conf src/blocks/web3/java/org/apache/cocoon/components/web3 src/blocks/webdav/WEB-INF src/blocks/webdav/WEB-INF/xconf src/blocks/webdav/conf src/blocks/woody/WEB-INF src/blocks/woody/WEB-INF/xconf src/blocks/woody/conf src/blocks/woody/java/org/apache/cocoon/woody src/blocks/xmldb/WEB-INF/xconf src/blocks/xmldb/conf src/blocks/xsp/conf src/blocks/xsp/java/org/apache/cocoon/acting src/blocks/xsp/java/org/apache/cocoon/components/language/generator src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript src/core/java/org/apache/cocoon/components src/core/java/org/apache/cocoon/core/container src/core/java/org/apache/cocoon/core/source src/java/org/apache/cocoon src/java/org/apache/cocoon/components src/java/org/apache/cocoon/components/container src/java/org/apache/cocoon/components/treeprocessor/sitemap src/webapp/WEB-INF src/webapp/WEB-INF/xconf tools/src tools/targets

29 Dec 2004 20:40:14 -0000

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/&lt;notifier&gt;"
+        default-class="org.apache.cocoon.generation.NotifyingGenerator"/>
+  
+  <role name="org.apache.cocoon.generation.Generator/&lt;aggregator&gt;"
+        default-class="org.apache.cocoon.sitemap.ContentAggregator"/>
+
+  <role name="org.apache.cocoon.transformation.Transformer/&lt;translator&gt;"
+        default-class="org.apache.cocoon.sitemap.LinkTranslator"/>
+
+  <role name="org.apache.cocoon.transformation.Transformer/&lt;gatherer&gt;"
+        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. &lt;aggregator&gt;) 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. &lt;aggregator&gt;) 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"

Reply via email to