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]>