From: Maros Marsalek Date: Fri, 22 Nov 2013 13:42:38 +0000 (+0100) Subject: Allow multiple services provided from same namespace parsed from netconf message X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~350^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=8bb8f71a9cbe2134c76d78aa2f8846b147c8b7f8 Allow multiple services provided from same namespace parsed from netconf message Change-Id: I4ba7cf7d3e728be447066abc3a3c9f871faba954 Signed-off-by: Maros Marsalek --- diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Config.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Config.java index 2242101f5b..f96b3acf20 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Config.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Config.java @@ -87,9 +87,9 @@ public class Config { } private void addServices(Services serviceTracker, Collection instances, - Map providedServices) { + Multimap providedServices) { for (ObjectName instanceOn : instances) { - for (Entry serviceName : providedServices.entrySet()) { + for (Entry serviceName : providedServices.entries()) { serviceTracker.addServiceEntry(serviceName.getKey(), serviceName.getValue(), instanceOn); } } @@ -243,7 +243,7 @@ public class Config { checkState(moduleConfig != null, "Cannot find ModuleConfig with name " + factoryName + " in " + moduleNamesToConfigs); // Set services = ; - for (Entry serviceName : moduleConfig.getProvidedServices().entrySet()) { + for (Entry serviceName : moduleConfig.getProvidedServices().entries()) { services.addServiceEntry(serviceName.getKey(), serviceName.getValue(), existingON); } diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java index 064cd9fe6f..2e2a26400f 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ModuleConfig.java @@ -8,8 +8,8 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config; -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType; import org.opendaylight.controller.netconf.util.xml.XmlElement; @@ -21,15 +21,12 @@ import org.w3c.dom.Element; import javax.management.ObjectName; import java.util.Collection; -import java.util.HashMap; -import java.util.Map; public class ModuleConfig { private final String moduleName; private final InstanceConfig instanceConfig; - // TODO 2 services from same namespace ? - private final Map providedServices; + private final Multimap providedServices; public ModuleConfig(String moduleName, InstanceConfig mbeanMapping, Collection providedServices) { this.moduleName = moduleName; @@ -37,12 +34,11 @@ public class ModuleConfig { this.providedServices = mapServices(providedServices); } - private Map mapServices(Collection providedServices) { - HashMap mapped = Maps.newHashMap(); + private Multimap mapServices(Collection providedServices) { + Multimap mapped = HashMultimap.create(); for (QName providedService : providedServices) { String key = providedService.getNamespace().toString(); - Preconditions.checkState(mapped.containsKey(key) == false); mapped.put(key, providedService.getLocalName()); } @@ -53,7 +49,7 @@ public class ModuleConfig { return instanceConfig; } - public Map getProvidedServices() { + public Multimap getProvidedServices() { return providedServices; }