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. */