Specialize RemoteDeviceHandler to NetconfSessionPreferences 18/103218/3
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 13 Nov 2022 15:30:10 +0000 (16:30 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 5 Dec 2022 18:14:12 +0000 (19:14 +0100)
The only specialization is NetconfSessionPreferences, codify that,
simplifying our code.

JIRA: NETCONF-912
Change-Id: I728d7b4a530adf2280719a3f7ee911a13a68477e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
20 files changed:
netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeTopology.java
netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfConnectorDTO.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RemoteDeviceHandler.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceBuilder.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDevice.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacade.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/SchemalessNetconfDeviceTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeResponseWaitingTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacadeTest.java

index be5e3956c4e37df653f53a738e61e596ee6a9d2b..a13d756cd45d8ebb999273114eae784be19294e1 100644 (file)
@@ -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<NetconfSessionPreferences> createSalFacade(final RemoteDeviceId id) {
+    protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) {
         return new NetconfDeviceSalFacade(id, mountPointService, dataBroker, topologyId);
     }
 }
index 03f5b61cc50d6d2c85b2615ce0e8114d4fffc71b..3e9bc4a161c89a9c54cbe4f4560b65bd2cad9d37 100644 (file)
@@ -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<NetconfSessionPreferences> createSalFacade(final RemoteDeviceId id) {
+    protected RemoteDeviceHandler createSalFacade(final RemoteDeviceId id) {
         return new NetconfDeviceSalFacade(id, mountPointService, dataBroker, topologyId);
     }
 
index 97d067dae5ab29e13d0f898a377d12f205ff27ca..90758238e72b39c351e18c6316c9198d42e2bf75 100644 (file)
@@ -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<NetconfSessionPreferences> deviceHandler);
+    void startRemoteDeviceConnection(RemoteDeviceHandler deviceHandler);
 
     /**
      * Stop device communicator.
index 9c7780ac2bbf26a605290b5e55e53e1c4d324649..ef666312a2b1f7c4cd7b7921f6577f1e9725c43f 100644 (file)
@@ -39,8 +39,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import scala.concurrent.Future;
 
-class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler<NetconfSessionPreferences> {
-
+class MasterSalFacade implements RemoteDeviceHandler, AutoCloseable {
     private static final Logger LOG = LoggerFactory.getLogger(MasterSalFacade.class);
 
     private final RemoteDeviceId id;
index f93410e499badf4bacb4db4f94c24145a6d232e8..1272d05435e7dd9197da3640836c8a72a6c012a0 100644 (file)
@@ -104,7 +104,7 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector {
     }
 
     @Override
-    public void startRemoteDeviceConnection(final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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<NetconfSessionPreferences> salFacade = requireNonNull(deviceHandler);
+        RemoteDeviceHandler salFacade = requireNonNull(deviceHandler);
         if (keepaliveDelay > 0) {
             LOG.info("{}: Adding keepalive facade.", remoteDeviceId);
             salFacade = new KeepaliveSalFacade(remoteDeviceId, salFacade,
index 6a684cbc98d4c86f25c2f1bb8d6e4367556aa826..d0157f9f559cb295755ce093e9b634e0fcd61227 100644 (file)
@@ -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<NetconfSessionPreferences> 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<NetconfSessionPreferences> salFacade = mock(RemoteDeviceHandler.class);
+        final RemoteDeviceHandler salFacade = mock(RemoteDeviceHandler.class);
 
         final NetconfConnectorDTO connectorDTO =
                 remoteDeviceConnection.createDeviceCommunicator(NODE_ID, netconfNode, salFacade);
index 47a57d279a203209bd9b8ab1ee7fff31c4e71ad0..b1c0dc7ab13284013e3329924ecd3e8890d39c6d 100644 (file)
@@ -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<NetconfSessionPreferences> salFacade) {
+            final RemoteDeviceHandler salFacade) {
         final NetconfConnectorDTO connectorDTO = new NetconfConnectorDTO(communicator, salFacade, List.of());
         doReturn(FluentFutures.immediateNullFluentFuture()).when(communicator).initializeRemoteConnection(any(), any());
         return connectorDTO;
index 3d7c795b059361d95a3d5464e6d950970fe22353..7c7a2d7baa9f6a01e8ae215c5a3e200a330e2be9 100644 (file)
@@ -201,7 +201,7 @@ public abstract class AbstractNetconfTopology implements NetconfTopology {
         final RemoteDeviceId remoteDeviceId = NetconfNodeUtils.toRemoteDeviceId(nodeId, node);
 
         final long keepaliveDelay = node.requireKeepaliveDelay().toJava();
-        RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> createSalFacade(RemoteDeviceId id);
+    protected abstract RemoteDeviceHandler createSalFacade(RemoteDeviceId id);
 
     private static Optional<UserPreferences> getUserCapabilities(final NetconfNode node) {
         // if none of yang-module-capabilities or non-module-capabilities is specified
index 9b579341b60ee1627fcb685d2d2097ab1195b301..8d7f6df997963512baba2d54932b957464c36c28 100644 (file)
@@ -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<SchemaSourceRegistration<?>> yanglibRegistrations;
     private final NetconfDeviceCommunicator communicator;
-    private final RemoteDeviceHandler<NetconfSessionPreferences> facade;
+    private final RemoteDeviceHandler facade;
 
-    public NetconfConnectorDTO(final NetconfDeviceCommunicator communicator,
-            final RemoteDeviceHandler<NetconfSessionPreferences> facade,
+    public NetconfConnectorDTO(final NetconfDeviceCommunicator communicator, final RemoteDeviceHandler facade,
             final List<SchemaSourceRegistration<?>> yanglibRegistrations) {
         this.communicator = communicator;
         this.facade = facade;
@@ -31,7 +29,7 @@ public final class NetconfConnectorDTO implements AutoCloseable {
         return communicator;
     }
 
-    public RemoteDeviceHandler<NetconfSessionPreferences> getFacade() {
+    public RemoteDeviceHandler getFacade() {
         return facade;
     }
 
index b7c852a51bd9d5da65eda81c8afd2def17166d72..650149d7e83bc20302f9b3eaafc19c31655b8f5e 100644 (file)
@@ -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<PREF> 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<PREF> 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
     }
 
index 1a77bc9f6297ee83e17f70892e411dab777a2414..2a68e0948e12b073757b40d7dd02b91ba4bbab7d 100644 (file)
@@ -100,7 +100,7 @@ public class NetconfDevice implements RemoteDevice<NetconfDeviceCommunicator> {
 
     protected final List<SchemaSourceRegistration<?>> sourceRegistrations = new ArrayList<>();
 
-    private final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfDeviceCommunicator> {
     private MessageTransformer messageTransformer;
 
     public NetconfDevice(final SchemaResourcesDTO schemaResourcesDTO, final BaseNetconfSchemas baseSchemas,
-            final RemoteDeviceId id, final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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) {
index 641de973095522d74b70a044723678a25f095b74..2f77159b6bdf6fdcf90578c8d1d416cdcf04556e 100644 (file)
@@ -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<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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");
     }
 }
index 8c40dc4159c7cba2fe2425215a7f769c1d67992e..1e65bbd216687e409d5ddff746105682dd8abf30 100644 (file)
@@ -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<NetconfMessage> 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);
     }
index 7998a62d45d21158982760bbf36c477859769e42..9a8306dd28bde3d132e39fb35d4f210af9b320f1 100644 (file)
@@ -25,12 +25,12 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 public class SchemalessNetconfDevice implements RemoteDevice<NetconfDeviceCommunicator> {
     private final BaseNetconfSchemas baseSchemas;
     private final RemoteDeviceId id;
-    private final RemoteDeviceHandler<NetconfSessionPreferences> salFacade;
+    private final RemoteDeviceHandler salFacade;
     private final SchemalessMessageTransformer messageTransformer;
     private final BaseRpcSchemalessTransformer rpcTransformer;
 
     public SchemalessNetconfDevice(final BaseNetconfSchemas baseSchemas, final RemoteDeviceId id,
-                                   final RemoteDeviceHandler<NetconfSessionPreferences> salFacade) {
+            final RemoteDeviceHandler salFacade) {
         this.baseSchemas = requireNonNull(baseSchemas);
         this.id = id;
         this.salFacade = salFacade;
@@ -41,8 +41,7 @@ public class SchemalessNetconfDevice implements RemoteDevice<NetconfDeviceCommun
 
     @VisibleForTesting
     SchemalessNetconfDevice(final BaseNetconfSchemas baseSchemas, final RemoteDeviceId id,
-                            final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfDeviceCommun
 
     @Override
     public void onRemoteSessionUp(final NetconfSessionPreferences remoteSessionCapabilities,
-                                            final NetconfDeviceCommunicator netconfDeviceCommunicator) {
+            final NetconfDeviceCommunicator netconfDeviceCommunicator) {
         final SchemalessNetconfDeviceRpc schemalessNetconfDeviceRpc = new SchemalessNetconfDeviceRpc(id,
                 netconfDeviceCommunicator, rpcTransformer, messageTransformer);
 
         salFacade.onDeviceConnected(baseSchemas.getBaseSchema().getMountPointContext(),
                 remoteSessionCapabilities, schemalessNetconfDeviceRpc);
-
     }
 
     @Override
index 0ac809c15353b09a310ae5c9308f067412df7b90..b90054d7c951addb9fb9d151c41f863b47e24307 100644 (file)
@@ -49,7 +49,7 @@ import org.slf4j.LoggerFactory;
  * and to detect incorrect session drops (netconf session is inactive, but TCP/SSH connection is still present).
  * The keepalive RPC is a get-config with empty filter.
  */
