X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fconfig%2FFileModuleShardConfigProvider.java;h=2920f45fe93d198b935fd50690a97ffb0cfd342c;hb=8ed5603b4f3503559f2f85137c42d7605ebfd3e9;hp=2651744d9af255a421b0627bb64fc29496c39a05;hpb=ecccb6d5b43dd73aef0d2d19349d19ee9b4728f7;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/FileModuleShardConfigProvider.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/FileModuleShardConfigProvider.java index 2651744d9a..2920f45fe9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/FileModuleShardConfigProvider.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/FileModuleShardConfigProvider.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.datastore.config; -import com.google.common.collect.ImmutableSet; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import com.typesafe.config.ConfigObject; @@ -15,6 +14,8 @@ import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,12 +37,12 @@ public class FileModuleShardConfigProvider implements ModuleShardConfigProvider } @Override - public Map retrieveModuleConfigs(Configuration configuration) { + public Map retrieveModuleConfigs(Configuration configuration) { File moduleShardsFile = new File("./configuration/initial/" + moduleShardsConfigPath); File modulesFile = new File("./configuration/initial/" + modulesConfigPath); Config moduleShardsConfig = null; - if(moduleShardsFile.exists()) { + if (moduleShardsFile.exists()) { LOG.info("module shards config file exists - reading config from it"); moduleShardsConfig = ConfigFactory.parseFile(moduleShardsFile); } else { @@ -50,7 +51,7 @@ public class FileModuleShardConfigProvider implements ModuleShardConfigProvider } Config modulesConfig = null; - if(modulesFile.exists()) { + if (modulesFile.exists()) { LOG.info("modules config file exists - reading config from it"); modulesConfig = ConfigFactory.parseFile(modulesFile); } else { @@ -58,65 +59,66 @@ public class FileModuleShardConfigProvider implements ModuleShardConfigProvider modulesConfig = ConfigFactory.load(modulesConfigPath); } - Map moduleConfigMap = readModuleShardsConfig(moduleShardsConfig); + Map moduleConfigMap = readModuleShardsConfig(moduleShardsConfig); readModulesConfig(modulesConfig, moduleConfigMap, configuration); return moduleConfigMap; } - private static void readModulesConfig(final Config modulesConfig, Map moduleConfigMap, + private static void readModulesConfig(final Config modulesConfig, Map moduleConfigMap, Configuration configuration) { List modulesConfigObjectList = modulesConfig.getObjectList("modules"); - for(ConfigObject o : modulesConfigObjectList){ - ConfigObjectWrapper w = new ConfigObjectWrapper(o); + for (ConfigObject o : modulesConfigObjectList) { + ConfigObjectWrapper wrapper = new ConfigObjectWrapper(o); - String moduleName = w.stringValue("name"); - ModuleConfig moduleConfig = moduleConfigMap.get(moduleName); - if(moduleConfig == null) { - moduleConfig = new ModuleConfig(moduleName); - moduleConfigMap.put(moduleName, moduleConfig); + String moduleName = wrapper.stringValue("name"); + ModuleConfig.Builder builder = moduleConfigMap.get(moduleName); + if (builder == null) { + builder = ModuleConfig.builder(moduleName); + moduleConfigMap.put(moduleName, builder); } - moduleConfig.setNameSpace(w.stringValue("namespace")); - moduleConfig.setShardStrategy(ShardStrategyFactory.newShardStrategyInstance(moduleName, - w.stringValue("shard-strategy"), configuration)); + builder.nameSpace(wrapper.stringValue("namespace")); + builder.shardStrategy(ShardStrategyFactory.newShardStrategyInstance(moduleName, + wrapper.stringValue("shard-strategy"), configuration)); } } - private static Map readModuleShardsConfig(final Config moduleShardsConfig) { + private static Map readModuleShardsConfig(final Config moduleShardsConfig) { List moduleShardsConfigObjectList = moduleShardsConfig.getObjectList("module-shards"); - Map moduleConfigMap = new HashMap<>(); - for(ConfigObject moduleShardConfigObject : moduleShardsConfigObjectList){ + Map moduleConfigMap = new HashMap<>(); + for (ConfigObject moduleShardConfigObject : moduleShardsConfigObjectList) { String moduleName = moduleShardConfigObject.get("name").unwrapped().toString(); - ModuleConfig moduleConfig = new ModuleConfig(moduleName); + ModuleConfig.Builder builder = ModuleConfig.builder(moduleName); List shardsConfigObjectList = moduleShardConfigObject.toConfig().getObjectList("shards"); - for(ConfigObject shard : shardsConfigObjectList){ + for (ConfigObject shard : shardsConfigObjectList) { String shardName = shard.get("name").unwrapped().toString(); - List replicas = shard.toConfig().getStringList("replicas"); - moduleConfig.addShardConfig(shardName, ImmutableSet.copyOf(replicas)); + List replicas = shard.toConfig().getStringList("replicas").stream() + .map(MemberName::forName).collect(Collectors.toList()); + builder.shardConfig(shardName, replicas); } - moduleConfigMap.put(moduleName, moduleConfig); + moduleConfigMap.put(moduleName, builder); } return moduleConfigMap; } - private static class ConfigObjectWrapper{ + private static class ConfigObjectWrapper { private final ConfigObject configObject; - ConfigObjectWrapper(final ConfigObject configObject){ + ConfigObjectWrapper(final ConfigObject configObject) { this.configObject = configObject; } - public String stringValue(final String name){ + public String stringValue(final String name) { return configObject.get(name).unwrapped().toString(); } }