Author: cziegeler
Date: Tue Jan 18 12:57:21 2005
New Revision: 125544

URL: http://svn.apache.org/viewcvs?view=rev&rev=125544
Log:
Add include for logkit configuration - no more patches 
Added:
   cocoon/trunk/src/blocks/apples/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/apples/WEB-INF/logkitconf/apples.logkit
   cocoon/trunk/src/blocks/cron/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/cron/WEB-INF/logkitconf/cron.logkit
   cocoon/trunk/src/blocks/forms/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/forms/WEB-INF/logkitconf/forms.logkit
   cocoon/trunk/src/blocks/portal/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/portal/WEB-INF/logkitconf/portal.logkit
   cocoon/trunk/src/blocks/slide/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/slide/WEB-INF/logkitconf/slide.logkit
   cocoon/trunk/src/blocks/woody/WEB-INF/logkitconf/
   cocoon/trunk/src/blocks/woody/WEB-INF/logkitconf/woody.logkit
   cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java   
(contents, props changed)
   cocoon/trunk/src/webapp/WEB-INF/logkitconf/
   cocoon/trunk/src/webapp/WEB-INF/logkitconf/core.logkit
Removed:
   cocoon/trunk/src/blocks/apples/conf/apples-category.xlog
   cocoon/trunk/src/blocks/apples/conf/apples-target.xlog
   cocoon/trunk/src/blocks/cron/conf/cron-category.xlog
   cocoon/trunk/src/blocks/cron/conf/cron-target.xlog
   cocoon/trunk/src/blocks/forms/conf/forms-category.xlog
   cocoon/trunk/src/blocks/forms/conf/forms-target.xlog
   cocoon/trunk/src/blocks/portal/conf/portal-category.xlog
   cocoon/trunk/src/blocks/portal/conf/portal-target.xlog
   cocoon/trunk/src/blocks/slide/conf/slide-category.xlog
   cocoon/trunk/src/blocks/slide/conf/slide-target.xlog
   cocoon/trunk/src/blocks/woody/conf/woody-category.xlog
   cocoon/trunk/src/blocks/woody/conf/woody-target.xlog
Modified:
   
cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java
   cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java
   
cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java
   cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java
   cocoon/trunk/src/webapp/WEB-INF/logkit.xconf
   cocoon/trunk/tools/src/blocks-build.xsl

Added: cocoon/trunk/src/blocks/apples/WEB-INF/logkitconf/apples.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/WEB-INF/logkitconf/apples.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/apples/WEB-INF/logkitconf/apples.logkit     Tue Jan 
18 12:57:21 2005
@@ -0,0 +1,38 @@
+<?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: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="apples">
+      <filename>${context-root}/WEB-INF/logs/apples.log</filename>
+
+      <format type="cocoon">
+        %7.7{priority} %{time}   [%{category}] (%{uri}) 
%{thread}/%{class:short}: %{message}\n%{throwable}
+      </format>
+      <append>false</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category log-level="ERROR" name="apples">
+      <log-target id-ref="apples" />
+      <log-target id-ref="error" />
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/apples/conf/apples-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/conf/apples-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/apples/conf/apples-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/apples/conf/apples-target.xlog?view=auto&rev=125543
==============================================================================

Added: cocoon/trunk/src/blocks/cron/WEB-INF/logkitconf/cron.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/WEB-INF/logkitconf/cron.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/cron/WEB-INF/logkitconf/cron.logkit Tue Jan 18 
12:57:21 2005
@@ -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.
+-->
+<!--+
+    |
+    | SVN $Id: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="cron">
+        <filename>${context-root}/WEB-INF/logs/cron.log</filename>
+        <format type="cocoon">
+            %7.7{priority} %{time}   [%{category}] %{thread}/%{class:short}: 
%{message}\n%{throwable}
+        </format>
+        <append>true</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category log-level="INFO" name="cron">
+        <log-target id-ref="cron" />
+        <log-target id-ref="error"/>
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/cron/conf/cron-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/conf/cron-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/cron/conf/cron-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/cron/conf/cron-target.xlog?view=auto&rev=125543
==============================================================================

