You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/09/06 01:25:21 UTC

svn commit: r692577 - in /incubator/shindig/trunk/java: server/src/test/java/org/apache/shindig/server/endtoend/ social-api/src/main/java/org/apache/shindig/social/opensocial/service/ social-api/src/test/java/org/apache/shindig/social/dataservice/integ...

Author: doll
Date: Fri Sep  5 16:25:21 2008
New Revision: 692577

URL: http://svn.apache.org/viewvc?rev=692577&view=rev
Log:
SHINDIG-487. Modified patch from Jacky Wang. The social servlets now only set the request encoding when it is null and all servlet responses have their encoding set to utf-8

Modified:
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java

Modified: incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java (original)
+++ incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java Fri Sep  5 16:25:21 2008
@@ -152,6 +152,7 @@
       if (errorCode > 0) {
         ((HttpServletResponse) servletResponse).sendError(errorCode, errorMessage);
       } else {
+        servletRequest.setCharacterEncoding("UTF-8");
         proxiedServlet.service(servletRequest, servletResponse);
       }
     }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java Fri Sep  5 16:25:21 2008
@@ -34,7 +34,6 @@
 import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -42,6 +41,8 @@
  * Common base class for API servlets.
  */
 public abstract class ApiServlet extends InjectedServlet {
+  protected static final String DEFAULT_ENCODING = "UTF-8";
+
   private Map<String, Class<? extends DataRequestHandler>> handlers;
   protected BeanJsonConverter jsonConverter;
   protected BeanConverter xmlConverter;
@@ -119,4 +120,11 @@
     return new ResponseItem(ResponseError.INTERNAL_ERROR, t.getMessage());
   }
 
+  protected void setCharacterEncodings(HttpServletRequest servletRequest,
+      HttpServletResponse servletResponse) throws IOException {
+    if (servletRequest.getCharacterEncoding() == null) {
+      servletRequest.setCharacterEncoding(DEFAULT_ENCODING);
+    }
+    servletResponse.setCharacterEncoding(DEFAULT_ENCODING);
+  }
 }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/DataServiceServlet.java Fri Sep  5 16:25:21 2008
@@ -70,7 +70,7 @@
       throws ServletException, IOException {
     logger.finest("Handling restful request for " + servletRequest.getPathInfo());
 
-    servletRequest.setCharacterEncoding("UTF-8");
+    setCharacterEncodings(servletRequest, servletResponse);
 
     SecurityToken token = getSecurityToken(servletRequest);
     if (token == null) {

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java Fri Sep  5 16:25:21 2008
@@ -48,12 +48,14 @@
   protected void doGet(HttpServletRequest servletRequest,
       HttpServletResponse servletResponse)
       throws ServletException, IOException {
+    SecurityToken token = getSecurityToken(servletRequest);
+    if (token == null) {
+      sendSecurityError(servletResponse);
+      return;
+    }
+
     try {
-      SecurityToken token = getSecurityToken(servletRequest);
-      if (token == null) {
-        sendSecurityError(servletResponse);
-        return;
-      }
+      setCharacterEncodings(servletRequest, servletResponse);
       JSONObject request = JsonConversionUtil.fromRequest(servletRequest);
       dispatch(request, servletRequest, servletResponse, token);
     } catch (JSONException je) {
@@ -70,6 +72,9 @@
       sendSecurityError(servletResponse);
       return;
     }
+
+    setCharacterEncodings(servletRequest, servletResponse);
+
     try {
       String content = IOUtils.toString(servletRequest.getReader());
       if ((content.indexOf('[') != -1) && content.indexOf('[') < content.indexOf('{')) {

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java Fri Sep  5 16:25:21 2008
@@ -95,8 +95,7 @@
 
   protected String getJsonResponse(String path, String method, Map<String, String> extraParams,
       String postData) throws Exception {
-    req.setCharacterEncoding("UTF-8");
-
+    EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
     EasyMock.expect(req.getPathInfo()).andStubReturn(path);
     EasyMock.expect(req.getMethod()).andStubReturn(method);
     EasyMock.expect(req.getParameter("format")).andStubReturn(null);
@@ -132,6 +131,7 @@
     ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
     PrintWriter writer = new PrintWriter(outputStream);
     EasyMock.expect(res.getWriter()).andReturn(writer);
+    res.setCharacterEncoding("UTF-8");
 
     EasyMock.replay(req, res);
     servlet.service(req, res);

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java Fri Sep  5 16:25:21 2008
@@ -126,6 +126,7 @@
         ImmediateFuture.errorInstance(new RuntimeException("FAILED")));
 
     res.sendError(500, "FAILED");
+    res.setCharacterEncoding("UTF-8");
 
     EasyMock.replay(req, res, appDataHandler, injector, jsonConverter);
     servlet.service(req, res);
@@ -155,6 +156,7 @@
     PrintWriter writerMock = EasyMock.createMock(PrintWriter.class);
     EasyMock.expect(res.getWriter()).andReturn(writerMock);
     writerMock.write(jsonObject);
+    res.setCharacterEncoding("UTF-8");
 
     EasyMock.replay(req, res, handler, injector, jsonConverter);
     servlet.service(req, res);
@@ -164,8 +166,7 @@
 
   private void setupRequest(String pathInfo, String actualMethod, String overrideMethod)
       throws IOException {
-    req.setCharacterEncoding("UTF-8");
-
+    EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
     EasyMock.expect(req.getInputStream()).andStubReturn(dummyPostData);
     EasyMock.expect(req.getPathInfo()).andStubReturn(pathInfo);
     EasyMock.expect(req.getMethod()).andStubReturn(actualMethod);

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java?rev=692577&r1=692576&r2=692577&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java Fri Sep  5 16:25:21 2008
@@ -34,7 +34,6 @@
 import java.io.PrintWriter;
 import java.io.StringReader;
 import java.util.concurrent.Future;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -207,6 +206,8 @@
         Maps.immutableMap("method", new String[]{"people.get"}, "id", new String[]{"1"}));
     EasyMock.expect(req.getMethod()).andStubReturn("GET");
     EasyMock.expect(req.getAttribute(EasyMock.isA(String.class))).andReturn(FAKE_GADGET_TOKEN);
+    EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
+    res.setCharacterEncoding("UTF-8");
     setupInjector();
 
     String resultObject = "my lovely json";
@@ -235,6 +236,8 @@
     EasyMock.expect(req.getReader()).andStubReturn(new BufferedReader(new StringReader(json)));
     EasyMock.expect(req.getMethod()).andStubReturn("POST");
     EasyMock.expect(req.getAttribute(EasyMock.isA(String.class))).andReturn(FAKE_GADGET_TOKEN);
+    EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
+    res.setCharacterEncoding("UTF-8");
   }
-}
 
+}