You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/01/04 16:07:41 UTC

svn commit: r124108 - /cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java /cocoon/trunk/src/java/org/apache/cocoon/Constants.java

Author: sylvain
Date: Tue Jan  4 07:07:38 2005
New Revision: 124108

URL: http://svn.apache.org/viewcvs?view=rev&rev=124108
Log:
remove the startup servicemanager that was just used to optionallyspecify a special XML parser to load the initial configuration
Modified:
   cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java
   cocoon/trunk/src/java/org/apache/cocoon/Constants.java

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&rev=124108&p1=cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java&r1=124107&p2=cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java&r2=124108
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java	(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java	Tue Jan  4 07:07:38 2005
@@ -18,19 +18,15 @@
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.Map;
 
 import org.apache.avalon.excalibur.logger.LoggerManager;
-
 import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.activity.Initializable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.context.Context;
 import org.apache.avalon.framework.context.ContextException;
@@ -41,26 +37,22 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
-
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.components.container.CocoonServiceManager;
 import org.apache.cocoon.components.container.ComponentContext;
 import org.apache.cocoon.components.source.SourceUtil;
 import org.apache.cocoon.components.source.impl.DelayedRefreshSourceWrapper;
+import org.apache.cocoon.core.container.ConfigurationBuilder;
 import org.apache.cocoon.core.container.RoleManager;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
 import org.apache.cocoon.environment.internal.EnvironmentHelper;
-import org.apache.cocoon.util.ClassUtils;
 import org.apache.commons.lang.SystemUtils;
-
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.impl.URLSource;
-import org.apache.excalibur.xml.sax.SAXParser;
-
 import org.xml.sax.InputSource;
 
 /**
@@ -89,9 +81,6 @@
     /** The configuration file */
     private Source configurationFile;
 
-    /** The configuration tree */
-    private Configuration configuration;
-
     /** The logger manager */
     private LoggerManager loggerManager;
 
@@ -206,34 +195,7 @@
         // Log the System Properties.
         dumpSystemProperties();
 
-        // Setup the default parser, for parsing configuration.
-        // If one need to use a different parser, set the given system property
-        String parser = System.getProperty(Constants.PARSER_PROPERTY, Constants.DEFAULT_PARSER);
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug("Using parser: " + parser);
-            getLogger().debug("Classpath = " + classpath);
-            getLogger().debug("Work directory = " + workDir.getCanonicalPath());
-        }
-
-        CocoonServiceManager startupManager = new CocoonServiceManager(null);
-        ContainerUtil.enableLogging(startupManager, getLogger().getChildLogger("startup"));
-        ContainerUtil.contextualize(startupManager, this.context);
-        startupManager.setLoggerManager(this.loggerManager);
-
-        try {
-            startupManager.addComponent(SAXParser.ROLE,
-                                        ClassUtils.loadClass(parser),
-                                        new DefaultConfiguration("", "empty"));
-        } catch (Exception e) {
-            throw new ConfigurationException("Could not load parser " + parser, e);
-        }
-
-        ContainerUtil.initialize(startupManager);
-
-        this.configure(startupManager);
-
-        ContainerUtil.dispose(startupManager);
-        startupManager = null;
+        this.configure();
 
         // add the logger manager to the component locator
 
@@ -291,43 +253,12 @@
      * @exception ConfigurationException if an error occurs
      * @exception ContextException if an error occurs
      */
