From: Robert Varga Date: Thu, 25 May 2017 10:41:45 +0000 (+0200) Subject: Use lambdas to remove references to Function X-Git-Tag: release/nitrogen~49^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=105edbab58dcf55b260ba4d83e7ffa371ef1ec45;p=netconf.git Use lambdas to remove references to Function Change-Id: I8e45aca6ce8c3af4845502784ade1d859b375f09 Signed-off-by: Robert Varga --- diff --git a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java index 347278c301..69abbad23f 100644 --- a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java +++ b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java @@ -10,7 +10,6 @@ package org.opendaylight.netconf.messagebus.eventsources.netconf; import static com.google.common.util.concurrent.Futures.immediateFuture; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Throwables; @@ -28,7 +27,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.Future; import java.util.regex.Pattern; -import javax.annotation.Nullable; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; @@ -142,13 +140,7 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener final List availableStreams; try { availableStreams = mount.getAvailableStreams(); - streamMap = Maps.uniqueIndex(availableStreams, new Function() { - @Nullable - @Override - public String apply(@Nullable Stream input) { - return input.getName().getValue(); - } - }); + streamMap = Maps.uniqueIndex(availableStreams, input -> input.getName().getValue()); } catch (ReadFailedException e) { LOG.warn("Can not read streams for node {}", mount.getNodeId()); } @@ -165,7 +157,7 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener } @Override - public Future> disJoinTopic(DisJoinTopicInput input) { + public Future> disJoinTopic(final DisJoinTopicInput input) { for (NotificationTopicRegistration reg : notificationTopicRegistrations.values()) { reg.unRegisterNotificationTopic(input.getTopicId()); } @@ -234,7 +226,7 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener } } - private void publishNotification(final DOMNotification notification, TopicId topicId) { + private void publishNotification(final DOMNotification notification, final TopicId topicId) { final ContainerNode topicNotification = Builders.containerBuilder().withNodeIdentifier(TOPIC_NOTIFICATION_ARG) .withChild(ImmutableNodes.leafNode(TOPIC_ID_ARG, topicId)) .withChild(ImmutableNodes.leafNode(EVENT_SOURCE_ARG, mount.getNodeId())) @@ -272,7 +264,7 @@ public class NetconfEventSource implements EventSource, DOMNotificationListener * @param notificationPattern pattern * @return notification paths */ - private List getMatchingNotifications(NotificationPattern notificationPattern) { + private List getMatchingNotifications(final NotificationPattern notificationPattern) { final String regex = notificationPattern.getValue(); final Pattern pattern = Pattern.compile(regex); diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java index 3d37f8ec13..b8f5332d8d 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionNegotiatorFactory.java @@ -8,7 +8,6 @@ package org.opendaylight.netconf.impl; -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; @@ -137,12 +136,7 @@ public class NetconfServerSessionNegotiatorFactory implements SessionNegotiatorF } public static Set transformCapabilities(final Capabilities capabilities) { - return Sets.newHashSet(Collections2.transform(capabilities.getCapability(), new Function() { - @Override - public String apply(final Uri uri) { - return uri.getValue(); - } - })); + return Sets.newHashSet(Collections2.transform(capabilities.getCapability(), Uri::getValue)); } } diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java index 489d984a52..f48a477a58 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java @@ -49,12 +49,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos private static final List NETCONF_LOCATIONS = ImmutableList.of(NETCONF_LOCATION); private static final BasicCapability CANDIDATE_CAPABILITY = new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0"); - private static final Function CAPABILITY_TO_URI = new Function() { - @Override - public Uri apply(final Capability input) { - return new Uri(input.getCapabilityUri()); - } - }; + private static final Function CAPABILITY_TO_URI = input -> new Uri(input.getCapabilityUri()); private final NetconfOperationServiceFactory netconfOperationProvider; private final Map capabilities = Maps.newHashMap(); @@ -95,13 +90,13 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos revision.get(), revisionMapRequest.keySet()); return schema; - } else { - Preconditions.checkState(revisionMapRequest.size() == 1, - "Expected 1 capability for module %s, available revisions : %s", moduleName, - revisionMapRequest.keySet()); - //Only one revision is present, so return it - return revisionMapRequest.values().iterator().next(); } + + Preconditions.checkState(revisionMapRequest.size() == 1, + "Expected 1 capability for module %s, available revisions : %s", moduleName, + revisionMapRequest.keySet()); + //Only one revision is present, so return it + return revisionMapRequest.values().iterator().next(); } private void updateCapabilityToSchemaMap(final Set added, final Set removed) { @@ -134,7 +129,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos } } - private static boolean isValidModuleCapability(Capability cap) { + private static boolean isValidModuleCapability(final Capability cap) { return cap.getModuleName().isPresent() && cap.getRevision().isPresent() && cap.getCapabilitySchema().isPresent(); @@ -149,12 +144,9 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos listeners.add(listener); listener.onCapabilitiesChanged(getCapabilities()); listener.onSchemasChanged(getSchemas()); - return new AutoCloseable() { - @Override - public void close() throws Exception { - synchronized (NetconfCapabilityMonitoringService.this) { - listeners.remove(listener); - } + return () -> { + synchronized (NetconfCapabilityMonitoringService.this) { + listeners.remove(listener); } }; } @@ -219,7 +211,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos } @Override - public synchronized void onCapabilitiesChanged(Set added, Set removed) { + public synchronized void onCapabilitiesChanged(final Set added, final Set removed) { onCapabilitiesAdded(added); onCapabilitiesRemoved(removed); updateCapabilityToSchemaMap(added, removed); @@ -231,7 +223,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos } } - private void notifyCapabilityChanged(Capabilities capabilities) { + private void notifyCapabilityChanged(final Capabilities capabilities) { for (NetconfMonitoringService.CapabilitiesListener listener : listeners) { listener.onCapabilitiesChanged(capabilities); listener.onSchemasChanged(getSchemas()); @@ -260,7 +252,7 @@ class NetconfCapabilityMonitoringService implements CapabilityListener, AutoClos private void onCapabilitiesRemoved(final Set removedCaps) { for (final Capability addedCap : removedCaps) { - capabilities.remove(CAPABILITY_TO_URI.apply(addedCap)); + capabilities.remove(new Uri(addedCap.getCapabilityUri())); } } diff --git a/netconf/netconf-it/src/test/java/org/opendaylight/netconf/it/NetconfITTest.java b/netconf/netconf-it/src/test/java/org/opendaylight/netconf/it/NetconfITTest.java index 5d7ce7d0f7..fc97e693db 100644 --- a/netconf/netconf-it/src/test/java/org/opendaylight/netconf/it/NetconfITTest.java +++ b/netconf/netconf-it/src/test/java/org/opendaylight/netconf/it/NetconfITTest.java @@ -15,7 +15,6 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; import static org.mockito.Mockito.doReturn; -import com.google.common.base.Function; import com.google.common.base.Throwables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -339,12 +338,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest { } public Set getServiceReferences(final List testingDeps) { - return new HashSet<>(Lists.transform(testingDeps, new Function() { - @Override - public String apply(final ObjectName input) { - return ObjectNameUtil.getReferenceName(input); - } - })); + return new HashSet<>(Lists.transform(testingDeps, ObjectNameUtil::getReferenceName)); } public void commit(final TestingNetconfClient netconfClient) throws Exception { diff --git a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/MonitoringSchema.java b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/MonitoringSchema.java index b3e64c5bc7..57ce954dce 100644 --- a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/MonitoringSchema.java +++ b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/MonitoringSchema.java @@ -8,12 +8,9 @@ package org.opendaylight.netconf.monitoring.xml.model; -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import java.util.Collection; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.xml.bind.annotation.XmlElement; 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; @@ -22,7 +19,7 @@ final class MonitoringSchema { private final Schema schema; - MonitoringSchema(Schema schema) { + MonitoringSchema(final Schema schema) { this.schema = schema; } @@ -38,13 +35,7 @@ final class MonitoringSchema { @XmlElement(name = "location") public Collection getLocation() { - return Collections2.transform(schema.getLocation(), new Function() { - @Nullable - @Override - public String apply(@Nonnull Schema.Location input) { - return input.getEnumeration().toString(); - } - }); + return Collections2.transform(schema.getLocation(), input -> input.getEnumeration().toString()); } @XmlElement(name = "version") diff --git a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/NetconfState.java b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/NetconfState.java index 12988086ca..39eba4a84a 100644 --- a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/NetconfState.java +++ b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/xml/model/NetconfState.java @@ -7,10 +7,8 @@ */ package org.opendaylight.netconf.monitoring.xml.model; -import com.google.common.base.Function; import com.google.common.collect.Collections2; import java.util.Collection; -import javax.annotation.Nullable; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; @@ -18,8 +16,6 @@ import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.monitoring.MonitoringConstants; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; @XmlRootElement(name = MonitoringConstants.NETCONF_MONITORING_XML_ROOT_ELEMENT) public final class NetconfState { @@ -37,24 +33,12 @@ public final class NetconfState { @XmlElementWrapper(name = "schemas") @XmlElement(name = "schema") public Collection getSchemas() { - return Collections2.transform(schemas.getSchema(), new Function() { - @Nullable - @Override - public MonitoringSchema apply(@Nullable final Schema input) { - return new MonitoringSchema(input); - } - }); + return Collections2.transform(schemas.getSchema(), MonitoringSchema::new); } @XmlElementWrapper(name = "sessions") @XmlElement(name = "session") public Collection getSessions() { - return Collections2.transform(sessions.getSession(), new Function() { - @Nullable - @Override - public MonitoringSession apply(@Nullable final Session input) { - return new MonitoringSession(input); - } - }); + return Collections2.transform(sessions.getSession(), MonitoringSession::new); } } diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java index 995f6a47d0..967633f357 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java @@ -8,7 +8,6 @@ package org.opendaylight.netconf.util.messages; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.Collections2; import java.util.Collection; @@ -29,15 +28,15 @@ public final class NetconfMessageUtil { private NetconfMessageUtil() {} - public static boolean isOKMessage(NetconfMessage message) throws NetconfDocumentedException { + public static boolean isOKMessage(final NetconfMessage message) throws NetconfDocumentedException { return isOKMessage(message.getDocument()); } - public static boolean isOKMessage(Document document) throws NetconfDocumentedException { + public static boolean isOKMessage(final Document document) throws NetconfDocumentedException { return isOKMessage(XmlElement.fromDomDocument(document)); } - public static boolean isOKMessage(XmlElement xmlElement) throws NetconfDocumentedException { + public static boolean isOKMessage(final XmlElement xmlElement) throws NetconfDocumentedException { if (xmlElement.getChildElements().size() != 1) { return false; } @@ -48,15 +47,15 @@ public final class NetconfMessageUtil { } } - public static boolean isErrorMessage(NetconfMessage message) throws NetconfDocumentedException { + public static boolean isErrorMessage(final NetconfMessage message) throws NetconfDocumentedException { return isErrorMessage(message.getDocument()); } - public static boolean isErrorMessage(Document document) throws NetconfDocumentedException { + public static boolean isErrorMessage(final Document document) throws NetconfDocumentedException { return isErrorMessage(XmlElement.fromDomDocument(document)); } - public static boolean isErrorMessage(XmlElement xmlElement) throws NetconfDocumentedException { + public static boolean isErrorMessage(final XmlElement xmlElement) throws NetconfDocumentedException { if (xmlElement.getChildElements().size() != 1) { return false; } @@ -67,7 +66,8 @@ public final class NetconfMessageUtil { } } - public static Collection extractCapabilitiesFromHello(Document doc) throws NetconfDocumentedException { + public static Collection extractCapabilitiesFromHello(final Document doc) + throws NetconfDocumentedException { XmlElement responseElement = XmlElement.fromDomDocument(doc); // Extract child element from with or without(fallback) the same namespace Optional capabilitiesElement = responseElement @@ -76,17 +76,13 @@ public final class NetconfMessageUtil { .getOnlyChildElementOptionally(XmlNetconfConstants.CAPABILITIES)); List caps = capabilitiesElement.get().getChildElements(XmlNetconfConstants.CAPABILITY); - return Collections2.transform(caps, new Function() { - - @Override - public String apply(@Nonnull XmlElement input) { - // Trim possible leading/tailing whitespace - try { - return input.getTextContent().trim(); - } catch (DocumentedException e) { - LOG.trace("Error fetching input text content",e); - return null; - } + return Collections2.transform(caps, (@Nonnull final XmlElement input) -> { + // Trim possible leading/tailing whitespace + try { + return input.getTextContent().trim(); + } catch (DocumentedException e) { + LOG.trace("Error fetching input text content",e); + return null; } }); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java index 11efe5a25b..6452cfae41 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java @@ -7,7 +7,6 @@ */ package org.opendaylight.netconf.sal.connect.netconf; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Predicates; @@ -20,6 +19,7 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -80,10 +80,6 @@ public class NetconfDevice private static final Logger LOG = LoggerFactory.getLogger(NetconfDevice.class); - public static final Function QNAME_TO_SOURCE_ID_FUNCTION = - input -> RevisionSourceIdentifier.create(input.getLocalName(), - Optional.fromNullable(input.getFormattedRevision())); - protected final RemoteDeviceId id; private final boolean reconnectOnSchemasChange; @@ -95,7 +91,7 @@ public class NetconfDevice private final NetconfDeviceSchemasResolver stateSchemasResolver; private final NotificationHandler notificationHandler; protected final List> sourceRegistrations = - Lists.newArrayList(); + new ArrayList<>(); @GuardedBy("this") private boolean connected = false; @@ -423,16 +419,21 @@ public class NetconfDevice } public Collection getRequiredSources() { - return Collections2.transform(requiredSources, QNAME_TO_SOURCE_ID_FUNCTION); + return Collections2.transform(requiredSources, DeviceSources::toSourceId); } public Collection getProvidedSources() { - return Collections2.transform(providedSources, QNAME_TO_SOURCE_ID_FUNCTION); + return Collections2.transform(providedSources, DeviceSources::toSourceId); } public SchemaSourceProvider getSourceProvider() { return sourceProvider; } + + private static SourceIdentifier toSourceId(final QName input) { + return RevisionSourceIdentifier.create(input.getLocalName(), + Optional.fromNullable(input.getFormattedRevision())); + } } /** diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java index de51f47165..6f42761afe 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java @@ -14,7 +14,6 @@ import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTr import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.toPath; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Strings; @@ -82,13 +81,7 @@ public final class NetconfStateSchemas implements NetconfDeviceSchemas { @Override public Set getAvailableYangSchemasQNames() { - return Sets.newHashSet(Collections2.transform(getAvailableYangSchemas(), - new Function() { - @Override - public QName apply(final RemoteYangSchema input) { - return input.getQName(); - } - })); + return Sets.newHashSet(Collections2.transform(getAvailableYangSchemas(), RemoteYangSchema::getQName)); } /** diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java index cd9311b9c3..e34b885787 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java @@ -12,6 +12,7 @@ import com.google.common.collect.Collections2; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; import java.util.Collection; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -28,7 +29,6 @@ import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -37,14 +37,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; */ public final class NetconfDeviceRpc implements DOMRpcService { - private static final Function RPC_TO_RPC_IDENTIFIER = - new Function() { - @Override - public DOMRpcIdentifier apply(final RpcDefinition input) { - return DOMRpcIdentifier.create(input.getPath()); - } - }; - private final RemoteDeviceCommunicator listener; private final MessageTransformer transformer; private final Collection availableRpcs; @@ -54,7 +46,8 @@ public final class NetconfDeviceRpc implements DOMRpcService { this.listener = listener; this.transformer = transformer; - availableRpcs = Collections2.transform(schemaContext.getOperations(), RPC_TO_RPC_IDENTIFIER); + availableRpcs = Collections2.transform(schemaContext.getOperations(), + input -> DOMRpcIdentifier.create(input.getPath())); } @Nonnull @@ -66,16 +59,13 @@ public final class NetconfDeviceRpc implements DOMRpcService { listener.sendRequest(message, type.getLastComponent()); final ListenableFuture transformed = - Futures.transform(delegateFutureWithPureResult, new Function, DOMRpcResult>() { - @Override - public DOMRpcResult apply(final RpcResult input) { - if (input.isSuccessful()) { - return transformer.toRpcResult(input.getResult(), type); - } else { - return new DefaultDOMRpcResult(input.getErrors()); - } + Futures.transform(delegateFutureWithPureResult, input1 -> { + if (input1.isSuccessful()) { + return transformer.toRpcResult(input1.getResult(), type); + } else { + return new DefaultDOMRpcResult(input1.getErrors()); } - }); + }, MoreExecutors.directExecutor()); return Futures.makeChecked(transformed, new Function() { @Nullable diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java index 8d068bb548..7667ba28bc 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java @@ -8,15 +8,13 @@ package org.opendaylight.netconf.sal.connect.netconf.sal; -import com.google.common.base.Function; import com.google.common.base.Preconditions; -import com.google.common.collect.FluentIterable; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import java.util.ArrayList; import java.util.List; -import java.util.Map.Entry; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; @@ -34,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.UnavailableCapabilities; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.UnavailableCapabilitiesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.unavailable.capabilities.UnavailableCapability; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.unavailable.capabilities.UnavailableCapability.FailureReason; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.unavailable.capabilities.UnavailableCapabilityBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf; @@ -57,10 +54,6 @@ import org.slf4j.LoggerFactory; public final class NetconfDeviceTopologyAdapter implements AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(NetconfDeviceTopologyAdapter.class); - public static final Function, UnavailableCapability> - UNAVAILABLE_CAPABILITY_TRANSFORMER = - input -> new UnavailableCapabilityBuilder() - .setCapability(input.getKey().toString()).setFailureReason(input.getValue()).build(); private final RemoteDeviceId id; private BindingTransactionChain txChain; @@ -94,20 +87,13 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { nodeBuilder.addAugmentation(NetconfNode.class, netconfNodeBuilder.build()); Node node = nodeBuilder.build(); - LOG.trace( - "{}: Init device state transaction {} putting if absent operational data started.", + LOG.trace("{}: Init device state transaction {} putting if absent operational data started.", id, writeTx.getIdentifier()); writeTx.put(LogicalDatastoreType.OPERATIONAL, path, node); - LOG.trace( - "{}: Init device state transaction {} putting operational data ended.", - id, writeTx.getIdentifier()); - - LOG.trace( - "{}: Init device state transaction {} putting if absent config data started.", - id, writeTx.getIdentifier()); - LOG.trace( - "{}: Init device state transaction {} putting config data ended.", + LOG.trace("{}: Init device state transaction {} putting operational data ended.", id, writeTx.getIdentifier()); + LOG.trace("{}: Init device state transaction {} putting if absent config data started.", id, writeTx.getIdentifier()); + LOG.trace("{}: Init device state transaction {} putting config data ended.", id, writeTx.getIdentifier()); commitTransaction(writeTx, "init"); } @@ -116,13 +102,11 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { final NetconfNode data = buildDataForNetconfNode(up, capabilities); final WriteTransaction writeTx = txChain.newWriteOnlyTransaction(); - LOG.trace( - "{}: Update device state transaction {} merging operational data started.", + LOG.trace("{}: Update device state transaction {} merging operational data started.", id, writeTx.getIdentifier()); - writeTx.put(LogicalDatastoreType.OPERATIONAL, - id.getTopologyBindingPath().augmentation(NetconfNode.class), data, true); - LOG.trace( - "{}: Update device state transaction {} merging operational data ended.", + writeTx.put(LogicalDatastoreType.OPERATIONAL, id.getTopologyBindingPath().augmentation(NetconfNode.class), + data, true); + LOG.trace("{}: Update device state transaction {} merging operational data ended.", id, writeTx.getIdentifier()); commitTransaction(writeTx, "update"); @@ -133,20 +117,18 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { final NetconfNode data = buildDataForNetconfClusteredNode(up, masterAddress, capabilities); final WriteTransaction writeTx = txChain.newWriteOnlyTransaction(); - LOG.trace( - "{}: Update device state transaction {} merging operational data started.", + LOG.trace("{}: Update device state transaction {} merging operational data started.", id, writeTx.getIdentifier()); writeTx.put(LogicalDatastoreType.OPERATIONAL, id.getTopologyBindingPath().augmentation(NetconfNode.class), data, true); - LOG.trace( - "{}: Update device state transaction {} merging operational data ended.", + LOG.trace("{}: Update device state transaction {} merging operational data ended.", id, writeTx.getIdentifier()); commitTransaction(writeTx, "update"); } public void setDeviceAsFailed(final Throwable throwable) { - String reason = (throwable != null && throwable.getMessage() != null) ? throwable.getMessage() : UNKNOWN_REASON; + String reason = throwable != null && throwable.getMessage() != null ? throwable.getMessage() : UNKNOWN_REASON; final NetconfNode data = new NetconfNodeBuilder() .setConnectionStatus(ConnectionStatus.UnableToConnect).setConnectedMessage(reason).build(); @@ -172,16 +154,12 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { final AvailableCapabilitiesBuilder avCapabalitiesBuilder = new AvailableCapabilitiesBuilder(); avCapabalitiesBuilder.setAvailableCapability(capabilityList); - final UnavailableCapabilities unavailableCapabilities = new UnavailableCapabilitiesBuilder() - .setUnavailableCapability(FluentIterable.from(capabilities.getUnresolvedCapabilites().entrySet()) - .transform(UNAVAILABLE_CAPABILITY_TRANSFORMER).toList()).build(); - final NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder() .setHost(id.getHost()) .setPort(new PortNumber(id.getAddress().getPort())) .setConnectionStatus(up ? ConnectionStatus.Connected : ConnectionStatus.Connecting) .setAvailableCapabilities(avCapabalitiesBuilder.build()) - .setUnavailableCapabilities(unavailableCapabilities); + .setUnavailableCapabilities(unavailableCapabilities(capabilities.getUnresolvedCapabilites())); return netconfNodeBuilder.build(); } @@ -194,23 +172,24 @@ public final class NetconfDeviceTopologyAdapter implements AutoCloseable { final AvailableCapabilitiesBuilder avCapabalitiesBuilder = new AvailableCapabilitiesBuilder(); avCapabalitiesBuilder.setAvailableCapability(capabilityList); - final UnavailableCapabilities unavailableCapabilities = - new UnavailableCapabilitiesBuilder().setUnavailableCapability(capabilities.getUnresolvedCapabilites() - .entrySet().stream().map(UNAVAILABLE_CAPABILITY_TRANSFORMER::apply) - .collect(Collectors.toList())).build(); - final NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder() .setHost(id.getHost()) .setPort(new PortNumber(id.getAddress().getPort())) .setConnectionStatus(up ? ConnectionStatus.Connected : ConnectionStatus.Connecting) .setAvailableCapabilities(avCapabalitiesBuilder.build()) - .setUnavailableCapabilities(unavailableCapabilities) + .setUnavailableCapabilities(unavailableCapabilities(capabilities.getUnresolvedCapabilites())) .setClusteredConnectionStatus( new ClusteredConnectionStatusBuilder().setNetconfMasterNode(masterNodeAddress).build()); return netconfNodeBuilder.build(); } + private static UnavailableCapabilities unavailableCapabilities(final Map input) { + return new UnavailableCapabilitiesBuilder().setUnavailableCapability(input.entrySet().stream().map( + e -> new UnavailableCapabilityBuilder().setCapability(e.getKey().toString()).setFailureReason( + e.getValue()).build()).collect(Collectors.toList())).build(); + } + public void removeDeviceConfiguration() { final WriteTransaction writeTx = txChain.newWriteOnlyTransaction(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java index 4856e1178d..84b824000e 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java @@ -84,17 +84,11 @@ public final class SchemalessNetconfDeviceRpc implements DOMRpcService { } }); - return Futures.makeChecked(transformed, new Function() { - @Nullable - @Override - public DOMRpcException apply(@Nullable final Exception exception) { - return new DOMRpcImplementationNotAvailableException( - exception, "Unable to invoke rpc %s on device %s", type, deviceId); - } - }); + return Futures.makeChecked(transformed, + e -> new DOMRpcImplementationNotAvailableException(e, + "Unable to invoke rpc %s on device %s", type, deviceId)); } - private static boolean isBaseRpc(final SchemaPath type) { return NetconfMessageTransformUtil.NETCONF_URI.equals(type.getLastComponent().getNamespace()); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java index 2038d10ee4..febbff6cec 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java @@ -96,22 +96,14 @@ public class WriteCandidateTx extends AbstractWriteTx { @Override public synchronized CheckedFuture submit() { final ListenableFuture commitFutureAsVoid = Futures.transform(commit(), - new Function, Void>() { - @Override - public Void apply(final RpcResult input) { - Preconditions.checkArgument(input.isSuccessful() && input.getErrors().isEmpty(), - "Submit failed with errors: %s", input.getErrors()); - return null; - } - }); - - return Futures.makeChecked(commitFutureAsVoid, new Function() { - @Override - public TransactionCommitFailedException apply(final Exception input) { - return new TransactionCommitFailedException( - "Submit of transaction " + getIdentifier() + " failed", input); - } - }); + (Function, Void>) input -> { + Preconditions.checkArgument(input.isSuccessful() && input.getErrors().isEmpty(), + "Submit failed with errors: %s", input.getErrors()); + return null; + }); + + return Futures.makeChecked(commitFutureAsVoid, input -> new TransactionCommitFailedException( + "Submit of transaction " + getIdentifier() + " failed", input)); } /** diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java index 01b82c9e8b..af51c824ef 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java @@ -73,20 +73,11 @@ public class WriteRunningTx extends AbstractWriteTx { @Override public synchronized CheckedFuture submit() { final ListenableFuture commmitFutureAsVoid = Futures.transform(commit(), - new Function, Void>() { - @Override - public Void apply(final RpcResult input) { - return null; - } - }); - - return Futures.makeChecked(commmitFutureAsVoid, new Function() { - @Override - public TransactionCommitFailedException apply(final Exception input) { - return new TransactionCommitFailedException("Submit of transaction " + getIdentifier() + " failed", - input); - } - }); + (Function, Void>) input -> null); + + return Futures.makeChecked(commmitFutureAsVoid, + input -> new TransactionCommitFailedException("Submit of transaction " + getIdentifier() + " failed", + input)); } @Override @@ -125,8 +116,8 @@ public class WriteRunningTx extends AbstractWriteTx { final boolean rollbackSupport) { final NetconfRpcFutureCallback editConfigCallback = new NetconfRpcFutureCallback("Edit running", id); if (defaultOperation.isPresent()) { - return netOps.editConfigRunning( - editConfigCallback, editStructure, defaultOperation.get(), rollbackSupport); + return netOps.editConfigRunning(editConfigCallback, editStructure, defaultOperation.get(), + rollbackSupport); } else { return netOps.editConfigRunning(editConfigCallback, editStructure, rollbackSupport); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java index 4367d8cf0a..734abb7978 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java @@ -11,7 +11,6 @@ import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTr import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_URI; import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.toPath; -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -57,11 +56,6 @@ public class NetconfMessageTransformer implements MessageTransformer QNAME_FUNCTION = rpcDefinition -> rpcDefinition.getQName(); - - private static final Function QNAME_NOREV_FUNCTION = - notification -> QNAME_FUNCTION.apply(notification).withoutRevision(); - private final SchemaContext schemaContext; private final BaseSchema baseSchema; private final MessageCounter counter; @@ -79,8 +73,9 @@ public class NetconfMessageTransformer implements MessageTransformer node.getQName().withoutRevision()); this.baseSchema = baseSchema; } @@ -158,7 +153,7 @@ public class NetconfMessageTransformer implements MessageTransformer asMap(final Collection childNodes) { - return Maps.uniqueIndex(childNodes, new Function() { - @Override - public QName apply(final DataSchemaNode input) { - return input.getQName(); - } - }); + return Maps.uniqueIndex(childNodes, (Function) DataSchemaNode::getQName); } @Override