You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2007/12/24 01:47:29 UTC

svn commit: r606646 - in /cocoon/trunk/core/cocoon-sitemap: cocoon-sitemap-api/src/main/java/org/apache/cocoon/ cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/ cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components...

Author: vgritsenko
Date: Sun Dec 23 16:47:21 2007
New Revision: 606646

URL: http://svn.apache.org/viewvc?rev=606646&view=rev
Log:
Pipelines node does not need manager anymore (only to pass to error handler).
Pipelines node should not touch context manager, it is set by tree processor itself.
Mount node does not do anything with service manager anymore.
Cleanup error handler helper.

Modified:
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-api/src/main/java/org/apache/cocoon/Processor.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ErrorHandlerHelper.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-api/src/main/java/org/apache/cocoon/Processor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-api/src/main/java/org/apache/cocoon/Processor.java?rev=606646&r1=606645&r2=606646&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-api/src/main/java/org/apache/cocoon/Processor.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-api/src/main/java/org/apache/cocoon/Processor.java Sun Dec 23 16:47:21 2007
@@ -31,22 +31,26 @@
     /** The role of the root processor */
     String ROLE = Processor.class.getName();
 
+    /**
+     *
+     */
     public static class InternalPipelineDescription {
         
-        public InternalPipelineDescription(ProcessingPipeline pp, 
-                                           ServiceSelector selector,
-                                           ServiceManager manager) {
-            this.processingPipeline = pp;
-            this.pipelineSelector = selector;
-            this.pipelineManager = manager;
-        }
         public ProcessingPipeline processingPipeline;
         public ServiceManager pipelineManager;
         public ServiceSelector pipelineSelector;
         public Processor lastProcessor;
         public String prefix;
         public String uri;
-        
+
+        public InternalPipelineDescription(ProcessingPipeline pipeline,
+                                           ServiceSelector selector,
+                                           ServiceManager manager) {
+            this.processingPipeline = pipeline;
+            this.pipelineSelector = selector;
+            this.pipelineManager = manager;
+        }
+
         public void release() {
             if (this.pipelineSelector != null) {
                 this.pipelineSelector.release(this.processingPipeline);

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java?rev=606646&r1=606645&r2=606646&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java Sun Dec 23 16:47:21 2007
@@ -114,10 +114,12 @@
     /**
      * Create an <code>InvokeContext</code> based on existing context.
      */
-    public InvokeContext(InvokeContext context) {
+    public InvokeContext(InvokeContext context, ServiceManager manager) throws ServiceException {
         this.isBuildingPipelineOnly = context.isBuildingPipelineOnly;
         this.redirector = context.redirector;
         this.lastProcessor = context.lastProcessor;
+        service(manager);
+        inform(context.processingPipelineName, context.processingPipelineParameters, context.processingPipelineObjectModel);
     }
 
     /**

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ErrorHandlerHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ErrorHandlerHelper.java?rev=606646&r1=606645&r2=606646&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ErrorHandlerHelper.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ErrorHandlerHelper.java Sun Dec 23 16:47:21 2007
@@ -142,23 +142,6 @@
     }
 
     /**
-     * Handle error using specified error handler processing node.
-     */
-    public boolean invokeErrorHandler(ProcessingNode node,
-                                      Exception ex,
-                                      Environment env,
-                                      InvokeContext context)
-    throws Exception {
-        final Processor.InternalPipelineDescription desc = prepareErrorHandler(node, ex, env, context);
-        if (desc != null) {
-            context.setInternalPipelineDescription(desc);
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
      * Prepare (or execute) error handler using specified error handler
      * processing node.
      *
@@ -181,9 +164,7 @@
             prepare(context, env, ex);
 
             // Create error context
-            InvokeContext errorContext = new InvokeContext(context);
-            errorContext.service(this.manager);
-            errorContext.inform(context.getPipelineType(), context.getPipelineParameters(), env.getObjectModel());
+            InvokeContext errorContext = new InvokeContext(context, this.manager);
             try {
                 // Process error handling node
                 if (node.invoke(env, errorContext)) {

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java?rev=606646&r1=606645&r2=606646&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java Sun Dec 23 16:47:21 2007
@@ -109,6 +109,7 @@
                     context.setInternalPipelineDescription(pp);
                     return true;
                 }
+
                 return false;
             }
 
@@ -126,11 +127,6 @@
             } else {
                 env.removeAttribute(COCOON_PASS_THROUGH);
             }
-
-            // Turning recomposing as a test, according to:
-            // http://marc.theaimsgroup.com/?t=106802211400005&r=1&w=2
-            // Recompose pipelines which may have been recomposed by subsitemap
-            // context.recompose(this.manager);
         }
     }
 

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java?rev=606646&r1=606645&r2=606646&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java Sun Dec 23 16:47:21 2007
@@ -35,8 +35,6 @@
 public final class PipelinesNode extends SimpleParentProcessingNode
                                  implements Serviceable, Disposable {
 
-    private ServiceManager manager;
-
     private ErrorHandlerHelper errorHandlerHelper;
 
 
@@ -49,11 +47,9 @@
     }
 
     /**
-     * Keep the component manager used everywhere in the tree so that we can
-     * cleanly dispose it.
+     * Pass manager to {@link ErrorHandlerHelper}.
      */
     public void service(ServiceManager manager) throws ServiceException {
-        this.manager = manager;
         this.errorHandlerHelper.service(manager);
     }
 
@@ -78,9 +74,6 @@
         // Perform any common invoke functionality
         super.invoke(env, context);
 
-        // Recompose context (and pipelines) to the local component manager
-        context.service(this.manager);
-
         try {
             // FIXME: Is there any useful information that can be passed as top-level parameters,
             //        such as the URI of the mount point ?
@@ -90,19 +83,14 @@
         } catch (ConnectionResetException e) {
             // Will be reported by CocoonServlet, rethrowing
             throw e;
+
         } catch (Exception ex) {
             // Invoke pipelines handler
             return this.errorHandlerHelper.invokeErrorHandler(ex, env, context);
         }
     }
 
-    /**
-     * Dispose the component manager.
-     */
     public void dispose() {
-        if (this.manager instanceof Disposable) {
-            ((Disposable) this.manager).dispose();
-        }
-        this.manager = null;
+        this.errorHandlerHelper = null;
     }
 }