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 */