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:
parent
d46a124be3
commit
77eb357646
164
src/main/java/com/cloudius/api/APIClient.java
Normal file
164
src/main/java/com/cloudius/api/APIClient.java
Normal 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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user