Author: cziegeler
Date: Fri May  6 04:56:03 2005
New Revision: 168593

URL: http://svn.apache.org/viewcvs?rev=168593&view=rev
Log:
Separate Settings into static and dynamic ones

Added:
    cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java   (with 
props)
    cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java   (with 
props)
Modified:
    
cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java
    cocoon/trunk/src/java/org/apache/cocoon/core/Settings.java

Modified: 
cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java
URL: 
http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java?rev=168593&r1=168592&r2=168593&view=diff
==============================================================================
--- 
cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java
 (original)
+++ 
cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.java
 Fri May  6 04:56:03 2005
@@ -42,7 +42,6 @@
 import javax.portlet.PortletSession;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
-import javax.servlet.ServletException;
 
 import org.apache.avalon.framework.context.DefaultContext;
 import org.apache.avalon.framework.logger.Logger;

Added: cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java
URL: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java?rev=168593&view=auto
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java (added)
+++ cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java Fri May  6 
04:56:03 2005
@@ -0,0 +1,149 @@
+/*
+ * 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.core;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This object holds the global configuration of Cocoon that can't be changed
+ * during runtime.
+ *
+ * @version SVN $Id$
+ */
+public interface BaseSettings {
+
+    /** Name of the property specifying a user properties file */
+    String PROPERTY_USER_SETTINGS = "org.apache.cocoon.settings";
+
+    /**
+     * This parameter allows to set system properties
+     */
+    /** FIXME - implement the support for this key: */
+    String KEY_FORCE_PROPERTIES = "system.properties";
+
+    /**
+     * This parameter points to the main configuration file for Cocoon.
+     * Note that the path is specified in absolute notation but it will be
+     * resolved relative to the application context path.
+     */
+    String KEY_CONFIGURATION = "configuration";
+
+    /**
+     * This parameter indicates the configuration file of the LogKit management
+     */
+    String KEY_LOGGING_CONFIGURATION = "logging.configuration";
+
+    /**
+     * This parameter indicates the log level to use throughout startup of the
+     * system. As soon as the logkit.xconf the setting of the logkit.xconf
+     * configuration is used instead! Only for startup and if the logkit.xconf 
is
+     * not readable/available this log level is of importance.
+     */
+    String KEY_LOGGING_BOOTSTRAP_LOGLEVEL = "logging.bootstrap.loglevel";
+
+    /**
+     * This parameter switches the logging system from LogKit to Log4J for 
Cocoon.
+     * Log4J has to be configured already.
+     */
+    String KEY_LOGGING_MANAGER_CLASS = "logging.manager.class";
+
+    /**
+     * If you want to configure log4j using Cocoon, then you can define
+     * an XML configuration file here. You can use the usual log4j property
+     * substituation mechanism, e.g. ${context-root} is replaced by the
+     * context root of this web application etc.
+     * You can configure the log4j configuration even if you use LogKit
+     * for Cocoon logging. You can use this to configure third party code
+     * for example.
+     */
+    String KEY_LOGGING_LOG4J_CONFIGURATION = "logging.log4j.configuration";
+
+    /**
+     * This parameter is used to list classes that should be loaded at
+     * initialization time of the servlet. For example, JDBC Drivers used need 
to
+     * be named here. Additional entries may be inserted here during build
+     * depending on your build properties.
+     */
+    /** FIXME: Implement support for this: */
+    String KEY_LOAD_CLASSES = "classloader.load.classes";
+
+    /**
+     * This parameter allows to specify additional directories or jars
+     * which Cocoon should put into it's own classpath.
+     * Note that absolute pathes are taken as such but relative pathes
+     * are rooted at the context root of the Cocoon servlet.
+     */
+    /** FIXME: Implement support for this: */
+    String KEY_EXTRA_CLASSPATHS = "extra.classpaths";
+
+    /**
+     * This parameter allows you to select the parent service manager.
+     * The class will be instantiated via the constructor that takes a single
+     * String as a parameter. That String will be equal to the text after the 
'/'.
+     *
+     * Cocoon honors the LogEnabled, Initializable and Disposable interfaces 
for
+     * this class, if it implements them.
+     */
+    String KEY_PARENT_SERVICE_MANAGER = "parentservicemanager";
+
+    /**
+     * @return Returns the configuration.
+     */
+    String getConfiguration();
+
+    /**
+     * @return Returns the extraClasspaths.
+     */
+    List getExtraClasspaths();
+
+    /**
+     * @return Returns the forceProperties.
+     */
+    Map getForceProperties();
+
+    /**
+     * @return Returns the loadClasses.
+     */
+    Iterator getLoadClasses();
+
+    /**
+     * @return Returns the loggerClassName.
+     */
+    String getLoggerClassName();
+
+    /**
+     * @return Returns the loggingConfiguration.
+     */
+    String getLoggingConfiguration();
+
+    /**
+     * @return Returns the logLevel.
+     */
+    String getBootstrapLogLevel();
+
+    /**
+     * @return Returns the parentServiceManagerClassName.
+     */
+    String getParentServiceManagerClassName();
+
+    /**
+     * @return Returns the log4jConfiguration.
+     */
+    String getLog4jConfiguration();
+
+}

