Bug 8032 - Initialization in sal failed, disconnecting from device
[netconf.git] / netconf / netconf-topology-singleton / src / main / java / org / opendaylight / netconf / topology / singleton / impl / MasterSalFacade.java
index 1087df67f3b9947845b45c575252e081efc3d2be..3b04d0fa957f6ec6f09de077241137f733c2464e 100644 (file)
@@ -18,11 +18,11 @@ import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import java.util.List;
 import java.util.stream.Collectors;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
+import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
 import org.opendaylight.controller.md.sal.dom.api.DOMNotification;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.core.api.Broker;
 import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabilities;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
@@ -45,37 +45,26 @@ class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler<NetconfSessi
 
     private final RemoteDeviceId id;
     private final Timeout actorResponseWaitTime;
+    private final NetconfDeviceSalProvider salProvider;
+    private final ActorRef masterActorRef;
+    private final ActorSystem actorSystem;
 
     private SchemaContext remoteSchemaContext = null;
     private NetconfSessionPreferences netconfSessionPreferences = null;
     private DOMRpcService deviceRpc = null;
-    private final NetconfDeviceSalProvider salProvider;
-
-    private final ActorRef masterActorRef;
-    private final ActorSystem actorSystem;
     private DOMDataBroker deviceDataBroker = null;
 
     MasterSalFacade(final RemoteDeviceId id,
-                    final Broker domBroker,
-                    final BindingAwareBroker bindingBroker,
                     final ActorSystem actorSystem,
                     final ActorRef masterActorRef,
-                    final Timeout actorResponseWaitTime) {
+                    final Timeout actorResponseWaitTime,
+                    final DOMMountPointService mountService,
+                    final DataBroker dataBroker) {
         this.id = id;
-        this.salProvider = new NetconfDeviceSalProvider(id);
+        this.salProvider = new NetconfDeviceSalProvider(id, mountService, dataBroker);
         this.actorSystem = actorSystem;
         this.masterActorRef = masterActorRef;
         this.actorResponseWaitTime = actorResponseWaitTime;
-
-        registerToSal(domBroker, bindingBroker);
-    }
-
-    private void registerToSal(final Broker domRegistryDependency, final BindingAwareBroker bindingBroker) {
-        // TODO: remove use of provider, there is possible directly create mount instance and
-        // TODO: NetconfDeviceTopologyAdapter in constructor = less complexity
-
-        domRegistryDependency.registerProvider(salProvider);
-        bindingBroker.registerProvider(salProvider);
     }
 
     @Override