summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/ClientServiceImpl.java
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-01-19 17:14:32 +0100
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-01-19 17:14:32 +0100
commit3c33d22719225630761cb1ad97252dab977e2e36 (patch)
tree587d90d4e7ae9541c29c6d5189f61b5590835bae /same/src/main/java/com/orbekk/same/ClientServiceImpl.java
parenta1c3d1ad9b2815e827e52662b91974145e9b5a20 (diff)
Implement the library interface to a SameClientImpl.
Diffstat (limited to 'same/src/main/java/com/orbekk/same/ClientServiceImpl.java')
-rw-r--r--same/src/main/java/com/orbekk/same/ClientServiceImpl.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java
index 46cdd86..75df9cc 100644
--- a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java
+++ b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java
@@ -1,5 +1,6 @@
package com.orbekk.same;
+import org.codehaus.jackson.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,16 +53,29 @@ public class ClientServiceImpl implements ClientService, UrlReceiver {
"Run discovery service.", masterUrl);
}
}
+
+ String lib_get(String name) {
+ return state.getDataOf(name);
+ }
+
+ <T> T lib_get(String name, TypeReference<T> type) {
+ return state.getParsedData(name, type);
+ }
- public boolean sendStateUpdate(String componentName, String data,
- long revision) {
+ void lib_set(String name, String data) throws UpdateConflict {
String masterUrl = state.getDataOf(".masterUrl");
+ long revision = state.getRevision(name) + 1;
MasterService master = connections.getMaster(masterUrl);
try {
- return master.updateStateRequest(componentName, data, revision);
+ boolean success = master.updateStateRequest(name, data,
+ revision);
+ if (!success) {
+ throw new UpdateConflict("State update conflict when " +
+ "updating " + name);
+ }
} catch (Exception e) {
logger.error("Unable to contact master. Update fails.");
- return false;
+ throw new UpdateConflict("Unable to contact master. Update fails.");
}
}