Reviewers: shindig.remailer_gmail.com,


Please review this at http://codereview.appspot.com/1110041/show

Affected files:
M java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java


Index: java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java diff --git a/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java b/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java index a6ddcec686f731fffa376efd5ff46ff64c1dd831..e5f1bac7725105890fe9dbb3e473573b7658a6eb 100644 --- a/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java +++ b/java/common/src/main/java/org/apache/shindig/protocol/DataServiceServlet.java
@@ -18,6 +18,7 @@
 package org.apache.shindig.protocol;

 import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.common.servlet.HttpUtil;
 import org.apache.shindig.protocol.conversion.BeanConverter;

 import com.google.common.collect.ImmutableMap;
@@ -96,7 +97,8 @@ public class DataServiceServlet extends ApiServlet {
     }

     setCharacterEncodings(servletRequest, servletResponse);
-
+    HttpUtil.setCORSheader(servletResponse);
+
     SecurityToken token = getSecurityToken(servletRequest);
     if (token == null) {
       sendSecurityError(servletResponse);
@@ -169,7 +171,13 @@ public class DataServiceServlet extends ApiServlet {
         response = ImmutableMap.of("entry", response);
       }

+      // JSONP style callbacks
+ String callback = (HttpUtil.isJSONP(servletRequest) && ContentTypes.OUTPUT_JSON_CONTENT_TYPE.equals(converter.getContentType())) ?
+          servletRequest.getParameter("callback") : null;
+
+      if (callback != null) writer.write(callback + "(");
       writer.write(converter.convertToString(response));
+      if (callback != null) writer.write(");\n");
     } else {
       sendError(servletResponse, responseItem);
     }


Reply via email to