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/04/22 09:02:36 UTC

svn commit: r164180 - in /cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet: CocoonPortlet.java SettingsHelper.java

Author: cziegeler
Date: Fri Apr 22 00:02:35 2005
New Revision: 164180

URL: http://svn.apache.org/viewcvs?rev=164180&view=rev
Log:
Add missing class

Added:
    cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java   (with props)
Modified:
    cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/CocoonPortlet.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=164180&r1=164179&r2=164180&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 Apr 22 00:02:35 2005
@@ -53,9 +53,9 @@
 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.core.BootstrapEnvironment;
 import org.apache.cocoon.core.CoreUtil;
+import org.apache.cocoon.core.Settings;
 import org.apache.cocoon.environment.Context;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.portlet.PortletContext;
@@ -64,7 +64,6 @@
 import org.apache.cocoon.portlet.multipart.RequestFactory;
 import org.apache.cocoon.util.IOUtils;
 import org.apache.cocoon.util.log.CocoonLogFormatter;
-import org.apache.commons.lang.BooleanUtils;
 import org.apache.commons.lang.SystemUtils;
 import org.apache.log.ContextMap;
 import org.apache.log.LogTarget;
@@ -836,35 +835,9 @@
             if (getLogger() != null && getLogger().isDebugEnabled()) {
                 getLogger().debug(name + " was not set - defaulting to '" + defaultValue + "'");
             }
