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/02/24 08:48:40 UTC

svn commit: r380611 - in /cocoon/trunk: cocoon-core/src/main/java/org/apache/cocoon/bean/ cocoon-core/src/main/java/org/apache/cocoon/core/ cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ cocoon-core/src/main/java/org/apache/cocoon/s...

Author: cziegeler
Date: Thu Feb 23 23:48:38 2006
New Revision: 380611

URL: http://svn.apache.org/viewcvs?rev=380611&view=rev
Log:
Simplify configuration

Modified:
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/BootstrapEnvironment.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ApplicationContextFactory.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/servlet/CocoonServlet.java
    cocoon/trunk/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/bean/CocoonWrapper.java Thu Feb 23 23:48:38 2006
@@ -653,13 +653,6 @@
         }
 
         /**
-         * @see org.apache.cocoon.core.BootstrapEnvironment#getContextForWriting()
-         */
-        public File getContextForWriting() {
-            return new File(this.contextDirectory);
-        }
-
-        /**
          * @see org.apache.cocoon.core.BootstrapEnvironment#getContextURL()
          */
         public String getContextURL() {

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/BootstrapEnvironment.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/BootstrapEnvironment.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/BootstrapEnvironment.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/BootstrapEnvironment.java Thu Feb 23 23:48:38 2006
@@ -16,7 +16,6 @@
  */
 package org.apache.cocoon.core;
 
-import java.io.File;
 import java.net.URL;
 
 import org.apache.avalon.framework.context.DefaultContext;
@@ -67,13 +66,6 @@
      * Returns the URL to the application context.
      */
     String getContextURL();
-
-    /**
-     * Returns a file to the application context.
-     * @return A file pointing to the context or null if the context is not
-     *         writeable.
-     */
-    File getContextForWriting();
 
     /**
      * Set the ConfigFile for the Cocoon object.

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/CoreUtil.java Thu Feb 23 23:48:38 2006
@@ -196,20 +196,8 @@
         final String workDirParam = this.settings.getWorkDirectory();
         File workDir;
         if (workDirParam != null) {
-            if (this.env.getContextForWriting() == 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(this.env.getContextForWriting(), workDirParam);
-                }
-            }
+            // No context path : consider work-directory as absolute
+            workDir = new File(workDirParam);
         } else {
             workDir = new File("cocoon-files");
         }
@@ -225,7 +213,6 @@
         // Output some debug info
         if (this.log.isDebugEnabled()) {
             this.log.debug("Context URL: " + this.env.getContextURL());
-            this.log.debug("Writeable Context: " + this.env.getContextForWriting());
             if (workDirParam != null) {
                 this.log.debug("Using work-directory " + workDir);
             } else {
@@ -236,19 +223,7 @@
         final String uploadDirParam = this.settings.getUploadDirectory();
         File uploadDir;
         if (uploadDirParam != null) {
-            if (this.env.getContextForWriting() == 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(this.env.getContextForWriting(), uploadDirParam);
-                }
-            }
+            uploadDir = new File(uploadDirParam);
             if (this.log.isDebugEnabled()) {
                 this.log.debug("Using upload-directory " + uploadDir);
             }
@@ -265,19 +240,7 @@
         String cacheDirParam = this.settings.getCacheDirectory();
         File cacheDir;
         if (cacheDirParam != null) {
-            if (this.env.getContextForWriting() == 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(this.env.getContextForWriting(), cacheDirParam);
-                }
-            }
+            cacheDir = new File(cacheDirParam);
             if (this.log.isDebugEnabled()) {
                 this.log.debug("Using cache-directory " + cacheDir);
             }
@@ -805,17 +768,9 @@
                             this.log.debug("extraClassPath is not absolute replacing using token: [" + s + "] : " + path);
                         }
                     } else {
-                        String path = null;
-                        if (this.env.getContextForWriting() != null) {
-                            path = this.env.getContextForWriting() + s;
-                            if (this.log.isDebugEnabled()) {
-                                this.log.debug("extraClassPath is not absolute pre-pending context path: " + path);
-                            }
-                        } else {
-                            path = this.settings.getWorkDirectory() + s;
-                            if (this.log.isDebugEnabled()) {
-                                this.log.debug("extraClassPath is not absolute pre-pending work-directory: " + path);
-                            }
+                        String path = this.settings.getWorkDirectory() + s;
+                        if (this.log.isDebugEnabled()) {
+                            this.log.debug("extraClassPath is not absolute pre-pending work-directory: " + path);
                         }
                         sb.append(path);
                     }

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ApplicationContextFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ApplicationContextFactory.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ApplicationContextFactory.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/ApplicationContextFactory.java Thu Feb 23 23:48:38 2006
@@ -84,9 +84,6 @@
                                                                                     env.context);
         context.addBeanFactoryPostProcessor(new CocoonSettingsConfigurer(env.settings));
 
-        // TODO: Add context specific information
-        //context.setSourceResolver(this.resolver);
-        //context.setEnvironmentHelper(this.environmentHelper);
         context.setServletContext(env.servletContext);
         context.refresh();
         if ( info.rootLogger != null ) {

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/CocoonXmlWebApplicationContext.java Thu Feb 23 23:48:38 2006
@@ -16,11 +16,9 @@
 package org.apache.cocoon.core.container.spring;
 
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.util.Map;
 import java.util.Stack;
 
-import org.apache.avalon.framework.CascadingRuntimeException;
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.DefaultConfiguration;
@@ -33,13 +31,10 @@
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.internal.EnvironmentHelper;
 import org.apache.cocoon.sitemap.EnterSitemapEvent;
 import org.apache.cocoon.sitemap.EnterSitemapEventListener;
 import org.apache.cocoon.sitemap.LeaveSitemapEvent;
 import org.apache.cocoon.sitemap.LeaveSitemapEventListener;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.BeanFactory;
@@ -52,7 +47,6 @@
 import org.springframework.context.ApplicationListener;
 import org.springframework.context.event.ContextClosedEvent;
 import org.springframework.core.io.Resource;
-import org.springframework.core.io.UrlResource;
 import org.springframework.web.context.support.XmlWebApplicationContext;
 
 /**
@@ -66,12 +60,9 @@
     extends XmlWebApplicationContext
     implements EnterSitemapEventListener, LeaveSitemapEventListener, ApplicationListener {
 
-    public static final String DEFAULT_SPRING_CONFIG = "conf/applicationContext.xml";
     public static final String APPLICATION_CONTEXT_REQUEST_ATTRIBUTE = "application-context";
 
     final private Resource avalonResource;
-    protected SourceResolver resolver;
-    protected String baseURL;
 
     protected final Logger avalonLogger;
     protected final Context avalonContext;
@@ -153,58 +144,13 @@
         return beanFactory;
     }
 
-    public void setSourceResolver(SourceResolver aResolver) {
-        this.resolver = aResolver;
-    }
-
-    public void setEnvironmentHelper(EnvironmentHelper eh) {
-        this.baseURL = eh.getContext();
-        if ( !this.baseURL.endsWith("/") ) {
-            this.baseURL = this.baseURL + '/';
-        }
-    }
-
-    /**
-     * Resolve file paths beneath the root of the web application.
-     * <p>Note: Even if a given path starts with a slash, it will get
-     * interpreted as relative to the web application root directory
-     * (which is the way most servlet containers handle such paths).
-     * @see org.springframework.web.context.support.ServletContextResource
-     */
-    protected Resource getResourceByPath(String path) {
-        if ( path.startsWith("/") ) {
-            path = path.substring(1);
-        }
-        path = this.baseURL + path;
-        try {
-            return new UrlResource(path);
-        } catch (MalformedURLException mue) {
-            // FIXME - for now, we simply call super
-            return super.getResourceByPath(path);
-        }
-    }
-
     /**
-     * The default location for the context is "conf/applicationContext.xml"
-     * which is searched relative to the current sitemap.
-     * @return The default config locations if they exist otherwise an empty array.
+     * We don't have any default locations - this application context is a nested one
+     * which is configured through a sitemap. All possible configuration files are
+     * configured in the sitemap.
+     * @return An empty array.
      */
     protected String[] getDefaultConfigLocations() {
-        if ( this.resolver != null ) {
-            Source testSource = null;
-            try {
-                testSource = this.resolver.resolveURI(DEFAULT_SPRING_CONFIG);
-                if (testSource.exists()) {
-                    return new String[] {DEFAULT_SPRING_CONFIG};
-                }
-            } catch(MalformedURLException e) {
-                throw new CascadingRuntimeException("Malformed URL when resolving Spring default config location [ " + DEFAULT_SPRING_CONFIG + "]. This is an unrecoverable programming error. Check the code where this exception was thrown.", e);
-            } catch(IOException e) {
-                throw new CascadingRuntimeException("Cannot resolve default config location ["+ DEFAULT_SPRING_CONFIG + "] due to an IOException. See cause for details.", e);
-            } finally {
-                this.resolver.release(testSource);
-            }
-        }        
         return new String[]{};
     }
 

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/servlet/CocoonServlet.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/servlet/CocoonServlet.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/servlet/CocoonServlet.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/servlet/CocoonServlet.java Thu Feb 23 23:48:38 2006
@@ -178,7 +178,7 @@
         }
 
         // initialize settings
