X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fimpl%2FCapabilityProviderImpl.java;h=6a86ecd21f4d81fdfa9db9de1a81d6e28e1d9488;hp=1d2e039b290d9eef4c77e90fa99ef36257c29c5c;hb=b23703bef6c3aaafe2dc83608a03b738ad42f945;hpb=a92d9d6a21a0f6ca8d2153795721f500eaf29ee9 diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/CapabilityProviderImpl.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/CapabilityProviderImpl.java index 1d2e039b29..6a86ecd21f 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/CapabilityProviderImpl.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/CapabilityProviderImpl.java @@ -12,22 +12,31 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import org.opendaylight.controller.netconf.impl.mapping.CapabilityProvider; -import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceSnapshot; import org.opendaylight.controller.netconf.mapping.api.Capability; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; +import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeSet; public class CapabilityProviderImpl implements CapabilityProvider { private final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot; private final Set capabilityURIs; + private static final Logger logger = LoggerFactory.getLogger(DefaultCommitNotificationProducer.class); + public CapabilityProviderImpl(NetconfOperationServiceSnapshot netconfOperationServiceSnapshot) { this.netconfOperationServiceSnapshot = netconfOperationServiceSnapshot; Map urisToCapabilitiesInternalMap = getCapabilitiesInternal(netconfOperationServiceSnapshot); - capabilityURIs = Collections.unmodifiableSet(urisToCapabilitiesInternalMap.keySet()); + List capabilityURIs = new ArrayList<>(urisToCapabilitiesInternalMap.keySet()); + Collections.sort(capabilityURIs); + this.capabilityURIs = Collections.unmodifiableSet(new TreeSet<>(capabilityURIs)); } private static Map getCapabilitiesInternal( @@ -38,7 +47,11 @@ public class CapabilityProviderImpl implements CapabilityProvider { final Set caps = netconfOperationService.getCapabilities(); for (Capability cap : caps) { - // TODO check for duplicates ? + + if(capabilityMap.containsKey(cap.getCapabilityUri())) { + logger.debug("Duplicate capability {} from service {}", cap.getCapabilityUri(), netconfOperationService); + } + capabilityMap.put(cap.getCapabilityUri(), cap); } }