X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fconfig%2Fdistributed_datastore_provider%2FDistributedConfigDataStoreProviderModule.java;h=a99b8c3a986d8ef50dc46404c46e9b5a84c231bc;hb=b25ae9347455b1bae8f25424a9ceffc017f2f0db;hp=539797e65966e9d8dcdfbef11969223f8308f267;hpb=103ceecd0195cca6c87fbd62a687d8addf128784;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModule.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModule.java index 539797e659..a99b8c3a98 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModule.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedConfigDataStoreProviderModule.java @@ -1,24 +1,33 @@ +/* + * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + package org.opendaylight.controller.config.yang.config.distributed_datastore_provider; import org.opendaylight.controller.cluster.datastore.DatastoreContext; -import org.opendaylight.controller.cluster.datastore.DistributedDataStoreFactory; +import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.config.api.DependencyResolver; +import org.opendaylight.controller.config.api.ModuleIdentifier; +import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.osgi.framework.BundleContext; -public class DistributedConfigDataStoreProviderModule extends - org.opendaylight.controller.config.yang.config.distributed_datastore_provider.AbstractDistributedConfigDataStoreProviderModule { +public class DistributedConfigDataStoreProviderModule extends AbstractDistributedConfigDataStoreProviderModule { private BundleContext bundleContext; public DistributedConfigDataStoreProviderModule( - org.opendaylight.controller.config.api.ModuleIdentifier identifier, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + final org.opendaylight.controller.config.api.ModuleIdentifier identifier, + final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); } - public DistributedConfigDataStoreProviderModule( - org.opendaylight.controller.config.api.ModuleIdentifier identifier, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, - org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedConfigDataStoreProviderModule oldModule, - java.lang.AutoCloseable oldInstance) { + public DistributedConfigDataStoreProviderModule(final ModuleIdentifier identifier, + final DependencyResolver dependencyResolver, final DistributedConfigDataStoreProviderModule oldModule, + final AutoCloseable oldInstance) { super(identifier, dependencyResolver, oldModule, oldInstance); } @@ -28,29 +37,48 @@ public class DistributedConfigDataStoreProviderModule extends } @Override - public boolean canReuseInstance(AbstractDistributedConfigDataStoreProviderModule oldModule) { + public boolean canReuseInstance(final AbstractDistributedConfigDataStoreProviderModule oldModule) { return true; } @Override - public java.lang.AutoCloseable createInstance() { - ConfigProperties props = getConfigProperties(); - if(props == null) { + public AutoCloseable createInstance() { + // The DistributedConfigDataStore is provided via blueprint so wait for and return it here for + // backwards compatibility. + WaitingServiceTracker tracker = WaitingServiceTracker.create( + DistributedDataStoreInterface.class, bundleContext, "(type=distributed-config)"); + DistributedDataStoreInterface delegate = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES); + return new ForwardingDistributedDataStore(delegate, tracker); + } + + public static DatastoreContext newDatastoreContext() { + return newDatastoreContext(null); + } + + private static DatastoreContext newDatastoreContext(final ConfigProperties inProps) { + ConfigProperties props = inProps; + if (props == null) { props = new ConfigProperties(); } - DatastoreContext datastoreContext = DatastoreContext.newBuilder() - .dataStoreType("config") + return DatastoreContext.newBuilder() + .logicalStoreType(LogicalDatastoreType.CONFIGURATION) + .tempFileDirectory("./data") + .fileBackedStreamingThresholdInMegabytes(props.getFileBackedStreamingThresholdInMegabytes() + .getValue().intValue()) .maxShardDataChangeExecutorPoolSize(props.getMaxShardDataChangeExecutorPoolSize().getValue().intValue()) - .maxShardDataChangeExecutorQueueSize(props.getMaxShardDataChangeExecutorQueueSize().getValue().intValue()) - .maxShardDataChangeListenerQueueSize(props.getMaxShardDataChangeListenerQueueSize().getValue().intValue()) + .maxShardDataChangeExecutorQueueSize(props.getMaxShardDataChangeExecutorQueueSize() + .getValue().intValue()) + .maxShardDataChangeListenerQueueSize(props.getMaxShardDataChangeListenerQueueSize() + .getValue().intValue()) .maxShardDataStoreExecutorQueueSize(props.getMaxShardDataStoreExecutorQueueSize().getValue().intValue()) .shardTransactionIdleTimeoutInMinutes(props.getShardTransactionIdleTimeoutInMinutes().getValue()) .operationTimeoutInSeconds(props.getOperationTimeoutInSeconds().getValue()) - .shardJournalRecoveryLogBatchSize(props.getShardJournalRecoveryLogBatchSize(). - getValue().intValue()) + .shardJournalRecoveryLogBatchSize(props.getShardJournalRecoveryLogBatchSize() + .getValue().intValue()) .shardSnapshotBatchCount(props.getShardSnapshotBatchCount().getValue().intValue()) - .shardSnapshotDataThresholdPercentage(props.getShardSnapshotDataThresholdPercentage().getValue().intValue()) + .shardSnapshotDataThresholdPercentage(props.getShardSnapshotDataThresholdPercentage() + .getValue().intValue()) .shardHeartbeatIntervalInMillis(props.getShardHeartbeatIntervalInMillis().getValue()) .shardInitializationTimeoutInSeconds(props.getShardInitializationTimeoutInSeconds().getValue()) .shardLeaderElectionTimeoutInSeconds(props.getShardLeaderElectionTimeoutInSeconds().getValue()) @@ -66,13 +94,15 @@ public class DistributedConfigDataStoreProviderModule extends .shardBatchedModificationCount(props.getShardBatchedModificationCount().getValue().intValue()) .shardCommitQueueExpiryTimeoutInSeconds( props.getShardCommitQueueExpiryTimeoutInSeconds().getValue().intValue()) + .transactionDebugContextEnabled(props.getTransactionDebugContextEnabled()) + .customRaftPolicyImplementation(props.getCustomRaftPolicyImplementation()) + .shardSnapshotChunkSize(props.getShardSnapshotChunkSize().getValue().intValue()) + .useTellBasedProtocol(props.getUseTellBasedProtocol()) + .syncIndexThreshold(props.getSyncIndexThreshold().getValue()) .build(); - - return DistributedDataStoreFactory.createInstance(getConfigSchemaServiceDependency(), - datastoreContext, bundleContext); } - public void setBundleContext(BundleContext bundleContext) { + public void setBundleContext(final BundleContext bundleContext) { this.bundleContext = bundleContext; } }