X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-persister-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fpersist%2Fimpl%2Fosgi%2FConfigPersisterActivator.java;h=5fa0b49d7b954434e88220f5378ccc89d0f51f8d;hb=dea4345941e473ac6138aa1613b7a1e063a83bd4;hp=241830ddc33ebb74a4d95168887f48c225d77bc8;hpb=3fb02545b8541925b54932e2d67a6360fe77f134;p=controller.git diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java index 241830ddc3..5fa0b49d7b 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/osgi/ConfigPersisterActivator.java @@ -8,9 +8,8 @@ package org.opendaylight.controller.netconf.persist.impl.osgi; -import org.opendaylight.controller.config.persist.api.storage.StorageAdapter.PropertiesProvider; import org.opendaylight.controller.netconf.persist.impl.ConfigPersisterNotificationHandler; -import org.opendaylight.controller.netconf.persist.impl.PersisterImpl; +import org.opendaylight.controller.netconf.persist.impl.PersisterAggregator; import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; @@ -20,42 +19,43 @@ import org.slf4j.LoggerFactory; import javax.management.MBeanServer; import java.lang.management.ManagementFactory; import java.net.InetSocketAddress; +import java.util.regex.Pattern; public class ConfigPersisterActivator implements BundleActivator { private static final Logger logger = LoggerFactory.getLogger(ConfigPersisterActivator.class); private final static MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer(); + private static final String IGNORED_MISSING_CAPABILITY_REGEX_SUFFIX = "ignoredMissingCapabilityRegex"; private ConfigPersisterNotificationHandler configPersisterNotificationHandler; private Thread initializationThread; - private static final String NETCONF_CONFIG_PERSISTER_PREFIX = "netconf.config.persister."; + public static final String NETCONF_CONFIG_PERSISTER = "netconf.config.persister"; public static final String STORAGE_ADAPTER_CLASS_PROP_SUFFIX = "storageAdapterClass"; + public static final String DEFAULT_IGNORED_REGEX = "^urn:ietf:params:xml:ns:netconf:base:1.0"; @Override public void start(final BundleContext context) throws Exception { logger.debug("ConfigPersister starting"); - PropertiesProvider propertiesProvider = new PropertiesProvider() { - @Override - public String getProperty(String key) { - return context.getProperty(getFullKeyForReporting(key)); - } - - @Override - public String getFullKeyForReporting(String key) { - return NETCONF_CONFIG_PERSISTER_PREFIX + key; - } - }; + PropertiesProviderBaseImpl propertiesProvider = new PropertiesProviderBaseImpl(context); - PersisterImpl persister = PersisterImpl.createFromProperties(propertiesProvider); + String regexProperty = propertiesProvider.getProperty(IGNORED_MISSING_CAPABILITY_REGEX_SUFFIX); + String regex; + if (regexProperty != null) { + regex = regexProperty; + } else { + regex = DEFAULT_IGNORED_REGEX; + } + Pattern ignoredMissingCapabilityRegex = Pattern.compile(regex); + PersisterAggregator persister = PersisterAggregator.createFromProperties(propertiesProvider); InetSocketAddress address = NetconfConfigUtil.extractTCPNetconfAddress(context, "Netconf is not configured, persister is not operational"); configPersisterNotificationHandler = new ConfigPersisterNotificationHandler(persister, address, - platformMBeanServer); + platformMBeanServer, ignoredMissingCapabilityRegex); // offload initialization to another thread in order to stop blocking activator Runnable initializationRunnable = new Runnable() {