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; }