@Override
public Instance addInstance(RemotingContext context, String instanceId) throws RemoteException {
String connectionString = new RestConnectionBuilder().instance().getConnectionString();
try {
InstanceRest instance = new InstanceRest(null, "OK", null, instanceId);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
new JsonRestResponseHandler().serialize(instance, bos);
ClientResponse clientResponse = doRequest(context, connectionString, new HashMap<>(), bos.toString(CHARACTER_ENCODING), REQUEST_MODE.POST);
try {
instance = new JsonRestResponseHandler().deserialize(InstanceRest.class, clientResponse.getEntityInputStream());
} finally {
clientResponse.close();
}
return instance;
} catch(RestException e) {
throw new RemoteException("Unable to parse remote bag definition", e);
} catch(UnsupportedEncodingException e) {
throw new RemoteException("Unable to serialize bag", e);
}
}