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/03/14 13:31:01 UTC

svn commit: r637078 - in /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social: ./ opensocial/ samplecontainer/

Author: doll
Date: Fri Mar 14 05:30:59 2008
New Revision: 637078

URL: http://svn.apache.org/viewvc?rev=637078&view=rev
Log:
ResponseItems now all have errorMessages which are passed back to the javascript. 
Also fixed bug in XmlStateFileFetcher. 


Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseError.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseItem.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/OpenSocialDataHandler.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/StateFileDataHandler.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java Fri Mar 14 05:30:59 2008
@@ -73,7 +73,7 @@
   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
       throws IOException {
     // TODO: Get the security token and pass the viewer and owner along in the
-    // request items 
+    // request items
 
     String requestParam = req.getParameter("request");
 
@@ -98,12 +98,14 @@
     int length = requestItems.length();
 
     for (int i = 0; i < length; i++) {
-      ResponseItem response = new ResponseItem<Object>(
-          ResponseError.NOT_IMPLEMENTED);
-
       JSONObject jsonRequest = requestItems.getJSONObject(i);
       RequestItem requestItem = new RequestItem(jsonRequest.getString("type"),
           jsonRequest);
+
+      ResponseItem response = new ResponseItem<Object>(
+          ResponseError.NOT_IMPLEMENTED,
+          requestItem.getType() + " has not been implemented yet.",
+          new JSONObject());
 
       for (GadgetDataHandler handler : handlers) {
         if (handler.shouldHandle(requestItem.getType())) {

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseError.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseError.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseError.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseError.java Fri Mar 14 05:30:59 2008
@@ -30,7 +30,8 @@
     this.jsonValue = jsonValue;
   }
 
-  public String toJson() {
+  @Override
+  public String toString() {
     return jsonValue;
   }
 }

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseItem.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseItem.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseItem.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/ResponseItem.java Fri Mar 14 05:30:59 2008
@@ -23,18 +23,20 @@
  */
 public class ResponseItem<T> extends AbstractGadgetData {
   private ResponseError error;
+  private String errorMessage;
 
   // Must be compatible with AbstractSocialData.toJson. This means it should be
   // an AbstractSocialData or a collection of AbstractSocialData
   @Mandatory private T response;
 
-  public ResponseItem(ResponseError error, T response) {
+  public ResponseItem(ResponseError error, String errorMessage, T response) {
     this.error = error;
+    this.errorMessage = errorMessage;
     this.response = response;
   }
 
   public ResponseItem(T response) {
-    this(null, response);
+    this(null, null, response);
   }
 
   public ResponseError getError() {
@@ -43,6 +45,14 @@
 
   public void setError(ResponseError error) {
     this.error = error;
+  }
+
+  public String getErrorMessage() {
+    return errorMessage;
+  }
+
+  public void setErrorMessage(String errorMessage) {
+    this.errorMessage = errorMessage;
   }
 
   public T getResponse() {

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/OpenSocialDataHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/OpenSocialDataHandler.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/OpenSocialDataHandler.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/OpenSocialDataHandler.java Fri Mar 14 05:30:59 2008
@@ -67,7 +67,9 @@
   public ResponseItem handleRequest(RequestItem request) {
     OpenSocialDataType type = OpenSocialDataType.valueOf(request.getType());
     ResponseItem response = new ResponseItem<Object>(
-        ResponseError.NOT_IMPLEMENTED);
+        ResponseError.NOT_IMPLEMENTED,
+        request.getType() + " has not been implemented yet.",
+        new JSONObject());
 
     try {
       String jsonSpec = request.getParams().getString("idSpec");
@@ -108,9 +110,11 @@
       }
 
     } catch (JSONException e) {
-      response = new ResponseItem<Object>(ResponseError.BAD_REQUEST);
+      response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+          "The json request had a bad format", new JSONObject());
     } catch (IllegalArgumentException e) {
-      response = new ResponseItem<Object>(ResponseError.BAD_REQUEST);
+      response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+          "The json request had a bad idSpec", new JSONObject());
     }
 
     return response;

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java Fri Mar 14 05:30:59 2008
@@ -47,7 +47,9 @@
 
   public ResponseItem updatePersonData(String id, String key, String value) {
     if (!isValidKey(key)) {
-      return new ResponseItem<Object>(ResponseError.BAD_REQUEST, null);
+      return new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+          "The person data key had invalid characters",
+          new JSONObject());
     }
 
     XmlStateFileFetcher.get().setAppData(id, key, value);

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/StateFileDataHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/StateFileDataHandler.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/StateFileDataHandler.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/StateFileDataHandler.java Fri Mar 14 05:30:59 2008
@@ -51,8 +51,7 @@
 
   public ResponseItem handleRequest(RequestItem request) {
     RequestType type = RequestType.valueOf(request.getType());
-    ResponseItem response = new ResponseItem<Object>(
-        ResponseError.NOT_IMPLEMENTED);
+    ResponseItem response = null;
 
     XmlStateFileFetcher fetcher = XmlStateFileFetcher.get();
 
@@ -71,9 +70,12 @@
           fetcher.resetStateFile(new URI(stateFile));
           response = new ResponseItem<Object>(new JSONObject());
         } catch (URISyntaxException e) {
-          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST);
+          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+              "The state file was not a valid url", new JSONObject());
         } catch (JSONException e) {
-          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST);
+          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+              "The request did not have a valid fileUrl parameter",
+              new JSONObject());
         }
         break;
       case SET_EVILNESS:
@@ -82,7 +84,9 @@
           fetcher.setEvilness(doEvil);
           response = new ResponseItem<Object>(new JSONObject());
         } catch (JSONException e) {
-          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST);
+          response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
+              "The request did not have a valid doEvil parameter",
+              new JSONObject());
         }
         break;
     }

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java?rev=637078&r1=637077&r2=637078&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java Fri Mar 14 05:30:59 2008
@@ -127,10 +127,13 @@
   }
 
   public Map<String, Map<String, String>> getAppData() {
-    if (allData != null) {
-      return allData;
+    if (allData == null) {
+      setupAppData();
     }
+    return allData;
+  }
 
+  private void setupAppData() {
     allData = new HashMap<String, Map<String, String>>();
 
     Element root = fetchStateDocument().getDocumentElement();
@@ -156,13 +159,11 @@
       }
       currentData.put(field, turnEvil(value));
     }
-
-    return allData;
   }
 
   public void setAppData(String id, String key, String value) {
     if (allData == null) {
-      setupPeopleData();
+      setupAppData();
     }
 
     Map<String, String> personData = allData.get(id);