You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/01/21 22:40:41 UTC

svn commit: r125965 - /cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java /cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java /cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java

Author: cziegeler
Date: Fri Jan 21 13:40:39 2005
New Revision: 125965

URL: http://svn.apache.org/viewcvs?view=rev&rev=125965
Log:
Read settings from optional property files
Modified:
   cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java
   cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java
   cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java

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=125965&p1=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java&r1=125964&p2=cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java&r2=125965
==============================================================================
--- cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java	(original)
+++ cocoon/trunk/src/core/java/org/apache/cocoon/configuration/Settings.java	Fri Jan 21 13:40:39 2005
@@ -26,6 +26,9 @@
  */
 public class Settings {
 
+    /** Name of the property specifying a user properties file */
+    public static final String PROPERTY_USER_SETTINGS = "org.apache.cocoon.settings";
+    
     /**
      * Default value for {@link #isAllowReload()} parameter (false)
      */

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=125965&p1=cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java&r1=125964&p2=cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java&r2=125965
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java	(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java	Fri Jan 21 13:40:39 2005
@@ -16,6 +16,7 @@
 package org.apache.cocoon.servlet;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,6 +30,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Properties;
 import java.util.StringTokenizer;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
@@ -167,8 +169,42 @@
      * can be overwritten
      */
     protected Settings getSettings() {
-        // create a settings object from the servlet parameters
-        Settings s = SettingsHelper.getSettings(this.getServletConfig());
+        // create an empty settings objects
+        final Settings s = new Settings();
+
+        String additionalPropertyFile = System.getProperty(Settings.PROPERTY_USER_SETTINGS);
+        
+        // read cocoon-settings.properties - if available
+        InputStream propsIS = this.getServletContext().getResourceAsStream("cocoon-settings.properties");
+        if ( propsIS != null ) {
+            this.servletContext.log("Reading settings from 'cocoon-settings.properties'");
+            final Properties p = new Properties();
+            try {
+                p.load(propsIS);
+                propsIS.close();
+                s.fill(p);
+                additionalPropertyFile = p.getProperty(Settings.PROPERTY_USER_SETTINGS, additionalPropertyFile);
+            } catch (IOException ignore) {
+                this.servletContext.log("Unable to read 'cocoon-settings.properties'.", ignore);
+                this.servletContext.log("Continuing initialization.");
+            }
+        }
+        // fill from the servlet parameters
+        SettingsHelper.fill(s, this.getServletConfig());
+        
+        // read additional properties file
+        if ( additionalPropertyFile != null ) {
+            this.servletContext.log("Reading user settings from '" + additionalPropertyFile + "'");
+            final Properties p = new Properties();
+            try {
+                FileInputStream fis = new FileInputStream(additionalPropertyFile);
+                p.load(fis);
+                fis.close();
+            } catch (IOException ignore) {
+                this.servletContext.log("Unable to read '" + additionalPropertyFile + "'.", ignore);
+                this.servletContext.log("Continuing initialization.");
+            }
+        }
         // now overwrite with system properties
         s.fill(System.getProperties());
 
@@ -189,7 +225,9 @@
      */
     public void init(ServletConfig conf)
     throws ServletException {
-
+        this.servletContext = conf.getServletContext();
+        this.servletContext.log("Initializing Apache Cocoon " + Constants.VERSION);
+        
         super.init(conf);
 
         // initialize settings
@@ -216,7 +254,6 @@
             System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
         }
 
-        this.servletContext = conf.getServletContext();
         this.appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT, new HttpContext(this.servletContext));
         this.servletContextPath = this.servletContext.getRealPath("/");
 
@@ -384,6 +421,8 @@
         // Add the servlet configuration
         this.appContext.put(CONTEXT_SERVLET_CONFIG, conf);
         this.createCocoon();
+        this.servletContext.log("Apache Cocoon " + Constants.VERSION + " is initialized and ready to serve requests.");
+
     }
 
     /**
@@ -1191,7 +1230,7 @@
     }
 
     private Logger getCocoonLogger() {
-        final String rootlogger = getInitParameter("cocoon-logger");
+        final String rootlogger = this.settings.getCocoonLogger();
         if (rootlogger != null) {
             return this.getLoggerManager().getLoggerForCategory(rootlogger);
         } else {

Modified: 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=diff&rev=125965&p1=cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java&r1=125964&p2=cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java&r2=125965
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java	(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/servlet/SettingsHelper.java	Fri Jan 21 13:40:39 2005
@@ -34,9 +34,7 @@
         //  no instantiation
     }
     
-    public static Settings getSettings(ServletConfig config) {
-        final Settings s = new Settings();
-        
+    public static void fill(Settings s, ServletConfig config) {
         // logging
         s.setCocoonLogger(config.getInitParameter("cocoon-logger"));
         s.setAccessLogger(config.getInitParameter("servlet-logger"));
@@ -76,8 +74,6 @@
         s.setFormEncoding(config.getInitParameter("form-encoding"));
         
         // TODO extra classpath
-        
-        return s;
     }
     
     /** Convenience method to access boolean servlet parameters */