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);
}
/**