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/08/14 19:41:12 UTC

svn commit: r232625 - in /cocoon: blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/ trunk/src/java/org/apache/cocoon/components/treeprocessor/ trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ trunk/src/java/org/apache/c...

Author: cziegeler
Date: Sun Aug 14 10:40:28 2005
New Revision: 232625

URL: http://svn.apache.org/viewcvs?rev=232625&view=rev
Log:
Fix notification of sitemap entering/leaving

Modified:
    cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/RemoteDebuggingSitemapExecutor.java
    cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/SimpleSitemapExecutor.java
    cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
    cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java
    cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
    cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
    cocoon/trunk/src/java/org/apache/cocoon/sitemap/SitemapExecutor.java
    cocoon/trunk/src/java/org/apache/cocoon/sitemap/impl/DefaultExecutor.java

Modified: cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/RemoteDebuggingSitemapExecutor.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/RemoteDebuggingSitemapExecutor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/RemoteDebuggingSitemapExecutor.java (original)
+++ cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/RemoteDebuggingSitemapExecutor.java Sun Aug 14 10:40:28 2005
@@ -209,7 +209,7 @@
     /**
      * @see org.apache.cocoon.sitemap.SitemapExecutor#enterSitemap(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map, java.lang.String)
      */
-    public String enterSitemap(ExecutionContext context, 
+    public void enterSitemap(ExecutionContext context, 
                                Map objectModel,
                                String source) {
         Integer sitemapCounter = Debugger.getSitemapCounter(objectModel);
@@ -273,7 +273,6 @@
                                 
         }
         Debugger.incSitemapCounter(objectModel);
-        return source;
     }
 
     /**
@@ -284,6 +283,7 @@
         if ( count.intValue() == 0 ) {
             final Debugger debugger = Debugger.getDebugger(objectModel);
             if ( debugger != null ) {
+                this.notifyPipelineProcessed(context, objectModel);
                 debugger.sendFinal("<finished/>");
                 debugger.close();
                 ContainerUtil.dispose(debugger);
@@ -386,10 +386,7 @@
         return desc;
     }
 
-    /**
-     * @see org.apache.cocoon.sitemap.SitemapExecutor#notifyPipelineProcessed(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map)
-     */
-    public void notifyPipelineProcessed(ExecutionContext context, Map objectModel) {
+    protected void notifyPipelineProcessed(ExecutionContext context, Map objectModel) {
         final Debugger debugger = Debugger.getDebugger(objectModel);
         if (debugger != null) {
             Profiler profiler = null;

Modified: cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/SimpleSitemapExecutor.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/SimpleSitemapExecutor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/SimpleSitemapExecutor.java (original)
+++ cocoon/blocks/profiler/trunk/java/org/apache/cocoon/profiler/debugging/SimpleSitemapExecutor.java Sun Aug 14 10:40:28 2005
@@ -163,11 +163,10 @@
     /**
      * @see org.apache.cocoon.sitemap.SitemapExecutor#enterSitemap(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map, java.lang.String)
      */
-    public String enterSitemap(ExecutionContext context, 
+    public void enterSitemap(ExecutionContext context, 
                                Map objectModel,
                                String source) {
         this.getLogger().info("- Entering sitemap " + source);
-        return source;
     }
 
     /**
@@ -232,13 +231,6 @@
     public PipelineComponentDescription enteringPipeline(ExecutionContext context, Map objectModel, PipelineComponentDescription desc) {
         this.getLogger().info("- Entering new pipeline section.");
         return desc;
-    }
-
-    /**
-     * @see org.apache.cocoon.sitemap.SitemapExecutor#notifyPipelineProcessed(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map)
-     */
-    public void notifyPipelineProcessed(ExecutionContext context, Map objectModel) {
-        this.getLogger().info("- Processing finished.");
     }
 
 }

Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java Sun Aug 14 10:40:28 2005
@@ -41,6 +41,7 @@
 import org.apache.cocoon.sitemap.ComponentLocator;
 import org.apache.cocoon.sitemap.EnterSitemapEvent;
 import org.apache.cocoon.sitemap.EnterSitemapEventListener;
+import org.apache.cocoon.sitemap.ExecutionContext;
 import org.apache.cocoon.sitemap.LeaveSitemapEvent;
 import org.apache.cocoon.sitemap.LeaveSitemapEventListener;
 import org.apache.cocoon.sitemap.SitemapExecutor;
@@ -54,7 +55,7 @@
  * @version $Id$
  */
 public class ConcreteTreeProcessor extends AbstractLogEnabled
-                                   implements Processor, Disposable, FilesystemAlterationListener {
+                                   implements Processor, Disposable, FilesystemAlterationListener, ExecutionContext {
 
     /** Our ServiceManager */
     private ServiceManager manager;
@@ -329,6 +330,7 @@
                 }
             }
 
+            this.sitemapExecutor.enterSitemap(this, environment.getObjectModel(), this.wrappingProcessor.source.getURI());
             // and now process
             EnvironmentHelper.enterProcessor(this, this.manager, environment);
             final Redirector oldRedirector = context.getRedirector();
@@ -350,6 +352,7 @@
             }
 
         } finally {
+            this.sitemapExecutor.leaveSitemap(this, environment.getObjectModel());
             // invoke listeners
             // only invoke if pipeline is not internally
             if ( !context.isBuildingPipelineOnly() && this.leaveSitemapEventListeners.size() > 0 ) {
@@ -528,4 +531,19 @@
     public void setAttribute(String name, Object value) {
         this.processorAttributes.put(name, value);
     }
+
+    /**
+     * @see org.apache.cocoon.sitemap.ExecutionContext#getLocation()
+     */
+    public String getLocation() {
+        return "Sitemap";
+    }
+
+    /**
+     * @see org.apache.cocoon.sitemap.ExecutionContext#getType()
+     */
+    public String getType() {
+        return "sitemap";
+    }
+
 }

Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java Sun Aug 14 10:40:28 2005
@@ -30,7 +30,6 @@
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.cocoon.Processor;
 import org.apache.cocoon.components.pipeline.ProcessingPipeline;
-import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.Redirector;
 

Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java Sun Aug 14 10:40:28 2005
@@ -174,6 +174,9 @@
         this.fom = (SitemapMonitor) this.manager.lookup(SitemapMonitor.ROLE);
     }
 
+    /**
+     * @see org.apache.avalon.framework.activity.Initializable#initialize()
+     */
     public void initialize() throws Exception {
         // setup the environment helper
         if (this.environmentHelper == null ) {

Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java Sun Aug 14 10:40:28 2005
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -85,8 +85,11 @@
         if (resolvedSource.length() == 0) {
             throw new ProcessingException("Source of mount statement is empty");
         }
+        // Handle directory mounts
+        if (resolvedSource.charAt(resolvedSource.length() - 1) == '/') {
+            resolvedSource = resolvedSource + "sitemap.xmap";
+        }
 
-        resolvedSource = this.executor.enterSitemap(this, objectModel, resolvedSource);
         TreeProcessor processor = getProcessor(resolvedSource, resolvedPrefix);
 
         // Save context
@@ -118,7 +121,6 @@
                 env.removeAttribute(COCOON_PASS_THROUGH);
             }
 
-            this.executor.leaveSitemap(this, objectModel);
             // 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
@@ -131,15 +133,8 @@
 
         TreeProcessor processor = (TreeProcessor) processors.get(source);
         if (processor == null) {
-            // Handle directory mounts
-            String actualSource;
-            if (source.charAt(source.length() - 1) == '/') {
-                actualSource = source + "sitemap.xmap";
-            } else {
-                actualSource = source;
-            }
 
-            processor = this.parentProcessor.createChildProcessor(actualSource, this.checkReload, prefix);
+            processor = this.parentProcessor.createChildProcessor(source, this.checkReload, prefix);
 
             // Associate to the original source
             processors.put(source, processor);

Modified: cocoon/trunk/src/java/org/apache/cocoon/sitemap/SitemapExecutor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/sitemap/SitemapExecutor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/sitemap/SitemapExecutor.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/sitemap/SitemapExecutor.java Sun Aug 14 10:40:28 2005
@@ -144,11 +144,10 @@
      * @param context     The execution context
      * @param objectModel The object model
      * @param source The uri of the sitemap
-     * @return The uri of the sitemap to read
      */
-    String enterSitemap(ExecutionContext context, 
-                        Map              objectModel,
-                        String           source);
+    void enterSitemap(ExecutionContext context, 
+                      Map              objectModel,
+                      String           source);
 
     /**
      * Leaves a sitemap.
@@ -211,12 +210,6 @@
                                                   Map              objectModel,
                                                   PipelineComponentDescription desc);
 
-    /**
-     * This informs the executor about a finished processing of the pipeline.
-     */
-    void notifyPipelineProcessed(ExecutionContext context,
-            Map              objectModel);
-    
     /**
      * Informs about a redirect.
      * @return The uri to redirect to.

Modified: cocoon/trunk/src/java/org/apache/cocoon/sitemap/impl/DefaultExecutor.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/sitemap/impl/DefaultExecutor.java?rev=232625&r1=232624&r2=232625&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/sitemap/impl/DefaultExecutor.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/sitemap/impl/DefaultExecutor.java Sun Aug 14 10:40:28 2005
@@ -116,9 +116,8 @@
     /**
      * @see org.apache.cocoon.sitemap.SitemapExecutor#enterSitemap(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map, java.lang.String)
      */
-    public String enterSitemap(ExecutionContext context, Map objectModel,
-            String source) {
-        return source;
+    public void enterSitemap(ExecutionContext context, Map objectModel, String source) {
+        // nothing to do
     }
     
     /**
@@ -173,13 +172,6 @@
      */
     public PipelineComponentDescription enteringPipeline(ExecutionContext context, Map objectModel, PipelineComponentDescription desc) {
         return desc;
-    }
-
-    /**
-     * @see org.apache.cocoon.sitemap.SitemapExecutor#notifyPipelineProcessed(org.apache.cocoon.sitemap.ExecutionContext, java.util.Map)
-     */
-    public void notifyPipelineProcessed(ExecutionContext context, Map objectModel) {
-        // nothing to do
     }
 
 }