From 181fead894b660893e0e09274e609ec8ee4230a1 Mon Sep 17 00:00:00 2001 From: radhika Date: Sun, 4 May 2014 17:34:10 -0400 Subject: [PATCH] 2525: return map instead of json string for the call method. --- sdk/java/ArvadosSDKJavaExample.java | 17 +-- .../java/org/arvados/sdk/java/Arvados.java | 29 ++-- .../org/arvados/sdk/java/ArvadosTest.java | 126 ++++++------------ 3 files changed, 64 insertions(+), 108 deletions(-) diff --git a/sdk/java/ArvadosSDKJavaExample.java b/sdk/java/ArvadosSDKJavaExample.java index aaffe2befc..90ee6ace3d 100644 --- a/sdk/java/ArvadosSDKJavaExample.java +++ b/sdk/java/ArvadosSDKJavaExample.java @@ -7,9 +7,6 @@ import org.arvados.sdk.java.Arvados; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; - import java.io.File; import java.io.BufferedWriter; import java.io.FileWriter; @@ -32,16 +29,13 @@ public class ArvadosSDKJavaExample { Map params = new HashMap(); - String response = arv.call("users", "list", params); + Map response = arv.call("users", "list", params); System.out.println("Arvados users.list:\n" + response); // get uuid of the first user from the response - JSONParser parser = new JSONParser(); - Object obj = parser.parse(response); - JSONObject jsonObject = (JSONObject) obj; - List items = (List)jsonObject.get("items"); + List items = (List)response.get("items"); - JSONObject firstUser = (JSONObject)items.get(0); + Map firstUser = (Map)items.get(0); String userUuid = (String)firstUser.get("uuid"); // Make a users.get call on the uuid obtained above @@ -60,10 +54,7 @@ public class ArvadosSDKJavaExample { System.out.println("Arvados users.create:\n" + response); // delete the newly created user - parser = new JSONParser(); - obj = parser.parse(response); - jsonObject = (JSONObject) obj; - userUuid = (String)jsonObject.get("uuid"); + userUuid = (String)response.get("uuid"); params = new HashMap(); params.put("uuid", userUuid); response = arv.call("users", "delete", params); diff --git a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java index 11649ebb9e..fb71493df9 100644 --- a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java +++ b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java @@ -59,7 +59,8 @@ public class Arvados { this (apiName, apiVersion, null, null, null); } - public Arvados (String apiName, String apiVersion, String token, String host, String hostInsecure){ + public Arvados (String apiName, String apiVersion, String token, + String host, String hostInsecure){ try { this.apiName = apiName; this.apiVersion = apiVersion; @@ -88,7 +89,8 @@ public class Arvados { if (hostInsecure != null) { arvadosApiHostInsecure = Boolean.valueOf(hostInsecure); } else { - arvadosApiHostInsecure = "true".equals(System.getenv().get("ARVADOS_API_HOST_INSECURE")) ? true : false; + arvadosApiHostInsecure = + "true".equals(System.getenv().get("ARVADOS_API_HOST_INSECURE")) ? true : false; } // Create HTTP_TRANSPORT object @@ -110,7 +112,8 @@ public class Arvados { * @return Object * @throws Exception */ - public String call(String resourceName, String methodName, Map paramsMap) throws Exception { + public Map call(String resourceName, String methodName, + Map paramsMap) throws Exception { RestMethod method = getMatchingMethod(resourceName, methodName); HashMap parameters = loadParameters(paramsMap, method); @@ -127,17 +130,19 @@ public class Arvados { // possibly required content HttpContent content = null; - if (!method.getHttpMethod().equals("GET") && !method.getHttpMethod().equals("DELETE")) { + if (!method.getHttpMethod().equals("GET") && + !method.getHttpMethod().equals("DELETE")) { String objectName = resourceName.substring(0, resourceName.length()-1); Object requestBody = paramsMap.get(objectName); if (requestBody == null) { error("POST method requires content object " + objectName); } - content = new ByteArrayContent("application/json", ((String)requestBody).getBytes()); + content = new ByteArrayContent("application/json",((String)requestBody).getBytes()); } - HttpRequest request = requestFactory.buildRequest(method.getHttpMethod(), url, content); + HttpRequest request = + requestFactory.buildRequest(method.getHttpMethod(), url, content); // make the request List authHeader = new ArrayList(); @@ -145,9 +150,11 @@ public class Arvados { request.getHeaders().put("Authorization", authHeader); String response = request.execute().parseAsString(); - logger.debug(response); + Map responseMap = jsonFactory.createJsonParser(response).parse(HashMap.class); - return response; + logger.debug(responseMap); + + return responseMap; } catch (Exception e) { e.printStackTrace(); throw e; @@ -238,7 +245,8 @@ public class Arvados { try { Discovery discovery; - Discovery.Builder discoveryBuilder = new Discovery.Builder(httpTransport, jsonFactory, null); + Discovery.Builder discoveryBuilder = + new Discovery.Builder(httpTransport, jsonFactory, null); discoveryBuilder.setRootUrl(arvadosRootUrl); discoveryBuilder.setApplicationName(apiName); @@ -253,7 +261,8 @@ public class Arvados { } private void putParameter(String argName, Map parameters, - String parameterName, JsonSchema parameter, Object parameterValue) throws Exception { + String parameterName, JsonSchema parameter, Object parameterValue) + throws Exception { Object value = parameterValue; if (parameter != null) { if ("boolean".equals(parameter.getType())) { diff --git a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java index 9712f4bc40..110114eb18 100644 --- a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java +++ b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java @@ -11,9 +11,6 @@ import org.junit.Test; import static org.junit.Assert.*; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; - /** * Unit test for Arvados. */ @@ -29,21 +26,14 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("users", "list", params); - assertTrue("Expected users.list in response", response.contains("arvados#userList")); - assertTrue("Expected users.list in response", response.contains("uuid")); - - JSONParser parser = new JSONParser(); - Object obj = parser.parse(response); - JSONObject jsonObject = (JSONObject) obj; - - assertEquals("Expected kind to be users.list", "arvados#userList", jsonObject.get("kind")); + Map response = arv.call("users", "list", params); + assertEquals("Expected kind to be users.list", "arvados#userList", response.get("kind")); - List items = (List)jsonObject.get("items"); + List items = (List)response.get("items"); assertNotNull("expected users list items", items); assertTrue("expected at least one item in users list", items.size()>0); - JSONObject firstUser = (JSONObject)items.get(0); + Map firstUser = (Map)items.get(0); assertNotNull ("Expcted at least one user", firstUser); assertEquals("Expected kind to be user", "arvados#user", firstUser.get("kind")); @@ -61,15 +51,13 @@ public class ArvadosTest { // call user.system and get uuid of this user Map params = new HashMap(); - String response = arv.call("users", "list", params); - JSONParser parser = new JSONParser(); - Object obj = parser.parse(response); - JSONObject jsonObject = (JSONObject) obj; - assertNotNull("expected users list", jsonObject); - List items = (List)jsonObject.get("items"); + Map response = arv.call("users", "list", params); + + assertNotNull("expected users list", response); + List items = (List)response.get("items"); assertNotNull("expected users list items", items); - JSONObject firstUser = (JSONObject)items.get(0); + Map firstUser = (Map)items.get(0); String userUuid = (String)firstUser.get("uuid"); // invoke users.get with the system user uuid @@ -78,10 +66,8 @@ public class ArvadosTest { response = arv.call("users", "get", params); - //JSONParser parser = new JSONParser(); - jsonObject = (JSONObject) parser.parse(response);; - assertNotNull("Expected uuid for first user", jsonObject.get("uuid")); - assertEquals("Expected system user uuid", userUuid, jsonObject.get("uuid")); + assertNotNull("Expected uuid for first user", response.get("uuid")); + assertEquals("Expected system user uuid", userUuid, response.get("uuid")); } /** @@ -94,13 +80,11 @@ public class ArvadosTest { Map params = new HashMap(); params.put("user", "{}"); - String response = arv.call("users", "create", params); + Map response = arv.call("users", "create", params); - JSONParser parser = new JSONParser(); - JSONObject jsonObject = (JSONObject) parser.parse(response); - assertEquals("Expected kind to be user", "arvados#user", jsonObject.get("kind")); + assertEquals("Expected kind to be user", "arvados#user", response.get("kind")); - Object uuid = jsonObject.get("uuid"); + Object uuid = response.get("uuid"); assertNotNull("Expected uuid for first user", uuid); // delete the object @@ -151,13 +135,11 @@ public class ArvadosTest { Map params = new HashMap(); params.put("user", "{}"); - String response = arv.call("users", "create", params); + Map response = arv.call("users", "create", params); - JSONParser parser = new JSONParser(); - JSONObject jsonObject = (JSONObject) parser.parse(response); - assertEquals("Expected kind to be user", "arvados#user", jsonObject.get("kind")); + assertEquals("Expected kind to be user", "arvados#user", response.get("kind")); - Object uuid = jsonObject.get("uuid"); + Object uuid = response.get("uuid"); assertNotNull("Expected uuid for first user", uuid); // update this user @@ -166,11 +148,9 @@ public class ArvadosTest { params.put("uuid", uuid); response = arv.call("users", "update", params); - parser = new JSONParser(); - jsonObject = (JSONObject) parser.parse(response); - assertEquals("Expected kind to be user", "arvados#user", jsonObject.get("kind")); + assertEquals("Expected kind to be user", "arvados#user", response.get("kind")); - uuid = jsonObject.get("uuid"); + uuid = response.get("uuid"); assertNotNull("Expected uuid for first user", uuid); // delete the object @@ -275,12 +255,10 @@ public class ArvadosTest { Map params = new HashMap(); params.put("pipeline_template", new String(data)); - String response = arv.call("pipeline_templates", "create", params); + Map response = arv.call("pipeline_templates", "create", params); - JSONParser parser = new JSONParser(); - JSONObject jsonObject = (JSONObject) parser.parse(response); - assertEquals("Expected kind to be user", "arvados#pipelineTemplate", jsonObject.get("kind")); - String uuid = (String)jsonObject.get("uuid"); + assertEquals("Expected kind to be user", "arvados#pipelineTemplate", response.get("kind")); + String uuid = (String)response.get("uuid"); assertNotNull("Expected uuid for pipeline template", uuid); // get the pipeline @@ -288,10 +266,8 @@ public class ArvadosTest { params.put("uuid", uuid); response = arv.call("pipeline_templates", "get", params); - parser = new JSONParser(); - jsonObject = (JSONObject) parser.parse(response); - assertEquals("Expected kind to be user", "arvados#pipelineTemplate", jsonObject.get("kind")); - assertEquals("Expected uuid for pipeline template", uuid, jsonObject.get("uuid")); + assertEquals("Expected kind to be user", "arvados#pipelineTemplate", response.get("kind")); + assertEquals("Expected uuid for pipeline template", uuid, response.get("uuid")); // delete the object params = new HashMap(); @@ -313,14 +289,8 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("users", "list", params); - assertTrue("Expected users.list in response", response.contains("arvados#userList")); - assertTrue("Expected users.list in response", response.contains("uuid")); - - JSONParser parser = new JSONParser(); - Object obj = parser.parse(response); - JSONObject jsonObject = (JSONObject) obj; - assertEquals("Expected kind to be users.list", "arvados#userList", jsonObject.get("kind")); + Map response = arv.call("users", "list", params); + assertEquals("Expected kind to be users.list", "arvados#userList", response.get("kind")); } /** @@ -333,17 +303,10 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("users", "list", params); - assertTrue("Expected users.list in response", response.contains("arvados#userList")); - assertTrue("Expected users.list in response", response.contains("uuid")); + Map response = arv.call("users", "list", params); + assertEquals("Expected users.list in response", "arvados#userList", response.get("kind")); - JSONParser parser = new JSONParser(); - Object obj = parser.parse(response); - JSONObject jsonObject = (JSONObject) obj; - - assertEquals("Expected kind to be users.list", "arvados#userList", jsonObject.get("kind")); - - List items = (List)jsonObject.get("items"); + List items = (List)response.get("items"); assertNotNull("expected users list items", items); assertTrue("expected at least one item in users list", items.size()>0); @@ -355,13 +318,9 @@ public class ArvadosTest { response = arv.call("users", "list", params); - parser = new JSONParser(); - obj = parser.parse(response); - jsonObject = (JSONObject) obj; - - assertEquals("Expected kind to be users.list", "arvados#userList", jsonObject.get("kind")); + assertEquals("Expected kind to be users.list", "arvados#userList", response.get("kind")); - items = (List)jsonObject.get("items"); + items = (List)response.get("items"); assertNotNull("expected users list items", items); assertTrue("expected at least one item in users list", items.size()>0); @@ -375,8 +334,8 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); + Map response = arv.call("links", "list", params); + assertEquals("Expected links.list in response", "arvados#linkList", response.get("kind")); String[] filters = new String[3]; filters[0] = "name"; @@ -387,8 +346,8 @@ public class ArvadosTest { response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); - assertFalse("Expected no can_manage in response", response.contains("\"name\":\"can_manage\"")); + assertEquals("Expected links.list in response", "arvados#linkList", response.get("kind")); + assertFalse("Expected no can_manage in response", response.toString().contains("\"name\":\"can_manage\"")); } @Test @@ -397,8 +356,8 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); + Map response = arv.call("links", "list", params); + assertEquals("Expected links.list in response", "arvados#linkList", response.get("kind")); List filters = new ArrayList(); filters.add("name"); @@ -409,8 +368,8 @@ public class ArvadosTest { response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); - assertFalse("Expected no can_manage in response", response.contains("\"name\":\"can_manage\"")); + assertEquals("Expected links.list in response", "arvados#linkList", response.get("kind")); + assertFalse("Expected no can_manage in response", response.toString().contains("\"name\":\"can_manage\"")); } @Test @@ -419,17 +378,14 @@ public class ArvadosTest { Map params = new HashMap(); - String response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); - Map where = new HashMap(); where.put("where", "updated_at > '2014-05-01'"); params.put("where", where); - response = arv.call("links", "list", params); + Map response = arv.call("links", "list", params); - assertTrue("Expected links.list in response", response.contains("arvados#linkList")); + assertEquals("Expected links.list in response", "arvados#linkList", response.get("kind")); } } \ No newline at end of file -- 2.30.2