Author: lindner
Date: Sun Feb  6 05:39:00 2011
New Revision: 1067589

URL: http://svn.apache.org/viewvc?rev=1067589&view=rev
Log:
clean up UTF-8 handling a bit more since we're stuck at java 1.5

Modified:
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedFilter.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/uri/Uri.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/CharsetUtil.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/expressions/OpensocialFunctions.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FetchResponseUtils.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpRequest.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseMetadataHelper.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthRequest.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PipelinedDataPreloader.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingContentRewriter.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
    
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/oauth/OAuthEntry.java
    
shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/XSDValidator.java

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
 Sun Feb  6 05:39:00 2011
@@ -18,10 +18,7 @@
  */
 package org.apache.shindig.common.crypto;
 
-import com.google.common.base.CharMatcher;
 import com.google.common.base.Charsets;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Maps;
 import com.google.common.base.Preconditions;
 
@@ -32,17 +29,14 @@ import org.apache.shindig.common.util.Ti
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.shindig.common.util.Utf8UrlCoder;
 
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
 import java.security.GeneralSecurityException;
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -63,8 +57,6 @@ public class BasicBlobCrypter implements
   /** allow three minutes for clock skew */
   private static final long CLOCK_SKEW_ALLOWANCE = 180;
 
-  private static final String UTF8 = "UTF-8";
-
   public TimeSource timeSource = new TimeSource();
   private byte[] cipherKey;
   private byte[] hmacKey;
@@ -155,9 +147,7 @@ public class BasicBlobCrypter implements
       byte[] cipherText = Crypto.aes128cbcEncrypt(cipherKey, encoded);
       byte[] hmac = Crypto.hmacSha1(hmacKey, cipherText);
       byte[] b64 = Base64.encodeBase64URLSafe(Bytes.concat(cipherText, hmac));
-      return new String(b64, UTF8);
-    } catch (UnsupportedEncodingException e) {
-      throw new BlobCrypterException(e);
+      return CharsetUtil.newUtf8String(b64);
     } catch (GeneralSecurityException e) {
       throw new BlobCrypterException(e);
     }
@@ -166,21 +156,21 @@ public class BasicBlobCrypter implements
   /**
    * Encode the input for transfer.  We use something a lot like HTML form
    * encodings.  The time stamp is in seconds since the epoch.
+   * @param in map of parameters to encode
    */
