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 2006/06/28 17:49:27 UTC

svn commit: r417800 - in /cocoon/trunk: blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/ blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/ blocks/cocoon-xsp/cocoon-xs...

Author: cziegeler
Date: Wed Jun 28 08:49:26 2006
New Revision: 417800

URL: http://svn.apache.org/viewvc?rev=417800&view=rev
Log:
More cleanup of CoreUtil

Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java
    cocoon/trunk/blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java
    cocoon/trunk/blocks/cocoon-xsp/cocoon-xsp-impl/src/main/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/Constants.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/generation/StatusGenerator.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/SettingsHelper.java
    cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/core/TestCoreUtil.java

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java Wed Jun 28 08:49:26 2006
@@ -180,7 +180,8 @@
 
         try {
             this.exception = null;
-            this.cocoon = this.coreUtil.createCocoon();
+            // FIXME
+            this.cocoon = (Cocoon)this.coreUtil.createProcessor();
         } catch (Exception e) {
             this.exception = e;
         }
@@ -232,7 +233,8 @@
         // Get the cocoon engine instance
         try {
             this.exception = null;
-            this.cocoon = this.coreUtil.getCocoon(null, request.getParameter(Constants.RELOAD_PARAM));
+            // FIXME
+            this.cocoon = (Cocoon)this.coreUtil.getProcessor(request.getParameter(Constants.RELOAD_PARAM) != null);
         } catch (Exception e) {
             this.exception = e;
         }
@@ -361,7 +363,8 @@
         // Get the cocoon engine instance
         try {
             this.exception = null;
-            this.cocoon = this.coreUtil.getCocoon(null, request.getParameter(Constants.RELOAD_PARAM));
+            // FIXME
+            this.cocoon = (Cocoon)this.coreUtil.getProcessor(request.getParameter(Constants.RELOAD_PARAM) != null);
         } catch (Exception e) {
             this.exception = e;
         }

Modified: cocoon/trunk/blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java (original)
+++ cocoon/trunk/blocks/cocoon-python/cocoon-python-impl/src/main/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java Wed Jun 28 08:49:26 2006
@@ -99,8 +99,8 @@
             Properties properties = new Properties();
             File workDir = (File)avalonContext.get(Constants.CONTEXT_WORK_DIR);
             properties.setProperty("python.home", workDir.toString());
-            properties.setProperty("python.packages.fakepath",
-                    (String)avalonContext.get(Constants.CONTEXT_CLASSPATH));
+            // FIXME - how do we get the classpath?
+            properties.setProperty("python.packages.fakepath", "");
             PythonInterpreter.initialize(System.getProperties(), properties, new String[]{});
 
             python = new PythonInterpreter();

Modified: cocoon/trunk/blocks/cocoon-xsp/cocoon-xsp-impl/src/main/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-xsp/cocoon-xsp-impl/src/main/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-xsp/cocoon-xsp-impl/src/main/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java (original)
+++ cocoon/trunk/blocks/cocoon-xsp/cocoon-xsp-impl/src/main/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java Wed Jun 28 08:49:26 2006
@@ -68,7 +68,8 @@
      * @param context The context
      */
     public void contextualize(Context context) throws ContextException {
-        this.classpath = (String) context.get(Constants.CONTEXT_CLASSPATH);
+        // FIXME - how do we get the classpath?
+        this.classpath = "";
     }
 
     /**

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/Constants.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/Constants.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/Constants.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/Constants.java Wed Jun 28 08:49:26 2006
@@ -191,7 +191,7 @@
     public static final String CONTEXT_CACHE_DIR = "cache-directory";
 
     /** Application <code>Context</code> Key for the current classpath */
-    public static final String CONTEXT_CLASSPATH = "classpath";
+    //public static final String CONTEXT_CLASSPATH = "classpath";
 
 
     /** Application <code>Context</code> key for the current environment prefix */

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java Wed Jun 28 08:49:26 2006
@@ -115,7 +115,8 @@
         env.setConfigFile(this.conf);
         env.setLoadClassList(this.classList);
         this.coreUtil = new CoreUtil(cliContext, env);
-        this.cocoon = this.coreUtil.createCocoon();
+        // FIXME
+        this.cocoon = (Cocoon)this.coreUtil.createProcessor();
         this.log = this.coreUtil.getRootLogger();
         this.initialized = true;
     }

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java Wed Jun 28 08:49:26 2006
@@ -39,7 +39,6 @@
 import org.apache.avalon.framework.context.ContextException;
 import org.apache.avalon.framework.context.DefaultContext;
 import org.apache.avalon.framework.logger.Logger;
-import org.apache.cocoon.Cocoon;
 import org.apache.cocoon.Constants;
 import org.apache.cocoon.Processor;
 import org.apache.cocoon.components.ContextHelper;
@@ -170,6 +169,10 @@
         this.environmentContext = context;
         this.env = environment;
         this.init();
+        // force load classes
+        // as we are using the same classloader for reloading
+        // we have to do this only once
+        this.forceLoad();
     }
 
     protected void init()
