Pass in EntityOwnerSelectionStrategyConfig when constructing DistributedEntityOwnersh...
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / config / yang / config / distributed_entity_ownership_service / DistributedEntityOwnershipServiceProviderModule.java
1 package org.opendaylight.controller.config.yang.config.distributed_entity_ownership_service;
2
3 import com.google.common.base.Preconditions;
4 import org.opendaylight.controller.cluster.datastore.DistributedDataStore;
5 import org.opendaylight.controller.cluster.datastore.entityownership.DistributedEntityOwnershipService;
6 import org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.EntityOwnerSelectionStrategyConfig;
7 import org.opendaylight.controller.sal.core.spi.data.DOMStore;
8
9
10 public class DistributedEntityOwnershipServiceProviderModule extends org.opendaylight.controller.config.yang.config.distributed_entity_ownership_service.AbstractDistributedEntityOwnershipServiceProviderModule {
11     public DistributedEntityOwnershipServiceProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
12         super(identifier, dependencyResolver);
13     }
14
15     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) {
16         super(identifier, dependencyResolver, oldModule, oldInstance);
17     }
18
19     @Override
20     public void customValidation() {
21         // add custom validation form module attributes here.
22     }
23
24     @Override
25     public boolean canReuseInstance(AbstractDistributedEntityOwnershipServiceProviderModule oldModule) {
26         return true;
27     }
28
29     @Override
30     public java.lang.AutoCloseable createInstance() {
31         DOMStore dataStore = getDataStoreDependency();
32         Preconditions.checkArgument(dataStore instanceof DistributedDataStore,
33                 "Injected DOMStore must be an instance of DistributedDataStore");
34         DistributedEntityOwnershipService service = new DistributedEntityOwnershipService((DistributedDataStore)dataStore, EntityOwnerSelectionStrategyConfig.newBuilder().build());
35         service.start();
36         return service;
37     }
38 }