You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/06/18 11:37:16 UTC

[4/5] git commit: WICKET-4601 IResourceStreamWriter to take OutputStream instead of Response

WICKET-4601 IResourceStreamWriter to take OutputStream instead of Response

Allow AbstractResource.WriteCallback method to throw IOException. This allows us to cut down on the number of places to convert IOException to WicketRuntimeException.

Also allow IResourceStreamWriter.write() to throw IOException, a common side effect of writing to OutputStreams.


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7c693db5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7c693db5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7c693db5

Branch: refs/heads/master
Commit: 7c693db5460658d0cea5705dc3c52aac0fa44920
Parents: d2c8704
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jun 18 12:02:16 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jun 18 12:02:16 2012 +0300

----------------------------------------------------------------------
 .../wicket/request/resource/AbstractResource.java  |   22 +++++++-------
 .../request/resource/ContextRelativeResource.java  |    6 +---
 .../request/resource/ResourceStreamResource.java   |    4 +-
 .../wicket/request/resource/WriteCallbackTest.java |    3 +-
 .../util/resource/IResourceStreamWriter.java       |    3 +-
 5 files changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/7c693db5/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
index 8f79578..b857cc6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
@@ -501,7 +501,14 @@ public abstract class AbstractResource implements IResource
 			throw new IllegalStateException("ResourceResponse#setWriteCallback() must be set.");
 		}
 
-		data.getWriteCallback().writeData(attributes);
+		try
+		{
+			data.getWriteCallback().writeData(attributes);
+		}
+		catch (IOException iox)
+		{
+			throw new WicketRuntimeException(iox);
+		}
 	}
 
 	/**
@@ -640,7 +647,7 @@ public abstract class AbstractResource implements IResource
 		 * @param attributes
 		 *            request attributes
 		 */
-		public abstract void writeData(Attributes attributes);
+		public abstract void writeData(Attributes attributes) throws IOException;
 
 		/**
 		 * Convenience method to write an {@link InputStream} to response.
@@ -650,17 +657,10 @@ public abstract class AbstractResource implements IResource
 		 * @param stream
 		 *            input stream
 		 */
-		protected final void writeStream(Attributes attributes, InputStream stream)
+		protected final void writeStream(Attributes attributes, InputStream stream) throws IOException
 		{
 			final Response response = attributes.getResponse();
-			try
-			{
-				Streams.copy(stream, response.getOutputStream());
-			}
-			catch (IOException e)
-			{
-				throw new WicketRuntimeException(e);
-			}
+			Streams.copy(stream, response.getOutputStream());
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/7c693db5/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
index e4b5355..07d76b8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
@@ -103,7 +103,7 @@ public class ContextRelativeResource extends AbstractResource implements IStatic
 		resourceResponse.setWriteCallback(new WriteCallback()
 		{
 			@Override
-			public void writeData(final Attributes attributes)
+			public void writeData(final Attributes attributes) throws IOException
 			{
 				InputStream inputStream = null;
 				ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -117,10 +117,6 @@ public class ContextRelativeResource extends AbstractResource implements IStatic
 				{
 					throw new WicketRuntimeException(rsnfx);
 				}
-				catch (IOException iox)
-				{
-					throw new WicketRuntimeException(iox);
-				}
 				finally
 				{
 					IOUtils.closeQuietly(inputStream);

http://git-wip-us.apache.org/repos/asf/wicket/blob/7c693db5/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
index 2e0b49c..4f90a73 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
@@ -178,7 +178,7 @@ public class ResourceStreamResource extends AbstractResource
 				data.setWriteCallback(new WriteCallback()
 				{
 					@Override
-					public void writeData(Attributes attributes)
+					public void writeData(Attributes attributes) throws IOException
 					{
 						((IResourceStreamWriter)resourceStream).write(attributes.getResponse().getOutputStream());
 						close();
@@ -191,7 +191,7 @@ public class ResourceStreamResource extends AbstractResource
 				data.setWriteCallback(new WriteCallback()
 				{
 					@Override
-					public void writeData(Attributes attributes)
+					public void writeData(Attributes attributes) throws IOException
 					{
 						try
 						{

http://git-wip-us.apache.org/repos/asf/wicket/blob/7c693db5/wicket-core/src/test/java/org/apache/wicket/request/resource/WriteCallbackTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/WriteCallbackTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/WriteCallbackTest.java
index 936e01d..028d9e3 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/WriteCallbackTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/WriteCallbackTest.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.request.resource;
 
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
 
@@ -38,7 +39,7 @@ public class WriteCallbackTest extends Assert
 	/**
 	 */
 	@Test
-	public void writeStream()
+	public void writeStream() throws IOException
 	{
 		WriteCallback callback = new WriteCallback()
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/7c693db5/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStreamWriter.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStreamWriter.java b/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStreamWriter.java
index 4a907f0..8af6ede 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStreamWriter.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStreamWriter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.util.resource;
 
+import java.io.IOException;
 import java.io.OutputStream;
 
 /**
@@ -37,5 +38,5 @@ public interface IResourceStreamWriter extends IResourceStream
 	 * @param output
 	 *            The response where the resource can write its content into.
 	 */
-	void write(OutputStream output);
+	void write(OutputStream output) throws IOException;
 }