Propchange: cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/src/java/org/apache/cocoon/core/BaseSettings.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java
URL: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java?rev=168593&view=auto
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java (added)
+++ cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java Fri May  
6 04:56:03 2005
@@ -0,0 +1,261 @@
+/*
+ * 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.core;
+
+
+/**
+ * This object holds the global configuration of Cocoon. The different 
settings can
+ * be changed during runtime.
+ *
+ * @version SVN $Id$
+ */
+public interface DynamicSettings {
+
+    /**
+     * Default value for [EMAIL PROTECTED] #isAllowReload()} parameter (false)
+     */
+    boolean ALLOW_RELOAD = false;
+
+    /**
+     * Default value for [EMAIL PROTECTED] #isEnableUploads()} parameter 
(false)
+     */
+    boolean ENABLE_UPLOADS = false;
+    boolean SAVE_UPLOADS_TO_DISK = true;
+    int MAX_UPLOAD_SIZE = 10000000; // 10Mb
+
+    /**
+     * Default value for [EMAIL PROTECTED] #isInitClassloader()} setting 
(false)
+     */
+    boolean INIT_CLASSLOADER = false;
+
+    boolean SHOW_TIME = false;
+    boolean HIDE_SHOW_TIME = false;
+    boolean MANAGE_EXCEPTIONS = true;
+
+    /**
+     * This parameter tells Cocoon to set the thread's context classloader to
+     * its own classloader. If you experience strange classloader issues,
+     * try setting this parameter to "true".
+     */
+    String KEY_INIT_CLASSLOADER = "classloader.init";
+
+    /**
+     * This parameter indicates the category id of the logger from the LogKit
+     * configuration used by the environment.
+     */
+    String KEY_LOGGING_ACCESS_LOGGER = "logging.logger.access.category";
+
+    /**
+     * This parameter indicates the category id of the logger from the LogKit
+     * management configuration for the Cocoon engine.
+     * This logger is used for all components described in the cocoon.xconf
+     * and sitemap.xmap file not having specified a logger with the
+     * logger="..." attribute in the component configuration file.
+     */
+    String KEY_LOGGING_COCOON_LOGGER = "logging.logger.cocoon.category";
+
+    /**
+     * Allow reinstantiating (reloading) of the cocoon instance. If this is
+     * set to "yes" or "true", a new cocoon instance can be created using
+     * the request parameter "cocoon-reload". It also enables that Cocoon is
+     * reloaded when cocoon.xconf changes. Default is no for security reasons.
+     */
+    String KEY_ALLOW_RELOAD = "allow.reload";
+
+    /**
+     * Causes all files in multipart requests to be processed.
+     * Default is false for security reasons.
+     */
+    String KEY_UPLOADS_ENABLE = "uploads.enable";
+
+    /**
+     * This parameter allows to specify where Cocoon should put uploaded files.
+     * The path specified can be either absolute or relative to the context
+     * path of the servlet. On windows platform, absolute directory must start
+     * with volume: C:\Path\To\Upload\Directory.
+     */
+    String KEY_UPLOADS_DIRECTORY = "uploads.directory";
+
+    /**
+     * Causes all files in multipart requests to be saved to upload-dir.
+     * Default is true for security reasons.
+     */
+    String KEY_UPLOADS_AUTOSAVE = "uploads.autosave";
+
+    /**
+     * Specify handling of name conflicts when saving uploaded files to disk.
+     * Acceptable values are deny, allow, rename (default). Files are renamed
+     * x_filename where x is an integer value incremented to make the new
+     * filename unique.
+     */
+    String KEY_UPLOADS_OVERWRITE = "uploads.overwrite";
+
+    /**
+     * Specify maximum allowed size of the upload. Defaults to 10 Mb.
+     */
+    String KEY_UPLOADS_MAXSIZE = "uploads.maxsize";
+
+    /**
+     * This parameter allows to specify where Cocoon should create its page
+     * and other objects cache. The path specified can be either absolute or
+     * relative to the context path of the servlet. On windows platform,
+     * absolute directory must start with volume: C:\Path\To\Cache\Directory.
+     */
+    String KEY_CACHE_DIRECTORY = "cache.directory";
+
+    /**
+     * This parameter allows to specify where Cocoon should put it's
+     * working files. The path specified is either absolute or relative
+     * to the context path of the Cocoon servlet. On windows platform,
+     * absolute directory must start with volume: C:\Path\To\Work\Directory.
+     */
+    String KEY_WORK_DIRECTORY = "work.directory";
+
+    /**
+     * Allow adding processing time to the response
+     */
+    String KEY_SHOWTIME = "showtime";
+
+    /**
+     * If true, processing time will be added as an HTML comment
+     */
+    String KEY_HIDE_SHOWTIME = "hideshowtime";
+
+    /**
+     * If true or not set, this class will try to catch and handle all Cocoon 
exceptions.
+     * If false, it will rethrow them to the servlet container.
+     */
+    String KEY_MANAGE_EXCEPTIONS = "manageexceptions";
+
+    /**
+     * Set form encoding. This will be the character set used to decode request
+     * parameters. If not set the ISO-8859-1 encoding will be assumed.
+    */
+    String KEY_FORM_ENCODING = "formencoding";
+
+    /**
+     * If this value is specified, it will be interpreted as a log level and
+     * all logging categories will be set to this level regardless of their
+     * definition in the logging configuration.
+     */
+    String KEY_LOGGING_OVERRIDE_LOGLEVEL = "override.loglevel";
+
+    /**
+     * Delay between reload checks for the configuration
+     */
+    String KEY_CONFIGURATION_RELOAD_DELAY = "configuration.reloaddelay";
+
+    /**
+     * Lazy mode for component loading
+     */
+    String KEY_LAZY_MODE = "core.LazyMode";
+
+    /**
+     * @return Returns the hideShowTime.
+     */
+    boolean isHideShowTime();
+
+    /**
+     * @return Returns the allowReload.
+     */
+    boolean isAllowReload();
+
+    /**
+     * @return Returns the autosaveUploads.
+     */
+    boolean isAutosaveUploads();
+
+    /**
+     * @return Returns the cacheDirectory.
+     */
+    String getCacheDirectory();
+
+    /**
+     * @return Returns the cocoonLogger.
+     */
+    String getCocoonLogger();
+
+    /**
+     * @return Returns the enableUploads.
+     */
+    boolean isEnableUploads();
+
+    /**
+     * @return Returns the formEncoding.
+     */
+    String getFormEncoding();
+
+    /**
+     * @return Returns the initClassloader.
+     */
+    boolean isInitClassloader();
+
+    /**
+     * @return Returns the logLevel.
+     */
+    String getBootstrapLogLevel();
+
+    /**
+     * @return Returns the manageExceptions.
+     */
+    boolean isManageExceptions();
+
+    /**
+     * @return Returns the maxUploadSize.
+     */
+    int getMaxUploadSize();
+
+    /**
+     * @return Returns the overwriteUploads.
+     */
+    String getOverwriteUploads();
+
+    /**
+     * @return Returns the showTime.
+     */
+    boolean isShowTime();
+
+    /**
+     * @return Returns the uploadDirectory.
+     */
+    String getUploadDirectory();
+
+    /**
+     * @return Returns the workDirectory.
+     */
+    String getWorkDirectory();
+
+    /**
+     * @return Returns the accessLogger.
+     */
+    String getAccessLogger();
+
+    /**
+     * @return Returns the overrideLogLevel.
+     */
+    String getOverrideLogLevel();
+
+    /**
+     * @return Returns the configurationReloadDelay.
+     */
+    long getConfigurationReloadDelay();
+
+    /**
+     * @return Returns the lazyMode.
+     */
+    boolean isLazyMode();
+
+}

