X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fentityownership%2FDistributedEntityOwnershipService.java;h=f1d9b43aba35105c2098bf4910f2736302d9b73c;hp=a2619b3b840d179f26f49372a7894ac5d815d652;hb=a623206f49e3c376e1a8494ba584ea0018468f12;hpb=e970feb618c5e3793454f7f1a3974797a61c7c17 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java index a2619b3b84..f1d9b43aba 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipService.java @@ -28,6 +28,7 @@ import org.opendaylight.controller.cluster.datastore.entityownership.messages.Re import org.opendaylight.controller.cluster.datastore.entityownership.messages.RegisterListenerLocal; import org.opendaylight.controller.cluster.datastore.entityownership.messages.UnregisterCandidateLocal; import org.opendaylight.controller.cluster.datastore.entityownership.messages.UnregisterListenerLocal; +import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfig; import org.opendaylight.controller.cluster.datastore.messages.CreateShard; import org.opendaylight.controller.cluster.datastore.messages.GetShardDataTree; import org.opendaylight.controller.cluster.datastore.shardstrategy.ModuleShardStrategy; @@ -61,12 +62,14 @@ public class DistributedEntityOwnershipService implements EntityOwnershipService private static final Timeout MESSAGE_TIMEOUT = new Timeout(1, TimeUnit.MINUTES); private final DistributedDataStore datastore; + private final EntityOwnerSelectionStrategyConfig strategyConfig; private final ConcurrentMap registeredEntities = new ConcurrentHashMap<>(); private volatile ActorRef localEntityOwnershipShard; private volatile DataTree localEntityOwnershipShardDataTree; - public DistributedEntityOwnershipService(DistributedDataStore datastore) { - this.datastore = datastore; + public DistributedEntityOwnershipService(DistributedDataStore datastore, EntityOwnerSelectionStrategyConfig strategyConfig) { + this.datastore = Preconditions.checkNotNull(datastore); + this.strategyConfig = Preconditions.checkNotNull(strategyConfig); } public void start() { @@ -218,7 +221,8 @@ public class DistributedEntityOwnershipService implements EntityOwnershipService } protected EntityOwnershipShard.Builder newShardBuilder() { - return EntityOwnershipShard.newBuilder().localMemberName(datastore.getActorContext().getCurrentMemberName()); + return EntityOwnershipShard.newBuilder().localMemberName(datastore.getActorContext().getCurrentMemberName()) + .ownerSelectionStrategyConfig(this.strategyConfig); } @VisibleForTesting