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

svn commit: r124219 - in cocoon/trunk/src: blocks/python/java/org/apache/cocoon/components/language/programming/python blocks/xsp/java/org/apache/cocoon/acting blocks/xsp/java/org/apache/cocoon/components/language/programming/java blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript core/java/org/apache/cocoon/core/container

Author: cziegeler
Date: Wed Jan  5 07:23:35 2005
New Revision: 124219

URL: http://svn.apache.org/viewcvs?view=rev&rev=124219
Log:
Start propagating service info
Modified:
   cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java
   cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java
   cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java
   cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java
   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/CoreServiceManager.java
   cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java

Modified: cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java?view=diff&rev=124219&p1=cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java&r1=124218&p2=cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java&r2=124219
==============================================================================
--- cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java	(original)
+++ cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java	Wed Jan  5 07:23:35 2005
@@ -21,6 +21,7 @@
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceManager;
 
+import org.apache.cocoon.components.ServiceInfo;
 import org.apache.cocoon.components.language.programming.Program;
 import org.apache.cocoon.components.language.generator.CompiledComponent;
 import org.apache.cocoon.core.container.AbstractComponentHandler;
@@ -70,9 +71,12 @@
         env.serviceManager = manager;
         env.context = context;
         env.logger = this.getLogger();
