You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/02/07 15:29:03 UTC

svn commit: r619427 - in /cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor: ConcreteTreeProcessor.java TreeProcessor.java

Author: reinhard
Date: Thu Feb  7 06:28:58 2008
New Revision: 619427

URL: http://svn.apache.org/viewvc?rev=619427&view=rev
Log:
reduce usage of servicemanager/webapplicationcontext

Modified:
    cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
    cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java

Modified: cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java?rev=619427&r1=619426&r2=619427&view=diff
==============================================================================
--- cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java (original)
+++ cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java Thu Feb  7 06:28:58 2008
@@ -30,12 +30,9 @@
 import org.apache.cocoon.environment.internal.EnvironmentHelper;
 import org.apache.cocoon.sitemap.ExecutionContext;
 import org.apache.cocoon.sitemap.SitemapExecutor;
-import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.cocoon.util.location.Location;
 import org.apache.cocoon.util.location.LocationImpl;
-import org.springframework.beans.factory.config.ConfigurableBeanFactory;
-import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.web.context.WebApplicationContext;
 
 /**
@@ -73,14 +70,10 @@
     /** Processor attributes */
     protected Map processorAttributes = new HashMap();
 
-    /** Container for this sitemap. */
-    protected WebApplicationContext webAppContext;
-
     /**
      * Builds a concrete processig, given the wrapping processor
      */
-    public ConcreteTreeProcessor(TreeProcessor wrappingProcessor,
-                                 SitemapExecutor sitemapExecutor) {
+    public ConcreteTreeProcessor(TreeProcessor wrappingProcessor, SitemapExecutor sitemapExecutor) {
         // Store our wrapping processor
         this.wrappingProcessor = wrappingProcessor;
 
@@ -89,21 +82,19 @@
     }
 
     /** Set the processor data, result of the treebuilder job */
-    public void setProcessorData(WebApplicationContext webAppContext,
-                                 ProcessingNode rootNode,
-                                 List disposableNodes) {
+    public void setProcessorData(WebApplicationContext webAppContext, ProcessingNode rootNode, List disposableNodes) {
         if (this.rootNode != null) {
             throw new IllegalStateException("setProcessorData() can only be called once");
         }
-        this.webAppContext = webAppContext;
-        this.manager = (ServiceManager)this.webAppContext.getBean(AvalonUtils.SERVICE_MANAGER_ROLE);
+        this.manager = (ServiceManager) webAppContext.getBean(AvalonUtils.SERVICE_MANAGER_ROLE);
         this.rootNode = rootNode;
         this.disposableNodes = disposableNodes;
     }
 
     /**
-     * Mark this processor as needing to be disposed. Actual call to {@link #dispose()} will occur when
-     * all request processings on this processor will be terminated.
+     * Mark this processor as needing to be disposed. Actual call to
+     * {@link #dispose()} will occur when all request processings on this
+     * processor will be terminated.
      */
     public void markForDisposal() {
         // Decrement the request count (negative number means dispose)
@@ -147,18 +138,16 @@
      * @return true if the pipeline was successfully built, false otherwise.
      * @throws Exception
      */
-    protected boolean process(Environment environment, InvokeContext context)
-    throws Exception {
+    protected boolean process(Environment environment, InvokeContext context) throws Exception {
 
         // Increment the concurrent requests count
         synchronized (this) {
             requestCount++;
         }
 
-        Object handle = null;
         try {
-            handle = WebAppContextUtils.enteringContext(this.webAppContext);
-            this.sitemapExecutor.enterSitemap(this, environment.getObjectModel(), this.wrappingProcessor.source.getURI());
+            this.sitemapExecutor.enterSitemap(this, environment.getObjectModel(), this.wrappingProcessor.source
+                    .getURI());
 
             // and now process
             EnvironmentHelper.enterProcessor(this, environment);
@@ -176,10 +165,7 @@
                 context.setRedirector(oldRedirector);
             }
         } finally {
-            if (handle != null) {
-                this.sitemapExecutor.leaveSitemap(this, environment.getObjectModel());
-                WebAppContextUtils.leavingContext(this.webAppContext, handle);
-            }
+            this.sitemapExecutor.leaveSitemap(this, environment.getObjectModel());
             markForDisposal();
         }
     }
@@ -200,15 +186,6 @@
         // Ensure it won't be used anymore
         this.rootNode = null;
         this.sitemapExecutor = null;
-
-        if ( this.webAppContext != null ) {
-            if ( webAppContext instanceof ConfigurableApplicationContext ) {
-                ((ConfigurableApplicationContext)webAppContext).close();
-            } else if ( webAppContext instanceof ConfigurableBeanFactory ) {
-                ((ConfigurableBeanFactory)webAppContext).destroySingletons();
-            }
-            this.webAppContext = null;
-        }
     }
 
     public String getContext() {

Modified: cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java?rev=619427&r1=619426&r2=619427&view=diff
==============================================================================
--- cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java (original)
+++ cocoon/whiteboard/micro/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java Thu Feb  7 06:28:58 2008
@@ -243,7 +243,7 @@
         }
 
         long startTime = System.currentTimeMillis();
-        ConcreteTreeProcessor newProcessor;
+        ConcreteTreeProcessor concreteTreeProcessor;
         ConcreteTreeProcessor oldProcessor = this.concreteProcessor;
 
         if (oldProcessor != null) {
@@ -274,14 +274,14 @@
 
             Configuration sitemapProgram = createSitemapProgram(this.source);
 
-            newProcessor = new ConcreteTreeProcessor(this, this.sitemapExecutor);
+            concreteTreeProcessor = new ConcreteTreeProcessor(this, this.sitemapExecutor);
 
             // Get the treebuilder that can handle this version of the sitemap.
             TreeBuilder treeBuilder = getTreeBuilder(sitemapProgram);
             try {
-                treeBuilder.setProcessor(newProcessor);
+                treeBuilder.setProcessor(concreteTreeProcessor);
                 ProcessingNode root = treeBuilder.build(sitemapProgram, this.source.getURI());
-                newProcessor.setProcessorData(
+                concreteTreeProcessor.setProcessorData(
                         treeBuilder.getWebApplicationContext(),
                         root,
                         treeBuilder.getDisposableNodes());
@@ -294,7 +294,7 @@
                 FlowNode flowNode = (FlowNode)treeBuilder.getRegisteredNode("flow");
                 if ( flowNode != null ) {
                     final Interpreter interpreter = flowNode.getInterpreter();
-                    newProcessor.setAttribute(Interpreter.ROLE, interpreter);
+                    concreteTreeProcessor.setAttribute(Interpreter.ROLE, interpreter);
                 }
 
             } finally {
@@ -310,7 +310,7 @@
         }
 
         // Switch to the new processor (ensure it's never temporarily null)
-        this.concreteProcessor = newProcessor;
+        this.concreteProcessor = concreteTreeProcessor;
     }
 
     /**