Author: cziegeler
Date: Fri Dec 31 03:15:25 2004
New Revision: 123784

URL: http://svn.apache.org/viewcvs?view=rev&rev=123784
Log:
Refactoring for better component instantiation
Modified:
   
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java
   
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
   
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java
   
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java
   
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.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=123784&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r1=123783&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r2=123784
==============================================================================
--- 
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
   Fri Dec 31 03:15:25 2004
@@ -77,6 +77,7 @@
     throws Exception {
         int numInterfaces = 0;
 
+        // FIXME we don't need the class but a classloader
         final ServiceInfo info = new ServiceInfo();
         info.setServiceClass(componentClass);
         info.setServiceClassName(componentClass.getName());

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java?view=diff&rev=123784&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java&r1=123783&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java&r2=123784
==============================================================================
--- 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
       (original)
+++ 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
       Fri Dec 31 03:15:25 2004
@@ -607,6 +607,7 @@
         if (handler != null) {
             // Overloaded component: we only allow selectors to be overloaded
             ServiceInfo info = handler.getInfo();
+            // FIXME - info should not contain the class, we need to get it 
from somewhere else
             if (!DefaultServiceSelector.class.isAssignableFrom(component) ||
                 
!DefaultServiceSelector.class.isAssignableFrom(info.getServiceClass())) {
                 throw new ServiceException(role, "Component declared at " + 
info.getLocation() + " is redefined at " +

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java?view=diff&rev=123784&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java&r1=123783&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java&r2=123784
==============================================================================
--- 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java
   (original)
+++ 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/ComponentFactory.java
   Fri Dec 31 03:15:25 2004
@@ -72,8 +72,8 @@
         this.environment.logger = actualLogger;
         
         // now get the meta data for the component
-        // FIXME - load the class
-        this.serviceClass = this.serviceInfo.getServiceClass();
+        // FIXME - get the classloader from the environment
+        this.serviceClass = 
this.getClass().getClassLoader().loadClass(this.serviceInfo.getServiceClassName());
         if ( this.serviceInfo.getDestroyMethodName() != null ) {
             this.destroyMethod = 
this.serviceClass.getMethod(this.serviceInfo.getDestroyMethodName(), null);
         } else {
@@ -101,11 +101,11 @@
      */
     public Object newInstance()
     throws Exception {
-        final Object component = 
this.serviceInfo.getServiceClass().newInstance();
+        final Object component = this.serviceClass.newInstance();
 
         if( this.environment.logger.isDebugEnabled() ) {
             this.environment.logger.debug( "ComponentFactory creating new 
instance of " +
-                    this.serviceInfo.getServiceClass().getName() + "." );
+                    this.serviceClass.getName() + "." );
         }
 
         ContainerUtil.enableLogging(component, this.environment.logger);
@@ -132,7 +132,7 @@
     }
 
     public Class getCreatedClass() {
-        return this.serviceInfo.getServiceClass();
+        return this.serviceClass;
     }
 
     /**
@@ -142,7 +142,7 @@
     throws Exception {
         if( this.environment.logger.isDebugEnabled() ) {
             this.environment.logger.debug( "ComponentFactory decommissioning 
instance of " +
-                    this.serviceInfo.getServiceClass().getName() + "." );
+                    this.serviceClass.getName() + "." );
         }
 
         ContainerUtil.stop( component );

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java?view=diff&rev=123784&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java&r1=123783&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java&r2=123784
==============================================================================
--- 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java
     (original)
+++ 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/DefaultServiceSelector.java
     Fri Dec 31 03:15:25 2004
@@ -201,7 +201,7 @@
         
         public Object newInstance()
         throws Exception {
-            final DefaultServiceSelector component = 
(DefaultServiceSelector)this.serviceInfo.getServiceClass().newInstance();
+            final DefaultServiceSelector component = 
(DefaultServiceSelector)this.serviceClass.newInstance();
 
             ContainerUtil.enableLogging(component, this.environment.logger);
             ContainerUtil.contextualize(component, this.environment.context);

Modified: 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java
Url: 
http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java?view=diff&rev=123784&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java&r1=123783&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java&r2=123784
==============================================================================
--- 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java
  (original)
+++ 
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java
  Fri Dec 31 03:15:25 2004
@@ -466,7 +466,7 @@
         
         public Object newInstance()
         throws Exception {
-            final StandaloneServiceSelector component = 
(StandaloneServiceSelector)this.serviceInfo.getServiceClass().newInstance();
+            final StandaloneServiceSelector component = 
(StandaloneServiceSelector)this.serviceClass.newInstance();
 
             ContainerUtil.enableLogging(component, this.environment.logger);
             ContainerUtil.contextualize(component, this.environment.context);

Reply via email to