-    public void configure(CocoonServiceManager startupManager) throws ConfigurationException, ContextException {
-        SAXParser p = null;
-        Configuration roleConfig = null;
-
-        try {
-            this.configurationFile.refresh();
-            p = (SAXParser)startupManager.lookup(SAXParser.ROLE);
-            SAXConfigurationHandler b = new SAXConfigurationHandler();
-            InputStream inputStream = ClassUtils.getResource("org/apache/cocoon/cocoon.roles").openStream();
-            InputSource is = new InputSource(inputStream);
-            is.setSystemId(this.configurationFile.getURI());
-            p.parse(is, b);
-            roleConfig = b.getConfiguration();
-        } catch (Exception e) {
-            throw new ConfigurationException("Error trying to load configurations", e);
-        } finally {
-            if (p != null) startupManager.release(p);
-        }
+    private void configure() throws Exception {
+        InputSource is = SourceUtil.getInputSource(this.configurationFile);
 
-        RoleManager drm = new RoleManager();
-        ContainerUtil.enableLogging(drm, getLogger().getChildLogger("roles"));
-        ContainerUtil.configure(drm, roleConfig);
-        roleConfig = null;
-
-        try {
-            p = (SAXParser)startupManager.lookup(SAXParser.ROLE);
-            SAXConfigurationHandler b = new SAXConfigurationHandler();
-            InputSource is = SourceUtil.getInputSource(this.configurationFile);
-            p.parse(is, b);
-            this.configuration = b.getConfiguration();
-        } catch (Exception e) {
-            throw new ConfigurationException("Error trying to load configurations",e);
-        } finally {
-            if (p != null) startupManager.release(p);
-        }
+        ConfigurationBuilder builder = new ConfigurationBuilder();
+        Configuration conf = builder.build(is);
 
-        Configuration conf = this.configuration;
         if (getLogger().isDebugEnabled()) {
             getLogger().debug("Root configuration: " + conf.getName());
         }
@@ -341,27 +272,24 @@
             throw new ConfigurationException("Invalid configuration schema version. Must be '" + Constants.CONF_VERSION + "'.");
         }
 
+        RoleManager drm = null;
         String userRoles = conf.getAttribute("user-roles", "");
         if (!"".equals(userRoles)) {
+            Configuration roleConfig;
             try {
-                p = (SAXParser)startupManager.lookup(SAXParser.ROLE);
-                SAXConfigurationHandler b = new SAXConfigurationHandler();
                 org.apache.cocoon.environment.Context context =
                     (org.apache.cocoon.environment.Context) this.context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
                 URL url = context.getResource(userRoles);
                 if (url == null) {
                     throw new ConfigurationException("User-roles configuration '"+userRoles+"' cannot be found.");
                 }
-                InputSource is = new InputSource(new BufferedInputStream(url.openStream()));
+                is = new InputSource(new BufferedInputStream(url.openStream()));
                 is.setSystemId(this.configurationFile.getURI());
-                p.parse(is, b);
-                roleConfig = b.getConfiguration();
+                roleConfig = builder.build(is);
             } catch (Exception e) {
                 throw new ConfigurationException("Error trying to load user-roles configuration", e);
-            } finally {
-                startupManager.release(p);
             }
-
+            
             RoleManager urm = new RoleManager(drm);
             ContainerUtil.enableLogging(urm, getLogger().getChildLogger("roles").getChildLogger("user"));
             ContainerUtil.configure(urm, roleConfig);

Modified: cocoon/trunk/src/java/org/apache/cocoon/Constants.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/Constants.java?view=diff&rev=124108&p1=cocoon/trunk/src/java/org/apache/cocoon/Constants.java&r1=124107&p2=cocoon/trunk/src/java/org/apache/cocoon/Constants.java&r2=124108
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/Constants.java	(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/Constants.java	Tue Jan  4 07:07:38 2005
@@ -100,10 +100,14 @@
      */
     public static final String ACTION_PARAM_PREFIX = "cocoon-action-";
 
-    /** The name of the property holding the class for a XML parser */
+    /** The name of the property holding the class for a XML parser
+     * @deprecated Cocoon now uses the system's JAXP parser to load its configuration 
+     */
     public static final String PARSER_PROPERTY = "org.apache.excalibur.xml.sax.SAXParser";
 
-    /** The name of the class for the default XML parser to use */
+    /** The name of the class for the default XML parser to use
+     * @deprecated Cocoon now uses the system's JAXP parser to load its configuration 
+     */
     public static final String DEFAULT_PARSER  = "org.apache.excalibur.xml.impl.JaxpParser";
 
     /** The namespace for the XSP core logicsheet. */