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