-public final class KeepaliveSalFacade implements RemoteDeviceHandler<NetconfSessionPreferences> {
+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<NetconfSess
     private static final long DEFAULT_TRANSACTION_TIMEOUT_MILLI = TimeUnit.MILLISECONDS.toMillis(60000);
 
     private final KeepaliveTask keepaliveTask = new KeepaliveTask();
-    private final RemoteDeviceHandler<NetconfSessionPreferences> salFacade;
+    private final RemoteDeviceHandler salFacade;
     private final ScheduledExecutorService executor;
 
     private final long keepaliveDelaySeconds;
@@ -71,9 +71,9 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler<NetconfSess
     private volatile NetconfDeviceCommunicator listener;
     private volatile DOMRpcService currentDeviceRpc;
 
-    public KeepaliveSalFacade(final RemoteDeviceId id, final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSess
         timeoutNanos = TimeUnit.MILLISECONDS.toNanos(requestTimeoutMillis);
     }
 
-    public KeepaliveSalFacade(final RemoteDeviceId id, final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSess
     public void onDeviceConnected(final MountPointContext remoteSchemaContext,
             final NetconfSessionPreferences netconfSessionPreferences, final DOMRpcService deviceRpc,
             final DOMActionService deviceAction) {
-        this.currentDeviceRpc = requireNonNull(deviceRpc);
+        currentDeviceRpc = requireNonNull(deviceRpc);
         salFacade.onDeviceConnected(remoteSchemaContext, netconfSessionPreferences,
             new KeepaliveDOMRpcService(deviceRpc), deviceAction);
 
@@ -279,7 +279,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler<NetconfSess
         private final @NonNull ListenableFuture<? extends DOMRpcResult> deviceFuture;
 
         RequestTimeoutTask(final ListenableFuture<? extends DOMRpcResult> rpcResultFuture) {
-            this.deviceFuture = requireNonNull(rpcResultFuture);
+            deviceFuture = requireNonNull(rpcResultFuture);
             Futures.addCallback(deviceFuture, this, MoreExecutors.directExecutor());
         }
 
index 5afd2259f1069bbfca3115fdc60b2f8c5057f9b8..010e71bd2d4787739e1e65193fc4c10a156f0663 100644 (file)
@@ -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<NetconfSessionPreferences> {
-
+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);
     }
 
index 33c20999836745ff4840e285b71e9480a5532c75..79804548def4124029e822ec1857ffed555b0962 100644 (file)
@@ -115,7 +115,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest {
 
     @Test
     public void testNetconfDeviceFlawedModelFailedResolution() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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<String> capList = Lists.newArrayList(TEST_CAPABILITY);
 
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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<NetconfSessionPreferences> facade = getFacade();
+        final RemoteDeviceHandler facade = getFacade();
         final NetconfDeviceCommunicator listener = getListener();
         final EffectiveModelContextFactory schemaContextProviderFactory = mock(EffectiveModelContextFactory.class);
         final SettableFuture<SchemaContext> schemaFuture = SettableFuture.create();
@@ -306,7 +306,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest {
 
     @Test
     public void testNetconfDeviceReconnect() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> facade = getFacade();
+        final RemoteDeviceHandler facade = getFacade();
         final NetconfDeviceCommunicator listener = getListener();
         final EffectiveModelContextFactory schemaContextProviderFactory = mock(EffectiveModelContextFactory.class);
         final SettableFuture<SchemaContext> schemaFuture = SettableFuture.create();
@@ -374,7 +374,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest {
 
     @Test
     public void testNetconfDeviceAvailableCapabilitiesBuilding() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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<NetconfSessionPreferences> 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<NetconfSessionPreferences> getFacade() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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));
index 6cb2effeaff54626601af928d19917106f47397a..ce4f4c8d165a154069cbd6b00365b832f174f04c 100644 (file)
@@ -40,7 +40,7 @@ public class SchemalessNetconfDeviceTest extends AbstractBaseSchemasTest {
 
     @Test
     public void testSessionOnMethods() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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<NetconfSessionPreferences> getFacade() throws Exception {
-        final RemoteDeviceHandler<NetconfSessionPreferences> 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);
     }
 }
index 0e28ebb9e2d6c59b10fc3c17b4aff443e32ae8ae..129202b88797207fcdcf24590f51ce88e321e638 100644 (file)
@@ -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<NetconfSessionPreferences> {
-
+    private static final class LocalNetconfSalFacade implements RemoteDeviceHandler {
         private DOMRpcService localDeviceRpc;
 
         @Override
index c748c6d7a8556081b83e6a306b2f2dddb4cd16d2..f04a8cfddc50f4eb397baf5d0f81b697b080ad0a 100644 (file)
@@ -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<NetconfSessionPreferences> underlyingSalFacade;
+    private RemoteDeviceHandler underlyingSalFacade;
 
     private ScheduledExecutorService executorServiceSpy;