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