Author: cziegeler Date: Thu Jan 13 08:00:06 2005 New Revision: 125082 URL: http://svn.apache.org/viewcvs?view=rev&rev=125082 Log: Readd changes (propagation of ServiceInfo) Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java Thu Jan 13 08:00:06 2005 @@ -16,15 +16,12 @@ */ package org.apache.cocoon.core.container; -import org.apache.avalon.excalibur.logger.LoggerManager; import org.apache.avalon.excalibur.pool.Poolable; import org.apache.avalon.framework.component.Composable; 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.context.Context; import org.apache.avalon.framework.logger.Logger; -import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.thread.SingleThreaded; import org.apache.avalon.framework.thread.ThreadSafe; @@ -64,24 +61,23 @@ * @throws Exception If there were any problems obtaining a ComponentHandler */ public static ComponentHandler getComponentHandler( - String role, String className, Configuration configuration, ComponentEnvironment componentEnv) throws Exception { + String role, + ComponentEnvironment componentEnv, + ServiceInfo info) + throws Exception { - // Load the class + // Load the class Class componentClass; try { - componentClass = componentEnv.loadClass(className); + componentClass = componentEnv.loadClass(info.getServiceClassName()); } catch(ClassNotFoundException cnfe) { - throw new ConfigurationException("Cannot find class " + className + " for component at " + - configuration.getLocation(), cnfe); + throw new ConfigurationException("Cannot find class " + info.getServiceClassName() + " for component at " + + info.getConfiguration().getLocation(), cnfe); } int numInterfaces = 0; - final ServiceInfo info = new ServiceInfo(); - info.setServiceClassName(className); - info.setConfiguration(configuration); - // Early check for Composable if ( Composable.class.isAssignableFrom( componentClass ) ) { throw new Exception("Interface Composable is not supported anymore. Please change class " @@ -111,7 +107,7 @@ if ( numInterfaces == 0 ) { // this component does not use avalon interfaces, so get the info from the configuration - info.fill(configuration); + info.fill(info.getConfiguration()); } // Create the factory to use to create the instances of the Component. @@ -134,7 +130,7 @@ } if( info.getModel() == ServiceInfo.MODEL_POOLED ) { - handler = new PoolableComponentHandler( info, componentEnv.logger, factory, configuration ); + handler = new PoolableComponentHandler( info, componentEnv.logger, factory, info.getConfiguration() ); } else if( info.getModel() == ServiceInfo.MODEL_SINGLETON ) { handler = new ThreadSafeComponentHandler( info, componentEnv.logger, factory ); } else { @@ -277,7 +273,10 @@ */ public static ComponentHandler getComponentHandler(Class clazz, Logger logger, Context context, ServiceManager manager, Configuration config) throws Exception { ComponentEnvironment env = new ComponentEnvironment(clazz.getClassLoader(), logger, null, null, context, manager); - return getComponentHandler(null, clazz.getName(), config, env); + ServiceInfo info = new ServiceInfo(); + info.setServiceClassName(clazz.getName()); + info.setConfiguration(config); + return getComponentHandler(null, env, info); } } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java Thu Jan 13 08:00:06 2005 @@ -31,6 +31,7 @@ import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.thread.ThreadSafe; +import org.apache.cocoon.components.ServiceInfo; /** * Base class for all service managers: ServiceManager and ServiceSelector @@ -104,10 +105,13 @@ this.loggerManager, this.context, serviceManager); } + ServiceInfo info = new ServiceInfo(); + info.setConfiguration(configuration); + info.setServiceClassName(componentClass.getName()); + return AbstractComponentHandler.getComponentHandler(role, - componentClass.getName(), - configuration, - this.componentEnv); + this.componentEnv, + info); } protected void addComponent(String className, Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AliasComponentHandler.java Thu Jan 13 08:00:06 2005 @@ -43,7 +43,9 @@ this.aliasedHandler.put(component); } - protected void doInitialize() {} + protected void doInitialize() { + // nothing to do here + } public boolean isSingleton() { return this.aliasedHandler.isSingleton(); Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java Thu Jan 13 08:00:06 2005 @@ -577,13 +577,15 @@ final String className, final Configuration configuration) throws Exception { + ServiceInfo info = new ServiceInfo(); + info.setConfiguration(configuration); + info.setServiceClassName(className); if (!lazyMode || configuration.getAttributeAsBoolean("preload", false) || role.endsWith("Selector")) { return AbstractComponentHandler.getComponentHandler( - role, className, configuration, this.componentEnv); - } else { - return new LazyHandler(role, className, configuration, this.componentEnv); + role, this.componentEnv, info); } + return new LazyHandler(role, className, configuration, this.componentEnv); } private void parseConfiguration(final Configuration configuration, String contextURI, Set loadedURIs) Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/InstanceComponentHandler.java Thu Jan 13 08:00:06 2005 @@ -57,7 +57,9 @@ // nothing } - protected void doInitialize() {} + protected void doInitialize() { + // nothing to do here + } /* (non-Javadoc) * @see org.apache.cocoon.core.container.ComponentHandler#dispose() Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/LazyHandler.java Thu Jan 13 08:00:06 2005 @@ -35,7 +35,11 @@ private ComponentHandler getDelegate() throws Exception { if (this.delegate == null) { // System.err.println("######## " + System.identityHashCode(compEnv.serviceManager) + " creating handler for " + this.role); - this.delegate = AbstractComponentHandler.getComponentHandler(role, className, config, compEnv); + ServiceInfo info = new ServiceInfo(); + info.setConfiguration(config); + info.setServiceClassName(className); + + this.delegate = AbstractComponentHandler.getComponentHandler(role, compEnv, info); this.delegate.initialize(); } @@ -78,9 +82,8 @@ // We can always be disposed if handler was never used if (this.delegate == null) { return true; - } else { - return getDelegateRE().canBeDisposed(); - } + } + return getDelegateRE().canBeDisposed(); } /* (non-Javadoc) @@ -109,8 +112,7 @@ info.setServiceClassName(className); info.setConfiguration(config); return info; - } else { - return this.delegate.getInfo(); - } + } + return this.delegate.getInfo(); } } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/PoolableComponentHandler.java Thu Jan 13 08:00:06 2005 @@ -224,5 +224,7 @@ } } - protected void doInitialize() {} + protected void doInitialize() { + // nothing to do here + } } Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java?view=diff&rev=125082&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java&r1=125081&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java&r2=125082 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/SingleThreadedComponentHandler.java Thu Jan 13 08:00:06 2005 @@ -64,6 +64,8 @@ this.decommission( component ); } - protected void doInitialize() {} + protected void doInitialize() { + // nothing to do here + } }