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
+    }
 
 }

Reply via email to