Added: cocoon/trunk/src/blocks/forms/WEB-INF/logkitconf/forms.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/WEB-INF/logkitconf/forms.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/forms/WEB-INF/logkitconf/forms.logkit       Tue Jan 
18 12:57:21 2005
@@ -0,0 +1,38 @@
+<?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: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="forms">
+      <filename>${context-root}/WEB-INF/logs/forms.log</filename>
+
+      <format type="cocoon">
+        %7.7{priority} %{time}   [%{category}] (%{uri}) 
%{thread}/%{class:short}: %{message}\n%{throwable}
+      </format>
+      <append>false</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category log-level="ERROR" name="forms">
+       <log-target id-ref="forms" />
+      <log-target id-ref="error"/>
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/forms/conf/forms-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/forms/conf/forms-target.xlog?view=auto&rev=125543
==============================================================================

Added: cocoon/trunk/src/blocks/portal/WEB-INF/logkitconf/portal.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/WEB-INF/logkitconf/portal.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/portal/WEB-INF/logkitconf/portal.logkit     Tue Jan 
18 12:57:21 2005
@@ -0,0 +1,38 @@
+<?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: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="portal">
+      <filename>${context-root}/WEB-INF/logs/portal.log</filename>
+
+      <format type="cocoon">
+        %7.7{priority} %{time}   [%{category}] (%{uri}) 
%{thread}/%{class:short}: %{message}\n%{throwable}
+      </format>
+      <append>false</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category log-level="ERROR" name="portal">
+      <log-target id-ref="portal" />
+      <log-target id-ref="error"/>
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/portal/conf/portal-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/portal-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/portal/conf/portal-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/portal/conf/portal-target.xlog?view=auto&rev=125543
==============================================================================

Added: cocoon/trunk/src/blocks/slide/WEB-INF/logkitconf/slide.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/WEB-INF/logkitconf/slide.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/slide/WEB-INF/logkitconf/slide.logkit       Tue Jan 
18 12:57:21 2005
@@ -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.
+-->
+<!--+
+    |
+    | SVN $Id: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="slide">
+      <filename>${context-root}/WEB-INF/logs/slide.log</filename>
+      <format type="cocoon">
+        %7.7{priority} %{time}   [%{category}] (%{uri}) 
%{thread}/%{class:short}: %{message}\n%{throwable}
+      </format>
+      <append>false</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category name="slide" log-level="INFO">
+      <log-target id-ref="slide"/>
+      <log-target id-ref="error"/>
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/slide/conf/slide-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/slide/conf/slide-target.xlog?view=auto&rev=125543
==============================================================================

Added: cocoon/trunk/src/blocks/woody/WEB-INF/logkitconf/woody.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/WEB-INF/logkitconf/woody.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/blocks/woody/WEB-INF/logkitconf/woody.logkit       Tue Jan 
18 12:57:21 2005
@@ -0,0 +1,38 @@
+<?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: cocoon-apples.xconf 125443 2005-01-17 20:39:52Z cziegeler $
+    +-->
+<logkit>
+  <targets>
+    <cocoon id="woody">
+      <filename>${context-root}/WEB-INF/logs/woody.log</filename>
+
+      <format type="cocoon">
+        %7.7{priority} %{time}   [%{category}] (%{uri}) 
%{thread}/%{class:short}: %{message}\n%{throwable}
+      </format>
+      <append>false</append>
+    </cocoon>
+  </targets>
+  <categories>
+    <category log-level="ERROR" name="woody">
+       <log-target id-ref="woody" />
+      <log-target id-ref="error"/>
+    </category>
+  </categories>
+</logkit>
\ No newline at end of file

Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-category.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-category.xlog?view=auto&rev=125543
==============================================================================