-        ServletBootstrapEnvironment env = new ServletBootstrapEnvironment(conf, this.servletContextPath, this.servletContextURL);
+        ServletBootstrapEnvironment env = new ServletBootstrapEnvironment(conf, this.servletContextURL);
 
         try {
             this.coreUtil = new CoreUtil(env, this.servletContext);
@@ -593,20 +593,13 @@
         implements BootstrapEnvironment {
 
         private final ServletConfig config;
-        private final File writeableContextPath;
         private final String contextPath;
         public Logger logger;
         private final HttpContext environmentContext;
 
         public ServletBootstrapEnvironment(ServletConfig config, 
-                                           String writeablePath,
                                            String path) {
             this.config = config;
-            if ( writeablePath == null ) {
-                this.writeableContextPath = null;
-            } else {
-                this.writeableContextPath = new File(writeablePath);
-            }
             this.contextPath = path;
             this.environmentContext = new HttpContext(this.config.getServletContext());
         }
@@ -645,14 +638,6 @@
          */
         public String getContextURL() {
             return this.contextPath;
-        }
-
-
-        /**
-         * @see org.apache.cocoon.core.BootstrapEnvironment#getContextForWriting()
-         */
-        public File getContextForWriting() {
-            return this.writeableContextPath;
         }
 
         /**

Modified: cocoon/trunk/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java?rev=380611&r1=380610&r2=380611&view=diff
==============================================================================
--- cocoon/trunk/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java (original)
+++ cocoon/trunk/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portlet/CocoonPortlet.java Thu Feb 23 23:48:38 2006
@@ -223,7 +223,7 @@
         }
 
         // initialize settings
-        PortletBootstrapEnvironment env = new PortletBootstrapEnvironment(conf, this.portletContextPath, this.portletContextURL);
+        PortletBootstrapEnvironment env = new PortletBootstrapEnvironment(conf, this.portletContextURL);
 
         try {
             this.coreUtil = new CoreUtil(env, env.getEnvironmentContext());
@@ -770,20 +770,13 @@
     implements BootstrapEnvironment {
 
         private final PortletConfig config;
-        private final File          writeableContextPath;
         private final String        contextPath;
         public Logger logger;
         private final Context       environmentContext;
 
         public PortletBootstrapEnvironment(PortletConfig config,
-                                           String        writeablePath,
                                            String        path) {
             this.config = config;
-            if ( writeablePath == null ) {
-                this.writeableContextPath = null;
-            } else {
-                this.writeableContextPath = new File(writeablePath);
-            }
             this.contextPath = path;
             this.environmentContext = new PortletContext(this.config.getPortletContext());
         }
@@ -821,14 +814,6 @@
             return this.contextPath;
         }
 
-
-        /**
-         * @see org.apache.cocoon.core.BootstrapEnvironment#getContextForWriting()
-         */
-        public File getContextForWriting() {
-            return this.writeableContextPath;
-        }
-
         /**
          * @see org.apache.cocoon.core.BootstrapEnvironment#configure(org.apache.avalon.framework.context.DefaultContext)
          */
@@ -910,43 +895,28 @@
             StringBuffer buildClassPath = new StringBuffer();
 
             File root = null;
-            if (this.getContextForWriting() != null) {
-                // Old method.  There *MUST* be a better method than this...
-
-                String classDir = this.config.getPortletContext().getRealPath("/WEB-INF/classes");
-                String libDir = this.config.getPortletContext().getRealPath("/WEB-INF/lib");
-
-                if (libDir != null) {
-                    root = new File(libDir);
-                }
-
-                if (classDir != null) {
-                    buildClassPath.append(classDir);
-                }
-            } else {
-                // New(ish) method for war'd deployments
-                URL classDirURL = null;
-                URL libDirURL = null;
+            // New(ish) method for war'd deployments
+            URL classDirURL = null;
+            URL libDirURL = null;
 
-                try {
-                    classDirURL = this.config.getPortletContext().getResource("/WEB-INF/classes");
-                } catch (MalformedURLException me) {
-                    this.logger.warn("Unable to add WEB-INF/classes to the classpath", me);
-                }
+            try {
+                classDirURL = this.config.getPortletContext().getResource("/WEB-INF/classes");
+            } catch (MalformedURLException me) {
+                this.logger.warn("Unable to add WEB-INF/classes to the classpath", me);
+            }
 
-                try {
-                    libDirURL = this.config.getPortletContext().getResource("/WEB-INF/lib");
-                } catch (MalformedURLException me) {
-                    this.logger.warn("Unable to add WEB-INF/lib to the classpath", me);
-                }
+            try {
+                libDirURL = this.config.getPortletContext().getResource("/WEB-INF/lib");
+            } catch (MalformedURLException me) {
+                this.logger.warn("Unable to add WEB-INF/lib to the classpath", me);
+            }
 
-                if (libDirURL != null && libDirURL.toExternalForm().startsWith("file:")) {
-                    root = new File(libDirURL.toExternalForm().substring("file:".length()));
-                }
+            if (libDirURL != null && libDirURL.toExternalForm().startsWith("file:")) {
+                root = new File(libDirURL.toExternalForm().substring("file:".length()));
+            }
 
-                if (classDirURL != null) {
-                    buildClassPath.append(classDirURL.toExternalForm());
-                }
+            if (classDirURL != null) {
+                buildClassPath.append(classDirURL.toExternalForm());
             }
 
             // Unable to find lib directory. Going the hard way.