You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by da...@apache.org on 2006/02/28 00:29:47 UTC

svn commit: r381486 - in /cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor: AbstractProcessingNodeBuilder.java ConcreteTreeProcessor.java DefaultTreeBuilder.java TreeBuilder.java TreeProcessor.java

Author: danielf
Date: Mon Feb 27 15:29:43 2006
New Revision: 381486

URL: http://svn.apache.org/viewcvs?rev=381486&view=rev
Log:
Some hacks to not create an sitemap internal bean factory when there is no component configuration in the sitemap. This makes the tree processor work when there is no internal component configurations in the old ECM context. This in turn means that most of the test cases for the blocks fw works again and that we can continue the work on block deployment.

Modified:
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
    cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java?rev=381486&r1=381485&r2=381486&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNodeBuilder.java Mon Feb 27 15:29:43 2006
@@ -18,6 +18,7 @@
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 
 /**
@@ -36,7 +37,7 @@
      */
     public void setBuilder(TreeBuilder treeBuilder) {
         this.treeBuilder = treeBuilder;
-        this.manager = (ServiceManager)treeBuilder.getBeanFactory().getBean(ServiceManager.class.getName());
+        this.manager = treeBuilder.getServiceManager();
     }
 
     /**

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java?rev=381486&r1=381485&r2=381486&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java Mon Feb 27 15:29:43 2006
@@ -138,7 +138,8 @@
     }    
     
     /** Set the processor data, result of the treebuilder job */
-    public void setProcessorData(ConfigurableBeanFactory beanFactory, 
+    public void setProcessorData(ConfigurableBeanFactory beanFactory,
+                                 ServiceManager manager,
                                  ClassLoader classloader, 
                                  ProcessingNode rootNode, 
                                  List disposableNodes,
@@ -149,7 +150,7 @@
         }
 
         this.beanFactory = beanFactory;
-        this.manager = (ServiceManager)this.beanFactory.getBean(ServiceManager.class.getName());
+        this.manager = manager;
         this.classloader = classloader;
         this.rootNode = rootNode;
         this.disposableNodes = disposableNodes;
@@ -191,7 +192,8 @@
                         // and now check for new configurations
                         for(int m = 0; m < childs.length; m++) {
                             String r = childs[m].getName();
-                            if (this.beanFactory instanceof NameForAliasAware)
+                            // FIXME: No alias handling in non bean context environment
+                            if (this.beanFactory != null && this.beanFactory instanceof NameForAliasAware)
                                 r = ((NameForAliasAware)this.beanFactory).getNameForAlias(r);
                             this.sitemapComponentConfigurations.put(r, new ChainedConfiguration(childs[m],
                                                                              (ChainedConfiguration)this.sitemapComponentConfigurations.get(r)));

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java?rev=381486&r1=381485&r2=381486&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java Mon Feb 27 15:29:43 2006
@@ -242,6 +242,10 @@
     public ConfigurableBeanFactory getBeanFactory() {
         return this.itsBeanFactory;
     }
+    
+    public ServiceManager getServiceManager() {
+        return this.itsManager;
+    }
 
     public ClassLoader getBuiltProcessorClassLoader() {
         return this.itsClassLoader;
@@ -359,7 +363,7 @@
             if (getLogger().isDebugEnabled()) {
                 getLogger().debug("Sitemap has no components definition at " + tree.getLocation());
             }
-            componentConfig = new DefaultConfiguration("", "");
+            //componentConfig = new DefaultConfiguration("", "");
         }
 
         // Context and manager and classloader for the sitemap we build
@@ -371,9 +375,15 @@
 //        currentThread.setContextClassLoader(this.itsClassLoader);
         this.itsClassLoader = Thread.currentThread().getContextClassLoader();
 
-        this.itsBeanFactory = createApplicationContext(this.itsClassLoader, this.itsContext, componentConfig);
-        this.itsComponentInfo = (ProcessorComponentInfo)this.itsBeanFactory.getBean(ProcessorComponentInfo.ROLE);
-        this.itsManager = (ServiceManager)this.itsBeanFactory.getBean(ServiceManager.class.getName());
+        // Only create an sitemap internal component manager if there really is a configuration
+        // FIXME: Internal configurations doesn't work in a non bean factory environment
+        if (componentConfig != null) {
+            this.itsBeanFactory = createApplicationContext(this.itsClassLoader, this.itsContext, componentConfig);
+            this.itsManager = (ServiceManager)this.itsBeanFactory.getBean(ServiceManager.class.getName());
+        } else {
+            this.itsManager = manager;
+        }
+        this.itsComponentInfo = (ProcessorComponentInfo)this.itsManager.lookup(ProcessorComponentInfo.ROLE);
         // Create a helper object to setup components
         this.itsLifecycle = new LifecycleHelper(getLogger(),
                                              this.itsContext,

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java?rev=381486&r1=381485&r2=381486&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java Mon Feb 27 15:29:43 2006
@@ -19,6 +19,7 @@
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.service.ServiceManager;
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
 
 /**
@@ -41,6 +42,8 @@
     }
 
     ConfigurableBeanFactory getBeanFactory();
+    
+    ServiceManager getServiceManager();
     
     ClassLoader getBuiltProcessorClassLoader();
 

Modified: cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java?rev=381486&r1=381485&r2=381486&view=diff
==============================================================================
--- cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java (original)
+++ cocoon/trunk/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java Mon Feb 27 15:29:43 2006
@@ -689,6 +689,7 @@
                 ProcessingNode root = treeBuilder.build(sitemapProgram);
                 newProcessor.setProcessorData(
                         treeBuilder.getBeanFactory(),
+                        treeBuilder.getServiceManager(),
                         treeBuilder.getBuiltProcessorClassLoader(),
                         root,
                         treeBuilder.getDisposableNodes(),