Deleted: /cocoon/trunk/src/blocks/woody/conf/woody-target.xlog
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/woody/conf/woody-target.xlog?view=auto&rev=125543
==============================================================================

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java?view=diff&rev=125544&p1=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java&r1=125543&p2=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java&r2=125544
==============================================================================
--- 
cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java
        (original)
+++ 
cocoon/trunk/src/core/java/org/apache/cocoon/configuration/ConfigurationBuilder.java
        Tue Jan 18 12:57:21 2005
@@ -95,10 +95,17 @@
     private Locator locator;
     private final NamespaceSupport namespaceSupport = new NamespaceSupport();
 
+    private final boolean processIncludes;
+    
     /**
      * Create a Configuration Builder
      */
     public ConfigurationBuilder() {
+        this(false);
+    }
+    
+    public ConfigurationBuilder(boolean processIncludes) {
+        this.processIncludes = processIncludes;
         try {
             final SAXParserFactory saxParserFactory = 
SAXParserFactory.newInstance();
 

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java?view=diff&rev=125544&p1=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java&r1=125543&p2=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java&r2=125544
==============================================================================
--- cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java    
(original)
+++ cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java    
Tue Jan 18 12:57:21 2005
@@ -29,6 +29,7 @@
     protected String configuration;    
     protected String loggingConfiguration;
     protected String cocoonLogger;    
+    protected String servletLogger;
     protected String logLevel;
     protected String loggerClassName;
     protected boolean allowReload;
@@ -335,5 +336,18 @@
             return defaultValue;
         }
         return property;
+    }
+    
+    /**
+     * @return Returns the servletLogger.
+     */
+    public String getServletLogger() {
+        return this.servletLogger;
+    }
+    /**
+     * @param servletLogger The servletLogger to set.
+     */
+    public void setServletLogger(String servletLogger) {
+        this.servletLogger = servletLogger;
     }
 }

Modified: 
cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java?view=diff&rev=125544&p1=cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java&r1=125543&p2=cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java&r2=125544
==============================================================================
--- 
cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java 
    (original)
+++ 
cocoon/trunk/src/java/org/apache/cocoon/components/container/LoggingHelper.java 
    Tue Jan 18 12:57:21 2005
@@ -23,20 +23,22 @@
 import org.apache.avalon.excalibur.logger.Log4JLoggerManager;
 import org.apache.avalon.excalibur.logger.LogKitLoggerManager;
 import org.apache.avalon.excalibur.logger.LoggerManager;
+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.container.ContainerUtil;
 import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.DefaultContext;
 import org.apache.avalon.framework.logger.LogKitLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.cocoon.configuration.ConfigurationBuilder;
 import org.apache.cocoon.configuration.Settings;
-import org.apache.cocoon.util.log.CocoonLogFormatter;
+import org.apache.cocoon.core.source.SimpleSourceResolver;
 import org.apache.cocoon.util.log.Log4JConfigurator;
 import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.TraversableSource;
 import org.apache.log.ErrorHandler;
 import org.apache.log.Hierarchy;
@@ -54,16 +56,9 @@
     /** Parameter map for the context protocol */
     protected static final Map CONTEXT_PARAMETERS = 
Collections.singletonMap("force-traversable", Boolean.TRUE);
 
-    protected final Settings settings;
     protected Logger log;
     protected LoggerManager loggerManager;
-    protected final SourceResolver resolver;
 
-    public LoggingHelper(Settings settings, SourceResolver resolver) {
-        this.settings = settings;
-        this.resolver = resolver;
-    }
-    
     /**
      * Set up the log level and path.  The default log level is
      * Priority.ERROR, although it can be overwritten by the parameter
@@ -74,24 +69,43 @@
      * (Priority.DEBUG and above) as you want that get routed to the
      * file.
      */
