From c8a8964f28273bd54467a707b444ca6528d909bb Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 13 Nov 2022 16:30:10 +0100 Subject: [PATCH] Specialize RemoteDeviceHandler to NetconfSessionPreferences The only specialization is NetconfSessionPreferences, codify that, simplifying our code. JIRA: NETCONF-912 Change-Id: I728d7b4a530adf2280719a3f7ee911a13a68477e Signed-off-by: Robert Varga --- .../callhome/mount/CallHomeTopology.java | 3 +-- .../topology/impl/NetconfTopologyImpl.java | 3 +-- .../singleton/api/RemoteDeviceConnector.java | 4 +-- .../singleton/impl/MasterSalFacade.java | 3 +-- .../impl/RemoteDeviceConnectorImpl.java | 6 ++--- .../impl/RemoteDeviceConnectorImplTest.java | 7 ++---- .../TestingRemoteDeviceConnectorImpl.java | 3 +-- .../topology/spi/AbstractNetconfTopology.java | 4 +-- .../topology/spi/NetconfConnectorDTO.java | 8 +++--- .../sal/connect/api/RemoteDeviceHandler.java | 17 +++++++------ .../sal/connect/netconf/NetconfDevice.java | 6 ++--- .../connect/netconf/NetconfDeviceBuilder.java | 21 ++++++++-------- .../connect/netconf/NotificationHandler.java | 4 +-- .../netconf/SchemalessNetconfDevice.java | 10 +++----- .../netconf/sal/KeepaliveSalFacade.java | 18 ++++++------- .../netconf/sal/NetconfDeviceSalFacade.java | 5 ++-- .../connect/netconf/NetconfDeviceTest.java | 25 +++++++++---------- .../netconf/SchemalessNetconfDeviceTest.java | 11 +++----- ...KeepaliveSalFacadeResponseWaitingTest.java | 3 +-- .../netconf/sal/KeepaliveSalFacadeTest.java | 3 +-- 20 files changed, 72 insertions(+), 92 deletions(-) diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeTopology.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeTopology.java index be5e3956c4..a13d756cd4 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeTopology.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeTopology.java @@ -17,7 +17,6 @@ import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.api.SchemaResourceManager; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalFacade; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSchemas; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; @@ -48,7 +47,7 @@ public class CallHomeTopology extends BaseCallHomeTopology { } @Override - protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) { + protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) { return new NetconfDeviceSalFacade(id, mountPointService, dataBroker, topologyId); } } diff --git a/netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java b/netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java index 03f5b61cc5..3e9bc4a161 100644 --- a/netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java +++ b/netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java @@ -31,7 +31,6 @@ import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.api.SchemaResourceManager; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalFacade; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSchemas; import org.opendaylight.netconf.sal.connect.util.NetconfTopologyRPCProvider; @@ -108,7 +107,7 @@ public class NetconfTopologyImpl extends AbstractNetconfTopology } @Override - protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) { + protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) { return new NetconfDeviceSalFacade(id, mountPointService, dataBroker, topologyId); } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java index 97d067dae5..90758238e7 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java @@ -8,14 +8,12 @@ package org.opendaylight.netconf.topology.singleton.api; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; /** * Provides API for connection ODL (master) with device. */ // FIXME: way more documentation is needed here public interface RemoteDeviceConnector { - /** * Create device communicator and open device connection. * @@ -23,7 +21,7 @@ public interface RemoteDeviceConnector { * @throws NullPointerException if {@code deviceHandler} is null */ // FIXME: this should return a resource corresponding to the device connection - void startRemoteDeviceConnection(RemoteDeviceHandler deviceHandler); + void startRemoteDeviceConnection(RemoteDeviceHandler deviceHandler); /** * Stop device communicator. diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java index 9c7780ac2b..ef666312a2 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java @@ -39,8 +39,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; -class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler { - +class MasterSalFacade implements RemoteDeviceHandler, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(MasterSalFacade.class); private final RemoteDeviceId id; diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java index f93410e499..1272d05435 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java @@ -104,7 +104,7 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector { } @Override - public void startRemoteDeviceConnection(final RemoteDeviceHandler deviceHandler) { + public void startRemoteDeviceConnection(final RemoteDeviceHandler deviceHandler) { final NetconfNode netconfNode = netconfTopologyDeviceSetup.getNode().augmentation(NetconfNode.class); final NodeId nodeId = netconfTopologyDeviceSetup.getNode().getNodeId(); @@ -146,7 +146,7 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector { @VisibleForTesting NetconfConnectorDTO createDeviceCommunicator(final NodeId nodeId, final NetconfNode node, - final RemoteDeviceHandler deviceHandler) { + final RemoteDeviceHandler deviceHandler) { //setup default values since default value is not supported in mdsal final long defaultRequestTimeoutMillis = node.getDefaultRequestTimeoutMillis() == null ? NetconfTopologyUtils.DEFAULT_REQUEST_TIMEOUT_MILLIS : node.getDefaultRequestTimeoutMillis().toJava(); @@ -155,7 +155,7 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector { final boolean reconnectOnChangedSchema = node.getReconnectOnChangedSchema() == null ? NetconfTopologyUtils.DEFAULT_RECONNECT_ON_CHANGED_SCHEMA : node.getReconnectOnChangedSchema(); - RemoteDeviceHandler salFacade = requireNonNull(deviceHandler); + RemoteDeviceHandler salFacade = requireNonNull(deviceHandler); if (keepaliveDelay > 0) { LOG.info("{}: Adding keepalive facade.", remoteDeviceId); salFacade = new KeepaliveSalFacade(remoteDeviceId, salFacade, diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java index 6a684cbc98..d0157f9f55 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java @@ -39,7 +39,6 @@ import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.impl.DefaultSchemaResourceManager; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.KeepaliveSalFacade; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup; @@ -120,7 +119,6 @@ public class RemoteDeviceConnectorImplTest extends AbstractBaseSchemasTest { .setTopologyId(TOPOLOGY_ID); } - @SuppressWarnings("unchecked") @Test public void testStopRemoteDeviceConnection() { builder.setNode(new NodeBuilder().setNodeId(NODE_ID) @@ -139,7 +137,7 @@ public class RemoteDeviceConnectorImplTest extends AbstractBaseSchemasTest { .build()); final NetconfDeviceCommunicator communicator = mock(NetconfDeviceCommunicator.class); - final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); + final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); final TestingRemoteDeviceConnectorImpl remoteDeviceConnection = new TestingRemoteDeviceConnectorImpl( builder.build(), remoteDeviceId, communicator, deviceActionFactory); @@ -152,7 +150,6 @@ public class RemoteDeviceConnectorImplTest extends AbstractBaseSchemasTest { verify(salFacade, times(1)).close(); } - @SuppressWarnings("unchecked") @Test public void testKeapAliveFacade() { final Credentials credentials = new LoginPasswordBuilder() @@ -175,7 +172,7 @@ public class RemoteDeviceConnectorImplTest extends AbstractBaseSchemasTest { final RemoteDeviceConnectorImpl remoteDeviceConnection = new RemoteDeviceConnectorImpl(builder.build(), remoteDeviceId, deviceActionFactory); - final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); + final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class); final NetconfConnectorDTO connectorDTO = remoteDeviceConnection.createDeviceCommunicator(NODE_ID, netconfNode, salFacade); diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java index 47a57d279a..b1c0dc7ab1 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java @@ -14,7 +14,6 @@ import java.util.List; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup; import org.opendaylight.netconf.topology.spi.NetconfConnectorDTO; @@ -37,7 +36,7 @@ class TestingRemoteDeviceConnectorImpl extends RemoteDeviceConnectorImpl { @Override public NetconfConnectorDTO createDeviceCommunicator(final NodeId nodeId, final NetconfNode node, - final RemoteDeviceHandler salFacade) { + final RemoteDeviceHandler salFacade) { final NetconfConnectorDTO connectorDTO = new NetconfConnectorDTO(communicator, salFacade, List.of()); doReturn(FluentFutures.immediateNullFluentFuture()).when(communicator).initializeRemoteConnection(any(), any()); return connectorDTO; diff --git a/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java b/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java index 3d7c795b05..7c7a2d7baa 100644 --- a/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java +++ b/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java @@ -201,7 +201,7 @@ public abstract class AbstractNetconfTopology implements NetconfTopology { final RemoteDeviceId remoteDeviceId = NetconfNodeUtils.toRemoteDeviceId(nodeId, node); final long keepaliveDelay = node.requireKeepaliveDelay().toJava(); - RemoteDeviceHandler salFacade = createSalFacade(remoteDeviceId); + RemoteDeviceHandler salFacade = createSalFacade(remoteDeviceId); if (keepaliveDelay > 0) { LOG.info("Adding keepalive facade, for device {}", nodeId); salFacade = new KeepaliveSalFacade(remoteDeviceId, salFacade, keepaliveExecutor.getExecutor(), @@ -359,7 +359,7 @@ public abstract class AbstractNetconfTopology implements NetconfTopology { throw new IllegalStateException("Unsupported credential type: " + credentials.getClass()); } - protected abstract RemoteDeviceHandler createSalFacade(RemoteDeviceId id); + protected abstract RemoteDeviceHandler createSalFacade(RemoteDeviceId id); private static Optional getUserCapabilities(final NetconfNode node) { // if none of yang-module-capabilities or non-module-capabilities is specified diff --git a/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfConnectorDTO.java b/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfConnectorDTO.java index 9b579341b6..8d7f6df997 100644 --- a/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfConnectorDTO.java +++ b/netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfConnectorDTO.java @@ -11,16 +11,14 @@ import java.util.List; import org.opendaylight.netconf.client.NetconfClientSessionListener; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistration; public final class NetconfConnectorDTO implements AutoCloseable { private final List> yanglibRegistrations; private final NetconfDeviceCommunicator communicator; - private final RemoteDeviceHandler facade; + private final RemoteDeviceHandler facade; - public NetconfConnectorDTO(final NetconfDeviceCommunicator communicator, - final RemoteDeviceHandler facade, + public NetconfConnectorDTO(final NetconfDeviceCommunicator communicator, final RemoteDeviceHandler facade, final List> yanglibRegistrations) { this.communicator = communicator; this.facade = facade; @@ -31,7 +29,7 @@ public final class NetconfConnectorDTO implements AutoCloseable { return communicator; } - public RemoteDeviceHandler getFacade() { + public RemoteDeviceHandler getFacade() { return facade; } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RemoteDeviceHandler.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RemoteDeviceHandler.java index b7c852a51b..650149d7e8 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RemoteDeviceHandler.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RemoteDeviceHandler.java @@ -10,20 +10,20 @@ package org.opendaylight.netconf.sal.connect.api; import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMNotification; import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; -public interface RemoteDeviceHandler extends AutoCloseable { - +public interface RemoteDeviceHandler extends AutoCloseable { /** * When device connected, init new mount point with specific schema context and DOM services. * * @param remoteSchemaContext - schema context of connected device - * @param netconfSessionPreferences - session of device + * @param sessionPreferences - session of device * @param deviceRpc - {@link DOMRpcService} of device */ - default void onDeviceConnected(final MountPointContext remoteSchemaContext, final PREF netconfSessionPreferences, - final DOMRpcService deviceRpc) { + default void onDeviceConnected(final MountPointContext remoteSchemaContext, + final NetconfSessionPreferences sessionPreferences, final DOMRpcService deviceRpc) { // DO NOTHING } @@ -31,16 +31,17 @@ public interface RemoteDeviceHandler extends AutoCloseable { * When device connected, init new mount point with specific schema context and DOM services. * * @param mountContext - MountPointContext of connected device - * @param netconfSessionPreferences - session of device + * @param sessionPreferences - session of device * @param deviceRpc - {@link DOMRpcService} of device * @param deviceAction - {@link DOMActionService} of device */ - default void onDeviceConnected(final MountPointContext mountContext, final PREF netconfSessionPreferences, + default void onDeviceConnected(final MountPointContext mountContext, + final NetconfSessionPreferences sessionPreferences, final DOMRpcService deviceRpc, final DOMActionService deviceAction) { // DO NOTHING } - default void onDeviceReconnected(final PREF netconfSessionPreferences, final NetconfNode node) { + default void onDeviceReconnected(final NetconfSessionPreferences sessionPreferences, final NetconfNode node) { // DO NOTHING } 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 1a77bc9f62..2a68e0948e 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 @@ -100,7 +100,7 @@ public class NetconfDevice implements RemoteDevice { protected final List> sourceRegistrations = new ArrayList<>(); - private final RemoteDeviceHandler salFacade; + private final RemoteDeviceHandler salFacade; private final ListeningExecutorService processingExecutor; private final DeviceActionFactory deviceActionFactory; private final NetconfDeviceSchemasResolver stateSchemasResolver; @@ -118,14 +118,14 @@ public class NetconfDevice implements RemoteDevice { private MessageTransformer messageTransformer; public NetconfDevice(final SchemaResourcesDTO schemaResourcesDTO, final BaseNetconfSchemas baseSchemas, - final RemoteDeviceId id, final RemoteDeviceHandler salFacade, + final RemoteDeviceId id, final RemoteDeviceHandler salFacade, final ListeningExecutorService globalProcessingExecutor, final boolean reconnectOnSchemasChange) { this(schemaResourcesDTO, baseSchemas, id, salFacade, globalProcessingExecutor, reconnectOnSchemasChange, null, null, null, null); } public NetconfDevice(final SchemaResourcesDTO schemaResourcesDTO, final BaseNetconfSchemas baseSchemas, - final RemoteDeviceId id, final RemoteDeviceHandler salFacade, + final RemoteDeviceId id, final RemoteDeviceHandler salFacade, final ListeningExecutorService globalProcessingExecutor, final boolean reconnectOnSchemasChange, final DeviceActionFactory deviceActionFactory, final NetconfNode node, final EventExecutor eventExecutor, final NetconfNodeAugmentedOptional nodeOptional) { diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceBuilder.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceBuilder.java index 641de97309..2f77159b6b 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceBuilder.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceBuilder.java @@ -13,7 +13,6 @@ import com.google.common.util.concurrent.ListeningExecutorService; import io.netty.util.concurrent.EventExecutor; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSchemas; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.optional.rev190614.NetconfNodeAugmentedOptional; @@ -24,7 +23,7 @@ public class NetconfDeviceBuilder { private boolean reconnectOnSchemasChange; private NetconfDevice.SchemaResourcesDTO schemaResourcesDTO; private RemoteDeviceId id; - private RemoteDeviceHandler salFacade; + private RemoteDeviceHandler salFacade; private ListeningExecutorService globalProcessingExecutor; private DeviceActionFactory deviceActionFactory; private NetconfNode node; @@ -50,7 +49,7 @@ public class NetconfDeviceBuilder { return this; } - public NetconfDeviceBuilder setSalFacade(final RemoteDeviceHandler salFacade) { + public NetconfDeviceBuilder setSalFacade(final RemoteDeviceHandler salFacade) { this.salFacade = salFacade; return this; } @@ -87,16 +86,16 @@ public class NetconfDeviceBuilder { public NetconfDevice build() { validation(); - return new NetconfDevice(this.schemaResourcesDTO, this.baseSchemas, this.id, this.salFacade, - this.globalProcessingExecutor, this.reconnectOnSchemasChange, this.deviceActionFactory, this.node, - this.eventExecutor, this.nodeOptional); + return new NetconfDevice(schemaResourcesDTO, baseSchemas, id, salFacade, + globalProcessingExecutor, reconnectOnSchemasChange, deviceActionFactory, node, + eventExecutor, nodeOptional); } private void validation() { - requireNonNull(this.baseSchemas, "BaseSchemas is not initialized"); - requireNonNull(this.id, "RemoteDeviceId is not initialized"); - requireNonNull(this.salFacade, "RemoteDeviceHandler is not initialized"); - requireNonNull(this.globalProcessingExecutor, "ExecutorService is not initialized"); - requireNonNull(this.schemaResourcesDTO, "SchemaResourceDTO is not initialized"); + requireNonNull(baseSchemas, "BaseSchemas is not initialized"); + requireNonNull(id, "RemoteDeviceId is not initialized"); + requireNonNull(salFacade, "RemoteDeviceHandler is not initialized"); + requireNonNull(globalProcessingExecutor, "ExecutorService is not initialized"); + requireNonNull(schemaResourcesDTO, "SchemaResourceDTO is not initialized"); } } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java index 8c40dc4159..1e65bbd216 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; final class NotificationHandler { private static final Logger LOG = LoggerFactory.getLogger(NotificationHandler.class); - private final RemoteDeviceHandler salFacade; + private final RemoteDeviceHandler salFacade; // FIXME: better implementation? private final List queue = new LinkedList<>(); private final RemoteDeviceId id; @@ -38,7 +38,7 @@ final class NotificationHandler { private NotificationFilter filter; private MessageTransformer messageTransformer; - NotificationHandler(final RemoteDeviceHandler salFacade, final RemoteDeviceId id) { + NotificationHandler(final RemoteDeviceHandler salFacade, final RemoteDeviceId id) { this.salFacade = requireNonNull(salFacade); this.id = requireNonNull(id); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDevice.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDevice.java index 7998a62d45..9a8306dd28 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDevice.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDevice.java @@ -25,12 +25,12 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; public class SchemalessNetconfDevice implements RemoteDevice { private final BaseNetconfSchemas baseSchemas; private final RemoteDeviceId id; - private final RemoteDeviceHandler salFacade; + private final RemoteDeviceHandler salFacade; private final SchemalessMessageTransformer messageTransformer; private final BaseRpcSchemalessTransformer rpcTransformer; public SchemalessNetconfDevice(final BaseNetconfSchemas baseSchemas, final RemoteDeviceId id, - final RemoteDeviceHandler salFacade) { + final RemoteDeviceHandler salFacade) { this.baseSchemas = requireNonNull(baseSchemas); this.id = id; this.salFacade = salFacade; @@ -41,8 +41,7 @@ public class SchemalessNetconfDevice implements RemoteDevice salFacade, - final SchemalessMessageTransformer messageTransformer) { + final RemoteDeviceHandler salFacade, final SchemalessMessageTransformer messageTransformer) { this.baseSchemas = requireNonNull(baseSchemas); this.id = id; this.salFacade = salFacade; @@ -53,13 +52,12 @@ public class SchemalessNetconfDevice implements RemoteDevice { +public final class KeepaliveSalFacade implements RemoteDeviceHandler { private static final Logger LOG = LoggerFactory.getLogger(KeepaliveSalFacade.class); // 2 minutes keepalive delay by default @@ -59,7 +59,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler salFacade; + private final RemoteDeviceHandler salFacade; private final ScheduledExecutorService executor; private final long keepaliveDelaySeconds; @@ -71,9 +71,9 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler salFacade, - final ScheduledExecutorService executor, final long keepaliveDelaySeconds, - final long requestTimeoutMillis) { + public KeepaliveSalFacade(final RemoteDeviceId id, final RemoteDeviceHandler salFacade, + final ScheduledExecutorService executor, final long keepaliveDelaySeconds, + final long requestTimeoutMillis) { this.id = id; this.salFacade = salFacade; this.executor = requireNonNull(executor); @@ -82,8 +82,8 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler salFacade, - final ScheduledExecutorService executor) { + public KeepaliveSalFacade(final RemoteDeviceId id, final RemoteDeviceHandler salFacade, + final ScheduledExecutorService executor) { this(id, salFacade, executor, DEFAULT_DELAY, DEFAULT_TRANSACTION_TIMEOUT_MILLI); } @@ -121,7 +121,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler deviceFuture; RequestTimeoutTask(final ListenableFuture rpcResultFuture) { - this.deviceFuture = requireNonNull(rpcResultFuture); + deviceFuture = requireNonNull(rpcResultFuture); Futures.addCallback(deviceFuture, this, MoreExecutors.directExecutor()); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacade.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacade.java index 5afd2259f1..010e71bd2d 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacade.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacade.java @@ -40,8 +40,7 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public final class NetconfDeviceSalFacade implements AutoCloseable, RemoteDeviceHandler { - +public final class NetconfDeviceSalFacade implements RemoteDeviceHandler, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(NetconfDeviceSalFacade.class); private final RemoteDeviceId id; @@ -93,7 +92,7 @@ public final class NetconfDeviceSalFacade implements AutoCloseable, RemoteDevice @Override public synchronized void onDeviceReconnected(final NetconfSessionPreferences netconfSessionPreferences, final NetconfNode node) { - this.salProvider.getTopologyDatastoreAdapter().updateDeviceData(ConnectionStatus.Connecting, + salProvider.getTopologyDatastoreAdapter().updateDeviceData(ConnectionStatus.Connecting, netconfSessionPreferences.getNetconfDeviceCapabilities(), LogicalDatastoreType.CONFIGURATION, node); } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java index 33c2099983..79804548de 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java @@ -115,7 +115,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceFlawedModelFailedResolution() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaFactory = getSchemaFactory(); @@ -166,7 +166,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { public void testNetconfDeviceFailFirstSchemaFailSecondEmpty() throws Exception { final ArrayList capList = Lists.newArrayList(TEST_CAPABILITY); - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaFactory = getSchemaFactory(); @@ -201,7 +201,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceMissingSource() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaFactory = getSchemaFactory(); @@ -271,7 +271,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNotificationBeforeSchema() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = mock(EffectiveModelContextFactory.class); final SettableFuture schemaFuture = SettableFuture.create(); @@ -306,7 +306,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceReconnect() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = getSchemaFactory(); @@ -343,7 +343,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceDisconnectListenerCallCancellation() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = mock(EffectiveModelContextFactory.class); final SettableFuture schemaFuture = SettableFuture.create(); @@ -374,7 +374,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceAvailableCapabilitiesBuilding() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = getSchemaFactory(); @@ -414,7 +414,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceNotificationsModelNotPresentWithCapability() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = getSchemaFactory(); @@ -455,7 +455,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceNotificationsCapabilityIsNotPresent() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = getSchemaFactory(); @@ -493,7 +493,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { @Test public void testNetconfDeviceNotificationsModelIsPresent() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = getListener(); final EffectiveModelContextFactory schemaContextProviderFactory = getSchemaFactory(); @@ -546,9 +546,8 @@ public class NetconfDeviceTest extends AbstractTestModelTest { return schemaFactory; } - private static RemoteDeviceHandler getFacade() throws Exception { - final RemoteDeviceHandler remoteDeviceHandler = - mockCloseableClass(RemoteDeviceHandler.class); + private static RemoteDeviceHandler getFacade() throws Exception { + final RemoteDeviceHandler remoteDeviceHandler = mockCloseableClass(RemoteDeviceHandler.class); doNothing().when(remoteDeviceHandler).onDeviceConnected( any(MountPointContext.class), any(NetconfSessionPreferences.class), any(NetconfDeviceRpc.class), any(DOMActionService.class)); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDeviceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDeviceTest.java index 6cb2effeaf..ce4f4c8d16 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDeviceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDeviceTest.java @@ -40,7 +40,7 @@ public class SchemalessNetconfDeviceTest extends AbstractBaseSchemasTest { @Test public void testSessionOnMethods() throws Exception { - final RemoteDeviceHandler facade = getFacade(); + final RemoteDeviceHandler facade = getFacade(); final NetconfDeviceCommunicator listener = mockCloseableClass(NetconfDeviceCommunicator.class); final SchemalessMessageTransformer messageTransformer = mock(SchemalessMessageTransformer.class); final RemoteDeviceId remoteDeviceId = new RemoteDeviceId("test-D", @@ -69,10 +69,8 @@ public class SchemalessNetconfDeviceTest extends AbstractBaseSchemasTest { verify(facade).onDeviceFailed(throwable); } - @SuppressWarnings("unchecked") - private static RemoteDeviceHandler getFacade() throws Exception { - final RemoteDeviceHandler remoteDeviceHandler = - mockCloseableClass(RemoteDeviceHandler.class); + private static RemoteDeviceHandler getFacade() throws Exception { + final RemoteDeviceHandler remoteDeviceHandler = mockCloseableClass(RemoteDeviceHandler.class); doNothing().when(remoteDeviceHandler).onDeviceConnected( any(MountPointContext.class), any(NetconfSessionPreferences.class), any(NetconfDeviceRpc.class)); doNothing().when(remoteDeviceHandler).onDeviceDisconnected(); @@ -105,7 +103,6 @@ public class SchemalessNetconfDeviceTest extends AbstractBaseSchemasTest { capabilities.addAll(additionalCapabilities); - return NetconfSessionPreferences.fromStrings( - capabilities); + return NetconfSessionPreferences.fromStrings(capabilities); } } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeResponseWaitingTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeResponseWaitingTest.java index 0e28ebb9e2..129202b887 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeResponseWaitingTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeResponseWaitingTest.java @@ -105,8 +105,7 @@ public class KeepaliveSalFacadeResponseWaitingTest { verify(deviceRpc, after(2000).never()).invokeRpc(NETCONF_GET_CONFIG_QNAME, KEEPALIVE_PAYLOAD); } - private final class LocalNetconfSalFacade implements RemoteDeviceHandler { - + private static final class LocalNetconfSalFacade implements RemoteDeviceHandler { private DOMRpcService localDeviceRpc; @Override diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeTest.java index c748c6d7a8..f04a8cfddc 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeTest.java @@ -31,7 +31,6 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; -import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yangtools.util.concurrent.FluentFutures; @@ -48,7 +47,7 @@ public class KeepaliveSalFacadeTest { new RemoteDeviceId("test", new InetSocketAddress("localhost", 22)); @Mock - private RemoteDeviceHandler underlyingSalFacade; + private RemoteDeviceHandler underlyingSalFacade; private ScheduledExecutorService executorServiceSpy; -- 2.36.6