-
+        final ServiceInfo info = new ServiceInfo();
+        info.setConfiguration(config);
+        info.setServiceClass(clazz);
+        
         return AbstractComponentHandler.getComponentHandler(
-                null, clazz, config, env, null);
+                null, info, env, null);
     }
 
     public CompiledComponent newInstance() throws Exception {

Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java?view=diff&rev=124219&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java&r1=124218&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java&r2=124219
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java	(original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java	Wed Jan  5 07:23:35 2005
@@ -25,6 +25,7 @@
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.thread.ThreadSafe;
 
+import org.apache.cocoon.components.ServiceInfo;
 import org.apache.cocoon.components.sax.XMLByteStreamCompiler;
 import org.apache.cocoon.components.sax.XMLByteStreamFragment;
 import org.apache.cocoon.core.container.AbstractComponentHandler;
@@ -92,10 +93,13 @@
             final ComponentEnvironment env = new ComponentEnvironment();
             env.serviceManager = this.manager;
             env.logger = this.getLogger();
+            final ServiceInfo info = new ServiceInfo();
+            info.setConfiguration(conf);
+            info.setServiceClass(ServerPagesGenerator.class);
+            
             this.generatorHandler = AbstractComponentHandler.getComponentHandler(
                 null,  // role
-                ServerPagesGenerator.class,
-                conf,
+                info,
                 env,
                 null   // RoleManager
             );

Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java?view=diff&rev=124219&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java&r1=124218&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java&r2=124219
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java	(original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java	Wed Jan  5 07:23:35 2005
@@ -20,6 +20,7 @@
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceManager;
 
+import org.apache.cocoon.components.ServiceInfo;
 import org.apache.cocoon.components.language.generator.CompiledComponent;
 import org.apache.cocoon.components.language.programming.Program;
 import org.apache.cocoon.core.container.AbstractComponentHandler;
@@ -52,11 +53,13 @@
         env.serviceManager = manager;
         env.context = context;
         env.logger = this.getLogger();
+        final ServiceInfo info = new ServiceInfo();
+        info.setConfiguration(new DefaultConfiguration("", "GeneratorSelector"));
+        info.setServiceClass(program);
 
         return AbstractComponentHandler.getComponentHandler(
                 null, // role
-                program,
-                new DefaultConfiguration("", "GeneratorSelector"),
+                info,
                 env, null);
     }
 

Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java
Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java?view=diff&rev=124219&p1=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java&r1=124218&p2=cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java&r2=124219
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java	(original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java	Wed Jan  5 07:23:35 2005
@@ -21,6 +21,7 @@
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceManager;
 
+import org.apache.cocoon.components.ServiceInfo;
 import org.apache.cocoon.components.language.generator.CompiledComponent;
 import org.apache.cocoon.components.language.programming.Program;
 import org.apache.cocoon.core.container.AbstractComponentHandler;
@@ -72,9 +73,12 @@
         env.serviceManager = manager;
         env.context = context;
         env.logger = this.getLogger();
+        final ServiceInfo info = new ServiceInfo();
+        info.setConfiguration(this.config);
+        info.setServiceClass(clazz);
 
         return AbstractComponentHandler.getComponentHandler(
-                null, clazz, config, env, null);
+                null, info, env, null);
     }
 
     public CompiledComponent newInstance() throws Exception {

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=124219&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r1=124218&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractComponentHandler.java&r2=124219
==============================================================================
--- 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	Wed Jan  5 07:23:35 2005
@@ -18,7 +18,6 @@
 
 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.logger.Logger;
 import org.apache.avalon.framework.thread.SingleThreaded;
 import org.apache.avalon.framework.thread.ThreadSafe;
@@ -61,59 +60,55 @@
      * @throws Exception If there were any problems obtaining a ComponentHandler
      */
     public static ComponentHandler getComponentHandler( final String role,
-                                                        final Class componentClass,
-                                                        final Configuration configuration,
+                                                        final ServiceInfo info,
                                                         final ComponentEnvironment env,
                                                         final RoleManager roleManager)
     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());
-        info.setConfiguration(configuration);
+        info.setServiceClassName(info.getServiceClass().getName());
         
         // Early check for Composable
-        if ( Composable.class.isAssignableFrom( componentClass ) ) {
+        if ( Composable.class.isAssignableFrom( info.getServiceClass() ) ) {
             throw new Exception("Interface Composable is not supported anymore. Please change class "
-                                + componentClass.getName() + " to use Serviceable instead.");
+                                + info.getServiceClassName() + " to use Serviceable instead.");
         }
 
-        if( SingleThreaded.class.isAssignableFrom( componentClass ) ) {
+        if( SingleThreaded.class.isAssignableFrom( info.getServiceClass() ) ) {
             numInterfaces++;
             info.setModel(ServiceInfo.MODEL_PRIMITIVE);
         }
 
-        if( ThreadSafe.class.isAssignableFrom( componentClass ) ) {
+        if( ThreadSafe.class.isAssignableFrom( info.getServiceClass() ) ) {
             numInterfaces++;
             info.setModel(ServiceInfo.MODEL_SINGLETON);
         }
 
-        if( Poolable.class.isAssignableFrom( componentClass ) ) {
+        if( Poolable.class.isAssignableFrom( info.getServiceClass() ) ) {
             numInterfaces++;
             info.setModel(ServiceInfo.MODEL_POOLED);
         }
 
         if( numInterfaces > 1 ) {
             throw new Exception( "[CONFLICT] More than one lifecycle interface in "
-                                 + componentClass.getName() + "  May implement no more than one of "
+                                 + info.getServiceClassName() + "  May implement no more than one of "
                                  + "SingleThreaded, ThreadSafe, or Poolable" );
         }
 
         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.
         ComponentFactory factory;
         
-        if (DefaultServiceSelector.class.isAssignableFrom(componentClass)) {
+        if (DefaultServiceSelector.class.isAssignableFrom(info.getServiceClass())) {
             // Special factory for DefaultServiceSelector
             factory = new DefaultServiceSelector.Factory(env, roleManager, info, role);
             
-        } else if (StandaloneServiceSelector.class.isAssignableFrom(componentClass)) {
+        } else if (StandaloneServiceSelector.class.isAssignableFrom(info.getServiceClass())) {
             // Special factory for StandaloneServiceSelector
             factory = new StandaloneServiceSelector.Factory(env, roleManager, info, role);
                 
@@ -124,7 +119,7 @@
         ComponentHandler handler;
         
         if( info.getModel() == ServiceInfo.MODEL_POOLED )  {
-            handler = new PoolableComponentHandler( info, env.logger, factory, configuration );
+            handler = new PoolableComponentHandler( info, env.logger, factory, info.getConfiguration() );
         } else if( info.getModel() == ServiceInfo.MODEL_SINGLETON ) {
             handler = new ThreadSafeComponentHandler( info, env.logger, factory );
         } else {

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=124219&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r1=124218&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/AbstractServiceManager.java&r2=124219
==============================================================================
--- 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	Wed Jan  5 07:23:35 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
@@ -93,8 +94,7 @@
      * @throws Exception If there were any problems obtaining a ComponentHandler
      */
     protected ComponentHandler getComponentHandler( final String role,
-                                                    final Class componentClass,
-                                                    final Configuration configuration,
+                                                    final ServiceInfo info,
                                                     final ServiceManager serviceManager)
     throws Exception {
         final ComponentEnvironment env = new ComponentEnvironment();
@@ -103,8 +103,7 @@
         env.logger = this.getLogger();
         env.loggerManager = this.loggerManager;
         return AbstractComponentHandler.getComponentHandler(role,
-                                                     componentClass,
-                                                     configuration,
+                                                     info,
                                                      env,
                                                      this.roleManager);
     }

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=124219&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r1=124218&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r2=124219
==============================================================================
--- 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	Wed Jan  5 07:23:35 2005
@@ -286,12 +286,12 @@
                     try {
                         // FIXME use different class loader
                         final Class componentClass = this.getClass().getClassLoader().loadClass( info.getServiceClassName() );
-
                         final Configuration configuration = new DefaultConfiguration( "", "-" );
+                        info.setServiceClass(componentClass);
+                        info.setConfiguration(configuration);
 
                         handler = this.getComponentHandler(role,
-                                                       componentClass,
-                                                       configuration,
+                                                       info,
                                                        this);
 
                         handler.initialize();
@@ -423,7 +423,10 @@
             }
         }
         try {
-            handler = this.getComponentHandler(role, component, configuration, this);
+            final ServiceInfo info = new ServiceInfo();
+            info.setConfiguration(configuration);
+            info.setServiceClass(component);
+            handler = this.getComponentHandler(role, info, this);
 
             if( this.getLogger().isDebugEnabled() ) {
                 this.getLogger().debug( "Handler type = " + handler.getClass().getName() );

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=124219&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java&r1=124218&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/StandaloneServiceSelector.java&r2=124219
==============================================================================
--- 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	Wed Jan  5 07:23:35 2005
@@ -343,9 +343,11 @@
         }
 
         try {
+            final ServiceInfo info = new ServiceInfo();
+            info.setConfiguration(configuration);
+            info.setServiceClass(component);
             final ComponentHandler handler = getComponentHandler( null,
-                                                                  component,
-                                                                  configuration,
+                                                                  info,
                                                                   this.serviceManager);
 
             handler.initialize();