From f5a43b68cf4c308608866c3587d103bacbca74f7 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Wed, 17 Sep 2014 16:11:14 +0200 Subject: [PATCH] BUG-692 Fix major issues reported by sonar for netconf subsystem Change-Id: I2f7cd479a773b7c3edc111c45add8ab5510fb47f Signed-off-by: Maros Marsalek --- .../ObjectNameAttributeReadingStrategy.java | 3 ++- ...leIdentityRefAttributeReadingStrategy.java | 8 +++--- .../mapping/config/Config.java | 14 +++++----- .../config/ServiceRegistryWrapper.java | 9 +++---- .../mapping/config/Services.java | 6 ++--- .../operations/editconfig/EditConfig.java | 27 +++++++++---------- .../operations/get/Get.java | 12 ++++----- .../operations/runtimerpc/RuntimeRpc.java | 17 ++++++------ .../transactions/TransactionProvider.java | 2 +- .../persist/impl/ConfigPusherImpl.java | 12 ++++----- .../osgi/NetconfMonitoringServiceImpl.java | 12 ++++----- .../impl/osgi/NetconfOperationRouterImpl.java | 2 +- .../xml/model/MonitoringSchema.java | 3 ++- .../netconf/ssh/osgi/NetconfSSHActivator.java | 1 + .../auth/usermanager/AuthProviderImpl.java | 2 +- .../mapping/AbstractNetconfOperation.java | 4 +-- .../util/messages/NetconfMessageUtil.java | 12 +++------ .../netconf/util/xml/XmlElement.java | 7 +++-- 18 files changed, 72 insertions(+), 81 deletions(-) diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java index 8720c654c6..1d12292edb 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attri import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import java.util.List; import java.util.Map; @@ -52,7 +53,7 @@ public class ObjectNameAttributeReadingStrategy extends AbstractAttributeReading public static String checkPrefixAndExtractServiceName(XmlElement typeElement, Map.Entry prefixNamespace) throws NetconfDocumentedException { String serviceName = typeElement.getTextContent(); // FIXME: comparing Entry with String: - Preconditions.checkState(!prefixNamespace.equals(""), "Service %s value not prefixed with namespace", + Preconditions.checkState(!Strings.isNullOrEmpty(prefixNamespace.getKey()), "Service %s value not prefixed with namespace", XmlNetconfConstants.TYPE_KEY); String prefix = prefixNamespace.getKey() + PREFIX_SEPARATOR; Preconditions.checkState(serviceName.startsWith(prefix), diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java index 8e7ba708c6..94a90a782e 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java @@ -47,11 +47,11 @@ public class SimpleIdentityRefAttributeReadingStrategy extends SimpleAttributeRe Date revision = null; Map revisions = identityMap.get(namespace); if(revisions.keySet().size() > 1) { - for (Date date : revisions.keySet()) { - if(revisions.get(date).containsIdName(localName)) { + for (Map.Entry revisionToIdentityEntry : revisions.entrySet()) { + if(revisionToIdentityEntry.getValue().containsIdName(localName)) { Preconditions.checkState(revision == null, "Duplicate identity %s, in namespace %s, with revisions: %s, %s detected. Cannot map attribute", - localName, namespace, revision, date); - revision = date; + localName, namespace, revision, revisionToIdentityEntry.getKey()); + revision = revisionToIdentityEntry.getKey(); } } } else { 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 5d41b784f5..773e4ee933 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 @@ -60,11 +60,11 @@ public class Config { Map>> retVal = Maps.newLinkedHashMap(); - for (String namespace : configs.keySet()) { + for (Entry> namespaceToModuleToConfigEntry : configs.entrySet()) { Map> innerRetVal = Maps.newHashMap(); - for (Entry mbeEntry : configs.get(namespace).entrySet()) { + for (Entry mbeEntry : namespaceToModuleToConfigEntry.getValue().entrySet()) { String moduleName = mbeEntry.getKey(); Collection instances = moduleToInstances.get(moduleName); @@ -80,7 +80,7 @@ public class Config { } - retVal.put(namespace, innerRetVal); + retVal.put(namespaceToModuleToConfigEntry.getKey(), innerRetVal); } return retVal; } @@ -107,18 +107,18 @@ public class Config { Element modulesElement = XmlUtil.createElement(document, XmlNetconfConstants.MODULES_KEY, Optional.of(XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG)); dataElement.appendChild(modulesElement); - for (String moduleNamespace : moduleToInstances.keySet()) { - for (Entry> moduleMappingEntry : moduleToInstances.get(moduleNamespace) + for (Entry>> moduleToInstanceEntry : moduleToInstances.entrySet()) { + for (Entry> moduleMappingEntry : moduleToInstanceEntry.getValue() .entrySet()) { - ModuleConfig mapping = moduleConfigs.get(moduleNamespace).get(moduleMappingEntry.getKey()); + ModuleConfig mapping = moduleConfigs.get(moduleToInstanceEntry.getKey()).get(moduleMappingEntry.getKey()); if (moduleMappingEntry.getValue().isEmpty()) { continue; } for (ObjectName objectName : moduleMappingEntry.getValue()) { - modulesElement.appendChild(mapping.toXml(objectName, document, moduleNamespace)); + modulesElement.appendChild(mapping.toXml(objectName, document, moduleToInstanceEntry.getKey())); } } diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java index 2b363ea153..8c2c74f2ac 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java @@ -24,7 +24,6 @@ public class ServiceRegistryWrapper { this.configServiceRefRegistry = configServiceRefRegistry; } - public ObjectName getByServiceAndRefName(String namespace, String serviceName, String refName) { Map> serviceNameToRefNameToInstance = getMappedServices().get(namespace); @@ -61,13 +60,13 @@ public class ServiceRegistryWrapper { Map>> retVal = Maps.newHashMap(); Map> serviceMapping = configServiceRefRegistry.getServiceMapping(); - for (String serviceQName : serviceMapping.keySet()){ - for (String refName : serviceMapping.get(serviceQName).keySet()) { + for (Map.Entry> qNameToRefNameEntry : serviceMapping.entrySet()){ + for (String refName : qNameToRefNameEntry.getValue().keySet()) { - ObjectName on = serviceMapping.get(serviceQName).get(refName); + ObjectName on = qNameToRefNameEntry.getValue().get(refName); Services.ServiceInstance si = Services.ServiceInstance.fromObjectName(on); - QName qname = QName.create(serviceQName); + QName qname = QName.create(qNameToRefNameEntry.getKey()); String namespace = qname.getNamespace().toString(); Map> serviceToRefs = retVal.get(namespace); if(serviceToRefs==null) { diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Services.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Services.java index 59a1d4fe71..bdb4c1b067 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Services.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/Services.java @@ -133,9 +133,9 @@ public final class Services { Element root = XmlUtil.createElement(document, XmlNetconfConstants.SERVICES_KEY, Optional.of(XmlNetconfConstants.URN_OPENDAYLIGHT_PARAMS_XML_NS_YANG_CONTROLLER_CONFIG)); Map>> mappedServices = serviceRegistryWrapper.getMappedServices(); - for (String namespace : mappedServices.keySet()) { + for (Entry>> namespaceToRefEntry : mappedServices.entrySet()) { - for (Entry> serviceEntry : mappedServices.get(namespace).entrySet()) { + for (Entry> serviceEntry : namespaceToRefEntry.getValue().entrySet()) { // service belongs to config.yang namespace Element serviceElement = XmlUtil.createElement(document, SERVICE_KEY, Optional.absent()); root.appendChild(serviceElement); @@ -143,7 +143,7 @@ public final class Services { // type belongs to config.yang namespace String serviceType = serviceEntry.getKey(); Element typeElement = XmlUtil.createTextElementWithNamespacedContent(document, XmlNetconfConstants.TYPE_KEY, - XmlNetconfConstants.PREFIX, namespace, serviceType); + XmlNetconfConstants.PREFIX, namespaceToRefEntry.getKey(), serviceType); serviceElement.appendChild(typeElement); diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java index 543a2c4a63..c22dcfe67b 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/editconfig/EditConfig.java @@ -148,21 +148,20 @@ public class EditConfig extends AbstractConfigNetconfOperation { Map>> namespaceToServiceNameToRefNameToInstance = services .getNamespaceToServiceNameToRefNameToInstance(); - for (String serviceNamespace : namespaceToServiceNameToRefNameToInstance.keySet()) { - for (String serviceName : namespaceToServiceNameToRefNameToInstance.get(serviceNamespace).keySet()) { + for (Map.Entry>> namespaceToServiceToRefEntry : namespaceToServiceNameToRefNameToInstance.entrySet()) { + for (Map.Entry> serviceToRefEntry : namespaceToServiceToRefEntry.getValue().entrySet()) { - String qnameOfService = getQname(ta, serviceNamespace, serviceName); - Map refNameToInstance = namespaceToServiceNameToRefNameToInstance - .get(serviceNamespace).get(serviceName); + String qnameOfService = getQname(ta, namespaceToServiceToRefEntry.getKey(), serviceToRefEntry.getKey()); + Map refNameToInstance = serviceToRefEntry.getValue(); - for (String refName : refNameToInstance.keySet()) { - ObjectName on = refNameToInstance.get(refName).getObjectName(ta.getTransactionName()); + for (Map.Entry refNameToServiceEntry : refNameToInstance.entrySet()) { + ObjectName on = refNameToServiceEntry.getValue().getObjectName(ta.getTransactionName()); try { - ObjectName saved = ta.saveServiceReference(qnameOfService, refName, on); + ObjectName saved = ta.saveServiceReference(qnameOfService, refNameToServiceEntry.getKey(), on); logger.debug("Saving service {} with on {} under name {} with service on {}", qnameOfService, - on, refName, saved); + on, refNameToServiceEntry.getKey(), saved); } catch (InstanceNotFoundException e) { - throw new NetconfDocumentedException(String.format("Unable to save ref name " + refName + " for instance " + on, e), + throw new NetconfDocumentedException(String.format("Unable to save ref name " + refNameToServiceEntry.getKey() + " for instance " + on, e), ErrorType.application, ErrorTag.operation_failed, ErrorSeverity.error); @@ -271,18 +270,18 @@ public class EditConfig extends AbstractConfigNetconfOperation { Map> namespaceToModuleNameToModuleConfig = Maps.newHashMap(); - for (String namespace : mBeanEntries.keySet()) { - for (Map.Entry moduleNameToMbe : mBeanEntries.get(namespace).entrySet()) { + for (Map.Entry> namespaceToModuleToMbe : mBeanEntries.entrySet()) { + for (Map.Entry moduleNameToMbe : namespaceToModuleToMbe.getValue().entrySet()) { String moduleName = moduleNameToMbe.getKey(); ModuleMXBeanEntry moduleMXBeanEntry = moduleNameToMbe.getValue(); ModuleConfig moduleConfig = new ModuleConfig(moduleName, new InstanceConfig(configRegistryClient,moduleMXBeanEntry.getAttributes(), moduleMXBeanEntry.getNullableDummyContainerName())); - Map moduleNameToModuleConfig = namespaceToModuleNameToModuleConfig.get(namespace); + Map moduleNameToModuleConfig = namespaceToModuleNameToModuleConfig.get(namespaceToModuleToMbe.getKey()); if(moduleNameToModuleConfig == null) { moduleNameToModuleConfig = Maps.newHashMap(); - namespaceToModuleNameToModuleConfig.put(namespace, moduleNameToModuleConfig); + namespaceToModuleNameToModuleConfig.put(namespaceToModuleToMbe.getKey(), moduleNameToModuleConfig); } moduleNameToModuleConfig.put(moduleName, moduleConfig); diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/get/Get.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/get/Get.java index fc95046dfd..9155bb95d2 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/get/Get.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/get/Get.java @@ -54,13 +54,13 @@ public class Get extends AbstractConfigNetconfOperation { Map> mBeanEntries) { Map> retVal = Maps.newHashMap(); - for (String namespace : mBeanEntries.keySet()) { + for (Map.Entry> namespaceToModuleEntry : mBeanEntries.entrySet()) { Map innerMap = Maps.newHashMap(); - Map entriesFromNamespace = mBeanEntries.get(namespace); - for (String module : entriesFromNamespace.keySet()) { + Map entriesFromNamespace = namespaceToModuleEntry.getValue(); + for (Map.Entry moduleToMXEntry : entriesFromNamespace.entrySet()) { - ModuleMXBeanEntry mbe = entriesFromNamespace.get(module); + ModuleMXBeanEntry mbe = moduleToMXEntry.getValue(); Map cache = Maps.newHashMap(); RuntimeBeanEntry root = null; @@ -77,10 +77,10 @@ public class Get extends AbstractConfigNetconfOperation { InstanceRuntime rootInstanceRuntime = createInstanceRuntime(root, cache); ModuleRuntime moduleRuntime = new ModuleRuntime(rootInstanceRuntime); - innerMap.put(module, moduleRuntime); + innerMap.put(moduleToMXEntry.getKey(), moduleRuntime); } - retVal.put(namespace, innerMap); + retVal.put(namespaceToModuleEntry.getKey(), innerMap); } return retVal; } diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpc.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpc.java index 21021fec55..0d9c61bad7 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpc.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpc.java @@ -81,8 +81,7 @@ public class RuntimeRpc extends AbstractConfigNetconfOperation { final String[] signature = new String[attributes.size()]; int i = 0; - for (final String attrName : attributes.keySet()) { - final AttributeConfigElement attribute = attributes.get(attrName); + for (final AttributeConfigElement attribute : attributes.values()) { final Optional resolvedValueOpt = attribute.getResolvedValue(); params[i] = resolvedValueOpt.isPresent() ? resolvedValueOpt.get() : attribute.getResolvedDefaultValue(); @@ -248,23 +247,23 @@ public class RuntimeRpc extends AbstractConfigNetconfOperation { final Map> map = Maps.newHashMap(); - for (final String namespace : mBeanEntries.keySet()) { + for (final Map.Entry> namespaceToModuleEntry : mBeanEntries.entrySet()) { - Map namespaceToModules = map.get(namespace); + Map namespaceToModules = map.get(namespaceToModuleEntry.getKey()); if (namespaceToModules == null) { namespaceToModules = Maps.newHashMap(); - map.put(namespace, namespaceToModules); + map.put(namespaceToModuleEntry.getKey(), namespaceToModules); } - for (final String moduleName : mBeanEntries.get(namespace).keySet()) { + for (final Map.Entry moduleEntry : namespaceToModuleEntry.getValue().entrySet()) { - ModuleRpcs rpcMapping = namespaceToModules.get(moduleName); + ModuleRpcs rpcMapping = namespaceToModules.get(moduleEntry.getKey()); if (rpcMapping == null) { rpcMapping = new ModuleRpcs(); - namespaceToModules.put(moduleName, rpcMapping); + namespaceToModules.put(moduleEntry.getKey(), rpcMapping); } - final ModuleMXBeanEntry entry = mBeanEntries.get(namespace).get(moduleName); + final ModuleMXBeanEntry entry = moduleEntry.getValue(); for (final RuntimeBeanEntry runtimeEntry : entry.getRuntimeBeans()) { rpcMapping.addNameMapping(runtimeEntry); diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java index beab62e997..11d2e748bf 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java @@ -55,7 +55,7 @@ public class TransactionProvider implements AutoCloseable { allOpenedTransactions.clear(); } - public Optional getTransaction() { + public synchronized Optional getTransaction() { if (transaction == null){ return Optional.absent(); diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java index 5f311b5232..b346522f44 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java @@ -10,6 +10,9 @@ package org.opendaylight.controller.netconf.persist.impl; import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.Function; +import com.google.common.base.Stopwatch; +import com.google.common.collect.Collections2; import java.io.IOException; import java.io.InputStream; import java.util.Collection; @@ -23,10 +26,9 @@ import java.util.TreeMap; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; - +import javax.annotation.Nonnull; import javax.annotation.concurrent.Immutable; import javax.management.MBeanServerConnection; - import org.opendaylight.controller.config.api.ConflictingVersionException; import org.opendaylight.controller.config.persist.api.ConfigPusher; import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; @@ -49,10 +51,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; -import com.google.common.base.Function; -import com.google.common.base.Stopwatch; -import com.google.common.collect.Collections2; - @Immutable public class ConfigPusherImpl implements ConfigPusher { private static final Logger logger = LoggerFactory.getLogger(ConfigPusherImpl.class); @@ -200,7 +198,7 @@ public class ConfigPusherImpl implements ConfigPusher { private static Set computeNotFoundCapabilities(Set expectedCapabilities, NetconfOperationService serviceCandidate) { Collection actual = Collections2.transform(serviceCandidate.getCapabilities(), new Function() { @Override - public String apply(Capability input) { + public String apply(@Nonnull final Capability input) { return input.getCapabilityUri(); } }); diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfMonitoringServiceImpl.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfMonitoringServiceImpl.java index 81fac5f12f..2a45e1757b 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfMonitoringServiceImpl.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfMonitoringServiceImpl.java @@ -13,6 +13,10 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import io.netty.util.internal.ConcurrentSet; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.annotation.Nonnull; import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession; import org.opendaylight.controller.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.controller.netconf.mapping.api.Capability; @@ -32,11 +36,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nullable; -import java.util.Collections; -import java.util.List; -import java.util.Set; - public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, SessionMonitoringService { private static final Logger logger = LoggerFactory.getLogger(NetconfMonitoringServiceImpl.class); @@ -134,9 +133,8 @@ public class NetconfMonitoringServiceImpl implements NetconfMonitoringService, S private List transformSessions(Set sessions) { return Lists.newArrayList(Collections2.transform(sessions, new Function() { - @Nullable @Override - public Session apply(@Nullable NetconfManagementSession input) { + public Session apply(@Nonnull NetconfManagementSession input) { return input.toManagementSession(); } })); diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java index ff96ad779f..aa590604b0 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java @@ -48,7 +48,7 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter { this.netconfOperationServiceSnapshot = netconfOperationServiceSnapshot; } - private void initNetconfOperations(Set allOperations) { + private synchronized void initNetconfOperations(Set allOperations) { allNetconfOperations = allOperations; } diff --git a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/MonitoringSchema.java b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/MonitoringSchema.java index 078509db40..16b38eca51 100644 --- a/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/MonitoringSchema.java +++ b/opendaylight/netconf/netconf-monitoring/src/main/java/org/opendaylight/controller/netconf/monitoring/xml/model/MonitoringSchema.java @@ -11,6 +11,7 @@ package org.opendaylight.controller.netconf.monitoring.xml.model; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; +import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.Yang; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema; @@ -41,7 +42,7 @@ final class MonitoringSchema { return Collections2.transform(schema.getLocation(), new Function() { @Nullable @Override - public String apply(@Nullable Schema.Location input) { + public String apply(@Nonnull Schema.Location input) { return input.getEnumeration().toString(); } }); diff --git a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java index c686bcbc66..0d0f95c3cb 100644 --- a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java +++ b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java @@ -123,6 +123,7 @@ public class NetconfSSHActivator implements BundleActivator { final AuthProvider authService = bundleContext.getService(reference); final Integer newServicePreference = getPreference(reference); if(isBetter(newServicePreference)) { + maxPreference = newServicePreference; server.setAuthProvider(authService); if(sshThread == null) { sshThread = runNetconfSshThread(server); diff --git a/opendaylight/netconf/netconf-usermanager/src/main/java/org/opendaylight/controller/netconf/auth/usermanager/AuthProviderImpl.java b/opendaylight/netconf/netconf-usermanager/src/main/java/org/opendaylight/controller/netconf/auth/usermanager/AuthProviderImpl.java index d314c31b4f..da5e2090ff 100644 --- a/opendaylight/netconf/netconf-usermanager/src/main/java/org/opendaylight/controller/netconf/auth/usermanager/AuthProviderImpl.java +++ b/opendaylight/netconf/netconf-usermanager/src/main/java/org/opendaylight/controller/netconf/auth/usermanager/AuthProviderImpl.java @@ -71,7 +71,7 @@ public class AuthProviderImpl implements AuthProvider { } @VisibleForTesting - void setNullableUserManager(final IUserManager nullableUserManager) { + synchronized void setNullableUserManager(final IUserManager nullableUserManager) { this.nullableUserManager = nullableUserManager; } } diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java index 25e0f79265..b6f5854aa3 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java @@ -116,8 +116,8 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { rpcReply.appendChild(responseNS); } - for (String attrName : attributes.keySet()) { - rpcReply.setAttributeNode((Attr) document.importNode(attributes.get(attrName), true)); + for (Attr attribute : attributes.values()) { + rpcReply.setAttributeNode((Attr) document.importNode(attribute, true)); } document.appendChild(rpcReply); return document; diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageUtil.java index 3e8040ad8a..c532b7f9a6 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageUtil.java @@ -10,7 +10,9 @@ package org.opendaylight.controller.netconf.util.messages; import com.google.common.base.Function; import com.google.common.collect.Collections2; - +import java.util.Collection; +import java.util.List; +import javax.annotation.Nonnull; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.api.NetconfMessage; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; @@ -19,11 +21,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; -import javax.annotation.Nullable; - -import java.util.Collection; -import java.util.List; - public final class NetconfMessageUtil { private static final Logger logger = LoggerFactory.getLogger(NetconfMessageUtil.class); @@ -67,9 +64,8 @@ public final class NetconfMessageUtil { List caps = capabilitiesElement.getChildElements(XmlNetconfConstants.CAPABILITY); return Collections2.transform(caps, new Function() { - @Nullable @Override - public String apply(@Nullable XmlElement input) { + public String apply(@Nonnull XmlElement input) { // Trim possible leading/tailing whitespace try { return input.getTextContent().trim(); diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java index 4e3a66b7ec..78efe7e972 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlElement.java @@ -20,7 +20,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.util.exception.MissingNameSpaceException; import org.opendaylight.controller.netconf.util.exception.UnexpectedElementException; @@ -204,7 +203,7 @@ public final class XmlElement { return Lists.newArrayList(Collections2.filter(getChildElementsWithinNamespace(namespace), new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } })); @@ -298,7 +297,7 @@ public final class XmlElement { List children = getChildElementsWithinNamespace(namespace); children = Lists.newArrayList(Collections2.filter(children, new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } })); @@ -436,7 +435,7 @@ public final class XmlElement { List children = getChildElementsWithinNamespace(getNamespace()); return Lists.newArrayList(Collections2.filter(children, new Predicate() { @Override - public boolean apply(@Nullable XmlElement xmlElement) { + public boolean apply(XmlElement xmlElement) { return xmlElement.getName().equals(childName); } })); -- 2.36.6