@@ -516,42 +519,16 @@
     }
 
     /**
-     * Creates the Cocoon object and handles exception handling.
-     */
-    public synchronized Cocoon createCocoon()
-    throws Exception {        
-        this.createProcessor();
-        return (Cocoon)this.processor;
-    }
-
-    /**
-     * Gets the current cocoon object.
-     * Reload cocoon if configuration changed or we are reloading.
-     * Ensure that the correct classloader is set.
-     * @param reload Should the container be reloaded?
-     */
-    public Cocoon getCocoon(boolean reload)
-    throws Exception {
-        this.getProcessor(reload);
-        return (Cocoon)this.processor;
-    }
-
-    /**
      * Creates the root processor object and handles exception handling.
      */
     public synchronized Processor createProcessor()
     throws Exception {
-
-        this.updateEnvironment();
-        this.forceLoad();
-
         try {
             if (this.log.isInfoEnabled()) {
                 this.log.info("Reloading from: " + this.settings.getConfiguration());
             }
             Processor p = (Processor)this.container.getBean("org.apache.cocoon.Cocoon");
 
-            this.settings.setCreationTime(System.currentTimeMillis());
             this.processor = p;
         } catch (Exception e) {
             this.log.error("Exception reloading root processor.", e);
@@ -635,6 +612,7 @@
         ConfigurationInfo result = ConfigReader.readConfiguration(settings.getConfiguration(), env);
         ConfigurableBeanFactory mainContext = BeanFactoryUtil.createBeanFactory(env, result, null, rootContext, true);
 
+        this.settings.setCreationTime(System.currentTimeMillis());
         return mainContext;
     }
 
@@ -769,19 +747,6 @@
                 // Do not throw an exception, because it is not a fatal error.
             }
         }
-    }
-
-    /**
-     * Method to update the environment before Cocoon instances are created.
-     *
-     * This is also useful if you wish to customize any of the 'protected'
-     * variables from this class before a Cocoon instance is built in a derivative
-     * of this class (eg. Cocoon Context).
-     */
-    protected void updateEnvironment() throws Exception {
-        // FIXME - for now we just set an empty string as this information is looked up
-        //         by other components
-        this.appContext.put(Constants.CONTEXT_CLASSPATH, "");
     }
 
     /**

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/generation/StatusGenerator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/generation/StatusGenerator.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/generation/StatusGenerator.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/generation/StatusGenerator.java Wed Jun 28 08:49:26 2006
@@ -45,7 +45,6 @@
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
-import java.io.File;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -334,23 +333,6 @@
             addMultilineValue("classpath", paths);
         }
         // END ClassPath
-
-        // BEGIN CONTEXT CLASSPATH
-        String contextClassPath = null;
-        try {
-            contextClassPath = (String) this.context.get(Constants.CONTEXT_CLASSPATH);
-        } catch (ContextException e) {
-            // we ignore this
-        }
-        if (contextClassPath != null) {
-            List paths = new ArrayList();
-            StringTokenizer tokenizer = new StringTokenizer(contextClassPath, File.pathSeparator);
-            while (tokenizer.hasMoreTokens()) {
-                paths.add(tokenizer.nextToken());
-            }
-            addMultilineValue("context-classpath", paths);
-        }
-        // END CONTEXT CLASSPATH
 
         // BEGIN Memory status
         startGroup("Memory");

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/SettingsHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/SettingsHelper.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/SettingsHelper.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/SettingsHelper.java Wed Jun 28 08:49:26 2006
@@ -18,6 +18,7 @@
 import java.util.StringTokenizer;
 
 import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
 
 import org.apache.cocoon.core.MutableSettings;
 import org.apache.commons.lang.BooleanUtils;
@@ -158,4 +159,116 @@
         return result;
     }
     
+    public static void fill(MutableSettings s, ServletContext config) {
+        String value;
+
+        value = getInitParameter(config, "configurations");
+        if ( value != null ) {
+            s.setConfiguration(value);
+        } else if ( s.getConfiguration() == null ) {
+            s.setConfiguration("/WEB-INF/cocoon.xconf");
+        }
+
+        value = getInitParameter(config, "logging-config");
+        if ( value != null ) {
+            s.setLoggingConfiguration("context:/" + value);                
+        }
+
+        value = getInitParameter(config, "servlet-logger");
+        if ( value != null ) {
+            s.setEnvironmentLogger(value);
+        }
+
+        value = getInitParameter(config, "cocoon-logger");
+        if ( value != null ) {
+            s.setCocoonLogger(value);
+        }
+
+        value = getInitParameter(config, "log-level");
+        if ( value != null ) {
+            s.setBootstrapLogLevel(value);
+        }
+
+        s.setReloadingEnabled(getInitParameterAsBoolean(config, "allow-reload", s.isReloadingEnabled(null)));
+
+        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);
+        }
+
+        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.setShowCocoonVersion(getInitParameterAsBoolean(config, "show-cocoon-version", s.isShowVersion()));
+
+        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(ServletContext config, String name, boolean defaultValue) {
+        String value = getInitParameter(config, name);
+        if (value == null) {
+            return defaultValue;
+        }
+
+        return BooleanUtils.toBoolean(value);
+    }
+
+    protected static int getInitParameterAsInteger(ServletContext config, String name, int defaultValue) {
+        String value = getInitParameter(config, name);
+        if (value == null) {
+            return defaultValue;
+        }
+        return Integer.parseInt(value);
+    }
+    
+    /**
+     * Get an initialisation parameter. The value is trimmed, and null is returned if the trimmed value
+     * is empty.
+     */
+    private static String getInitParameter(ServletContext config, String name) {
+        String result = config.getInitParameter(name);
+        if (result != null) {
+            result = result.trim();
+            if (result.length() == 0) {
+                result = null;
+            }
+        }
+
+        return result;
+    }
 }

Modified: cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/core/TestCoreUtil.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/core/TestCoreUtil.java?rev=417800&r1=417799&r2=417800&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/core/TestCoreUtil.java (original)
+++ cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/core/TestCoreUtil.java Wed Jun 28 08:49:26 2006
@@ -24,7 +24,4 @@
     public TestCoreUtil(BootstrapEnvironment env) throws Exception {
         super(new MockContext(), env);
     }
-
-    // Simplified classloader handling
-    protected void updateEnvironment() throws Exception {}
 }