test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java in calabash-android-0.3.8 vs test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java in calabash-android-0.4.0.pre1
- old
+ new
@@ -1,8 +1,9 @@
package sh.calaba.instrumentationbackend.actions;
import java.io.*;
+import java.util.Map;
import java.util.Properties;
import java.util.List;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -14,13 +15,16 @@
import android.graphics.Bitmap;
import android.view.View;
import sh.calaba.instrumentationbackend.Command;
import sh.calaba.instrumentationbackend.InstrumentationBackend;
import sh.calaba.instrumentationbackend.Result;
+import sh.calaba.instrumentationbackend.query.QueryResult;
+import sh.calaba.instrumentationbackend.query.Query;
import sh.calaba.org.codehaus.jackson.map.DeserializationConfig.Feature;
import sh.calaba.org.codehaus.jackson.map.ObjectMapper;
import android.util.Log;
+import sh.calaba.org.codehaus.jackson.type.TypeReference;
public class HttpServer extends NanoHTTPD {
private static final String TAG = "InstrumentationBackend";
private boolean running = true;
private boolean ready = false;
@@ -65,9 +69,20 @@
{
System.out.println("URI: " + uri);
if (uri.endsWith("/ping")) {
return new NanoHTTPD.Response( HTTP_OK, MIME_HTML, "pong");
+ } else if (uri.endsWith("/query")) {
+ try {
+ String commandString = params.getProperty("json");
+ ObjectMapper mapper = new ObjectMapper();
+ Map<String, String> command = mapper.readValue(commandString, new TypeReference<Map<String, String>>() {});
+ QueryResult result = new Query(command.get("query")).execute();
+ return new NanoHTTPD.Response( HTTP_OK, MIME_HTML, result.asJson());
+ } catch (IOException e) {
+ e.printStackTrace();
+ return new Response(HTTP_INTERNALERROR, MIME_PLAINTEXT, "Could not parse arguments as JSON");
+ }
} else if (uri.endsWith("/kill")) {
lock.lock();
try {
running = false;
System.out.println("Stopping test server");