import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import org.mockito.Mockito;
+import org.opendaylight.controller.cluster.databroker.ClientBackedDataStore;
import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder;
import org.opendaylight.controller.cluster.datastore.config.Configuration;
import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl;
import org.opendaylight.controller.cluster.datastore.config.EmptyModuleShardConfigProvider;
-import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats;
import org.opendaylight.controller.cluster.datastore.messages.OnDemandShardState;
import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot;
import org.opendaylight.controller.cluster.datastore.utils.ActorUtils;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import scala.concurrent.Await;
public DistributedDataStore setupDistributedDataStore(final String typeName, final String moduleShardsConfig,
final boolean waitUntilLeader,
- final SchemaContext schemaContext) throws Exception {
+ final EffectiveModelContext schemaContext) throws Exception {
return setupDistributedDataStore(typeName, moduleShardsConfig, "modules.conf", waitUntilLeader, schemaContext);
}
public DistributedDataStore setupDistributedDataStore(final String typeName, final String moduleShardsConfig,
final String modulesConfig,
final boolean waitUntilLeader,
- final SchemaContext schemaContext,
+ final EffectiveModelContext schemaContext,
final String... shardNames) throws Exception {
return (DistributedDataStore) setupAbstractDataStore(DistributedDataStore.class, typeName, moduleShardsConfig,
modulesConfig, waitUntilLeader, schemaContext, shardNames);
public AbstractDataStore setupAbstractDataStore(final Class<? extends AbstractDataStore> implementation,
final String typeName, final String moduleShardsConfig,
final boolean waitUntilLeader,
- final SchemaContext schemaContext,
+ final EffectiveModelContext schemaContext,
final String... shardNames) throws Exception {
return setupAbstractDataStore(implementation, typeName, moduleShardsConfig, "modules.conf", waitUntilLeader,
schemaContext, shardNames);
private AbstractDataStore setupAbstractDataStore(final Class<? extends AbstractDataStore> implementation,
final String typeName, final String moduleShardsConfig,
final String modulesConfig, final boolean waitUntilLeader,
- final SchemaContext schemaContext, final String... shardNames)
+ final EffectiveModelContext schemaContext,
+ final String... shardNames)
throws Exception {
final ClusterWrapper cluster = new ClusterWrapperImpl(getSystem());
final Configuration config = new ConfigurationImpl(moduleShardsConfig, modulesConfig);
setDataStoreName(typeName);
+ // Make sure we set up datastore context correctly
+ datastoreContextBuilder.useTellBasedProtocol(ClientBackedDataStore.class.isAssignableFrom(implementation));
+
final DatastoreContext datastoreContext = datastoreContextBuilder.build();
final DatastoreContextFactory mockContextFactory = Mockito.mock(DatastoreContextFactory.class);
Mockito.doReturn(datastoreContext).when(mockContextFactory).getBaseDatastoreContext();
final AbstractDataStore dataStore = constructor.newInstance(getSystem(), cluster, config, mockContextFactory,
restoreFromSnapshot);
- dataStore.onGlobalContextUpdated(schemaContext);
+ dataStore.onModelContextUpdated(schemaContext);
if (waitUntilLeader) {
waitUntilLeader(dataStore.getActorUtils(), shardNames);
}
public DistributedDataStore setupDistributedDataStoreWithoutConfig(final String typeName,
- final SchemaContext schemaContext) {
+ final EffectiveModelContext schemaContext) {
final ClusterWrapper cluster = new ClusterWrapperImpl(getSystem());
final ConfigurationImpl configuration = new ConfigurationImpl(new EmptyModuleShardConfigProvider());
final DistributedDataStore dataStore = new DistributedDataStore(getSystem(), cluster,
configuration, mockContextFactory, restoreFromSnapshot);
- dataStore.onGlobalContextUpdated(schemaContext);
+ dataStore.onModelContextUpdated(schemaContext);
datastoreContextBuilder = DatastoreContext.newBuilderFrom(datastoreContext);
return dataStore;
}
public DistributedDataStore setupDistributedDataStoreWithoutConfig(final String typeName,
- final SchemaContext schemaContext,
+ final EffectiveModelContext schemaContext,
final LogicalDatastoreType storeType) {
final ClusterWrapper cluster = new ClusterWrapperImpl(getSystem());
final ConfigurationImpl configuration = new ConfigurationImpl(new EmptyModuleShardConfigProvider());
final DistributedDataStore dataStore = new DistributedDataStore(getSystem(), cluster,
configuration, mockContextFactory, restoreFromSnapshot);
- dataStore.onGlobalContextUpdated(schemaContext);
+ dataStore.onModelContextUpdated(schemaContext);
datastoreContextBuilder = DatastoreContext.newBuilderFrom(datastoreContext);
return dataStore;
ActorRef shard = null;
for (int i = 0; i < 20 * 5 && shard == null; i++) {
Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS);
- com.google.common.base.Optional<ActorRef> shardReply = actorUtils.findLocalShard(shardName);
+ Optional<ActorRef> shardReply = actorUtils.findLocalShard(shardName);
if (shardReply.isPresent()) {
shard = shardReply.get();
}
for (int i = 0; i < 20 * 5 ; i++) {
LOG.debug("Waiting for shard down {}", shardName);
Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS);
- com.google.common.base.Optional<ActorRef> shardReply = actorUtils.findLocalShard(shardName);
+ Optional<ActorRef> shardReply = actorUtils.findLocalShard(shardName);
if (!shardReply.isPresent()) {
return;
}
}
void testWriteTransaction(final AbstractDataStore dataStore, final YangInstanceIdentifier nodePath,
- final NormalizedNode<?, ?> nodeToWrite) throws Exception {
+ final NormalizedNode nodeToWrite) throws Exception {
// 1. Create a write-only Tx
DOMStoreReadTransaction readTx = dataStore.newReadOnlyTransaction();
- Optional<NormalizedNode<?, ?>> optional = readTx.read(nodePath).get(5, TimeUnit.SECONDS);
+ Optional<NormalizedNode> optional = readTx.read(nodePath).get(5, TimeUnit.SECONDS);
assertTrue("isPresent", optional.isPresent());
assertEquals("Data node", nodeToWrite, optional.get());
}