Author: cziegeler
Date: Sun Mar 20 11:27:08 2005
New Revision: 158343
URL: http://svn.apache.org/viewcvs?view=rev&rev=158343
Log:
Move from static to object methods
Modified:
cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java
cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java
URL:
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java?view=diff&r1=158342&r2=158343
==============================================================================
--- cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java (original)
+++ cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java Sun Mar 20
11:27:08 2005
@@ -31,40 +31,55 @@
/**
*
- * @version SVN $Id:$
+ * @version SVN $Id$
* @since 2.2
*/
public class CoreUtil {
+ /** The callback to the real environment */
+ protected final Core.BootstrapEnvironment env;
+
+ /** "legacy" support: create an avalon context */
+ protected final DefaultContext appContext = new DefaultContext();
+
+ /** The settings */
+ protected final Settings settings;
+
+ public CoreUtil(Core.BootstrapEnvironment e)
+ throws Exception {
+ this.env = e;
+
+ // create settings
+ this.settings = Core.createSettings(this.env);
+
+ this.createRootServiceManager();
+ }
+
/**
* Bootstrap Cocoon Service Manager
*/
- public static ServiceManager
createRootServiceManager(Core.BootstrapEnvironment env)
+ public ServiceManager createRootServiceManager()
throws Exception {
- // "legacy" support: create an avalon context
- final DefaultContext appContext = new DefaultContext();
- // create settings
- final Settings s = Core.createSettings(env);
- if (s.isInitClassloader()) {
+ if (this.settings.isInitClassloader()) {
// Force context classloader so that JAXP can work correctly
// (see javax.xml.parsers.FactoryFinder.findClassLoader())
try {
-
Thread.currentThread().setContextClassLoader(env.getInitClassLoader());
+
Thread.currentThread().setContextClassLoader(this.env.getInitClassLoader());
} catch (Exception e) {
// ignore this
}
}
- appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT,
env.getEnvironmentContext());
+ this.appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT,
this.env.getEnvironmentContext());
// first init the work-directory for the logger.
// this is required if we are running inside a war file!
- final String workDirParam = s.getWorkDirectory();
+ final String workDirParam = this.settings.getWorkDirectory();
File workDir;
if (workDirParam != null) {
- if (env.getContextPath() == null) {
+ if (this.env.getContextPath() == null) {
// No context path : consider work-directory as absolute
workDir = new File(workDirParam);
} else {
@@ -75,18 +90,15 @@
workDir = workDirParamFile;
} else {
// No : consider it relative to context path
- workDir = new File(env.getContextPath(), workDirParam);
+ workDir = new File(this.env.getContextPath(),
workDirParam);
}
}
} else {
- // TODO:
- workDir = null;
- //workDir = (File)
this.servletContext.getAttribute("javax.servlet.context.tempdir");
- workDir = new File(workDir, "cocoon-files");
+ workDir = new File("cocoon-files");
}
workDir.mkdirs();
- appContext.put(Constants.CONTEXT_WORK_DIR, workDir);
- s.setWorkDirectory(workDir.getAbsolutePath());
+ this.appContext.put(Constants.CONTEXT_WORK_DIR, workDir);
+ this.settings.setWorkDirectory(workDir.getAbsolutePath());
// TODO we should move the following into the bootstrap env
String contextURL;
@@ -143,7 +155,7 @@
}
}
- final String uploadDirParam = s.getUploadDirectory();
+ final String uploadDirParam = this.settings.getUploadDirectory();
File uploadDir;
if (uploadDirParam != null) {
if (env.getContextPath() == null) {
@@ -170,9 +182,9 @@
}
uploadDir.mkdirs();
appContext.put(Constants.CONTEXT_UPLOAD_DIR, uploadDir);
- s.setUploadDirectory(uploadDir.getAbsolutePath());
+ this.settings.setUploadDirectory(uploadDir.getAbsolutePath());
- String cacheDirParam = s.getCacheDirectory();
+ String cacheDirParam = this.settings.getCacheDirectory();
File cacheDir;
if (cacheDirParam != null) {
if (env.getContextPath() == null) {
@@ -203,13 +215,13 @@
}
cacheDir.mkdirs();
appContext.put(Constants.CONTEXT_CACHE_DIR, cacheDir);
- s.setCacheDirectory(cacheDir.getAbsolutePath());
+ this.settings.setCacheDirectory(cacheDir.getAbsolutePath());
// create new Core
- final Core cocoon = new Core(s);
+ final Core cocoon = new Core(this.settings);
// create parent service manager
- final ServiceManager parent = getParentServiceManager(s);
+ final ServiceManager parent = this.getParentServiceManager();
return new RootServiceManager(parent, cocoon);
}
@@ -222,8 +234,8 @@
*
* @return the parent service manager, or <code>null</code>.
*/
- protected static ServiceManager getParentServiceManager(Settings s) {
- String parentServiceManagerClass =
s.getParentServiceManagerClassName();
+ protected ServiceManager getParentServiceManager() {
+ String parentServiceManagerClass =
this.settings.getParentServiceManagerClassName();
String parentServiceManagerInitParam = null;
if (parentServiceManagerClass != null) {
int dividerPos = parentServiceManagerClass.indexOf('/');
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&r1=158342&r2=158343
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java
(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java Sun Mar
20 11:27:08 2005
@@ -1336,7 +1336,11 @@
*/
public void configure(Settings settings) {
// fill from the servlet parameters
- SettingsHelper.fill(settings, this.config);
+ SettingsHelper.fill(settings, this.config);
+ if ( settings.getWorkDirectory() == null ) {
+ final File workDir =
(File)this.config.getServletContext().getAttribute("javax.servlet.context.tempdir");
+ settings.setWorkDirectory(workDir.getAbsolutePath());
+ }
}
/**