forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thors...@apache.org
Subject svn commit: r446701 - in /forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher: internal.xmap src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
Date Fri, 15 Sep 2006 19:28:38 GMT
Author: thorsten
Date: Fri Sep 15 12:28:37 2006
New Revision: 446701

URL: http://svn.apache.org/viewvc?view=rev&rev=446701
Log:
FOR-931
Activating basic caching. Mind the FIXME notes. 
The problem now is that the match is not cacheable since we are using the jx generator. 
See http://marc.theaimsgroup.com/?l=xml-cocoon-users&m=115194685214066&w=2 (read the
whole mail, 
answer is on the bottom).

Modified:
    forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap
    forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java

Modified: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap?view=diff&rev=446701&r1=446700&r2=446701
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap
(original)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap
Fri Sep 15 12:28:37 2006
@@ -84,6 +84,7 @@
     <map:actions>
       <map:action name="locale" src="org.apache.cocoon.acting.LocaleAction" />
     </map:actions>
+     <map:pipes default="caching"/>
   </map:components>
   <map:pipelines>
     <!--
@@ -144,6 +145,8 @@
           <map:parameter name="getRequestExtension" value="html" />
         </map:generate>
         <map:transform type="dispatcher">
+          <map:parameter name="cacheKey" value="{0}" />
+          <map:parameter name="validityFile" value="cocoon:/resolve.structurer.{1}" />
           <map:parameter name="request" value="{1}" />
           <map:parameter name="type" value="html" />
           <map:parameter name="hooksTransformer" value="lm://hooks-to-html.xsl" 
@@ -164,6 +167,8 @@
           <map:parameter name="getRequestExtension" value="internal{2}" />
         </map:generate>
         <map:transform type="dispatcher">
+          <map:parameter name="cacheKey" value="{0}" />
+          <map:parameter name="validityFile" value="cocoon:/resolve.structurer.{1}" />
           <map:parameter name="request" value="{1}" />
           <map:parameter name="type" value="internal{2}" />
         </map:transform>
@@ -176,6 +181,8 @@
           <map:parameter name="getRequestExtension" value="css" />
         </map:generate>
         <map:transform type="dispatcher">
+          <map:parameter name="cacheKey" value="{0}" />
+          <map:parameter name="validityFile" value="cocoon:/resolve.structurer.{1}" />
           <map:parameter name="request" value="{1}" />
           <map:parameter name="type" value="css" />
         </map:transform>
@@ -197,6 +204,8 @@
           <map:parameter name="getRequestExtension" value="xhtml2" />
         </map:generate>
         <map:transform type="dispatcher">
+          <map:parameter name="cacheKey" value="{0}" />
+          <map:parameter name="validityFile" value="cocoon:/resolve.structurer.{1}" />
           <map:parameter name="request" value="{1}" />
           <map:parameter name="type" value="xhtml2" />
         </map:transform>

Modified: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java?view=diff&rev=446701&r1=446700&r2=446701
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
(original)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
Fri Sep 15 12:28:37 2006
@@ -19,6 +19,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
+import java.net.MalformedURLException;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -183,7 +184,7 @@
 
     private boolean insideStructurer = false;
 
-    private String hooksXSL;
+    private String hooksXSL,cacheKey,validityFile;
 
     private HashMap hooksPosition;
 
@@ -195,11 +196,15 @@
 
     private Document defaultProperties;
 
+    private SourceValidity validity;
+
     public static final String HOOKS_TRANSFORMER_PARAMETER = "hooksTransformer";
 
     public static final String PATH_PARAMETER = "path";
 
     static public final String DISPATCHER_REQUEST_ATTRIBUTE = "request";
+    public static final String CACHE_PARAMETER = "cacheKey";
+    public static final String VALIDITY_PARAMETER = "validityFile";
 
     /**
      * Constructor Set the namespace
@@ -208,8 +213,6 @@
         this.defaultNamespaceURI = DispatcherHelper.DISPATCHER_NAMESPACE_URI;
     }
 
-    // FIXME: turn on caching!!!
-    // doing some testing
     /**
      * Generate the unique key. This key must be unique inside the space of this
      * component.
@@ -217,10 +220,9 @@
      * @return The generated key hashes the src
      */
     public Serializable getKey() {
-        return null;
+        return this.cacheKey;
     }
 
-    // FIXME: turn on caching!!!
     /**
      * Generate the validity object.
      * 
@@ -228,7 +230,7 @@
      *         component is currently not cacheable.
      */
     public SourceValidity getValidity() {
-        return null;
+        return this.validity;
     }
 
     /**
@@ -293,6 +295,20 @@
                 DISPATCHER_ALLOW_MARKUP, null));
         this.requestId= parameters.getParameter(
                 DISPATCHER_REQUEST_ATTRIBUTE, null);
+        this.cacheKey = parameters.getParameter(
+                this.CACHE_PARAMETER, null);
+        if(null==this.cacheKey) getLogger().warn("Caching not activated! Declare the CACHE_KEY_PARAMETER="+CACHE_PARAMETER+"
in your sitemap.");
+        this.validityFile = parameters.getParameter(
+                this.VALIDITY_PARAMETER, null);
+        // FIXME: We are taking here a shortcut that we need to enhance ASAP
+        // We assume that all contracts that a structurer may include
+        // have not changed, which may the wrong assumption.
+        // The workaround is to do a touch on the $validityFile
+        // to force a SourceValidity.INVALID
+        if(null!=validityFile)
+            this.validity=m_resolver.resolveURI(validityFile).getValidity();
+        else 
+            this.validity=null;
         if (requestId == null) {
             String error = "dispatcherError:\n"
                     + "You have to set the \"request\" parameter in the sitemap!";



Mime
View raw message