Propchange: cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/src/java/org/apache/cocoon/core/DynamicSettings.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/src/java/org/apache/cocoon/core/Settings.java
URL: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/core/Settings.java?rev=168593&r1=168592&r2=168593&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/core/Settings.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/core/Settings.java Fri May  6 
04:56:03 2005
@@ -30,37 +30,13 @@
  *
  * @version SVN $Id$
  */
-public class Settings {
+public class Settings implements BaseSettings, DynamicSettings{
 
     protected boolean readOnly = false;
 
     /** Prefix for properties */
     protected static final String KEYPREFIX = "org.apache.cocoon.";
 
-    /** Name of the property specifying a user properties file */
-    public static final String PROPERTY_USER_SETTINGS = 
"org.apache.cocoon.settings";
-
-    /**
-     * Default value for [EMAIL PROTECTED] #isAllowReload()} parameter (false)
-     */
-    public static final boolean ALLOW_RELOAD = false;
-
-    /**
-     * Default value for [EMAIL PROTECTED] #isEnableUploads()} parameter 
(false)
-     */
-    public static final boolean ENABLE_UPLOADS = false;
-    public static final boolean SAVE_UPLOADS_TO_DISK = true;
-    public static final int MAX_UPLOAD_SIZE = 10000000; // 10Mb
-
-    /**
-     * Default value for [EMAIL PROTECTED] #isInitClassloader()} setting 
(false)
-     */
-    public static final boolean INIT_CLASSLOADER = false;
-
-    public static final boolean SHOW_TIME = false;
-    public static final boolean HIDE_SHOW_TIME = false;
-    public static final boolean MANAGE_EXCEPTIONS = true;
-
     /**
      * The list of properties used to configure Cocoon
      */
@@ -72,14 +48,11 @@
      * try setting this parameter to "true".
      */
     protected boolean initClassloader = INIT_CLASSLOADER;
-    public static final String KEY_INIT_CLASSLOADER = "classloader.init";
 
     /**
      * This parameter allows to set system properties
      */
     protected Map forceProperties = new HashMap();
-    /** FIXME - implement the support for this key: */
-    public static final String KEY_FORCE_PROPERTIES = "system.properties";
 
     /**
      * This parameter points to the main configuration file for Cocoon.
@@ -87,20 +60,17 @@
      * resolved relative to the application context path.
      */
     protected String configuration;
-    public static final String KEY_CONFIGURATION = "configuration";
 
     /**
      * This parameter indicates the configuration file of the LogKit management
      */
     protected String loggingConfiguration;
-    public static final String KEY_LOGGING_CONFIGURATION = 
"logging.configuration";
 
     /**
      * This parameter indicates the category id of the logger from the LogKit
      * configuration used by the environment.
      */
     protected String accessLogger;
-    public static final String KEY_LOGGING_ACCESS_LOGGER = 
"logging.logger.access.category";
 
     /**
      * This parameter indicates the category id of the logger from the LogKit
@@ -110,7 +80,6 @@
      * logger="..." attribute in the component configuration file.
      */
     protected String cocoonLogger;
-    public static final String KEY_LOGGING_COCOON_LOGGER = 
"logging.logger.cocoon.category";
 
     /**
      * This parameter indicates the log level to use throughout startup of the
@@ -119,14 +88,12 @@
      * not readable/available this log level is of importance.
      */
     protected String bootstrapLogLevel;
-    public static final String KEY_LOGGING_BOOTSTRAP_LOGLEVEL = 
"logging.bootstrap.loglevel";
 
     /**
      * This parameter switches the logging system from LogKit to Log4J for 
Cocoon.
      * Log4J has to be configured already.
      */
     protected String loggerClassName;
-    public static final String KEY_LOGGING_MANAGER_CLASS = 
"logging.manager.class";
 
     /**
      * If you want to configure log4j using Cocoon, then you can define
@@ -138,7 +105,6 @@
      * for example.
      */
     protected String log4jConfiguration;
-    public static final String KEY_LOGGING_LOG4J_CONFIGURATION = 
"logging.log4j.configuration";
 
     /**
      * Allow reinstantiating (reloading) of the cocoon instance. If this is
@@ -147,7 +113,6 @@
      * reloaded when cocoon.xconf changes. Default is no for security reasons.
      */
     protected boolean allowReload = ALLOW_RELOAD;
-    public static final String KEY_ALLOW_RELOAD = "allow.reload";
 
     /**
      * This parameter is used to list classes that should be loaded at
@@ -156,15 +121,12 @@
      * depending on your build properties.
      */
     protected List loadClasses = new ArrayList();
-    /** FIXME: Implement support for this: */
-    public static final String KEY_LOAD_CLASSES = "classloader.load.classes";
 
     /**
      * Causes all files in multipart requests to be processed.
      * Default is false for security reasons.
      */
     protected boolean enableUploads = ENABLE_UPLOADS;
-    public static final String KEY_UPLOADS_ENABLE = "uploads.enable";
 
     /**
      * This parameter allows to specify where Cocoon should put uploaded files.
@@ -173,14 +135,12 @@
      * with volume: C:\Path\To\Upload\Directory.
      */
     protected String uploadDirectory;
-    public static final String KEY_UPLOADS_DIRECTORY = "uploads.directory";
 
     /**
      * Causes all files in multipart requests to be saved to upload-dir.
      * Default is true for security reasons.
      */
     protected boolean autosaveUploads = SAVE_UPLOADS_TO_DISK;
-    public static final String KEY_UPLOADS_AUTOSAVE = "uploads.autosave";
 
     /**
      * Specify handling of name conflicts when saving uploaded files to disk.
@@ -189,13 +149,11 @@
      * filename unique.
      */
     protected String overwriteUploads;
-    public static final String KEY_UPLOADS_OVERWRITE = "uploads.overwrite";
 
     /**
      * Specify maximum allowed size of the upload. Defaults to 10 Mb.
      */
     protected int maxUploadSize = MAX_UPLOAD_SIZE;
-    public static final String KEY_UPLOADS_MAXSIZE = "uploads.maxsize";
 
     /**
      * This parameter allows to specify where Cocoon should create its page
@@ -204,7 +162,6 @@
      * absolute directory must start with volume: C:\Path\To\Cache\Directory.
      */
     protected String cacheDirectory;
-    public static final String KEY_CACHE_DIRECTORY = "cache.directory";
 
     /**
      * This parameter allows to specify where Cocoon should put it's
@@ -213,7 +170,6 @@
      * absolute directory must start with volume: C:\Path\To\Work\Directory.
      */
     protected String workDirectory;
-    public static final String KEY_WORK_DIRECTORY = "work.directory";
 
     /**
      * This parameter allows to specify additional directories or jars
@@ -222,8 +178,6 @@
      * are rooted at the context root of the Cocoon servlet.
      */
     protected List extraClasspaths = new ArrayList();
-    /** FIXME: Implement support for this: */
-    public static final String KEY_EXTRA_CLASSPATHS = "extra.classpaths";
 
     /**
      * This parameter allows you to select the parent service manager.
@@ -234,33 +188,28 @@
      * this class, if it implements them.
      */
     protected String parentServiceManagerClassName;
-    public static final String KEY_PARENT_SERVICE_MANAGER = 
"parentservicemanager";
 
     /**
      * Allow adding processing time to the response
      */
     protected boolean showTime = SHOW_TIME;
-    public static final String KEY_SHOWTIME = "showtime";
 
     /**
      * If true, processing time will be added as an HTML comment
      */
     protected boolean hideShowTime = HIDE_SHOW_TIME;
-    public static final String KEY_HIDE_SHOWTIME = "hideshowtime";
 
     /**
      * If true or not set, this class will try to catch and handle all Cocoon 
exceptions.
      * If false, it will rethrow them to the servlet container.
      */
     protected boolean manageExceptions = MANAGE_EXCEPTIONS;
-    public static final String KEY_MANAGE_EXCEPTIONS = "manageexceptions";
 
     /**
      * Set form encoding. This will be the character set used to decode request
      * parameters. If not set the ISO-8859-1 encoding will be assumed.
     */
     protected String formEncoding;
-    public static final String KEY_FORM_ENCODING = "formencoding";
 
     /**
      * If this value is specified, it will be interpreted as a log level and
@@ -268,19 +217,16 @@
      * definition in the logging configuration.
      */
     protected String overrideLogLevel;
-    public static final String KEY_LOGGING_OVERRIDE_LOGLEVEL = 
"override.loglevel";
 
     /**
      * Delay between reload checks for the configuration
      */
     protected long configurationReloadDelay = 1000;
-    public static final String KEY_CONFIGURATION_RELOAD_DELAY = 
"configuration.reloaddelay";
 
     /**
      * Lazy mode for component loading
      */
     protected boolean lazyMode = false;
-    public static final String KEY_LAZY_MODE = "core.LazyMode";
 
     /**
      * Create a new settings object


Reply via email to