Introduce NetconfTimer
[netconf.git] / apps / netconf-topology-singleton / src / main / java / org / opendaylight / netconf / topology / singleton / impl / utils / NetconfTopologySetup.java
index 17a9274f32024f88a44185123c3be3a9bd3df429..e44ad70a961050cf5357940189fae9a65ba9e83a 100644 (file)
@@ -10,76 +10,51 @@ package org.opendaylight.netconf.topology.singleton.impl.utils;
 import static java.util.Objects.requireNonNull;
 
 import akka.actor.ActorSystem;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import io.netty.util.concurrent.EventExecutor;
 import java.time.Duration;
-import java.util.concurrent.ScheduledExecutorService;
-import org.opendaylight.aaa.encrypt.AAAEncryptionService;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.dom.api.DOMActionProviderService;
-import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.netconf.client.NetconfClientFactory;
 import org.opendaylight.netconf.client.mdsal.NetconfDevice;
 import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
-import org.opendaylight.netconf.client.mdsal.api.CredentialProvider;
-import org.opendaylight.netconf.client.mdsal.api.KeyStoreProvider;
+import org.opendaylight.netconf.common.NetconfTimer;
+import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-public class NetconfTopologySetup {
+public final class NetconfTopologySetup {
     private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
-    private final DOMRpcProviderService rpcProviderRegistry;
-    private final DOMActionProviderService actionProviderRegistry;
     private final DataBroker dataBroker;
     private final InstanceIdentifier<Node> instanceIdentifier;
     private final Node node;
-    private final ScheduledExecutorService keepaliveExecutor;
-    private final ListeningExecutorService processingExecutor;
+    private final NetconfTimer timer;
+    private final NetconfTopologySchemaAssembler schemaAssembler;
     private final ActorSystem actorSystem;
-    private final EventExecutor eventExecutor;
-    private final NetconfClientDispatcher netconfClientDispatcher;
+    private final NetconfClientFactory netconfClientFactory;
     private final String topologyId;
     private final NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
     private final Duration idleTimeout;
-    private final AAAEncryptionService encryptionService;
     private final BaseNetconfSchemas baseSchemas;
-    private final CredentialProvider credentialProvider;
-    private final KeyStoreProvider keyStoreProvider;
 
-    NetconfTopologySetup(final NetconfTopologySetupBuilder builder) {
+    private NetconfTopologySetup(final Builder builder) {
         clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
-        rpcProviderRegistry = builder.getRpcProviderRegistry();
-        actionProviderRegistry = builder.getActionProviderRegistry();
         dataBroker = builder.getDataBroker();
         instanceIdentifier = builder.getInstanceIdentifier();
         node = builder.getNode();
-        keepaliveExecutor = builder.getKeepaliveExecutor();
-        processingExecutor = builder.getProcessingExecutor();
+        timer = builder.getTimer();
+        schemaAssembler = builder.getSchemaAssembler();
         actorSystem = builder.getActorSystem();
-        eventExecutor = builder.getEventExecutor();
-        netconfClientDispatcher = builder.getNetconfClientDispatcher();
+        netconfClientFactory = builder.getNetconfClientFactory();
         topologyId = builder.getTopologyId();
         schemaResourceDTO = builder.getSchemaResourceDTO();
         idleTimeout = builder.getIdleTimeout();
-        encryptionService = builder.getEncryptionService();
         baseSchemas = builder.getBaseSchemas();
-        credentialProvider = builder.getCredentialProvider();
-        keyStoreProvider = builder.getKeyStoreProvider();
     }
 
     public ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
         return clusterSingletonServiceProvider;
     }
 
-    public DOMRpcProviderService getRpcProviderRegistry() {
-        return rpcProviderRegistry;
-    }
-
-    public DOMActionProviderService getActionProviderRegistry() {
-        return actionProviderRegistry;
-    }
-
     public DataBroker getDataBroker() {
         return dataBroker;
     }
@@ -92,28 +67,24 @@ public class NetconfTopologySetup {
         return node;
     }
 
-    public ListeningExecutorService getProcessingExecutor() {
-        return processingExecutor;
+    public NetconfTopologySchemaAssembler getSchemaAssembler() {
+        return schemaAssembler;
     }
 
-    public ScheduledExecutorService getKeepaliveExecutor() {
-        return keepaliveExecutor;
+    public NetconfTimer getTimer() {
+        return timer;
     }
 
     public ActorSystem getActorSystem() {
         return actorSystem;
     }
 
-    public EventExecutor getEventExecutor() {
-        return eventExecutor;
-    }
-
     public String getTopologyId() {
         return topologyId;
     }
 
-    public NetconfClientDispatcher getNetconfClientDispatcher() {
-        return netconfClientDispatcher;
+    public NetconfClientFactory getNetconfClientFactory() {
+        return netconfClientFactory;
     }
 
     public NetconfDevice.SchemaResourcesDTO getSchemaResourcesDTO() {
@@ -124,51 +95,37 @@ public class NetconfTopologySetup {
         return idleTimeout;
     }
 
-    public AAAEncryptionService getEncryptionService() {
-        return encryptionService;
-    }
-
-    public CredentialProvider getCredentialProvider() {
-        return requireNonNull(credentialProvider);
-    }
-
-    public KeyStoreProvider getKeyStoreProvider() {
-        return requireNonNull(keyStoreProvider);
-    }
-
     public BaseNetconfSchemas getBaseSchemas() {
         return baseSchemas;
     }
 
-    public static class NetconfTopologySetupBuilder {
+    public static @NonNull Builder builder() {
+        return new Builder();
+    }
+
+    public static final class Builder {
         private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
-        private DOMRpcProviderService rpcProviderRegistry;
-        private DOMActionProviderService actionProviderRegistry;
         private DataBroker dataBroker;
         private InstanceIdentifier<Node> instanceIdentifier;
         private Node node;
-        private ScheduledExecutorService keepaliveExecutor;
-        private ListeningExecutorService processingExecutor;
+        private NetconfTimer timer;
+        private NetconfTopologySchemaAssembler schemaAssembler;
         private ActorSystem actorSystem;
-        private EventExecutor eventExecutor;
         private String topologyId;
-        private NetconfClientDispatcher netconfClientDispatcher;
+        private NetconfClientFactory netconfClientFactory;
         private NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
         private Duration idleTimeout;
-        private AAAEncryptionService encryptionService;
         private BaseNetconfSchemas baseSchemas;
-        private CredentialProvider credentialProvider;
-        private KeyStoreProvider keyStoreProvider;
-
-        public NetconfTopologySetupBuilder() {
 
+        private Builder() {
+            // Hidden on purpose
         }
 
         BaseNetconfSchemas getBaseSchemas() {
             return requireNonNull(baseSchemas, "BaseSchemas not initialized");
         }
 
-        public NetconfTopologySetupBuilder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
+        public Builder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
             this.baseSchemas = requireNonNull(baseSchemas);
             return this;
         }
@@ -177,36 +134,17 @@ public class NetconfTopologySetup {
             return clusterSingletonServiceProvider;
         }
 
-        public NetconfTopologySetupBuilder setClusterSingletonServiceProvider(
+        public Builder setClusterSingletonServiceProvider(
                 final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
             this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
             return this;
         }
 
-        DOMRpcProviderService getRpcProviderRegistry() {
-            return rpcProviderRegistry;
-        }
-
-        public NetconfTopologySetupBuilder setRpcProviderRegistry(final DOMRpcProviderService rpcProviderRegistry) {
-            this.rpcProviderRegistry = rpcProviderRegistry;
-            return this;
-        }
-
-        DOMActionProviderService getActionProviderRegistry() {
-            return actionProviderRegistry;
-        }
-
-        public NetconfTopologySetupBuilder setActionProviderRegistry(
-            final DOMActionProviderService actionProviderRegistry) {
-            this.actionProviderRegistry = actionProviderRegistry;
-            return this;
-        }
-
         DataBroker getDataBroker() {
             return dataBroker;
         }
 
-        public NetconfTopologySetupBuilder setDataBroker(final DataBroker dataBroker) {
+        public Builder setDataBroker(final DataBroker dataBroker) {
             this.dataBroker = dataBroker;
             return this;
         }
@@ -215,7 +153,7 @@ public class NetconfTopologySetup {
             return instanceIdentifier;
         }
 
-        public NetconfTopologySetupBuilder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
+        public Builder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
             this.instanceIdentifier = instanceIdentifier;
             return this;
         }
@@ -224,7 +162,7 @@ public class NetconfTopologySetup {
             return node;
         }
 
-        public NetconfTopologySetupBuilder setNode(final Node node) {
+        public Builder setNode(final Node node) {
             this.node = node;
             return this;
         }
@@ -233,21 +171,22 @@ public class NetconfTopologySetup {
             return new NetconfTopologySetup(this);
         }
 
-        ScheduledExecutorService getKeepaliveExecutor() {
-            return keepaliveExecutor;
+        NetconfTimer getTimer() {
+            return timer;
         }
 
-        public NetconfTopologySetupBuilder setKeepaliveExecutor(final ScheduledExecutorService keepaliveExecutor) {
-            this.keepaliveExecutor = keepaliveExecutor;
+        public Builder setTimer(final NetconfTimer timer) {
+            this.timer = requireNonNull(timer);
             return this;
         }
 
-        ListeningExecutorService getProcessingExecutor() {
-            return processingExecutor;
+
+        NetconfTopologySchemaAssembler getSchemaAssembler() {
+            return schemaAssembler;
         }
 
-        public NetconfTopologySetupBuilder setProcessingExecutor(final ListeningExecutorService processingExecutor) {
-            this.processingExecutor = processingExecutor;
+        public Builder setSchemaAssembler(final NetconfTopologySchemaAssembler schemaAssembler) {
+            this.schemaAssembler = schemaAssembler;
             return this;
         }
 
@@ -255,39 +194,30 @@ public class NetconfTopologySetup {
             return actorSystem;
         }
 
-        public NetconfTopologySetupBuilder setActorSystem(final ActorSystem actorSystem) {
+        public Builder setActorSystem(final ActorSystem actorSystem) {
             this.actorSystem = actorSystem;
             return this;
         }
 
-        EventExecutor getEventExecutor() {
-            return eventExecutor;
-        }
-
-        public NetconfTopologySetupBuilder setEventExecutor(final EventExecutor eventExecutor) {
-            this.eventExecutor = eventExecutor;
-            return this;
-        }
-
         String getTopologyId() {
             return topologyId;
         }
 
-        public NetconfTopologySetupBuilder setTopologyId(final String topologyId) {
+        public Builder setTopologyId(final String topologyId) {
             this.topologyId = topologyId;
             return this;
         }
 
-        NetconfClientDispatcher getNetconfClientDispatcher() {
-            return netconfClientDispatcher;
+        NetconfClientFactory getNetconfClientFactory() {
+            return netconfClientFactory;
         }
 
-        public NetconfTopologySetupBuilder setNetconfClientDispatcher(final NetconfClientDispatcher clientDispatcher) {
-            netconfClientDispatcher = clientDispatcher;
+        public Builder setNetconfClientFactory(final NetconfClientFactory clientFactory) {
+            netconfClientFactory = clientFactory;
             return this;
         }
 
-        public NetconfTopologySetupBuilder setSchemaResourceDTO(
+        public Builder setSchemaResourceDTO(
                 final NetconfDevice.SchemaResourcesDTO schemaResourceDTO) {
             this.schemaResourceDTO = schemaResourceDTO;
             return this;
@@ -297,7 +227,7 @@ public class NetconfTopologySetup {
             return schemaResourceDTO;
         }
 
-        public NetconfTopologySetupBuilder setIdleTimeout(final Duration idleTimeout) {
+        public Builder setIdleTimeout(final Duration idleTimeout) {
             this.idleTimeout = idleTimeout;
             return this;
         }
@@ -305,36 +235,5 @@ public class NetconfTopologySetup {
         Duration getIdleTimeout() {
             return idleTimeout;
         }
-
-        AAAEncryptionService getEncryptionService() {
-            return encryptionService;
-        }
-
-        public NetconfTopologySetupBuilder setEncryptionService(final AAAEncryptionService encryptionService) {
-            this.encryptionService = encryptionService;
-            return this;
-        }
-
-        CredentialProvider getCredentialProvider() {
-            return requireNonNull(credentialProvider);
-        }
-
-        public NetconfTopologySetupBuilder setCredentialProvider(final CredentialProvider credentialProvider) {
-            this.credentialProvider = credentialProvider;
-            return this;
-        }
-
-        KeyStoreProvider getKeyStoreProvider() {
-            return requireNonNull(keyStoreProvider);
-        }
-
-        public NetconfTopologySetupBuilder setKeyStoreProvider(final KeyStoreProvider keyStoreProvider) {
-            this.keyStoreProvider = keyStoreProvider;
-            return this;
-        }
-
-        public static NetconfTopologySetupBuilder create() {
-            return new NetconfTopologySetupBuilder();
-        }
     }
 }
\ No newline at end of file