Till Westmann has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1318

Change subject: ASTERIXDB-1714: Eliminate dependency on org.json
......................................................................

ASTERIXDB-1714: Eliminate dependency on org.json

Change-Id: I3ada73e15c781a77b5b3019f246e1a1fc23a2377
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/QueryServiceServlet.java
1 file changed, 20 insertions(+), 8 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/18/1318/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/QueryServiceServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/QueryServiceServlet.java
index 1b6d718..19b0d65 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/QueryServiceServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/QueryServiceServlet.java
@@ -59,8 +59,10 @@
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.dataset.IHyracksDataset;
 import org.apache.hyracks.client.dataset.HyracksDataset;
-import org.json.JSONException;
-import org.json.JSONObject;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
 
 public class QueryServiceServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
@@ -417,6 +419,16 @@
         }
     }
 
+    private String getOptText(JsonNode node, String fieldName) {
+        final JsonNode value = node.get(fieldName);
+        return value != null ? value.asText() : null;
+    }
+
+    private boolean getOptBoolean(JsonNode node, String fieldName, boolean 
defaultValue) {
+        final JsonNode value = node.get(fieldName);
+        return value != null ? value.asBoolean() : defaultValue;
+    }
+
     private RequestParameters getRequestParameters(HttpServletRequest request) 
throws IOException {
         final String contentTypeParam = request.getContentType();
         int sep = contentTypeParam.indexOf(';');
@@ -424,12 +436,12 @@
         RequestParameters param = new RequestParameters();
         if (MediaType.JSON.str().equals(contentType)) {
             try {
-                JSONObject jsonRequest = new 
JSONObject(getRequestBody(request));
-                param.statement = 
jsonRequest.getString(Parameter.STATEMENT.str());
-                param.format = 
toLower(jsonRequest.optString(Parameter.FORMAT.str()));
-                param.pretty = jsonRequest.optBoolean(Parameter.PRETTY.str());
-                param.clientContextID = 
jsonRequest.optString(Parameter.CLIENT_ID.str());
-            } catch (JSONException e) {
+                JsonNode jsonRequest = new 
ObjectMapper().readValue(getRequestBody(request), JsonNode.class);
+                param.statement = 
jsonRequest.get(Parameter.STATEMENT.str()).asText();
+                param.format = toLower(getOptText(jsonRequest, 
Parameter.FORMAT.str()));
+                param.pretty = getOptBoolean(jsonRequest, 
Parameter.PRETTY.str(), false);
+                param.clientContextID = getOptText(jsonRequest, 
Parameter.CLIENT_ID.str());
+            } catch (JsonParseException|JsonMappingException e) {
                 // if the JSON parsing fails, the statement is empty and we 
get an empty statement error
                 GlobalConfig.ASTERIX_LOGGER.log(Level.SEVERE, e.getMessage(), 
e);
             }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1318
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3ada73e15c781a77b5b3019f246e1a1fc23a2377
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>

Reply via email to