Remove ConfigProvider.
Change-Id: I6d578f5c3b934456cf37a0893e816cfc8d6340f1
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
<yangtools.binding.version>0.6.0-SNAPSHOT</yangtools.binding.version>
<!--versions for bits of the controller -->
<controller.version>0.4.1-SNAPSHOT</controller.version>
- <config.version>0.2.2-SNAPSHOT</config.version>
- <netconf.version>0.2.2-SNAPSHOT</netconf.version>
+ <config.version>0.2.3-SNAPSHOT</config.version>
+ <netconf.version>0.2.3-SNAPSHOT</netconf.version>
<mdsal.version>1.0-SNAPSHOT</mdsal.version>
<containermanager.version>0.5.1-SNAPSHOT</containermanager.version>
<switchmanager.api.version>0.6.1-SNAPSHOT</switchmanager.api.version>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>config-api</artifactId>
org.opendaylight.controller.config.api.jmx,
org.opendaylight.controller.config.api.jmx.constants,
org.opendaylight.controller.config.api.runtime,
- org.opendaylight.controller.config.stat,
</Export-Package>
</instructions>
</configuration>
+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.config.stat;
-
-import org.osgi.framework.BundleContext;
-
-/**
- * Subset of {@link org.osgi.framework.BundleContext}
- */
-public interface ConfigProvider {
- /**
- * Returns the value of the specified property. If the key is not found in
- * the Framework properties, the system properties are then searched. The
- * method returns {@code null} if the property is not found.
- *
- * <p>
- * All bundles must have permission to read properties whose names start
- * with "org.osgi.".
- *
- * @param key
- * The name of the requested property.
- * @return The value of the requested property, or {@code null} if the
- * property is undefined.
- * @throws SecurityException
- * If the caller does not have the appropriate
- * {@code PropertyPermission} to read the property, and the Java
- * Runtime Environment supports permissions.
- */
- String getProperty(String key);
-
- public static class ConfigProviderImpl implements ConfigProvider {
- private final BundleContext context;
-
- public ConfigProviderImpl(BundleContext context) {
- this.context = context;
- }
-
- @Override
- public String getProperty(String key) {
- return context.getProperty(key);
- }
-
- @Override
- public String toString() {
- return "ConfigProviderImpl{" + "context=" + context + '}';
- }
- }
-
-}
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>config-manager</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>config-persister-api</artifactId>
com.google.common.base,
org.w3c.dom,
org.osgi.framework,
- org.opendaylight.controller.config.stat
</Import-Package>
<Export-Package>
org.opendaylight.controller.config.persist.api,
package org.opendaylight.controller.config.persist.api.storage;
import org.opendaylight.controller.config.persist.api.Persister;
-import org.opendaylight.controller.config.stat.ConfigProvider;
+import org.osgi.framework.BundleContext;
/**
* Plugins for {@link org.opendaylight.controller.config.persist.api.Persister}
*/
public interface StorageAdapter extends Persister {
- void setProperties(ConfigProvider configProvider);
+ void setProperties(BundleContext bundleContext);
}
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>config-persister-file-adapter</artifactId>
javax.xml.transform.stream,
org.apache.commons.lang3,
org.opendaylight.controller.config.persist.api,
- org.opendaylight.controller.config.stat,
org.opendaylight.controller.config.persist.api.storage,
org.slf4j,
org.w3c.dom,
import com.google.common.io.Files;
import org.apache.commons.lang3.StringUtils;
import org.opendaylight.controller.config.persist.api.storage.StorageAdapter;
-import org.opendaylight.controller.config.stat.ConfigProvider;
+import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
private File storage;
@Override
- public void setProperties(ConfigProvider configProvider) {
- File storage = extractStorageFileFromProperties(configProvider);
+ public void setProperties(BundleContext bundleContext) {
+ File storage = extractStorageFileFromProperties(bundleContext);
logger.debug("Using file {}", storage.getAbsolutePath());
// Create file if it does not exist
File parentFile = storage.getAbsoluteFile().getParentFile();
numberOfStoredBackups = numberOfBackups;
}
- private static File extractStorageFileFromProperties(ConfigProvider configProvider) {
- String fileStorageProperty = configProvider.getProperty(FILE_STORAGE_PROP);
+ private static File extractStorageFileFromProperties(BundleContext bundleContext) {
+ String fileStorageProperty = bundleContext.getProperty(FILE_STORAGE_PROP);
Preconditions.checkNotNull(fileStorageProperty, "Unable to find " + FILE_STORAGE_PROP
- + " in received properties :" + configProvider);
+ + " in received context :" + bundleContext);
File result = new File(fileStorageProperty);
- String numberOfBAckupsAsString = configProvider.getProperty(NUMBER_OF_BACKUPS);
+ String numberOfBAckupsAsString = bundleContext.getProperty(NUMBER_OF_BACKUPS);
if (numberOfBAckupsAsString != null) {
numberOfStoredBackups = Integer.valueOf(numberOfBAckupsAsString);
} else {
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>config-util</artifactId>
<parent>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-subsystem</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>logback-config</artifactId>
<name>${project.artifactId}</name>
<parent>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-subsystem</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
</parent>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<artifactId>config-subsystem</artifactId>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<parent>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-subsystem</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>threadpool-config-api</artifactId>
<parent>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-subsystem</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>threadpool-config-impl</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>yang-jmx-generator-it</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>yang-jmx-generator-plugin</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>yang-jmx-generator</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>yang-store-api</artifactId>
<parent>
<artifactId>config-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>yang-store-impl</artifactId>
<parent>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-subsystem</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>yang-test</artifactId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>yang-jmx-generator-plugin</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>yang-jmx-generator-plugin</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-api</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-manager</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-api</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<properties>
- <netconf.version>0.2.2-SNAPSHOT</netconf.version>
+ <netconf.version>0.2.3-SNAPSHOT</netconf.version>
</properties>
<artifactId>sal-netconf-connector</artifactId>
<scm>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>netconf-client</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>${netconf.version}</version>
</dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-manager</artifactId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>equinoxSDK381</groupId>
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>config-netconf-connector</artifactId>
<name>${project.artifactId}</name>
Element response = get();
- System.err.println(XmlUtil.toString(response));
-
assertEquals(2, getElementsSize(response, "instance"));
assertEquals(2, getElementsSize(response, "asdf"));
assertEquals(5, getElementsSize(response, "inner-running-data"));
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>config-persister-impl</artifactId>
<name>${project.artifactId}</name>
javax.management,
javax.xml.parsers,
org.opendaylight.controller.config.persist.api,
- org.opendaylight.controller.config.stat,
org.opendaylight.controller.config.persist.api.storage,
org.opendaylight.controller.netconf.api,
org.opendaylight.controller.netconf.api.jmx,
import com.google.common.base.Optional;
import org.opendaylight.controller.config.persist.api.storage.StorageAdapter;
-import org.opendaylight.controller.config.stat.ConfigProvider;
+import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(NoOpStorageAdapter.class);
@Override
- public void setProperties(ConfigProvider configProvider) {
- logger.debug("setProperties called with {}", configProvider);
+ public void setProperties(BundleContext bundleContext) {
+ logger.debug("setProperties called with {}", bundleContext);
}
@Override
import com.google.common.base.Optional;
import org.opendaylight.controller.config.persist.api.Persister;
import org.opendaylight.controller.config.persist.api.storage.StorageAdapter;
-import org.opendaylight.controller.config.stat.ConfigProvider;
+import org.osgi.framework.BundleContext;
import java.io.IOException;
this.storage = storage;
}
- public static Optional<PersisterImpl> createFromProperties(ConfigProvider configProvider) {
- String storageAdapterClass = configProvider.getProperty(STORAGE_ADAPTER_CLASS_PROP);
+ public static Optional<PersisterImpl> createFromProperties(BundleContext bundleContext) {
+ String storageAdapterClass = bundleContext.getProperty(STORAGE_ADAPTER_CLASS_PROP);
StorageAdapter storage;
if (storageAdapterClass == null || storageAdapterClass.equals("")) {
return Optional.absent();
try {
storage = StorageAdapter.class.cast(resolveClass(storageAdapterClass, StorageAdapter.class).newInstance());
- storage.setProperties(configProvider);
+ storage.setProperties(bundleContext);
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
throw new IllegalArgumentException("Unable to instantiate storage adapter from " + storageAdapterClass, e);
import org.opendaylight.controller.netconf.persist.impl.ConfigPersisterNotificationHandler;
import org.opendaylight.controller.netconf.persist.impl.NoOpStorageAdapter;
import org.opendaylight.controller.netconf.persist.impl.PersisterImpl;
-import org.opendaylight.controller.config.stat.ConfigProvider;
import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil.TLSConfiguration;
import org.osgi.framework.BundleActivator;
public void start(BundleContext context) throws Exception {
logger.debug("ConfigPersister activator started");
- ConfigProvider configProvider = new ConfigProvider.ConfigProviderImpl(context);
- Optional<PersisterImpl> maybePersister = PersisterImpl.createFromProperties(configProvider);
+ Optional<PersisterImpl> maybePersister = PersisterImpl.createFromProperties(context);
if (maybePersister.isPresent() == false) {
throw new IllegalStateException("No persister is defined in " + PersisterImpl.STORAGE_ADAPTER_CLASS_PROP
+ " property. For noop persister use " + NoOpStorageAdapter.class.getCanonicalName()
+ " . Persister is not operational");
}
- Optional<TLSConfiguration> maybeTLSConfiguration = NetconfConfigUtil.extractTLSConfiguration(configProvider);
- Optional<InetSocketAddress> maybeTCPAddress = NetconfConfigUtil.extractTCPNetconfAddress(configProvider);
+ Optional<TLSConfiguration> maybeTLSConfiguration = NetconfConfigUtil.extractTLSConfiguration(context);
+ Optional<InetSocketAddress> maybeTCPAddress = NetconfConfigUtil.extractTCPNetconfAddress(context);
InetSocketAddress address;
if (maybeTLSConfiguration.isPresent()) {
import org.opendaylight.controller.config.persist.api.Persister;
import org.opendaylight.controller.config.persist.api.storage.StorageAdapter;
import org.opendaylight.controller.config.persist.storage.file.FileStorageAdapter;
-import org.opendaylight.controller.config.stat.ConfigProvider;
+import org.osgi.framework.BundleContext;
import java.io.File;
import java.io.IOException;
public class PersisterImplTest {
@Mock
- ConfigProvider mockedConfigProvider;
+ BundleContext mockedContext;
@Before
public void setUpMocks() {
@Test
public void testFromProperties() throws Exception {
- doReturn(MockAdapter.class.getName()).when(mockedConfigProvider).getProperty(
+ doReturn(MockAdapter.class.getName()).when(mockedContext).getProperty(
PersisterImpl.STORAGE_ADAPTER_CLASS_PROP);
- PersisterImpl persisterImpl = PersisterImpl.createFromProperties(mockedConfigProvider).get();
+ PersisterImpl persisterImpl = PersisterImpl.createFromProperties(mockedContext).get();
persisterImpl.persistConfig(null);
persisterImpl.loadLastConfig();
persisterImpl.persistConfig(null);
@Test
public void testFromProperties2() throws Exception {
- mockedConfigProvider = mock(ConfigProvider.class);
- doReturn(FileStorageAdapter.class.getName()).when(mockedConfigProvider).getProperty(
+ mockedContext = mock(BundleContext.class);
+ doReturn(FileStorageAdapter.class.getName()).when(mockedContext).getProperty(
PersisterImpl.STORAGE_ADAPTER_CLASS_PROP);
doReturn("target" + File.separator + "generated-test-sources" + File.separator + "testFile").when(
- mockedConfigProvider).getProperty(FileStorageAdapter.FILE_STORAGE_PROP);
- doReturn("mockedConfigProvider").when(mockedConfigProvider).toString();
- doReturn(null).when(mockedConfigProvider).getProperty("numberOfBackups");
+ mockedContext).getProperty(FileStorageAdapter.FILE_STORAGE_PROP);
+ doReturn("mockedContext").when(mockedContext).toString();
+ doReturn(null).when(mockedContext).getProperty("numberOfBackups");
- PersisterImpl persisterImpl = PersisterImpl.createFromProperties(mockedConfigProvider).get();
+ PersisterImpl persisterImpl = PersisterImpl.createFromProperties(mockedContext).get();
assertTrue(persisterImpl.getStorage() instanceof FileStorageAdapter);
}
@Test
public void testFromProperties3() throws Exception {
- mockedConfigProvider = mock(ConfigProvider.class);
- doReturn(FileStorageAdapter.class.getName()).when(mockedConfigProvider).getProperty(
+ mockedContext = mock(BundleContext.class);
+ doReturn(FileStorageAdapter.class.getName()).when(mockedContext).getProperty(
PersisterImpl.STORAGE_ADAPTER_CLASS_PROP);
doReturn("target" + File.separator + "generated-test-sources" + File.separator + "testFile").when(
- mockedConfigProvider).getProperty(FileStorageAdapter.FILE_STORAGE_PROP);
- doReturn("mockedConfigProvider").when(mockedConfigProvider).toString();
- doReturn("0").when(mockedConfigProvider).getProperty("numberOfBackups");
+ mockedContext).getProperty(FileStorageAdapter.FILE_STORAGE_PROP);
+ doReturn("mockedContext").when(mockedContext).toString();
+ doReturn("0").when(mockedContext).getProperty("numberOfBackups");
try {
- PersisterImpl.createFromProperties(mockedConfigProvider).get();
+ PersisterImpl.createFromProperties(mockedContext).get();
fail();
} catch (RuntimeException e) {
assertThat(
static int props = 0;
@Override
- public void setProperties(ConfigProvider configProvider) {
+ public void setProperties(BundleContext configProvider) {
props++;
}
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>netconf-api</artifactId>
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>netconf-client</artifactId>
<name>${project.artifactId}</name>
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>netconf-impl</artifactId>
org.w3c.dom,
org.xml.sax,
org.opendaylight.controller.netconf.util.messages,
- org.opendaylight.controller.config.stat,
com.siemens.ct.exi.exceptions
</Import-Package>
</instructions>
import com.google.common.base.Optional;
import io.netty.util.HashedWheelTimer;
-import org.opendaylight.controller.config.stat.ConfigProvider;
import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
import org.opendaylight.controller.netconf.impl.NetconfServerSessionListenerFactory;
@Override
public void start(final BundleContext context) throws Exception {
- final ConfigProvider configProvider = new ConfigProvider.ConfigProviderImpl(context);
- maybeTCPAddress = NetconfConfigUtil.extractTCPNetconfAddress(configProvider);
- maybeTLSConfiguration = NetconfConfigUtil.extractTLSConfiguration(configProvider);
+ maybeTCPAddress = NetconfConfigUtil.extractTCPNetconfAddress(context);
+ maybeTLSConfiguration = NetconfConfigUtil.extractTLSConfiguration(context);
if (maybeTCPAddress.isPresent() == false && maybeTLSConfiguration.isPresent() == false) {
throw new IllegalStateException("TCP nor TLS is configured, netconf not available.");
}
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>netconf-it</artifactId>
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>netconf-mapping-api</artifactId>
<parent>
<artifactId>netconf-subsystem</artifactId>
<groupId>org.opendaylight.controller</groupId>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
</parent>
<artifactId>netconf-util</artifactId>
<name>${project.artifactId}</name>
org.opendaylight.controller.netconf.util.handler,
</Export-Package>
<Import-Package>
- org.opendaylight.controller.config.stat,
com.google.common.base,
com.google.common.collect,
ch.ethz.ssh2,
package org.opendaylight.controller.netconf.util.osgi;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
+import com.google.common.base.Optional;
+import org.opendaylight.protocol.util.SSLUtil;
+import org.osgi.framework.BundleContext;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.InetSocketAddress;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-
-import org.opendaylight.controller.config.stat.ConfigProvider;
-import org.opendaylight.protocol.util.SSLUtil;
-
-import com.google.common.base.Optional;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
public class NetconfConfigUtil {
private static final String PREFIX_PROP = "netconf.";
private static final String NETCONF_TLS_KEYSTORE_PROP = PREFIX_PROP + InfixProp.tls + ".keystore";
private static final String NETCONF_TLS_KEYSTORE_PASSWORD_PROP = NETCONF_TLS_KEYSTORE_PROP + ".password";
- public static Optional<InetSocketAddress> extractTCPNetconfAddress(ConfigProvider configProvider) {
- return extractSomeNetconfAddress(configProvider, InfixProp.tcp);
+ public static Optional<InetSocketAddress> extractTCPNetconfAddress(BundleContext context) {
+ return extractSomeNetconfAddress(context, InfixProp.tcp);
}
- public static Optional<TLSConfiguration> extractTLSConfiguration(ConfigProvider configProvider) {
- Optional<InetSocketAddress> address = extractSomeNetconfAddress(configProvider, InfixProp.tls);
+ public static Optional<TLSConfiguration> extractTLSConfiguration(BundleContext context) {
+ Optional<InetSocketAddress> address = extractSomeNetconfAddress(context, InfixProp.tls);
if (address.isPresent()) {
- String keystoreFileName = configProvider.getProperty(NETCONF_TLS_KEYSTORE_PROP);
+ String keystoreFileName = context.getProperty(NETCONF_TLS_KEYSTORE_PROP);
File keystoreFile = new File(keystoreFileName);
checkState(keystoreFile.exists() && keystoreFile.isFile() && keystoreFile.canRead(),
"Keystore file %s does not exist or is not readable file", keystoreFileName);
keystoreFile = keystoreFile.getAbsoluteFile();
- String keystorePassword = configProvider.getProperty(NETCONF_TLS_KEYSTORE_PASSWORD_PROP);
+ String keystorePassword = context.getProperty(NETCONF_TLS_KEYSTORE_PASSWORD_PROP);
checkNotNull(keystoreFileName, "Property %s must be defined for tls netconf server",
NETCONF_TLS_KEYSTORE_PROP);
keystorePassword = keystorePassword != null ? keystorePassword : "";
}
/**
- * @param configProvider
+ * @param context
* from which properties are being read.
* @param infixProp
* either tcp or tls
* @throws IllegalStateException
* if address or port are invalid
*/
- private static Optional<InetSocketAddress> extractSomeNetconfAddress(ConfigProvider configProvider,
+ private static Optional<InetSocketAddress> extractSomeNetconfAddress(BundleContext context,
InfixProp infixProp) {
- String address = configProvider.getProperty(PREFIX_PROP + infixProp + ADDRESS_SUFFIX_PROP);
+ String address = context.getProperty(PREFIX_PROP + infixProp + ADDRESS_SUFFIX_PROP);
if (address == null) {
return Optional.absent();
}
String portKey = PREFIX_PROP + infixProp + PORT_SUFFIX_PROP;
- String portString = configProvider.getProperty(portKey);
+ String portString = context.getProperty(portKey);
checkNotNull(portString, "Netconf port must be specified in properties file with " + portKey);
try {
int port = Integer.valueOf(portString);
<relativePath>../commons/opendaylight</relativePath>
</parent>
- <version>0.2.2-SNAPSHOT</version>
+ <version>0.2.3-SNAPSHOT</version>
<artifactId>netconf-subsystem</artifactId>
<packaging>pom</packaging>
<name>${project.artifactId}</name>