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=2163449b66dd0f2370e4de29322b3a34c094f6df;hb=bb813bc67d165b02078e0d9aaa194d3232e170e5;hp=ce31c3ad5738edc81db36f8666c67dc309cbdfb7;hpb=f4bad4be4f0838122b9799d133878877088e870d;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 ce31c3ad57..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,21 +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.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; + +@Deprecated +public class DistributedConfigDataStoreProviderModule extends AbstractDistributedConfigDataStoreProviderModule { + private BundleContext bundleContext; -public class DistributedConfigDataStoreProviderModule extends - org.opendaylight.controller.config.yang.config.distributed_datastore_provider.AbstractDistributedConfigDataStoreProviderModule { 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); } @@ -25,11 +37,26 @@ public class DistributedConfigDataStoreProviderModule extends } @Override - public java.lang.AutoCloseable createInstance() { - return DistributedDataStoreFactory.createInstance("config", getConfigSchemaServiceDependency(), - InMemoryDOMDataStoreConfigProperties.create(getConfigMaxShardDataChangeExecutorPoolSize(), - getConfigMaxShardDataChangeExecutorQueueSize(), - getConfigMaxShardDataChangeListenerQueueSize())); + public boolean canReuseInstance(final AbstractDistributedConfigDataStoreProviderModule oldModule) { + return true; } + @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(final BundleContext bundleContext) { + this.bundleContext = bundleContext; + } }