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 {}
}