-  private byte[] serializeAndTimestamp(Map<String, String> in)
-  throws UnsupportedEncodingException {
+  private byte[] serializeAndTimestamp(Map<String, String> in) {
     StringBuilder sb = new StringBuilder();
 
     for (Map.Entry<String, String> val : in.entrySet()) {
-      sb.append(URLEncoder.encode(val.getKey(), UTF8));
+      sb.append(Utf8UrlCoder.encode(val.getKey()));
       sb.append('=');
-      sb.append(URLEncoder.encode(val.getValue(), UTF8));
+      sb.append(Utf8UrlCoder.encode(val.getValue()));
       sb.append('&');
     }
     sb.append(TIMESTAMP_KEY);
     sb.append('=');
     sb.append(timeSource.currentTimeMillis()/1000);
-    return sb.toString().getBytes(UTF8);
+    return CharsetUtil.getUtf8Bytes(sb.toString());
   }
 
   /* (non-Javadoc)
@@ -189,7 +179,7 @@ public class BasicBlobCrypter implements
   public Map<String, String> unwrap(String in, int maxAgeSec)
   throws BlobCrypterException {
     try {
-      byte[] bin = Base64.decodeBase64(in.getBytes("UTF-8"));
+      byte[] bin = Base64.decodeBase64(CharsetUtil.getUtf8Bytes(in));
       byte[] hmac = new byte[Crypto.HMAC_SHA1_LEN];
       byte[] cipherText = new byte[bin.length-Crypto.HMAC_SHA1_LEN];
       System.arraycopy(bin, 0, cipherText, 0, cipherText.length);
@@ -205,21 +195,18 @@ public class BasicBlobCrypter implements
       throw new BlobCrypterException("Invalid token format", e);
     } catch (NegativeArraySizeException e) {
       throw new BlobCrypterException("Invalid token format", e);
-    } catch (UnsupportedEncodingException e) {
-      throw new BlobCrypterException(e);
     }
 
   }
 
-  private Map<String, String> deserialize(byte[] plain)
-      throws UnsupportedEncodingException {
-    String base = new String(plain, UTF8);
+  private Map<String, String> deserialize(byte[] plain) {
+    String base = CharsetUtil.newUtf8String(plain);
     // replaces [&=] regex
     String[] items = StringUtils.splitPreserveAllTokens(base, "&=");
     Map<String, String> map = Maps.newHashMapWithExpectedSize(items.length);
     for (int i=0; i < items.length; ) {
-      String key = URLDecoder.decode(items[i++], UTF8);
-      String val = URLDecoder.decode(items[i++], UTF8);
+      String key = Utf8UrlCoder.decode(items[i++]);
+      String val = Utf8UrlCoder.decode(items[i++]);
       map.put(key, val);
     }
     return map;

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedFilter.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedFilter.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedFilter.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedFilter.java
 Sun Feb  6 05:39:00 2011
@@ -27,7 +27,7 @@ import javax.servlet.ServletException;
 import javax.servlet.UnavailableException;
 
 /**
- * A Filter that can use Guice for injecting. Compliments InjectedServlet.
+ * A Filter that can use Guice for injecting. Complements InjectedServlet.
  */
 public abstract class InjectedFilter implements Filter {
   protected Injector injector;

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/uri/Uri.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/uri/Uri.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/uri/Uri.java 
(original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/uri/Uri.java 
Sun Feb  6 05:39:00 2011
@@ -21,13 +21,12 @@ package org.apache.shindig.common.uri;
 import com.google.common.base.Strings;
 
 import com.google.common.base.Objects;
-import com.google.common.collect.Maps;
+import com.google.common.collect.ImmutableMap;
 import com.google.inject.Inject;
 
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -61,10 +60,8 @@ public final class Uri {
     path = builder.getPath();
     query = builder.getQuery();
     fragment = builder.getFragment();
-    queryParameters
-        = 
Collections.unmodifiableMap(Maps.newLinkedHashMap(builder.getQueryParameters()));
-    fragmentParameters
-        = 
Collections.unmodifiableMap(Maps.newLinkedHashMap(builder.getFragmentParameters()));
+    queryParameters = ImmutableMap.copyOf(builder.getQueryParameters());
+    fragmentParameters = ImmutableMap.copyOf(builder.getFragmentParameters());
 
     StringBuilder out = new StringBuilder();
 
@@ -112,6 +109,8 @@ public final class Uri {
 
   /**
    * Convert a java.net.URI to a Uri.
+   * @param uri the uri to convert
+   * @return a shindig Uri
    */
   public static Uri fromJavaUri(URI uri) {
     if (uri.isOpaque()) {

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/CharsetUtil.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/CharsetUtil.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/CharsetUtil.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/CharsetUtil.java
 Sun Feb  6 05:39:00 2011
@@ -31,6 +31,13 @@ public final class CharsetUtil {
   private CharsetUtil() {}
   
   /**
+   * A clean version of String#getBytes that does not throw exceptions for
+   * the UTF-8 Charset.
+   *
+   * Replace all Callers with getBytes(Charsets.UTF_8) once
+   * we move to Java 6.
+   *
+   * @param s a string to convert
    * @return UTF-8 byte array for the input string.
    */
   public static byte[] getUtf8Bytes(String s) {
@@ -41,4 +48,17 @@ public final class CharsetUtil {
     return ArrayUtils.subarray(bb.array(), 0, bb.limit());
     
   }
+
+  /**
+   * A clean version of new String(byte[], "UTF-8")
+   *
+   * Replace all callers with new String(b, Charsets.UTF_8) when
+   * we move to Java 6.
+   *
+   * @param b a byte array of UTF-8 bytes
+   * @return a UTF-8 encoded string
+   */
+  public static String newUtf8String(byte[] b) {
+    return Charsets.UTF_8.decode(ByteBuffer.wrap(b)).toString();
+  }
 }

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/expressions/OpensocialFunctions.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/expressions/OpensocialFunctions.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/expressions/OpensocialFunctions.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/expressions/OpensocialFunctions.java
 Sun Feb  6 05:39:00 2011
@@ -20,14 +20,13 @@ package org.apache.shindig.expressions;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.apache.shindig.common.util.Utf8UrlCoder;
 
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 
-import java.io.UnsupportedEncodingException;
-
 import javax.el.ELException;
 
 /**
@@ -67,14 +66,8 @@ public final class OpensocialFunctions {
       return null;
     }
     
-    try {
-      // TODO: allow a charset to be passed in?
-      return new String(Base64.decodeBase64(text.getBytes("UTF-8")),
-          "UTF-8");
-    } catch (UnsupportedEncodingException uee) {
-      // UTF-8 will be supported everywhere
-      throw new RuntimeException(uee);
-    }
+    // TODO: allow a charset to be passed in?
+    return 
CharsetUtil.newUtf8String(Base64.decodeBase64(CharsetUtil.getUtf8Bytes(text)));
   }
 
   /**

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FetchResponseUtils.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FetchResponseUtils.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FetchResponseUtils.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/FetchResponseUtils.java
 Sun Feb  6 05:39:00 2011
@@ -68,9 +68,8 @@ public final class FetchResponseUtils {
       resp.put("headers", headers);
     }
     // Merge in additional response data
-    for (Map.Entry<String, String> entry : response.getMetadata().entrySet()) {
-      resp.put(entry.getKey(), entry.getValue());
-    }
+    resp.putAll(response.getMetadata());
+
     return resp;
   }
 

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpRequest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpRequest.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpRequest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpRequest.java
 Sun Feb  6 05:39:00 2011
@@ -23,6 +23,7 @@ import org.apache.commons.lang.ArrayUtil
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.apache.shindig.config.ContainerConfig;
 import org.apache.shindig.gadgets.AuthType;
 import org.apache.shindig.gadgets.oauth.OAuthArguments;
@@ -33,7 +34,6 @@ import com.google.common.collect.Maps;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -371,11 +371,7 @@ public class HttpRequest {
    *     Content-Type header.
    */
   public String getPostBodyAsString() {
-    try {
-      return new String(postBody, "UTF-8");
-    } catch (UnsupportedEncodingException ignore) {
-      return "";
-    }
+    return CharsetUtil.newUtf8String(postBody);
   }
 
   /**

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
 Sun Feb  6 05:39:00 2011
@@ -164,6 +164,7 @@ public final class HttpResponse implemen
 
   /**
    * Construct an HttpResponse from a builder (called by 
HttpResponseBuilder.create).
+   * @param builder a valid builder
    */
   HttpResponse(HttpResponseBuilder builder) {
     httpStatusCode = builder.getHttpStatusCode();

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseMetadataHelper.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseMetadataHelper.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseMetadataHelper.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseMetadataHelper.java
 Sun Feb  6 05:39:00 2011
@@ -22,8 +22,8 @@ import com.google.common.collect.Maps;
 
 import org.apache.shindig.common.logging.i18n.MessageKeys;
 import org.apache.shindig.common.util.Base32;
+import org.apache.shindig.common.util.CharsetUtil;
 
-import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Map;
@@ -68,17 +68,12 @@ public class HttpResponseMetadataHelper 
       MessageDigest md5 = MessageDigest.getInstance("MD5");
       md5.update(response.getResponseAsBytes());
       byte[] md5val = md5.digest();
-      return new String(Base32.encodeBase32(md5val), "UTF-8");
+      return CharsetUtil.newUtf8String(Base32.encodeBase32(md5val));
     } catch (NoSuchAlgorithmException e) {
       // Should not happen
       if (LOG.isLoggable(Level.INFO)) {
         LOG.logp(Level.INFO, classname, "getHash", 
MessageKeys.ERROR_GETTING_MD5);
       } 
-    } catch (UnsupportedEncodingException e) {
-      // Should not happen
-      if (LOG.isLoggable(Level.INFO)) {
-        LOG.logp(Level.INFO, classname, "getHash", 
MessageKeys.ERROR_PARSING_MD5);
-      }     
     }
     return null;
   }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthRequest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthRequest.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthRequest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthRequest.java
 Sun Feb  6 05:39:00 2011
@@ -16,7 +16,6 @@
  */
 package org.apache.shindig.gadgets.oauth;
 
-import com.google.common.base.Charsets;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
@@ -539,7 +538,7 @@ public class OAuthRequest {
         try {
           byte[] body = IOUtils.toByteArray(base.getPostBody());
           byte[] hash = DigestUtils.sha(body);
-          String b64 = new String(Base64.encodeBase64(hash), 
Charsets.UTF_8.name());
+          String b64 = CharsetUtil.newUtf8String(Base64.encodeBase64(hash));
           params.add(new Parameter(OAuthConstants.OAUTH_BODY_HASH, b64));
         } catch (IOException e) {
           throw new OAuthRequestException(OAuthError.UNKNOWN_PROBLEM,

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PipelinedDataPreloader.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PipelinedDataPreloader.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PipelinedDataPreloader.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/preload/PipelinedDataPreloader.java
 Sun Feb  6 05:39:00 2011
@@ -255,7 +255,7 @@ public class PipelinedDataPreloader {
       String params = preload.getAttributes().get("params");
       if ((params != null) && !"".equals(params)) {
         if ("POST".equalsIgnoreCase(request.getMethod())) {
-          request.setPostBody(params.getBytes("UTF-8"));
+          request.setPostBody(CharsetUtil.getUtf8Bytes(params));
           request.setHeader("Content-Type", 
"application/x-www-form-urlencoded; charset=utf-8");
         } else {
           UriBuilder uriBuilder = new UriBuilder(request.getUri());

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingContentRewriter.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingContentRewriter.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingContentRewriter.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingContentRewriter.java
 Sun Feb  6 05:39:00 2011
@@ -26,7 +26,6 @@ import org.apache.shindig.gadgets.rewrit
 import org.apache.shindig.gadgets.uri.ConcatUriManager;
 import org.apache.shindig.gadgets.uri.ProxyUriManager;
 
-import java.util.Arrays;
 import java.util.List;
 
 /**

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
 Sun Feb  6 05:39:00 2011
@@ -30,6 +30,7 @@ import org.apache.shindig.common.servlet
 import org.apache.shindig.common.Pair;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.common.uri.UriBuilder;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.http.HttpRequest;
 import org.apache.shindig.gadgets.http.HttpResponse;
@@ -47,6 +48,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
 import java.util.concurrent.FutureTask;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -79,13 +81,7 @@ public class ConcatProxyServlet extends 
   private transient ResponseRewriterRegistry contentRewriterRegistry;
 
   // Sequential version of 'execute' by default.
-  private transient Executor executor = new Executor() {
-    // Execute the comman within current thread
-    public void execute(Runnable run) {
-      run.run();
-    }
-
-  };
+  private transient Executor executor = Executors.newSingleThreadExecutor();
 
   @Inject
   public void setRequestPipeline(RequestPipeline requestPipeline) {
@@ -323,13 +319,15 @@ public class ConcatProxyServlet extends 
 
     @Override
     public void print(String data) throws IOException {
-      write(data.getBytes("UTF8"));
+      write(CharsetUtil.getUtf8Bytes(data));
     }
 
+    private byte[] CRLF_BYTES = CharsetUtil.getUtf8Bytes("\r\n");
+
     @Override
     public void println(String data) throws IOException {
       print(data);
-      write("\r\n".getBytes("UTF8"));
+      write(CRLF_BYTES);
     }
   }
 

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java
 Sun Feb  6 05:39:00 2011
@@ -19,7 +19,6 @@
 
 package org.apache.shindig.gadgets.servlet;
 
-import com.google.common.base.Objects;
 import org.apache.shindig.auth.AuthInfoUtil;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.common.uri.Uri;

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
 Sun Feb  6 05:39:00 2011
@@ -22,6 +22,7 @@ import com.google.inject.Inject;
 
 import org.apache.shindig.common.servlet.HttpUtil;
 import org.apache.shindig.common.servlet.InjectedServlet;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.js.JsException;
 import org.apache.shindig.gadgets.js.JsRequest;
@@ -105,7 +106,7 @@ public class JsServlet extends InjectedS
 
     resp.setStatus(jsResponse.getStatusCode());
     resp.setContentType("text/javascript; charset=utf-8");
-    byte[] response = jsResponse.getJsCode().toString().getBytes("UTF-8");
+    byte[] response = CharsetUtil.getUtf8Bytes(jsResponse.getJsCode());
     resp.setContentLength(response.length);
     resp.getOutputStream().write(response);
   }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
 Sun Feb  6 05:39:00 2011
@@ -42,7 +42,7 @@ import java.util.Enumeration;
 import java.util.Map;
 
 /**
- * Jtility routines for dealing with servlets.
+ * Utility routines for dealing with servlets.
  *
  * @since 2.0.0
  */

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
 Sun Feb  6 05:39:00 2011
@@ -21,6 +21,7 @@ package org.apache.shindig.gadgets.templ
 import org.apache.shindig.common.cache.Cache;
 import org.apache.shindig.common.cache.CacheProvider;
 import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.apache.shindig.common.util.HashUtil;
 import org.apache.shindig.common.xml.XmlException;
 import org.apache.shindig.common.xml.XmlUtil;
@@ -31,8 +32,6 @@ import org.apache.shindig.gadgets.http.H
 import org.apache.shindig.gadgets.http.RequestPipeline;
 import org.w3c.dom.Element;
 
-import java.io.UnsupportedEncodingException;
-
 import com.google.inject.Inject;
 
 /**
@@ -76,12 +75,8 @@ public class TemplateLibraryFactory {
       String key = null;
       Element element = null;
       if (!context.getIgnoreCache()) {
-        try {
-          key = HashUtil.checksum(content.getBytes("UTF-8"));
-          element = parsedXmlCache.getElement(key);
-        } catch (UnsupportedEncodingException e) {
-          // this won't happen, but if it does, cache won't be used.
-        }
+        key = HashUtil.checksum(CharsetUtil.getUtf8Bytes(content));
+        element = parsedXmlCache.getElement(key);
       }
 
       if (element == null) {

Modified: 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/oauth/OAuthEntry.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/oauth/OAuthEntry.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/oauth/OAuthEntry.java
 (original)
+++ 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/oauth/OAuthEntry.java
 Sun Feb  6 05:39:00 2011
@@ -100,183 +100,123 @@ public class OAuthEntry implements Seria
     return new Date(expirationTime);
   }
 
-
-  public String getAppId()
-  {
+  public String getAppId() {
     return appId;
   }
 
-
-  public String getCallbackUrl()
-  {
+  public String getCallbackUrl() {
     return callbackUrl;
   }
 
-
-  public boolean isCallbackUrlSigned()
-  {
+  public boolean isCallbackUrlSigned() {
     return callbackUrlSigned;
   }
 
-
-  public String getUserId()
-  {
+  public String getUserId() {
     return userId;
   }
 
-
-  public String getToken()
-  {
+  public String getToken() {
     return token;
   }
 
-
-  public String getTokenSecret()
-  {
+  public String getTokenSecret() {
     return tokenSecret;
   }
 
-
-  public boolean isAuthorized()
-  {
+  public boolean isAuthorized() {
     return authorized;
   }
 
-
-  public String getConsumerKey()
-  {
+  public String getConsumerKey() {
     return consumerKey;
   }
 
-
-  public Type getType()
-  {
+  public Type getType() {
     return type;
   }
 
-
-  public Date getIssueTime()
-  {
+  public Date getIssueTime() {
     return issueTime;
   }
 
-
-  public String getDomain()
-  {
+  public String getDomain() {
     return domain;
   }
 
-
-  public String getContainer()
-  {
+  public String getContainer() {
     return container;
   }
 
-
-  public String getOauthVersion()
-  {
+  public String getOauthVersion() {
     return oauthVersion;
   }
 
-
-  public String getCallbackToken()
-  {
+  public String getCallbackToken() {
     return callbackToken;
   }
 
-
-  public int getCallbackTokenAttempts()
-  {
+  public int getCallbackTokenAttempts() {
     return callbackTokenAttempts;
   }
 
-
-  public void setAppId(String appId)
-  {
+  public void setAppId(String appId) {
     this.appId = appId;
   }
 
-
-  public void setCallbackUrl(String callbackUrl)
-  {
+  public void setCallbackUrl(String callbackUrl) {
     this.callbackUrl = callbackUrl;
   }
 
-
-  public void setCallbackUrlSigned(boolean callbackUrlSigned)
-  {
+  public void setCallbackUrlSigned(boolean callbackUrlSigned) {
     this.callbackUrlSigned = callbackUrlSigned;
   }
 
-
-  public void setUserId(String userId)
-  {
+  public void setUserId(String userId) {
     this.userId = userId;
   }
 
-
-  public void setToken(String token)
-  {
+  public void setToken(String token) {
     this.token = token;
   }
 
-
-  public void setTokenSecret(String tokenSecret)
-  {
+  public void setTokenSecret(String tokenSecret) {
     this.tokenSecret = tokenSecret;
   }
 
-
-  public void setAuthorized(boolean authorized)
-  {
+  public void setAuthorized(boolean authorized) {
     this.authorized = authorized;
   }
 
-
-  public void setConsumerKey(String consumerKey)
-  {
+  public void setConsumerKey(String consumerKey) {
     this.consumerKey = consumerKey;
   }
 
-
-  public void setType(Type type)
-  {
+  public void setType(Type type) {
     this.type = type;
   }
 
-
-  public void setIssueTime(Date issueTime)
-  {
+  public void setIssueTime(Date issueTime) {
     this.issueTime = issueTime;
   }
 
-
-  public void setDomain(String domain)
-  {
+  public void setDomain(String domain) {
     this.domain = domain;
   }
 
-
-  public void setContainer(String container)
-  {
+  public void setContainer(String container) {
     this.container = container;
   }
 
-
-  public void setOauthVersion(String oauthVersion)
-  {
+  public void setOauthVersion(String oauthVersion) {
     this.oauthVersion = oauthVersion;
   }
 
-
-  public void setCallbackToken(String callbackToken)
-  {
+  public void setCallbackToken(String callbackToken) {
     this.callbackToken = callbackToken;
   }
 
-
-  public void setCallbackTokenAttempts(int callbackTokenAttempts)
-  {
+  public void setCallbackTokenAttempts(int callbackTokenAttempts) {
     this.callbackTokenAttempts = callbackTokenAttempts;
   }
 }

Modified: 
shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/XSDValidator.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/XSDValidator.java?rev=1067589&r1=1067588&r2=1067589&view=diff
==============================================================================
--- 
shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/XSDValidator.java
 (original)
+++ 
shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/util/XSDValidator.java
 Sun Feb  6 05:39:00 2011
@@ -18,6 +18,7 @@
 package org.apache.shindig.social.opensocial.util;
 
 import org.apache.shindig.common.logging.i18n.MessageKeys;
+import org.apache.shindig.common.util.CharsetUtil;
 import org.w3c.dom.ls.LSInput;
 import org.w3c.dom.ls.LSResourceResolver;
 import org.xml.sax.SAXException;
@@ -25,7 +26,6 @@ import org.xml.sax.SAXException;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.util.logging.Logger;
 import java.util.logging.Level;
 
@@ -63,11 +63,7 @@ public class XSDValidator {
    * @return a list of errors or a 0 lenght string if none.
    */
   public static String validate(String xml, InputStream schema) {
-    try {
-      return validate(new ByteArrayInputStream(xml.getBytes("UTF-8")), schema);
-    } catch (UnsupportedEncodingException e) {
-      return e.getMessage();
-    }
+    return validate(new ByteArrayInputStream(CharsetUtil.getUtf8Bytes(xml)), 
schema);
   }
 
   /**


Reply via email to