Author: cziegeler Date: Fri Mar 18 09:29:25 2005 New Revision: 158112 URL: http://svn.apache.org/viewcvs?view=rev&rev=158112 Log: Add more objects from the Context to the Core
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/Constants.java cocoon/trunk/src/core/java/org/apache/cocoon/core/Core.java cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java Modified: cocoon/trunk/src/core/java/org/apache/cocoon/Constants.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/Constants.java?view=diff&r1=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/Constants.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/Constants.java Fri Mar 18 09:29:25 2005 @@ -214,10 +214,12 @@ /** * Application <code>Context</code> Key for the URL to the configuration file * (usually named cocoon.xconf) + * @deprecated Use [EMAIL PROTECTED] org.apache.cocoon.configuration.Settings#getConfiguration()}. */ public static final String CONTEXT_CONFIG_URL = "config-url"; - /** Application <code>Context</code> Key for the default encoding */ + /** Application <code>Context</code> Key for the default encoding. + * @deprecated Use [EMAIL PROTECTED] org.apache.cocoon.configuration.Settings#getFormEncoding()}. */ public static final String CONTEXT_DEFAULT_ENCODING = "default-encoding"; } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/Core.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/Core.java?view=diff&r1=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/Core.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/Core.java Fri Mar 18 09:29:25 2005 @@ -16,6 +16,7 @@ */ package org.apache.cocoon.core; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; @@ -28,6 +29,7 @@ import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.context.Contextualizable; +import org.apache.cocoon.Constants; import org.apache.cocoon.configuration.Settings; /** @@ -101,17 +103,55 @@ * Return the component context. * This method allows access to the component context for other components * that are not created by an Avalon based container. + * FIXME - will be removed before the release */ public Context getContext() { return this.context; } /** + * Return the environment context object. + * @return The environment context. + */ + public org.apache.cocoon.environment.Context getEnvironmentContext() { + try { + return (org.apache.cocoon.environment.Context)this.context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT); + } catch (ContextException ce) { + throw new CascadingRuntimeException("Unable to get the environment object from the context.", ce); + } + } + + public File getWorkDirectory() { + try { + return (File)this.context.get(Constants.CONTEXT_WORK_DIR); + } catch (ContextException ce) { + throw new CascadingRuntimeException("Unable to get the working directory from the context.", ce); + } + } + + public File getUploadDirectory() { + try { + return (File)this.context.get(Constants.CONTEXT_UPLOAD_DIR); + } catch (ContextException ce) { + throw new CascadingRuntimeException("Unable to get the upload directory from the context.", ce); + } + } + + public File getCacheDirectory() { + try { + return (File)this.context.get(Constants.CONTEXT_CACHE_DIR); + } catch (ContextException ce) { + throw new CascadingRuntimeException("Unable to get the cache directory from the context.", ce); + } + } + + /** * Return the current settings. * Please don't use this method directly, look up the Core component * and use [EMAIL PROTECTED] #getSettings()} instead. * @param context The component context. * @return The settings. + * FIXME - will be removed before the release */ public static final Settings getSettings(Context context) { // the settings object is always present Modified: cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java?view=diff&r1=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java Fri Mar 18 09:29:25 2005 @@ -143,15 +143,14 @@ ((DefaultContext)this.context).makeReadOnly(); final Settings settings = Core.getSettings(this.context); - final URL u = (URL)this.context.get(Constants.CONTEXT_CONFIG_URL); try { URLSource urlSource = new URLSource(); - urlSource.init(u, null); + urlSource.init(new URL(settings.getConfiguration()), null); this.configurationFile = new DelayedRefreshSourceWrapper(urlSource, settings.getConfigurationReloadDelay()); } catch (IOException ioe) { - throw new ContextException("Could not open configuration file: " + u, ioe); + throw new ContextException("Could not open configuration file: " + settings.getConfiguration(), ioe); } } Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java?view=diff&r1=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Fri Mar 18 09:29:25 2005 @@ -24,7 +24,6 @@ import java.util.Map; import java.util.Set; -import org.apache.avalon.framework.configuration.AbstractConfiguration; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.DefaultConfiguration; Modified: cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java?view=diff&r1=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java Fri Mar 18 09:29:25 2005 @@ -23,6 +23,8 @@ import org.apache.avalon.framework.context.Contextualizable; import org.apache.cocoon.Constants; import org.apache.cocoon.caching.CacheableProcessingComponent; +import org.apache.cocoon.configuration.Settings; +import org.apache.cocoon.core.Core; import org.apache.cocoon.util.ClassUtils; import org.apache.cocoon.util.TraxErrorHandler; import org.apache.cocoon.xml.AbstractXMLPipe; @@ -168,7 +170,8 @@ * Uses the context to retrieve a default encoding for the serializers. */ public void contextualize(Context context) throws ContextException { - String defaultEncoding = (String)context.get(Constants.CONTEXT_DEFAULT_ENCODING); + final Settings s = Core.getSettings(context); + String defaultEncoding = s.getFormEncoding(); if (defaultEncoding != null) { this.format.setProperty(OutputKeys.ENCODING, defaultEncoding); } 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=158111&r2=158112 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/servlet/CocoonServlet.java Fri Mar 18 09:29:25 2005 @@ -350,9 +350,11 @@ cacheDir.mkdirs(); this.appContext.put(Constants.CONTEXT_CACHE_DIR, cacheDir); this.settings.setCacheDirectory(cacheDir.getAbsolutePath()); - - this.appContext.put(Constants.CONTEXT_CONFIG_URL, - this.getConfigFile(this.settings.getConfiguration())); + + // update settings + final URL u = this.getConfigFile(this.settings.getConfiguration()); + this.settings.setConfiguration(u.toExternalForm()); + this.appContext.put(Constants.CONTEXT_CONFIG_URL, u); parentServiceManagerClass = this.settings.getParentServiceManagerClassName(); if (parentServiceManagerClass != null) { @@ -1150,9 +1152,8 @@ try { this.exception = null; - URL configFile = (URL) this.appContext.get(Constants.CONTEXT_CONFIG_URL); if (getLogger().isInfoEnabled()) { - getLogger().info("Reloading from: " + configFile.toExternalForm()); + getLogger().info("Reloading from: " + this.settings.getConfiguration()); } Cocoon c = (Cocoon) ClassUtils.newInstance("org.apache.cocoon.Cocoon"); ContainerUtil.enableLogging(c, getCocoonLogger());