-            return defaultValue;
-        } else {
-            return result;
-        }
-    }
-
-    /** Convenience method to access boolean portlet parameters */
-    private boolean getInitParameterAsBoolean(String name, boolean defaultValue) {
-        String value = getInitParameter(name);
-        if (value == null) {
-            if (getLogger() != null && getLogger().isDebugEnabled()) {
-                getLogger().debug(name + " was not set - defaulting to '" + defaultValue + "'");
-            }
-            return defaultValue;
-        }
-
-        return BooleanUtils.toBoolean(value);
-    }
-
-    private int getInitParameterAsInteger(String name, int defaultValue) {
-        String value = getInitParameter(name);
-        if (value == null) {
-            if (getLogger() != null && getLogger().isDebugEnabled()) {
-                getLogger().debug(name + " was not set - defaulting to '" + defaultValue + "'");
-            }
-            return defaultValue;
-        } else {
-            return Integer.parseInt(value);
+            result = defaultValue;
         }
+        return result;
     }
 
     protected Logger getLogger() {

Added: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java?rev=164180&view=auto
==============================================================================
--- cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java (added)
+++ cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java Fri Apr 22 00:02:35 2005
@@ -0,0 +1,226 @@
+/*
+ * 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.portlet;
+
+import java.util.StringTokenizer;
+
+import javax.portlet.PortletConfig;
+
+import org.apache.cocoon.core.Settings;
+import org.apache.cocoon.util.StringUtils;
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.SystemUtils;
+
+/**
+ * This helper class initializes the {@link Settings} object from the servlet
+ * configuration.
+ * 
+ * @version SVN $Id$
+ */
+public class SettingsHelper {
+
+    private SettingsHelper() {
+        //  no instantiation
+    }
+    
+    public static void fill(Settings s, PortletConfig config) {
+        String value;
+
+        s.setInitClassloader(getInitParameterAsBoolean(config, "init-classloader", s.isInitClassloader()));
+
+        handleForceProperty(getInitParameter(config, "force-property"), s);
+
+        value = getInitParameter(config, "configurations");
+        if ( value != null ) {
+            s.setConfiguration(value);
+        } else if ( s.getConfiguration() == null ) {
+            s.setConfiguration("/WEB-INF/cocoon.xconf");
+        }
+
+        value = getInitParameter(config, "logkit-config");
+        if ( value != null ) {
+            s.setLoggingConfiguration("context:/" + value);
+        }
+
+        value = getInitParameter(config, "servlet-logger");
+        if ( value != null ) {
+            s.setAccessLogger(value);
+        }
+
+        value = getInitParameter(config, "cocoon-logger");
+        if ( value != null ) {
+            s.setCocoonLogger(value);
+        }
+
+        value = getInitParameter(config, "log-level");
+        if ( value != null ) {
+            s.setBootstrapLogLevel(value);
+        }
+
+        value = getInitParameter(config, "logger-class");
+        if ( value != null ) {
+            s.setLoggerClassName(value);
+        }
+
+        value = getInitParameter(config, "log4j-config");
+        if ( value != null ) {
+            s.setLog4jConfiguration("context:/" + value);
+        }
+
+        s.setAllowReload(getInitParameterAsBoolean(config, "allow-reload", s.isAllowReload()));
+
+        handleLoadClass(getInitParameter(config, "load-class"), s);
+
+        s.setEnableUploads(getInitParameterAsBoolean(config, "enable-uploads", s.isEnableUploads()));
+
+        value = getInitParameter(config, "upload-directory");
+        if ( value != null ) {
+            s.setUploadDirectory(value);
+        }
+
+        s.setAutosaveUploads(getInitParameterAsBoolean(config, "autosave-uploads", s.isAutosaveUploads()));
+
+        value = getInitParameter(config, "overwrite-uploads");
+        if ( value != null ) {
+            s.setOverwriteUploads(config.getInitParameter(value));
+        }
+
+        s.setMaxUploadSize(getInitParameterAsInteger(config, "upload-max-size", s.getMaxUploadSize()));
+        
+        value = getInitParameter(config, "cache-directory");
+        if ( value != null ) {
+            s.setCacheDirectory(value);
+        }
+
+        value = getInitParameter(config, "work-directory");
+        if ( value != null ) {
+            s.setWorkDirectory(value);
+        }
+
+        handleExtraClassPath(config.getInitParameter("extra-classpath"), s);
+
+        value = getInitParameter(config, "parent-service-manager");
+        if ( value != null ) {
+            s.setParentServiceManagerClassName(value);
+        }
+
+        value = getInitParameter(config, "show-time");
+        if ( value != null && value.equalsIgnoreCase("hide") ) {
+            s.setShowTime(true);
+            s.setHideShowTime(true);
+        } else {
+            s.setShowTime(getInitParameterAsBoolean(config, "show-time", false));
+            s.setHideShowTime(false);
+        }
+
+        s.setManageExceptions(getInitParameterAsBoolean(config, "manage-exceptions", s.isManageExceptions()));
+
+        value = getInitParameter(config, "form-encoding");
+        if ( value != null ) {
+            s.setFormEncoding(value);
+        }
+    }
+    
+    /** Convenience method to access boolean servlet parameters */
+    protected static boolean getInitParameterAsBoolean(PortletConfig config, String name, boolean defaultValue) {
+        String value = getInitParameter(config, name);
+        if (value == null) {
+            return defaultValue;
+        }
+
+        return BooleanUtils.toBoolean(value);
+    }
+
+    protected static int getInitParameterAsInteger(PortletConfig config, String name, int defaultValue) {
+        String value = getInitParameter(config, name);
+        if (value == null) {
+            return defaultValue;
+        }
+        return Integer.parseInt(value);
+    }
+    
+    private static void handleLoadClass(String param, Settings s) {
+        if ( param == null ) {
+            return;
+        }
+        StringTokenizer tokenizer = new StringTokenizer(param, " \t\r\n\f;,", false);
+        while (tokenizer.hasMoreTokens()) {
+            final String value = tokenizer.nextToken().trim();
+            s.addToLoadClasses(value);
+        }
+    }
+
+    /**
+     * Handle the "force-property" parameter.
+     *
+     * If you need to force more than one property to load, then
+     * separate each entry with whitespace, a comma, or a semi-colon.
+     * Cocoon will strip any whitespace from the entry.
+     */
+    private static void handleForceProperty(String forceSystemProperty, Settings s) {
+        if (forceSystemProperty != null) {
+            StringTokenizer tokenizer = new StringTokenizer(forceSystemProperty, " \t\r\n\f;,", false);
+
+            while (tokenizer.hasMoreTokens()) {
+                final String property = tokenizer.nextToken().trim();
+                if (property.indexOf('=') == -1) {
+                    continue;
+                }
+                try {
+                    String key = property.substring(0, property.indexOf('='));
+                    String value = property.substring(property.indexOf('=') + 1);
+                    if (value.indexOf("${") != -1) {
+                        value = StringUtils.replaceToken(value);
+                    }
+                    s.addToForceProperties(key, value);
+                } catch (Exception e) {
+                    // Do not throw an exception, because it is not a fatal error.
+                }
+            }
+        }
+    }
+
+    /**
+     * Retreives the "extra-classpath" attribute, that needs to be
+     * added to the class path.
+     */
+    private static void handleExtraClassPath(String extraClassPath, Settings settings) {
+        if (extraClassPath != null) {
+            StringTokenizer st = new StringTokenizer(extraClassPath, SystemUtils.PATH_SEPARATOR, false);
+            while (st.hasMoreTokens()) {
+                String s = st.nextToken();
+                settings.addToExtraClasspaths(s);
+            }
+        }
+    }
+
+    /**
+     * Get an initialisation parameter. The value is trimmed, and null is returned if the trimmed value
+     * is empty.
+     */
+    private static String getInitParameter(PortletConfig config, String name) {
+        String result = config.getInitParameter(name);
+        if (result != null) {
+            result = result.trim();
+            if (result.length() == 0) {
+                result = null;
+            }
+        }
+
+        return result;
+    }
+    
+}

Propchange: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/blocks/supported/portal/trunk/java/org/apache/cocoon/portlet/SettingsHelper.java
------------------------------------------------------------------------------
    svn:keywords = Id