+
+ @Override
+ public Status persistConfiguration(List<ConfigurationObject> config, String fileName) {
+ String destination = String.format("%s%s", root, fileName);
+ return objWriter.write(config, destination);
+ }
+
+ @Override
+ public List<ConfigurationObject> retrieveConfiguration(IObjectReader reader, String fileName) {
+ if (!clusterServices.amICoordinator()) {
+ return Collections.emptyList();
+ }
+ String source = String.format("%s%s", root, fileName);
+ Object obj = objReader.read(reader, source);
+ if (obj == null) {
+ return Collections.<ConfigurationObject> emptyList();
+ }
+ if (obj instanceof ConcurrentMap) {
+ return new ArrayList<ConfigurationObject>(((ConcurrentMap)obj).values());
+ }
+ return (List<ConfigurationObject>) obj;
+ }