Author: cziegeler Date: Fri Apr 8 01:29:38 2005 New Revision: 160534 URL: http://svn.apache.org/viewcvs?view=rev&rev=160534 Log: Let util initialize our environment
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=160533&r2=160534 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/CoreUtil.java Fri Apr 8 01:29:38 2005 @@ -340,21 +340,6 @@ } protected void initLogger() { - final DefaultContext subcontext = new DefaultContext(this.appContext); - subcontext.put("context-work", new File(this.settings.getWorkDirectory())); - if (this.env.getContextForWriting() == null) { - File logSCDir = new File(this.settings.getWorkDirectory(), "log"); - logSCDir.mkdirs(); - subcontext.put("context-root", logSCDir.toString()); - } else { - try { - subcontext.put("context-root", this.env.getContextForWriting().toURL().toExternalForm()); - } catch (MalformedURLException ignore) { - // we simply ignore this - } - } - this.env.configureLoggingContext(subcontext); - String logLevel = settings.getBootstrapLogLevel(); if (logLevel == null) { logLevel = "INFO"; @@ -374,26 +359,28 @@ defaultHierarchy.setDefaultPriority(logPriority); final Logger logger = new LogKitLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("")); - // we can't pass the context-root to our resolver - Object value = null; - try { - value = subcontext.get("context-root"); - ((DefaultContext) subcontext).put("context-root", null); - } catch (ContextException ignore) { - // not available - } // Create our own resolver SimpleSourceResolver resolver = new SimpleSourceResolver(); resolver.enableLogging(logger); try { - resolver.contextualize(subcontext); + resolver.contextualize(this.appContext); } catch (ContextException ce) { throw new CascadingRuntimeException( "Cannot setup source resolver.", ce); } - if (value != null) { - ((DefaultContext) subcontext).put("context-root", value); + + // create an own context for the logger manager + final DefaultContext subcontext = new DefaultContext(this.appContext); + subcontext.put("context-work", new File(this.settings.getWorkDirectory())); + if (this.env.getContextForWriting() == null) { + File logSCDir = new File(this.settings.getWorkDirectory(), "log"); + logSCDir.mkdirs(); + subcontext.put("context-root", logSCDir.toString()); + } else { + subcontext.put("context-root", this.env.getContextForWriting().toString()); } + this.env.configureLoggingContext(subcontext); + String loggerManagerClass = settings.getLoggerClassName(); if (loggerManagerClass == null) { loggerManagerClass = LogKitLoggerManager.class.getName(); 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=160533&r2=160534 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java Fri Apr 8 01:29:38 2005 @@ -25,7 +25,6 @@ import org.apache.cocoon.ConnectionResetException; import org.apache.cocoon.Constants; import org.apache.cocoon.ResourceNotFoundException; -import org.apache.cocoon.components.ContextHelper; import org.apache.cocoon.components.notification.DefaultNotifyingBuilder; import org.apache.cocoon.components.notification.Notifier; import org.apache.cocoon.components.notification.Notifying; @@ -231,7 +230,6 @@ // initialize settings Core.BootstrapEnvironment env = new ServletBootstrapEnvironment(conf, this.classLoader, this.servletContextPath, this.servletContextURL); - /* try { CoreUtil util = new CoreUtil(env); this.settings = util.getCore().getSettings(); @@ -245,58 +243,6 @@ } throw new ServletException(e); } - */ - this.settings = CoreUtil.createSettings(env); - this.appContext = new DefaultContext(); - this.appContext.put(Core.CONTEXT_SETTINGS, this.settings); - - if (this.settings.isInitClassloader()) { - // Force context classloader so that JAXP can work correctly - // (see javax.xml.parsers.FactoryFinder.findClassLoader()) - try { - Thread.currentThread().setContextClassLoader(this.classLoader); - } catch (Exception e) { - // ignore this - } - } - - this.appContext.put(Constants.CONTEXT_ENVIRONMENT_CONTEXT, new HttpContext(this.servletContext)); - - // first init the work-directory for the logger. - // this is required if we are running inside a war file! - final String workDirParam = this.settings.getWorkDirectory(); - File workDir; - if (workDirParam != null) { - if (this.servletContextPath == null) { - // No context path : consider work-directory as absolute - workDir = new File(workDirParam); - } else { - // Context path exists : is work-directory absolute ? - File workDirParamFile = new File(workDirParam); - if (workDirParamFile.isAbsolute()) { - // Yes : keep it as is - workDir = workDirParamFile; - } else { - // No : consider it relative to context path - workDir = new File(servletContextPath, workDirParam); - } - } - } else { - workDir = (File) this.servletContext.getAttribute("javax.servlet.context.tempdir"); - workDir = new File(workDir, "cocoon-files"); - } - workDir.mkdirs(); - this.appContext.put(Constants.CONTEXT_WORK_DIR, workDir); - this.settings.setWorkDirectory(workDir.getAbsolutePath()); - - try { - this.appContext.put(ContextHelper.CONTEXT_ROOT_URL, new URL(this.servletContextURL)); - } catch (MalformedURLException ignore) { - // we simply ignore this - } - - // Init logger - initLogger(); if (getLogger().isDebugEnabled()) { getLogger().debug(this.settings.toString()); @@ -307,97 +253,6 @@ } } - // Output some debug info - if (getLogger().isDebugEnabled()) { - getLogger().debug("Servlet Context URL: " + this.servletContextURL); - if (workDirParam != null) { - getLogger().debug("Using work-directory " + workDir); - } else { - getLogger().debug("Using default work-directory " + workDir); - } - } - - final String uploadDirParam = this.settings.getUploadDirectory(); - File uploadDir; - if (uploadDirParam != null) { - if (this.servletContextPath == null) { - uploadDir = new File(uploadDirParam); - } else { - // Context path exists : is upload-directory absolute ? - File uploadDirParamFile = new File(uploadDirParam); - if (uploadDirParamFile.isAbsolute()) { - // Yes : keep it as is - uploadDir = uploadDirParamFile; - } else { - // No : consider it relative to context path - uploadDir = new File(servletContextPath, uploadDirParam); - } - } - if (getLogger().isDebugEnabled()) { - getLogger().debug("Using upload-directory " + uploadDir); - } - } else { - uploadDir = new File(workDir, "upload-dir" + File.separator); - if (getLogger().isDebugEnabled()) { - getLogger().debug("Using default upload-directory " + uploadDir); - } - } - uploadDir.mkdirs(); - this.appContext.put(Constants.CONTEXT_UPLOAD_DIR, uploadDir); - this.settings.setUploadDirectory(uploadDir.getAbsolutePath()); - - String cacheDirParam = this.settings.getCacheDirectory(); - File cacheDir; - if (cacheDirParam != null) { - if (this.servletContextPath == null) { - cacheDir = new File(cacheDirParam); - } else { - // Context path exists : is cache-directory absolute ? - File cacheDirParamFile = new File(cacheDirParam); - if (cacheDirParamFile.isAbsolute()) { - // Yes : keep it as is - cacheDir = cacheDirParamFile; - } else { - // No : consider it relative to context path - cacheDir = new File(servletContextPath, cacheDirParam); - } - } - if (getLogger().isDebugEnabled()) { - getLogger().debug("Using cache-directory " + cacheDir); - } - } else { - cacheDir = IOUtils.createFile(workDir, "cache-dir" + File.separator); - if (getLogger().isDebugEnabled()) { - getLogger().debug("cache-directory was not set - defaulting to " + cacheDir); - } - } - cacheDir.mkdirs(); - this.appContext.put(Constants.CONTEXT_CACHE_DIR, cacheDir); - this.settings.setCacheDirectory(cacheDir.getAbsolutePath()); - - // update settings - try { - final URL u = env.getConfigFile(this.log, this.settings.getConfiguration()); - this.settings.setConfiguration(u.toExternalForm()); - this.appContext.put(Constants.CONTEXT_CONFIG_URL, u); - } catch (Exception e) { - if ( e instanceof ServletException ) { - throw (ServletException)e; - } - throw new ServletException(e); - } - - parentServiceManagerClass = this.settings.getParentServiceManagerClassName(); - if (parentServiceManagerClass != null) { - int dividerPos = parentServiceManagerClass.indexOf('/'); - if (dividerPos != -1) { - parentServiceManagerInitParam = parentServiceManagerInitParam.substring(dividerPos + 1); - parentServiceManagerClass = parentServiceManagerClass.substring(0, dividerPos); - } - } - - this.appContext.put(Constants.CONTEXT_DEFAULT_ENCODING, settings.getFormEncoding()); - this.containerEncoding = getInitParameter("container-encoding", "ISO-8859-1"); this.requestFactory = new RequestFactory(settings.isAutosaveUploads(), new File(settings.getUploadDirectory()), @@ -405,8 +260,7 @@ settings.isSilentlyRename(), settings.getMaxUploadSize(), this.containerEncoding); - // Add the servlet configuration - //this.appContext.put(CONTEXT_SERVLET_CONFIG, conf); + createCocoon(); if (this.exception == null) { this.servletContext.log("Apache Cocoon " + Constants.VERSION + " is up and ready.");