X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fconfig%2Fdistributed_datastore_provider%2FDistributedConfigDataStoreProviderModule.java;h=2163449b66dd0f2370e4de29322b3a34c094f6df;hb=995da01ef2d635230c37afc7cf4fdd724bf68856;hp=de33f55b96b6a840a8d8fa36dfe5f29aa1195660;hpb=54caaff453fc8da7f8f927323e6b97bed2f33d25;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 de33f55b96..2163449b66 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,29 +1,33 @@ -package org.opendaylight.controller.config.yang.config.distributed_datastore_provider; +/* + * 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 + */ -import java.util.concurrent.TimeUnit; +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.md.sal.dom.store.impl.InMemoryDOMDataStoreConfigProperties; +import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface; +import org.opendaylight.controller.cluster.datastore.compat.LegacyDOMStoreAdapter; +import org.opendaylight.controller.config.api.DependencyResolver; +import org.opendaylight.controller.config.api.ModuleIdentifier; +import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker; import org.osgi.framework.BundleContext; -import scala.concurrent.duration.Duration; - -public class DistributedConfigDataStoreProviderModule extends - org.opendaylight.controller.config.yang.config.distributed_datastore_provider.AbstractDistributedConfigDataStoreProviderModule { +@Deprecated +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); } @@ -33,38 +37,26 @@ public class DistributedConfigDataStoreProviderModule extends } @Override - public java.lang.AutoCloseable createInstance() { - - ConfigProperties props = getConfigProperties(); - if(props == null) { - props = new ConfigProperties(); - } - - DatastoreContext datastoreContext = DatastoreContext.newBuilder() - .dataStoreMXBeanType("DistributedConfigDatastore") - .dataStoreProperties(InMemoryDOMDataStoreConfigProperties.create( - props.getMaxShardDataChangeExecutorPoolSize().getValue().intValue(), - props.getMaxShardDataChangeExecutorQueueSize().getValue().intValue(), - props.getMaxShardDataChangeListenerQueueSize().getValue().intValue(), - props.getMaxShardDataStoreExecutorQueueSize().getValue().intValue())) - .shardTransactionIdleTimeout(Duration.create( - props.getShardTransactionIdleTimeoutInMinutes().getValue(), TimeUnit.MINUTES)) - .operationTimeoutInSeconds(props.getOperationTimeoutInSeconds().getValue()) - .shardJournalRecoveryLogBatchSize(props.getShardJournalRecoveryLogBatchSize(). - getValue().intValue()) - .shardSnapshotBatchCount(props.getShardSnapshotBatchCount().getValue().intValue()) - .shardHeartbeatIntervalInMillis(props.getShardHearbeatIntervalInMillis().getValue()) - .shardTransactionCommitTimeoutInSeconds( - props.getShardTransactionCommitTimeoutInSeconds().getValue().intValue()) - .shardTransactionCommitQueueCapacity( - props.getShardTransactionCommitQueueCapacity().getValue().intValue()) - .build(); + public boolean canReuseInstance(final AbstractDistributedConfigDataStoreProviderModule oldModule) { + return true; + } - return DistributedDataStoreFactory.createInstance("config", getConfigSchemaServiceDependency(), - datastoreContext, bundleContext); + @Override + 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 LegacyDOMStoreAdapter(delegate) { + @Override + public void close() { + tracker.close(); + } + }; } - public void setBundleContext(BundleContext bundleContext) { + public void setBundleContext(final BundleContext bundleContext) { this.bundleContext = bundleContext; } }