You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/07/01 19:41:05 UTC

svn commit: r418493 - in /tapestry/tapestry4/trunk/framework/src: descriptor/META-INF/tapestry.services.xml java/org/apache/tapestry/asset/AssetService.java

Author: jkuhnert
Date: Sat Jul  1 10:41:05 2006
New Revision: 418493

URL: http://svn.apache.org/viewvc?rev=418493&view=rev
Log:
Added asset service to the list of reset event listeners so that resources are also not cached in 
disabled caching mode (now that caching works it's kind of annoying during dev ) 

Modified:
    tapestry/tapestry4/trunk/framework/src/descriptor/META-INF/tapestry.services.xml
    tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java

Modified: tapestry/tapestry4/trunk/framework/src/descriptor/META-INF/tapestry.services.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/descriptor/META-INF/tapestry.services.xml?rev=418493&r1=418492&r2=418493&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/descriptor/META-INF/tapestry.services.xml (original)
+++ tapestry/tapestry4/trunk/framework/src/descriptor/META-INF/tapestry.services.xml Sat Jul  1 10:41:05 2006
@@ -80,6 +80,7 @@
                 <set-service property="digestSource"
                     service-id="tapestry.asset.ResourceDigestSource" />
                 <set-service property="unprotectedMatcher" service-id="tapestry.asset.UnprotectedResourceMatcher" />
+                <event-listener service-id="tapestry.ResetEventHub"/>
             </construct>
         </invoke-factory>
     </service-point>

Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java?rev=418493&r1=418492&r2=418493&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java Sat Jul  1 10:41:05 2006
@@ -39,6 +39,7 @@
 import org.apache.tapestry.engine.IEngineService;
 import org.apache.tapestry.engine.ILink;
 import org.apache.tapestry.error.RequestExceptionReporter;
+import org.apache.tapestry.event.ResetEventListener;
 import org.apache.tapestry.services.LinkFactory;
 import org.apache.tapestry.services.ServiceConstants;
 import org.apache.tapestry.util.ContentType;
@@ -60,7 +61,7 @@
  * @author Howard Lewis Ship
  */
 
-public class AssetService implements IEngineService
+public class AssetService implements IEngineService, ResetEventListener
 {
     /**
      * Query parameter that stores the path to the resource (with a leading slash).
@@ -142,6 +143,18 @@
 
     private RequestExceptionReporter _exceptionReporter;
 
+    /** Used to prevent caching of resources when in disabled caching mode. */
+    
+    private long _lastResetTime = -1;
+    
+    /** 
+     * {@inheritDoc}
+     */
+    public void resetEventDidOccur()
+    {
+        _lastResetTime = System.currentTimeMillis();
+    }
+
     /**
      * Builds a {@link ILink}for a {@link PrivateAsset}.
      * <p>
@@ -296,7 +309,8 @@
                 modify = CACHED_FORMAT.parse(header).getTime();
         } catch (ParseException e) { e.printStackTrace(); }
         
-        if (resource.lastModified() > modify)
+        if (resource.lastModified() > modify
+                || _lastResetTime > modify)
             return false;
         
         _response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);