APIClient a Json Client Stub

The client hides the comunication details between the jmx and the REST
API.

The current stub was created so an MBean that uses it, can compile and
run with no errors.

Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This commit is contained in:
Amnon Heiman 2015-04-13 09:28:47 +03:00
parent d46a124be3
commit 77eb357646
2 changed files with 167 additions and 0 deletions

View File

@ -0,0 +1,164 @@
/*
* Copyright 2015 Cloudius Systems
*/
package com.cloudius.api;
import java.io.StringReader;
import java.net.InetAddress;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonReaderFactory;
import javax.json.JsonString;
import javax.management.openmbean.TabularData;
import javax.ws.rs.core.UriBuilder;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.WebResource.Builder;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import javax.ws.rs.core.MediaType;
public class APIClient {
JsonReaderFactory factory = Json.createReaderFactory(null);
public static String getBaseUrl() {
return "http://" + System.getProperty("apiaddress", "localhost") + ":"
+ System.getProperty("apiport", "10000");
}
public Builder get(String path) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(UriBuilder.fromUri(getBaseUrl())
.build());
return service.path(path).accept(MediaType.APPLICATION_JSON);
}
public String getStringValue(String string) {
if (string != "") {
return get(string).get(String.class);
}
return "";
}
public JsonReader getReader(String string) {
return factory.createReader(new StringReader(getStringValue(string)));
}
public String[] getStringArrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public int getIntValue(String string) {
return Integer.parseInt(getStringValue(string));
}
public boolean getBooleanValue(String string) {
return Boolean.parseBoolean(getStringValue(string));
}
public double getDoubleValue(String string) {
return Double.parseDouble(getStringValue(string));
}
public List<String> getListStrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<List<String>, List<String>> getMapListStrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<String, String> getMapStrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public List<InetAddress> getListInetAddressValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<String, TabularData> getMapStringTabularDataValue(String string) {
// TODO Auto-generated method stub
return null;
}
public long getLongValue(String string) {
return Long.parseLong(getStringValue(string));
}
public Map<InetAddress, Float> getMapInetAddressFloatValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<String, Long> getMapStringLongValue(String string) {
// TODO Auto-generated method stub
return null;
}
public long[] getLongArrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<String, Integer> getMapStringIntegerValue(String string) {
// TODO Auto-generated method stub
return null;
}
public int[] getIntArrValue(String string) {
// TODO Auto-generated method stub
return null;
}
public Map<String, Long> getListMapStringLongValue(String string) {
if (string.equals("")) {
return null;
}
// Builder builder =
String vals = get(string).get(String.class);
System.out.println(vals);
JsonReader reader = getReader(string);
JsonArray arr = reader.readArray();
System.out.println(arr.size());
Map<String, Long> map = new HashMap<String, Long>();
for (int i = 0; i < arr.size(); i++) {
JsonObject obj = arr.getJsonObject(i);
Iterator<String> it = obj.keySet().iterator();
String key = "";
long val = -1;
while (it.hasNext()) {
String k = (String) it.next();
System.out.println(k);
if (obj.get(k) instanceof JsonString) {
key = obj.getString(k);
} else {
val = obj.getInt(k);
}
}
if (val > 0 && !key.equals("")) {
map.put(key, val);
}
}
reader.close();
// .get(String.class);
return map;
}
}

View File

@ -3,9 +3,12 @@
*/
package com.cloudius.main;
import com.cloudius.api.APIClient;
public class Main {
public static void main(String[] args) throws Exception {
System.out.println("Connecting to " + APIClient.getBaseUrl());
System.out.println("Starting the JMX server");
Thread.sleep(Long.MAX_VALUE);
}