Author: lindner
Date: Fri Oct 31 16:32:19 2008
New Revision: 709600
URL: http://svn.apache.org/viewvc?rev=709600&view=rev
Log:
SHINDIG-665 Correctly set content type headers on RESTful output
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.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/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanAtomConverter.java
Fri Oct 31 16:32:19 2008
@@ -36,6 +36,11 @@
private static Logger logger =
Logger.getLogger(BeanXmlConverter.class.getName());
+
+ public String getContentType() {
+ return "application/atom+xml";
+ }
+
public String convertToString(Object pojo) {
return convertToXml(pojo);
}
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonConverter.java
Fri Oct 31 16:32:19 2008
@@ -68,6 +68,10 @@
this.injector = injector;
}
+ public String getContentType() {
+ return "application/json";
+ }
+
/**
* Convert the passed in object to a string.
*
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanJsonLibConverter.java
Fri Oct 31 16:32:19 2008
@@ -72,6 +72,10 @@
this.jsonConfig = jsonConfig;
}
+ public String getContentType() {
+ return "application/json";
+ }
+
/**
* Convert the json string into a pojo based on the supplied root class.
* @param string the json string
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXStreamConverter.java
Fri Oct 31 16:32:19 2008
@@ -164,6 +164,10 @@
mapConverter = new MapConverter(icmapper);
}
+ public String getContentType() {
+ return "application/xml";
+ }
+
public String convertToString(Object pojo) {
return convertToXml(pojo);
}
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/util/BeanXmlConverter.java
Fri Oct 31 16:32:19 2008
@@ -35,6 +35,10 @@
private static Logger logger =
Logger.getLogger(BeanXmlConverter.class.getName());
+ public String getContentType() {
+ return "application/xml";
+ }
+
public String convertToString(Object pojo) {
return convertToXml(pojo);
}
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java?rev=709600&r1=709599&r2=709600&view=diff
==============================================================================
---
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java
(original)
+++
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/BeanConverter.java
Fri Oct 31 16:32:19 2008
@@ -21,4 +21,6 @@
<T> T convertToObject(String string, Class<T> className);
String convertToString(Object pojo);
+
+ String getContentType();
}
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=709600&r1=709599&r2=709600&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 Oct 31 16:32:19 2008
@@ -101,6 +101,7 @@
RestfulRequestItem requestItem = new RestfulRequestItem(servletRequest,
token, converter);
ResponseItem responseItem = getResponseItem(handleRequestItem(requestItem,
servletRequest));
+ servletResponse.setContentType(converter.getContentType());
if (responseItem.getError() == null) {
PrintWriter writer = servletResponse.getWriter();
Object response = responseItem.getResponse();
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=709600&r1=709599&r2=709600&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 Oct 31 16:32:19 2008
@@ -72,6 +72,7 @@
}
setCharacterEncodings(servletRequest, servletResponse);
+ servletResponse.setContentType("application/json");
try {
String content = IOUtils.toString(servletRequest.getInputStream(),
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=709600&r1=709599&r2=709600&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 Oct 31 16:32:19 2008
@@ -125,6 +125,7 @@
PrintWriter writer = new PrintWriter(outputStream);
EasyMock.expect(res.getWriter()).andReturn(writer);
res.setCharacterEncoding("UTF-8");
+ res.setContentType("application/json");
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=709600&r1=709599&r2=709600&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 Oct 31 16:32:19 2008
@@ -72,6 +72,10 @@
activityHandler = EasyMock.createMock(ActivityHandler.class);
appDataHandler = EasyMock.createMock(AppDataHandler.class);
+
EasyMock.expect(jsonConverter.getContentType()).andReturn("application/json");
+
EasyMock.expect(xmlConverter.getContentType()).andReturn("application/xml");
+
EasyMock.expect(atomConverter.getContentType()).andReturn("application/atom+xml");
+
HandlerDispatcher dispatcher = new
StandardHandlerDispatcher(constant(peopleHandler),
constant(activityHandler), constant(appDataHandler));
servlet.setHandlerDispatcher(dispatcher);
@@ -127,6 +131,7 @@
res.sendError(500, "FAILED");
res.setCharacterEncoding("UTF-8");
+ res.setContentType("application/json");
EasyMock.replay(req, res, appDataHandler, jsonConverter);
servlet.service(req, res);
@@ -156,11 +161,14 @@
EasyMock.expect(res.getWriter()).andReturn(writerMock);
writerMock.write(jsonObject);
res.setCharacterEncoding("UTF-8");
+ res.setContentType("application/json");
EasyMock.replay(req, res, handler, jsonConverter);
servlet.service(req, res);
EasyMock.verify(req, res, handler, jsonConverter);
EasyMock.reset(req, res, handler, jsonConverter);
+ // ick, this resets for the next call...
+
EasyMock.expect(jsonConverter.getContentType()).andReturn("application/json");
}
private void setupRequest(String pathInfo, String actualMethod, String
overrideMethod)
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=709600&r1=709599&r2=709600&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 Oct 31 16:32:19 2008
@@ -241,6 +241,7 @@
EasyMock.expect(req.getAttribute(EasyMock.isA(String.class))).andReturn(FAKE_GADGET_TOKEN);
EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
res.setCharacterEncoding("UTF-8");
+ res.setContentType("application/json");
}
}