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


Reply via email to