You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/04/01 01:15:15 UTC

svn commit: r1087482 - in /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services: ResourceStreamerImpl.java assets/StackAssetRequestHandler.java

Author: hlship
Date: Thu Mar 31 23:15:15 2011
New Revision: 1087482

URL: http://svn.apache.org/viewvc?rev=1087482&view=rev
Log:
TAP5-73: Change a couple of asset-related services to track their IOOperations

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/StackAssetRequestHandler.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java?rev=1087482&r1=1087481&r2=1087482&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java Thu Mar 31 23:15:15 2011
@@ -16,12 +16,14 @@ package org.apache.tapestry5.internal.se
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.Set;
 
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.IOOperation;
 import org.apache.tapestry5.internal.InternalConstants;
+import org.apache.tapestry5.internal.TapestryInternalUtils;
+import org.apache.tapestry5.ioc.OperationTracker;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.services.Request;
@@ -46,6 +48,8 @@ public class ResourceStreamerImpl implem
 
     private final boolean productionMode;
 
+    private final OperationTracker tracker;
+
     public ResourceStreamerImpl(Request request,
 
     Response response,
@@ -54,6 +58,8 @@ public class ResourceStreamerImpl implem
 
     ResponseCompressionAnalyzer analyzer,
 
+    OperationTracker tracker,
+
     @Symbol(SymbolConstants.PRODUCTION_MODE)
     boolean productionMode)
     {
@@ -62,10 +68,11 @@ public class ResourceStreamerImpl implem
         this.streamableResourceSource = streamableResourceSource;
 
         this.analyzer = analyzer;
+        this.tracker = tracker;
         this.productionMode = productionMode;
     }
 
-    public void streamResource(Resource resource) throws IOException
+    public void streamResource(final Resource resource) throws IOException
     {
         if (!resource.exists())
         {
@@ -73,12 +80,18 @@ public class ResourceStreamerImpl implem
             return;
         }
 
-        StreamableResourceProcessing processing = analyzer.isGZipSupported() ? StreamableResourceProcessing.COMPRESSION_ENABLED
-                : StreamableResourceProcessing.COMPRESSION_DISABLED;
+        TapestryInternalUtils.performIO(tracker, String.format("Streaming %s", resource), new IOOperation()
+        {
+            public void perform() throws IOException
+            {
+                StreamableResourceProcessing processing = analyzer.isGZipSupported() ? StreamableResourceProcessing.COMPRESSION_ENABLED
+                        : StreamableResourceProcessing.COMPRESSION_DISABLED;
 
-        StreamableResource streamable = streamableResourceSource.getStreamableResource(resource, processing);
+                StreamableResource streamable = streamableResourceSource.getStreamableResource(resource, processing);
 
-        streamResource(streamable);
+                streamResource(streamable);
+            }
+        });
     }
 
     public void streamResource(StreamableResource streamable) throws IOException

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/StackAssetRequestHandler.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/StackAssetRequestHandler.java?rev=1087482&r1=1087481&r2=1087482&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/StackAssetRequestHandler.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/StackAssetRequestHandler.java Thu Mar 31 23:15:15 2011
@@ -28,7 +28,10 @@ import java.util.zip.GZIPOutputStream;
 
 import org.apache.tapestry5.Asset;
 import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.IOOperation;
+import org.apache.tapestry5.internal.TapestryInternalUtils;
 import org.apache.tapestry5.internal.services.ResourceStreamer;
+import org.apache.tapestry5.ioc.OperationTracker;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.annotations.Symbol;
@@ -71,12 +74,14 @@ public class StackAssetRequestHandler im
 
     private final ResourceMinimizer resourceMinimizer;
 
+    private final OperationTracker tracker;
+
     private final boolean minificationEnabled;
 
     public StackAssetRequestHandler(StreamableResourceSource streamableResourceSource,
             JavaScriptStackSource javascriptStackSource, LocalizationSetter localizationSetter,
             ResponseCompressionAnalyzer compressionAnalyzer, ResourceStreamer resourceStreamer,
-            ResourceMinimizer resourceMinimizer,
+            ResourceMinimizer resourceMinimizer, OperationTracker tracker,
 
             @Symbol(SymbolConstants.MINIFICATION_ENABLED)
             boolean minificationEnabled)
@@ -87,6 +92,7 @@ public class StackAssetRequestHandler im
         this.compressionAnalyzer = compressionAnalyzer;
         this.resourceStreamer = resourceStreamer;
         this.resourceMinimizer = resourceMinimizer;
+        this.tracker = tracker;
         this.minificationEnabled = minificationEnabled;
     }
 
@@ -96,13 +102,19 @@ public class StackAssetRequestHandler im
         resourceChangeTracker.addInvalidationListener(this);
     }
 
-    public boolean handleAssetRequest(Request request, Response response, String extraPath) throws IOException
+    public boolean handleAssetRequest(Request request, Response response, final String extraPath) throws IOException
     {
-        boolean compress = compressionAnalyzer.isGZipSupported();
-
-        StreamableResource resource = getResource(extraPath, compress);
-
-        resourceStreamer.streamResource(resource);
+        TapestryInternalUtils.performIO(tracker, String.format("Streaming asset stack %s", extraPath), new IOOperation()
+        {
+            public void perform() throws IOException
+            {
+                boolean compress = compressionAnalyzer.isGZipSupported();
+
+                StreamableResource resource = getResource(extraPath, compress);
+
+                resourceStreamer.streamResource(resource);
+            }
+        });
 
         return true;
     }