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%2Fconfig%2Fyang%2Fconfig%2Fdistributed_entity_ownership_service%2FDistributedEntityOwnershipServiceProviderModule.java;h=c0a45852cc6db2e9a60bab225b757cb06c3068d5;hp=8a1018586bb5273c2f992fb22c2e0ce84770c2a4;hb=e4bf29ae5e97f128471cbe3e93f807721f944d83;hpb=0000f31baa84721fa2aebca37f8e5b352e002e4e diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java index 8a1018586b..c0a45852cc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_entity_ownership_service/DistributedEntityOwnershipServiceProviderModule.java @@ -13,43 +13,50 @@ import org.opendaylight.controller.cluster.datastore.DistributedDataStore; import org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService; import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfig; import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfigReader; +import org.opendaylight.controller.cluster.datastore.utils.ActorContext; +import org.opendaylight.controller.config.api.DependencyResolver; +import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.sal.core.spi.data.DOMStore; import org.osgi.framework.BundleContext; - -public class DistributedEntityOwnershipServiceProviderModule extends org.opendaylight.controller.config.yang.config.distributed_entity_ownership_service.AbstractDistributedEntityOwnershipServiceProviderModule { +public class DistributedEntityOwnershipServiceProviderModule extends AbstractDistributedEntityOwnershipServiceProviderModule { + private EntityOwnerSelectionStrategyConfig strategyConfig; private BundleContext bundleContext; - public DistributedEntityOwnershipServiceProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + public DistributedEntityOwnershipServiceProviderModule(final ModuleIdentifier identifier, + final DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); } - public DistributedEntityOwnershipServiceProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.distributed_entity_ownership_service.DistributedEntityOwnershipServiceProviderModule oldModule, java.lang.AutoCloseable oldInstance) { + public DistributedEntityOwnershipServiceProviderModule(final ModuleIdentifier identifier, + final DependencyResolver dependencyResolver, + final DistributedEntityOwnershipServiceProviderModule oldModule, final AutoCloseable oldInstance) { super(identifier, dependencyResolver, oldModule, oldInstance); } @Override public void customValidation() { - // add custom validation form module attributes here. + strategyConfig = EntityOwnerSelectionStrategyConfigReader.loadStrategyWithConfig(bundleContext); } @Override - public boolean canReuseInstance(AbstractDistributedEntityOwnershipServiceProviderModule oldModule) { + public boolean canReuseInstance(final AbstractDistributedEntityOwnershipServiceProviderModule oldModule) { return true; } @Override - public java.lang.AutoCloseable createInstance() { + public AutoCloseable createInstance() { + // FIXME: EntityOwnership needs only the ActorContext, not the entire datastore DOMStore dataStore = getDataStoreDependency(); Preconditions.checkArgument(dataStore instanceof DistributedDataStore, "Injected DOMStore must be an instance of DistributedDataStore"); - EntityOwnerSelectionStrategyConfig strategyConfig = new EntityOwnerSelectionStrategyConfigReader(bundleContext).getConfig(); - DistributedEntityOwnershipService service = new DistributedEntityOwnershipService((DistributedDataStore)dataStore, strategyConfig); - service.start(); - return service; + + final ActorContext context = ((DistributedDataStore)dataStore).getActorContext(); + return DistributedEntityOwnershipService.start(context, strategyConfig); } - public void setBundleContext(BundleContext bundleContext) { + public void setBundleContext(final BundleContext bundleContext) { + // What do we need from the bundle context? this.bundleContext = bundleContext; } }