Bug 4094: Fix DCNs on initial registration
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / DistributedDataStore.java
index f65518692039be488dde962fb5a5d6f168ed88de..34d5ed02684a78bb6b34f449f299a7a2b8fafe26 100644 (file)
@@ -15,10 +15,10 @@ import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.Uninterruptibles;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import org.opendaylight.controller.cluster.datastore.config.Configuration;
 import org.opendaylight.controller.cluster.datastore.identifiers.ShardManagerIdentifier;
 import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreConfigurationMXBeanImpl;
 import org.opendaylight.controller.cluster.datastore.jmx.mbeans.DatastoreInfoMXBeanImpl;
-import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory;
 import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
 import org.opendaylight.controller.cluster.datastore.utils.Dispatchers;
 import org.opendaylight.controller.cluster.datastore.utils.PrimaryShardInfoFutureCache;
@@ -125,7 +125,7 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener,
 
         LOG.debug("Registering listener: {} for path: {} scope: {}", listener, path, scope);
 
-        String shardName = ShardStrategyFactory.getStrategy(path).findShard(path);
+        String shardName = actorContext.getShardStrategyFactory().getStrategy(path).findShard(path);
 
         final DataChangeListenerRegistrationProxy listenerRegistrationProxy =
                 new DataChangeListenerRegistrationProxy(shardName, actorContext, listener);
@@ -139,7 +139,7 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener,
         Preconditions.checkNotNull(treeId, "treeId should not be null");
         Preconditions.checkNotNull(listener, "listener should not be null");
 
-        final String shardName = ShardStrategyFactory.getStrategy(treeId).findShard(treeId);
+        final String shardName = actorContext.getShardStrategyFactory().getStrategy(treeId).findShard(treeId);
         LOG.debug("Registering tree listener: {} for tree: {} shard: {}", listener, treeId, shardName);
 
         final DataTreeChangeListenerProxy<L> listenerRegistrationProxy =
@@ -202,8 +202,7 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener,
         DistributedDataStoreFactory.destroyInstance(this);
     }
 
-    @VisibleForTesting
-    ActorContext getActorContext() {
+    public ActorContext getActorContext() {
         return actorContext;
     }