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");