-    protected void initLogger(LogTarget defaultTarget, Context context) {
-        final String logLevel = this.settings.get(this.settings.getLogLevel(), 
"INFO");
+    public LoggingHelper(Settings settings, 
+                         LogTarget defaultTarget, 
+                         Context context) {
+        final String logLevel = settings.get(settings.getLogLevel(), "INFO");
         
-        final String accesslogger = 
this.settings.get(this.settings.getCocoonLogger(), "cocoon");
+        final String accesslogger = settings.get(settings.getServletLogger(), 
"cocoon");
 
         final Priority logPriority = Priority.getPriorityForName(logLevel);
 
-        final CocoonLogFormatter formatter = new CocoonLogFormatter();
-        formatter.setFormat("%7.7{priority} %{time}   [%8.8{category}] " +
-                            "(%{uri}) %{thread}/%{class:short}: 
%{message}\\n%{throwable}");
         final Hierarchy defaultHierarchy = Hierarchy.getDefaultHierarchy();
         final ErrorHandler errorHandler = new DefaultErrorHandler();
         defaultHierarchy.setErrorHandler(errorHandler);
         defaultHierarchy.setDefaultLogTarget(defaultTarget);
         defaultHierarchy.setDefaultPriority(logPriority);
         final Logger logger = new 
LogKitLogger(Hierarchy.getDefaultHierarchy().getLoggerFor(""));
+
+        // we can't pass the context-root to our resolver
+        Object value = null;
+        try {
+            value = context.get("context-root");
+            ((DefaultContext)context).put("context-root", null);
+        } catch ( ContextException ignore ) {
+            // not available
+        }
+        // Create our own resolver
+        SimpleSourceResolver resolver = new SimpleSourceResolver();
+        resolver.enableLogging(logger);
+        try {
+            resolver.contextualize(context);
+        } catch (ContextException ce) {
+            throw new CascadingRuntimeException("Cannot setup source 
resolver.", ce);
+        }
+        if ( value != null ) {
+            ((DefaultContext)context).put("context-root", value);
+        }
         final String loggerManagerClass =
-            this.settings.get(this.settings.getLoggerClassName(), 
LogKitLoggerManager.class.getName());
+            settings.get(settings.getLoggerClassName(), 
LogKitLoggerManager.class.getName());
 
         // the log4j support requires currently that the log4j system is 
already configured elsewhere
 
@@ -104,27 +118,33 @@
 
             if (loggerManager instanceof Configurable) {
                 //Configure the logkit management
-                String logkitConfig = 
this.settings.get(this.settings.getLoggingConfiguration(), 
"/WEB-INF/logkit.xconf");
+                String logkitConfig = 
settings.get(settings.getLoggingConfiguration(), "/WEB-INF/logkit.xconf");
 
                 Source source = null;
                 try {
-                    source = this.resolver.resolveURI(logkitConfig);
+                    source = resolver.resolveURI(logkitConfig);
                     final ConfigurationBuilder builder = new 
ConfigurationBuilder();
                     final Configuration conf = 
builder.build(source.getInputStream());
+                    final DefaultConfiguration categories = 
(DefaultConfiguration)conf.getChild("categories");
+                    final DefaultConfiguration targets = 
(DefaultConfiguration)conf.getChild("targets");
+                    
+                    // now process includes
                     final Configuration[] children = 
conf.getChildren("include");
                     for(int i=0; i<children.length; i++) {
                         String directoryURI = children[i].getAttribute("dir"); 
                   
                         final String ending = 
children[i].getAttribute("postfix", null);
                         Source directory = null;
                         try {
-                            directory = this.resolver.resolveURI(directoryURI, 
source.getURI(), CONTEXT_PARAMETERS);
+                            directory = resolver.resolveURI(directoryURI, 
source.getURI(), CONTEXT_PARAMETERS);
                             if ( directory instanceof TraversableSource ) {
                                 final Iterator c = 
((TraversableSource)directory).getChildren().iterator();
                                 while ( c.hasNext() ) {
                                     final Source s = (Source)c.next();
                                     if ( ending == null || 
s.getURI().endsWith(ending) ) {
                                         final Configuration includeConf = 
builder.build(s.getInputStream());
-                                        
((DefaultConfiguration)conf).addAllChildren(includeConf);
+                                        // add targets and categories
+                                        
categories.addAllChildren(includeConf.getChild("categories"));
+                                        
targets.addAllChildren(includeConf.getChild("targets"));
                                     }
                                 }
                             } else {
@@ -133,7 +153,7 @@
                         } catch (IOException ioe) {
                             throw new ConfigurationException("Unable to read 
configurations from " + directoryURI);
                         } finally {
-                            this.resolver.release(directory);
+                            resolver.release(directory);
                         }
                         
                         // finally remove include
@@ -141,21 +161,21 @@
                     }
                     ContainerUtil.configure(loggerManager, conf);
                 } finally {
-                    this.resolver.release(source);
+                    resolver.release(source);
                 }
             }
 
             // let's configure log4j
-            final String log4jConfig = this.settings.getLog4jConfiguration();
+            final String log4jConfig = settings.getLog4jConfiguration();
             if ( log4jConfig != null ) {
                 final Log4JConfigurator configurator = new 
Log4JConfigurator(context);
 
                 Source source = null;
                 try {
-                    source = this.resolver.resolveURI(log4jConfig);
+                    source = resolver.resolveURI(log4jConfig);
                     configurator.doConfigure(source.getInputStream(), 
LogManager.getLoggerRepository());
                 } finally {
-                    this.resolver.release(source);
+                    resolver.release(source);
                 }
             }
 
@@ -167,7 +187,8 @@
         this.log = this.loggerManager.getLoggerForCategory(accesslogger);
     }
 
-    private LoggerManager newLoggerManager(String loggerManagerClass, 
Hierarchy hierarchy) {
+    private LoggerManager newLoggerManager(String loggerManagerClass, 
+                                           Hierarchy hierarchy) {
         if (loggerManagerClass.equals(LogKitLoggerManager.class.getName())) {
             return new LogKitLoggerManager(hierarchy);
         } else if 
(loggerManagerClass.equals(Log4JLoggerManager.class.getName()) ||

Modified: cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java?view=diff&rev=125544&p1=cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java&r1=125543&p2=cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java&r2=125544
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java  
(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java  Tue Jan 
18 12:57:21 2005
@@ -15,26 +15,47 @@
  */
 package org.apache.cocoon.servlet;
 
-import org.apache.avalon.excalibur.logger.Log4JLoggerManager;
-import org.apache.avalon.excalibur.logger.LogKitLoggerManager;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Constructor;
+import java.net.MalformedURLException;
+import java.net.SocketException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 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.DefaultConfigurationBuilder;
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.context.DefaultContext;
-import org.apache.avalon.framework.logger.LogKitLogger;
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.service.ServiceManager;
-
 import org.apache.cocoon.Cocoon;
 import org.apache.cocoon.ConnectionResetException;
 import org.apache.cocoon.Constants;
 import org.apache.cocoon.ResourceNotFoundException;
 import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.components.container.LoggingHelper;
 import org.apache.cocoon.components.notification.DefaultNotifyingBuilder;
 import org.apache.cocoon.components.notification.Notifier;
 import org.apache.cocoon.components.notification.Notifying;
+import org.apache.cocoon.configuration.Settings;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.http.HttpContext;
 import org.apache.cocoon.environment.http.HttpEnvironment;
@@ -44,43 +65,10 @@
 import org.apache.cocoon.util.IOUtils;
 import org.apache.cocoon.util.StringUtils;
 import org.apache.cocoon.util.log.CocoonLogFormatter;
-import org.apache.cocoon.util.log.Log4JConfigurator;
-
 import org.apache.commons.lang.BooleanUtils;
 import org.apache.commons.lang.SystemUtils;
 import org.apache.log.ContextMap;
-import org.apache.log.ErrorHandler;
-import org.apache.log.Hierarchy;
-import org.apache.log.Priority;
 import org.apache.log.output.ServletOutputLogTarget;
-import org.apache.log.util.DefaultErrorHandler;
-import org.apache.log4j.LogManager;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.Constructor;
-import java.net.MalformedURLException;
-import java.net.SocketException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
 /**
  * This is the entry point for Cocoon execution as an HTTP Servlet.
@@ -291,13 +279,10 @@
         this.workDir.mkdirs();
         this.appContext.put(Constants.CONTEXT_WORK_DIR, workDir);
 
-        // Init logger
-        initLogger();
-
         String path = this.servletContextPath;
-        if (getLogger().isDebugEnabled()) {
+/*        if (getLogger().isDebugEnabled()) {
             getLogger().debug("getRealPath for /: " + path);
-        }
+        }*/
         if (path == null) {
             // Try to figure out the path of the root from that of WEB-INF
             try {
@@ -305,15 +290,14 @@
             } catch (MalformedURLException me) {
                 throw new ServletException("Unable to get resource 
'WEB-INF'.", me);
             }
-            if (getLogger().isDebugEnabled()) {
+           /* if (getLogger().isDebugEnabled()) {
                 getLogger().debug("getResource for /WEB-INF: " + path);
-            }
+            }*/
             path = path.substring(0, path.length() - "WEB-INF".length());
-            if (getLogger().isDebugEnabled()) {
+            /*if (getLogger().isDebugEnabled()) {
                 getLogger().debug("Path for Root: " + path);
-            }
+            }*/
         }
-
         try {
             if (path.indexOf(':') > 1) {
                 this.servletContextURL = path;
@@ -330,6 +314,10 @@
                 throw new ServletException("Unable to determine servlet 
context URL.", me);
             }
         }
+        this.appContext.put(ContextHelper.CONTEXT_ROOT_URL, 
this.servletContextURL);
+
+        // Init logger
+        initLogger();
 
         this.forceLoadParameter = getInitParameter("load-class", null);
         this.forceSystemProperty = getInitParameter("force-property", null);
@@ -343,7 +331,6 @@
                 getLogger().debug("Using default work-directory " + 
this.workDir);
             }
         }
-        this.appContext.put(ContextHelper.CONTEXT_ROOT_URL, 
this.servletContextURL);
 
         final String uploadDirParam = 
conf.getInitParameter("upload-directory");
         if (uploadDirParam != null) {
@@ -730,120 +717,31 @@
         return "";
     }
 
-    /**
-     * Set up the log level and path.  The default log level is
-     * Priority.ERROR, although it can be overwritten by the parameter
-     * "log-level".  The log system goes to both a file and the Servlet
-     * container's log system.  Only messages that are Priority.ERROR
-     * and above go to the servlet context.  The log messages can
-     * be as restrictive (Priority.FATAL_ERROR and above) or as liberal
-     * (Priority.DEBUG and above) as you want that get routed to the
-     * file.
-     */
     protected void initLogger() {
-        final String logLevel = getInitParameter("log-level", "INFO");
-
-        final String accesslogger = getInitParameter("servlet-logger", 
"cocoon");
-
-        final Priority logPriority = Priority.getPriorityForName(logLevel);
+        // get settings - TODO we will move this to a better place soon
+        final Settings settings = 
SettingsHelper.getSettings(this.getServletConfig());
 
         final CocoonLogFormatter formatter = new CocoonLogFormatter();
         formatter.setFormat("%7.7{priority} %{time}   [%8.8{category}] " +
                             "(%{uri}) %{thread}/%{class:short}: 
%{message}\\n%{throwable}");
         final ServletOutputLogTarget servTarget = new 
ServletOutputLogTarget(this.servletContext, formatter);
 
-        final Hierarchy defaultHierarchy = Hierarchy.getDefaultHierarchy();
-        final ErrorHandler errorHandler = new DefaultErrorHandler();
-        defaultHierarchy.setErrorHandler(errorHandler);
-        defaultHierarchy.setDefaultLogTarget(servTarget);
-        defaultHierarchy.setDefaultPriority(logPriority);
-        final Logger logger = new 
LogKitLogger(Hierarchy.getDefaultHierarchy().getLoggerFor(""));
-        final String loggerManagerClass =
-            this.getInitParameter("logger-class", 
LogKitLoggerManager.class.getName());
-
-        // the log4j support requires currently that the log4j system is 
already configured elsewhere
-
-        final LoggerManager loggerManager =
-                newLoggerManager(loggerManagerClass, defaultHierarchy);
-        ContainerUtil.enableLogging(loggerManager, logger);
-
         final DefaultContext subcontext = new DefaultContext(this.appContext);
         subcontext.put("servlet-context", this.servletContext);
         subcontext.put("context-work", this.workDir);
         if (this.servletContextPath == null) {
             File logSCDir = new File(this.workDir, "log");
             logSCDir.mkdirs();
-            if (logger.isWarnEnabled()) {
-                logger.warn("Setting context-root for LogKit to " + logSCDir);
-            }
             subcontext.put("context-root", logSCDir.toString());
         } else {
             subcontext.put("context-root", this.servletContextPath);
         }
 
-        try {
-            ContainerUtil.contextualize(loggerManager, subcontext);
-            this.loggerManager = loggerManager;
-
-            if (loggerManager instanceof Configurable) {
-                //Configure the logkit management
-                String logkitConfig = getInitParameter("logkit-config", 
"/WEB-INF/logkit.xconf");
-
-                // test if this is a qualified url
-                InputStream is = null;
-                if (logkitConfig.indexOf(':') == -1) {
-                    is = this.servletContext.getResourceAsStream(logkitConfig);
-                    if (is == null) is = new FileInputStream(logkitConfig);
-                } else {
-                    URL logkitURL = new URL(logkitConfig);
-                    is = logkitURL.openStream();
-                }
-                final DefaultConfigurationBuilder builder = new 
DefaultConfigurationBuilder();
-                final Configuration conf = builder.build(is);
-                ContainerUtil.configure(loggerManager, conf);
-            }
-
-            // let's configure log4j
-            final String log4jConfig = getInitParameter("log4j-config", null);
-            if ( log4jConfig != null ) {
-                final Log4JConfigurator configurator = new 
Log4JConfigurator(subcontext);
-
-                // test if this is a qualified url
-                InputStream is = null;
-                if ( log4jConfig.indexOf(':') == -1) {
-                    is = this.servletContext.getResourceAsStream(log4jConfig);
-                    if (is == null) is = new FileInputStream(log4jConfig);
-                } else {
-                    final URL log4jURL = new URL(log4jConfig);
-                    is = log4jURL.openStream();
-                }
-                configurator.doConfigure(is, LogManager.getLoggerRepository());
-            }
-
-            ContainerUtil.initialize(loggerManager);
-        } catch (Exception e) {
-            errorHandler.error("Could not set up Cocoon Logger, will use 
screen instead", e, null);
-        }
-
-        this.log = this.loggerManager.getLoggerForCategory(accesslogger);
+        LoggingHelper lh = new LoggingHelper(settings, servTarget, subcontext);
+        this.loggerManager = lh.getLoggerManager();
+        this.log = lh.getLogger();
     }
-
-    private LoggerManager newLoggerManager(String loggerManagerClass, 
Hierarchy hierarchy) {
-        if (loggerManagerClass.equals(LogKitLoggerManager.class.getName())) {
-            return new LogKitLoggerManager(hierarchy);
-        } else if 
(loggerManagerClass.equals(Log4JLoggerManager.class.getName()) ||
-                   loggerManagerClass.equalsIgnoreCase("LOG4J")) {
-            return new Log4JLoggerManager();
-        } else {
-            try {
-                Class clazz = Class.forName(loggerManagerClass);
-                return (LoggerManager)clazz.newInstance();
-            } catch (Exception e) {
-                return new LogKitLoggerManager(hierarchy);
-            }
-        }
-    }
-
+    
     /**
      * Set the ConfigFile for the Cocoon object.
      *

Added: cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java Tue Jan 
18 12:57:21 2005
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2005 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.servlet;
+
+import javax.servlet.ServletConfig;
+
+import org.apache.cocoon.configuration.Settings;
+
+/**
+ * This helper class initializes the [EMAIL PROTECTED] Settings} object from 
the servlet
+ * configuration.
+ * 
+ * @version SVN $Id: Settings.java 125448 2005-01-17 22:28:43Z cziegeler $
+ */
+public class SettingsHelper {
+
+    private SettingsHelper() {
+        //  no instantiation
+    }
+    
+    public static Settings getSettings(ServletConfig config) {
+        final Settings s = new Settings(null);
+        
+        // logging
+        s.setCocoonLogger(config.getInitParameter("cocoon-logger"));
+        s.setServletLogger(config.getInitParameter("servlet-logger"));
+        s.setLogLevel(config.getInitParameter("log-level"));
+        s.setLoggerClassName(config.getInitParameter("logger-class"));
+        String value = config.getInitParameter("logkit-config");
+        if ( value != null ) {
+            s.setLoggingConfiguration("context:/" + value);
+        }
+        value = config.getInitParameter("log4j-config");
+        if ( value != null ) {
+            s.setLog4jConfiguration("context:/" + value);
+        }
+        
+        return s;
+    }
+}

Modified: cocoon/trunk/src/webapp/WEB-INF/logkit.xconf
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/webapp/WEB-INF/logkit.xconf?view=diff&rev=125544&p1=cocoon/trunk/src/webapp/WEB-INF/logkit.xconf&r1=125543&p2=cocoon/trunk/src/webapp/WEB-INF/logkit.xconf&r2=125544
==============================================================================
--- cocoon/trunk/src/webapp/WEB-INF/logkit.xconf        (original)
+++ cocoon/trunk/src/webapp/WEB-INF/logkit.xconf        Tue Jan 18 12:57:21 2005
@@ -179,4 +179,7 @@
       <log-target id-ref="error"/>
     </category>
   </categories>
+  
+  <!-- Include logging confs from different blocks -->
+  <include dir="context://WEB-INF/logkitconf" postfix=".logkit"/>
 </logkit>

Added: cocoon/trunk/src/webapp/WEB-INF/logkitconf/core.logkit
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/webapp/WEB-INF/logkitconf/core.logkit?view=auto&rev=125544
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/webapp/WEB-INF/logkitconf/core.logkit      Tue Jan 18 
12:57:21 2005
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 1999-2005 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:$ -->
+<logkit>
+  <!-- Just a dummy -->
+</logkit>

Modified: cocoon/trunk/tools/src/blocks-build.xsl
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/tools/src/blocks-build.xsl?view=diff&rev=125544&p1=cocoon/trunk/tools/src/blocks-build.xsl&r1=125543&p2=cocoon/trunk/tools/src/blocks-build.xsl&r2=125544
==============================================================================
--- cocoon/trunk/tools/src/blocks-build.xsl     (original)
+++ cocoon/trunk/tools/src/blocks-build.xsl     Tue Jan 18 12:57:21 2005
@@ -487,9 +487,6 @@
       <xpatch file="${{build.webapp}}/WEB-INF/cocoon.xconf" 
srcdir="${{blocks}}" addcomments="true">
         <include name="{$block-name}/conf/*.xconf"/>
       </xpatch>
-      <xpatch file="${{build.webapp}}/WEB-INF/logkit.xconf" 
srcdir="${{blocks}}">
-        <include name="{$block-name}/conf/*.xlog"/>
-      </xpatch>
       <xpatch file="${{build.webapp}}/WEB-INF/web.xml" srcdir="${{blocks}}">
         <include name="{$block-name}/conf/*.xweb"/>
       </xpatch>

Reply via email to