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=ba28e5dc3ac8c13b27a44d017653a0b156e5304b;hb=bdce894fa73714aa9f68eadad3524cfc94dc71d2;hp=9ceac9561e6afcad28d2e82b4d6b432dbc05dd0b;hpb=5273c33b6f2051a7e3b1afcc4eeae4e457b6f26c;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 9ceac9561e..ba28e5dc3a 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; @@ -30,18 +31,18 @@ public class FileModuleShardConfigProvider implements ModuleShardConfigProvider private final String moduleShardsConfigPath; private final String modulesConfigPath; - public FileModuleShardConfigProvider(String moduleShardsConfigPath, String modulesConfigPath) { + public FileModuleShardConfigProvider(final String moduleShardsConfigPath, final String modulesConfigPath) { this.moduleShardsConfigPath = moduleShardsConfigPath; this.modulesConfigPath = modulesConfigPath; } @Override - public Map retrieveModuleConfigs(Configuration configuration) { - File moduleShardsFile = new File("./configuration/initial/" + moduleShardsConfigPath); - File modulesFile = new File("./configuration/initial/" + modulesConfigPath); + public Map retrieveModuleConfigs(final Configuration configuration) { + final File moduleShardsFile = new File(moduleShardsConfigPath); + final File modulesFile = new File(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,62 @@ public class FileModuleShardConfigProvider implements ModuleShardConfigProvider modulesConfig = ConfigFactory.load(modulesConfigPath); } - Map moduleConfigMap = readModuleShardsConfig(moduleShardsConfig); + final Map moduleConfigMap = readModuleShardsConfig(moduleShardsConfig); readModulesConfig(modulesConfig, moduleConfigMap, configuration); return moduleConfigMap; } - private void readModulesConfig(final Config modulesConfig, Map moduleConfigMap, - Configuration configuration) { - List modulesConfigObjectList = modulesConfig.getObjectList("modules"); + private static void readModulesConfig(final Config modulesConfig, + final Map moduleConfigMap, final Configuration configuration) { + final List modulesConfigObjectList = modulesConfig.getObjectList("modules"); - for(ConfigObject o : modulesConfigObjectList){ - ConfigObjectWrapper w = new ConfigObjectWrapper(o); + for (final ConfigObject o : modulesConfigObjectList) { + final 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); - } + final String moduleName = wrapper.stringValue("name"); + final ModuleConfig.Builder builder = moduleConfigMap.computeIfAbsent(moduleName, ModuleConfig::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) { - List moduleShardsConfigObjectList = + private static Map readModuleShardsConfig(final Config moduleShardsConfig) { + final List moduleShardsConfigObjectList = moduleShardsConfig.getObjectList("module-shards"); - Map moduleConfigMap = new HashMap<>(); - for(ConfigObject moduleShardConfigObject : moduleShardsConfigObjectList){ - String moduleName = moduleShardConfigObject.get("name").unwrapped().toString(); - ModuleConfig moduleConfig = new ModuleConfig(moduleName); + final Map moduleConfigMap = new HashMap<>(); + for (final ConfigObject moduleShardConfigObject : moduleShardsConfigObjectList) { + final String moduleName = moduleShardConfigObject.get("name").unwrapped().toString(); + final ModuleConfig.Builder builder = ModuleConfig.builder(moduleName); - List shardsConfigObjectList = + final List shardsConfigObjectList = moduleShardConfigObject.toConfig().getObjectList("shards"); - for(ConfigObject shard : shardsConfigObjectList){ - String shardName = shard.get("name").unwrapped().toString(); - List replicas = shard.toConfig().getStringList("replicas"); - moduleConfig.addShardConfig(shardName, ImmutableSet.copyOf(replicas)); + for (final ConfigObject shard : shardsConfigObjectList) { + final String shardName = shard.get("name").unwrapped().toString(); + final 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(); } }