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");
}
-}
+}