You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/11/02 19:13:58 UTC

[3/3] git commit: Simplify/share code for VirtualResources

Simplify/share code for VirtualResources


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/e9651b5b
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/e9651b5b
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/e9651b5b

Branch: refs/heads/5.4-js-rewrite
Commit: e9651b5b1c755406dd4b54c3160c2cd800a9dea0
Parents: 25a9b92
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri Nov 2 10:50:46 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri Nov 2 10:50:46 2012 -0700

----------------------------------------------------------------------
 .../messages/DecimalFormatMessageResource.java     |    7 +----
 .../internal/util/MessageCatalogResource.java      |   17 +++-----------
 .../tapestry5/internal/util/VirtualResource.java   |   16 ++++++++++++++
 3 files changed, 22 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e9651b5b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/messages/DecimalFormatMessageResource.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/messages/DecimalFormatMessageResource.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/messages/DecimalFormatMessageResource.java
index 070d167..c977418 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/messages/DecimalFormatMessageResource.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/messages/DecimalFormatMessageResource.java
@@ -17,7 +17,6 @@ package org.apache.tapestry5.internal.services.messages;
 import org.apache.tapestry5.internal.util.VirtualResource;
 import org.apache.tapestry5.ioc.Resource;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -53,7 +52,7 @@ public class DecimalFormatMessageResource extends VirtualResource
     @Override
     public String getPath()
     {
-        return String.format("<Virtual DecimalFormat symbols for %s>", locale);
+        return String.format("<Virtual DecimalFormat symbols for locale %s>", locale == null ? "(none)" : locale);
     }
 
     @Override
@@ -85,9 +84,7 @@ public class DecimalFormatMessageResource extends VirtualResource
         write(builder, "minus", symbols.getMinusSign());
         write(builder, "decimal", symbols.getDecimalSeparator());
 
-        byte[] bytes = builder.toString().getBytes("UTF-8");
-
-        return new ByteArrayInputStream(bytes);
+        return toInputStream(builder.toString());
     }
 
     private void write(StringBuilder builder, String name, char value)

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e9651b5b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/MessageCatalogResource.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/MessageCatalogResource.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/MessageCatalogResource.java
index c2548a2..3ba7505 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/MessageCatalogResource.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/MessageCatalogResource.java
@@ -19,10 +19,8 @@ import org.apache.tapestry5.ioc.Messages;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.services.messages.ComponentMessagesSource;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URL;
 import java.util.Locale;
 
@@ -89,23 +87,16 @@ public class MessageCatalogResource extends VirtualResource
     @Override
     public InputStream openStream() throws IOException
     {
-        return new ByteArrayInputStream(getBytes());
+        return toInputStream(getBytes());
     }
 
-    private byte[] getBytes()
+    private byte[] getBytes() throws IOException
     {
-        if (bytes != null)
+        if (bytes == null)
         {
-            return bytes;
+            bytes = assembleCatalog().getBytes(UTF8);
         }
 
-        try
-        {
-            bytes = assembleCatalog().getBytes("UTF-8");
-        } catch (UnsupportedEncodingException e)
-        {
-            throw new RuntimeException(e);
-        }
 
         return bytes;
     }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e9651b5b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/VirtualResource.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/VirtualResource.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/VirtualResource.java
index 6c76c3a..c353db5 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/VirtualResource.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/util/VirtualResource.java
@@ -16,7 +16,11 @@ package org.apache.tapestry5.internal.util;
 
 import org.apache.tapestry5.ioc.Resource;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
+import java.nio.charset.Charset;
 import java.util.Locale;
 
 /**
@@ -31,6 +35,8 @@ import java.util.Locale;
  */
 public abstract class VirtualResource implements Resource
 {
+    protected static final Charset UTF8 = Charset.forName("UTF-8");
+
     private <T> T unsupported(String name)
     {
         throw new UnsupportedOperationException(String.format("Method %s() is not supported for a VirtualResource.", name));
@@ -84,4 +90,14 @@ public abstract class VirtualResource implements Resource
     {
         return unsupported("getPath");
     }
+
+    protected InputStream toInputStream(String content) throws IOException
+    {
+        return toInputStream(content.getBytes(UTF8));
+    }
+
+    protected InputStream toInputStream(byte[] content) throws IOException
+    {
+        return new ByteArrayInputStream(content);
+    }
 }