2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.cluster.datastore.config;
10 import com.typesafe.config.Config;
12 import org.osgi.service.component.annotations.Activate;
13 import org.osgi.service.component.annotations.Component;
14 import org.osgi.service.component.annotations.Deactivate;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
19 * Implementation of ModuleShardConfigProvider that reads the module and shard configuration from files.
21 * @author Thomas Pantelis
23 @Component(immediate = true, service = ModuleShardConfigProvider.class)
24 public class FileModuleShardConfigProvider extends AbstractModuleShardConfigProvider {
25 private static final Logger LOG = LoggerFactory.getLogger(FileModuleShardConfigProvider.class);
27 private final String moduleShardsConfigPath;
28 private final String modulesConfigPath;
30 public FileModuleShardConfigProvider() {
31 this("./configuration/initial/module-shards.conf", "./configuration/initial/modules.conf");
34 public FileModuleShardConfigProvider(final String moduleShardsConfigPath, final String modulesConfigPath) {
35 this.moduleShardsConfigPath = moduleShardsConfigPath;
36 this.modulesConfigPath = modulesConfigPath;
40 public Map<String, ModuleConfig.Builder> retrieveModuleConfigs(final Configuration configuration) {
41 Config moduleShardsConfig = loadConfigFromPath(moduleShardsConfigPath);
42 Config modulesConfig = loadConfigFromPath(modulesConfigPath);
44 final Map<String, ModuleConfig.Builder> moduleConfigMap = readModuleShardsConfig(moduleShardsConfig);
45 readModulesConfig(modulesConfig, moduleConfigMap, configuration);
46 return moduleConfigMap;
51 LOG.info("Shard configuration provider started");
56 LOG.info("Shard configuration provider stopped");