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

svn commit: r1035732 - in /wicket/trunk: wicket-examples/src/main/java/org/apache/wicket/examples/velocity/ wicket-util/src/main/java/org/apache/wicket/util/resource/ wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/ wicket-velocity...

Author: pete
Date: Tue Nov 16 18:34:36 2010
New Revision: 1035732

URL: http://svn.apache.org/viewvc?rev=1035732&view=rev
Log:
WICKET-3167: fix type hierarchy

Modified:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/DynamicPage.java
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/TemplatePage.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractResourceStream.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractStringResourceStream.java
    wicket/trunk/wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/VelocityPanel.java
    wicket/trunk/wicket-velocity/src/test/java/org/apache/wicket/contrib/markup/html/velocity/VelocityWithMarkupParsingPage.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/include/Include.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/ResourceUtil.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/UrlResourceStream.java

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/DynamicPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/DynamicPage.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/DynamicPage.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/DynamicPage.java Tue Nov 16 18:34:36 2010
@@ -24,6 +24,7 @@ import org.apache.wicket.examples.Wicket
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.util.MapModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.IStringResourceStream;
 import org.apache.wicket.util.resource.PackageResourceStream;
 import org.apache.wicket.velocity.markup.html.VelocityPanel;
@@ -43,7 +44,7 @@ public class DynamicPage extends WicketE
 	 */
 	public DynamicPage(final PageParameters parameters)
 	{
-		final IStringResourceStream template = new PackageResourceStream(DynamicPage.class,
+		final IResourceStream template = new PackageResourceStream(DynamicPage.class,
 			"fields.vm");
 
 		Map<String, List<Field>> map = new HashMap<String, List<Field>>();
@@ -54,7 +55,7 @@ public class DynamicPage extends WicketE
 		add(panel = new VelocityPanel("templatePanel", new MapModel<String, List<Field>>(map))
 		{
 			@Override
-			protected IStringResourceStream getTemplateResource()
+			protected IResourceStream getTemplateResource()
 			{
 				return template;
 			}

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/TemplatePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/TemplatePage.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/TemplatePage.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/velocity/TemplatePage.java Tue Nov 16 18:34:36 2010
@@ -28,6 +28,8 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.resource.ResourceUtil;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.IStringResourceStream;
 import org.apache.wicket.util.resource.PackageResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
@@ -71,8 +73,7 @@ public class TemplatePage extends Wicket
 	}
 
 	/** the current template contents. */
-	private IStringResourceStream template = new PackageResourceStream(DynamicPage.class,
-		"persons.vm");
+	private IResourceStream template = new PackageResourceStream(DynamicPage.class, "persons.vm");
 
 	/** context to be used by the template. */
 	private final IModel<Map<String, List<Person>>> templateContext;
@@ -93,7 +94,7 @@ public class TemplatePage extends Wicket
 		add(new VelocityPanel("templatePanel", templateContext)
 		{
 			@Override
-			protected IStringResourceStream getTemplateResource()
+			protected IResourceStream getTemplateResource()
 			{
 				return template;
 			}
@@ -108,7 +109,7 @@ public class TemplatePage extends Wicket
 	 */
 	public final String getTemplate()
 	{
-		return template.asString();
+		return ResourceUtil.readString(template);
 	}
 
 	/**

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractResourceStream.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractResourceStream.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractResourceStream.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractResourceStream.java Tue Nov 16 18:34:36 2010
@@ -16,14 +16,8 @@
  */
 package org.apache.wicket.util.resource;
 
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.Charset;
 import java.util.Locale;
 
-import org.apache.wicket.util.io.IOUtils;
-import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.time.Time;
 
 
@@ -32,77 +26,15 @@ import org.apache.wicket.util.time.Time;
  * 
  * @author Jonathan Locke
  */
-public abstract class AbstractResourceStream implements IStringResourceStream
+public abstract class AbstractResourceStream implements IResourceStream
 {
 	private static final long serialVersionUID = 1L;
 
-	/** Charset for resource */
-	private Charset charset;
 	private Locale locale;
 	private String style;
 	private String variation;
 
 	/**
-	 * Sets the character set used for reading this resource.
-	 * 
-	 * @param charset
-	 *            Charset for component
-	 */
-	public void setCharset(final Charset charset)
-	{
-		this.charset = charset;
-	}
-
-	/**
-	 * @return This resource as a String.
-	 */
-	public String asString()
-	{
-		Reader reader = null;
-		try
-		{
-			if (charset == null)
-			{
-				reader = new InputStreamReader(getInputStream());
-			}
-			else
-			{
-				reader = new InputStreamReader(getInputStream(), charset);
-			}
-			return Streams.readString(reader);
-		}
-		catch (IOException e)
-		{
-			throw new RuntimeException("Unable to read resource as String", e);
-		}
-		catch (ResourceStreamNotFoundException e)
-		{
-			throw new RuntimeException("Unable to read resource as String", e);
-		}
-		finally
-		{
-			IOUtils.closeQuietly(reader);
-			try
-			{
-				close();
-			}
-			catch (IOException e)
-			{
-				// ignore
-			}
-		}
-	}
-
-	/**
-	 * @return Charset for resource
-	 */
-	protected Charset getCharset()
-	{
-		return charset;
-	}
-
-
-	/**
 	 * @see org.apache.wicket.util.resource.IResourceStream#getLocale()
 	 */
 	public Locale getLocale()

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractStringResourceStream.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractStringResourceStream.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractStringResourceStream.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/AbstractStringResourceStream.java Tue Nov 16 18:34:36 2010
@@ -19,8 +19,13 @@ package org.apache.wicket.util.resource;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 
+import org.apache.wicket.util.io.IOUtils;
+import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.time.Time;
 
@@ -30,13 +35,16 @@ import org.apache.wicket.util.time.Time;
  * 
  * @author Jonathan Locke
  */
-public abstract class AbstractStringResourceStream extends AbstractResourceStream
+public abstract class AbstractStringResourceStream extends AbstractResourceStream implements IStringResourceStream
 {
 	private static final long serialVersionUID = 1L;
 
 	/** The content-type applied in case the resource stream's default constructor is used */
 	public static final String DEFAULT_CONTENT_TYPE = "text";
 
+	/** Charset for resource */
+	private Charset charset;
+
 	/** MIME content type */
 	private final String contentType;
 
@@ -64,6 +72,65 @@ public abstract class AbstractStringReso
 	}
 
 	/**
+	 * @return This resource as a String.
+	 */
+	public String asString()
+	{
+		Reader reader = null;
+		try
+		{
+			if (charset == null)
+			{
+				reader = new InputStreamReader(getInputStream());
+			}
+			else
+			{
+				reader = new InputStreamReader(getInputStream(), charset);
+			}
+			return Streams.readString(reader);
+		}
+		catch (IOException e)
+		{
+			throw new RuntimeException("Unable to read resource as String", e);
+		}
+		catch (ResourceStreamNotFoundException e)
+		{
+			throw new RuntimeException("Unable to read resource as String", e);
+		}
+		finally
+		{
+			IOUtils.closeQuietly(reader);
+			try
+			{
+				close();
+			}
+			catch (IOException e)
+			{
+				// ignore
+			}
+		}
+	}
+
+	/**
+	 * @return Charset for resource
+	 */
+	protected Charset getCharset()
+	{
+		return charset;
+	}
+
+	/**
+	 * Sets the character set used for reading this resource.
+	 *
+	 * @param charset
+	 *            Charset for component
+	 */
+	public void setCharset(final Charset charset)
+	{
+		this.charset = charset;
+	}
+
+	/**
 	 * @see org.apache.wicket.util.resource.IResourceStream#close()
 	 */
 	public void close() throws IOException

Modified: wicket/trunk/wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/VelocityPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/VelocityPanel.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/VelocityPanel.java (original)
+++ wicket/trunk/wicket-velocity/src/main/java/org/apache/wicket/velocity/markup/html/VelocityPanel.java Tue Nov 16 18:34:36 2010
@@ -35,6 +35,7 @@ import org.apache.wicket.markup.IMarkupR
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.resource.ResourceUtil;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.IStringResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
@@ -73,7 +74,7 @@ public abstract class VelocityPanel exte
 	 * @return an instance of {@link VelocityPanel}
 	 */
 	public static VelocityPanel forTemplateResource(String id, IModel< ? extends Map> model,
-			final IStringResourceStream templateResource)
+			final IResourceStream templateResource)
 	{
 		if (templateResource == null)
 		{
@@ -85,7 +86,7 @@ public abstract class VelocityPanel exte
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected IStringResourceStream getTemplateResource()
+			protected IResourceStream getTemplateResource()
 			{
 				return templateResource;
 			}
@@ -117,13 +118,13 @@ public abstract class VelocityPanel exte
 	 */
 	private Reader getTemplateReader()
 	{
-		final IStringResourceStream resource = getTemplateResource();
+		final IResourceStream resource = getTemplateResource();
 		if (resource == null)
 		{
 			throw new IllegalArgumentException("getTemplateResource must return a resource");
 		}
 
-		final String template = resource.asString();
+		final String template = ResourceUtil.readString(resource);
 		if (template != null)
 		{
 			return new StringReader(template);
@@ -209,7 +210,7 @@ public abstract class VelocityPanel exte
 	 * 
 	 * @return The template resource
 	 */
-	protected abstract IStringResourceStream getTemplateResource();
+	protected abstract IResourceStream getTemplateResource();
 
 	/**
 	 * Evaluates the template and returns the result.

Modified: wicket/trunk/wicket-velocity/src/test/java/org/apache/wicket/contrib/markup/html/velocity/VelocityWithMarkupParsingPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-velocity/src/test/java/org/apache/wicket/contrib/markup/html/velocity/VelocityWithMarkupParsingPage.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket-velocity/src/test/java/org/apache/wicket/contrib/markup/html/velocity/VelocityWithMarkupParsingPage.java (original)
+++ wicket/trunk/wicket-velocity/src/test/java/org/apache/wicket/contrib/markup/html/velocity/VelocityWithMarkupParsingPage.java Tue Nov 16 18:34:36 2010
@@ -22,6 +22,7 @@ import org.apache.wicket.markup.Componen
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.IStringResourceStream;
 import org.apache.wicket.util.resource.UrlResourceStream;
 import org.apache.wicket.velocity.markup.html.VelocityPanel;
@@ -46,7 +47,7 @@ public class VelocityWithMarkupParsingPa
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected IStringResourceStream getTemplateResource()
+			protected IResourceStream getTemplateResource()
 			{
 				return new UrlResourceStream(getClass().getResource("testWithMarkup.html"));
 			}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/include/Include.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/include/Include.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/include/Include.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/include/Include.java Tue Nov 16 18:34:36 2010
@@ -29,6 +29,7 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.resource.ResourceUtil;
 import org.apache.wicket.util.resource.UrlResourceStream;
 
 
@@ -272,13 +273,6 @@ public class Include extends WebComponen
 	 */
 	private final String importUrl(URL url)
 	{
-		UrlResourceStream resourceStream = new UrlResourceStream(url);
-		Charset charset = getCharset();
-		if (charset != null)
-		{
-			resourceStream.setCharset(charset);
-		}
-		String content = resourceStream.asString();
-		return content;
+		return ResourceUtil.readString(new UrlResourceStream(url), getCharset());
 	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/ResourceUtil.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/ResourceUtil.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/ResourceUtil.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/ResourceUtil.java Tue Nov 16 18:34:36 2010
@@ -16,8 +16,16 @@
  */
 package org.apache.wicket.resource;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+
+import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.io.IOUtils;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.string.Strings;
 
 /**
@@ -72,4 +80,51 @@ public class ResourceUtil
 			}
 		}
 	}
+
+	/**
+	 * read string with platform default encoding from resource stream
+	 *
+	 * @see #readString(org.apache.wicket.util.resource.IResourceStream, java.nio.charset.Charset)
+	 */
+	public static String readString(IResourceStream resourceStream)
+	{
+		return readString(resourceStream, null);
+	}
+
+	/**
+	 * read string with specified encoding from resource stream
+	 *
+	 * @param resourceStream string source
+	 * @param charset charset for the string encoding (use <code>null</code> for platform default)
+	 * @return string read from resource stream
+	 */
+	public static String readString(IResourceStream resourceStream, Charset charset)
+	{
+		try
+		{
+			InputStream stream = resourceStream.getInputStream();
+
+			try
+			{
+				byte[] bytes = IOUtils.toByteArray(stream);
+
+				if (charset == null)
+					charset = Charset.defaultCharset();
+
+				return new String(bytes, charset);
+			}
+			finally
+			{
+				resourceStream.close();
+			}
+		}
+		catch (IOException e)
+		{
+			throw new WicketRuntimeException("failed to read string from " + resourceStream, e);
+		}
+		catch (ResourceStreamNotFoundException e)
+		{
+			throw new WicketRuntimeException("failed to locate stream from " + resourceStream, e);
+		}
+	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/UrlResourceStream.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/UrlResourceStream.java?rev=1035732&r1=1035731&r2=1035732&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/UrlResourceStream.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/UrlResourceStream.java Tue Nov 16 18:34:36 2010
@@ -33,15 +33,13 @@ import org.slf4j.LoggerFactory;
 
 /**
  * UrlResourceStream implements IResource for URLs.
- * 
+ *
  * @see org.apache.wicket.util.resource.IResourceStream
  * @see org.apache.wicket.util.watch.IModifiable
  * @author Jonathan Locke
  * @author Igor Vaynberg
  */
-public class UrlResourceStream extends AbstractResourceStream
-	implements
-		IFixedLocationResourceStream
+public class UrlResourceStream extends AbstractResourceStream implements IFixedLocationResourceStream
 {
 	private static final long serialVersionUID = 1L;
 
@@ -68,7 +66,7 @@ public class UrlResourceStream extends A
 
 	/**
 	 * Construct.
-	 * 
+	 *
 	 * @param url
 	 *            URL of resource
 	 */
@@ -113,7 +111,7 @@ public class UrlResourceStream extends A
 
 	/**
 	 * Closes this resource.
-	 * 
+	 *
 	 * @throws IOException
 	 */
 	public void close() throws IOException