diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-19 17:14:32 +0100 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-19 17:14:32 +0100 |
commit | 3c33d22719225630761cb1ad97252dab977e2e36 (patch) | |
tree | 587d90d4e7ae9541c29c6d5189f61b5590835bae /same/src/main/java/com/orbekk/same/ClientServiceImpl.java | |
parent | a1c3d1ad9b2815e827e52662b91974145e9b5a20 (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.java | 22 |
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."); } } |