<type>xml</type>
<classifier>features</classifier>
</dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>odl-controller-blueprint</artifactId>
- <type>xml</type>
- <classifier>features</classifier>
- </dependency>
<dependency>
<groupId>org.opendaylight.controller.samples</groupId>
<artifactId>clustering-it-model</artifactId>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-dom-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-common-api</artifactId>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-distributed-datastore</artifactId>
</dependency>
+ <dependency>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.guicedee.services</groupId>
+ <artifactId>javax.inject</artifactId>
+ <optional>true</optional>
+ </dependency>
</dependencies>
</project>
*/
package org.opendaylight.controller.clustering.it.listener;
+import static java.util.Objects.requireNonNull;
+
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.MoreExecutors;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationService;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.people.rev140818.car.people.CarPersonKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.purchase.rev140818.CarBought;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.purchase.rev140818.CarPurchaseListener;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class PeopleCarListener implements CarPurchaseListener {
+@Singleton
+@Component(service = { })
+public final class PeopleCarListener implements CarPurchaseListener {
private static final Logger LOG = LoggerFactory.getLogger(PeopleCarListener.class);
- private DataBroker dataProvider;
+ private final DataBroker dataProvider;
+ private final Registration reg;
+
+ @Inject
+ @Activate
+ public PeopleCarListener(@Reference final DataBroker dataProvider,
+ @Reference final NotificationService notifService) {
+ this.dataProvider = requireNonNull(dataProvider);
+ reg = notifService.registerNotificationListener(this);
+ }
- public void setDataProvider(final DataBroker salDataProvider) {
- this.dataProvider = salDataProvider;
+ @PreDestroy
+ @Deactivate
+ public void close() {
+ reg.close();
}
@Override
public void onCarBought(final CarBought notification) {
- final CarPersonBuilder carPersonBuilder = new CarPersonBuilder();
- carPersonBuilder.setCarId(notification.getCarId());
- carPersonBuilder.setPersonId(notification.getPersonId());
- CarPersonKey key = new CarPersonKey(notification.getCarId(), notification.getPersonId());
- carPersonBuilder.withKey(key);
- final CarPerson carPerson = carPersonBuilder.build();
+ final CarPerson carPerson = new CarPersonBuilder()
+ .withKey(new CarPersonKey(notification.getCarId(), notification.getPersonId()))
+ .build();
LOG.info("Car bought, adding car-person entry: [{}]", carPerson);
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
import org.opendaylight.yang.gen.v1.urn.opendaylight.controller.basic.rpc.test.rev160120.BasicGlobalOutputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.controller.basic.rpc.test.rev160120.BasicRpcTestService;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Singleton
+@Component(service = { })
public final class BasicRpcTestProvider implements ClusterSingletonService, BasicRpcTestService {
private static final Logger LOG = LoggerFactory.getLogger(BasicRpcTestProvider.class);
private static final ServiceGroupIdentifier IDENTIFIER = ServiceGroupIdentifier.create("Basic-rpc-test");
private final RpcProviderService rpcProviderRegistry;
- private final ClusterSingletonServiceProvider singletonService;
+ private final Registration singletonRegistration;
private ObjectRegistration<?> rpcRegistration;
- public BasicRpcTestProvider(final RpcProviderService rpcProviderRegistry,
- final ClusterSingletonServiceProvider singletonService) {
+ @Inject
+ @Activate
+ public BasicRpcTestProvider(@Reference final RpcProviderService rpcProviderRegistry,
+ @Reference final ClusterSingletonServiceProvider singletonService) {
this.rpcProviderRegistry = rpcProviderRegistry;
- this.singletonService = singletonService;
+ singletonRegistration = singletonService.registerClusterSingletonService(this);
+ }
- singletonService.registerClusterSingletonService(this);
+ @PreDestroy
+ @Deactivate
+ public void close() {
+ singletonRegistration.close();
}
@Override
*
* @author Ryan Goulding (ryandgoulding@gmail.com)
*/
-public class CarDataTreeChangeListener implements DataTreeChangeListener<Cars> {
+public final class CarDataTreeChangeListener implements DataTreeChangeListener<Cars> {
private static final Logger LOG = LoggerFactory.getLogger(CarDataTreeChangeListener.class);
- @java.lang.Override
+ @Override
public void onDataTreeChanged(final java.util.Collection<DataTreeModification<Cars>> changes) {
if (LOG.isTraceEnabled()) {
for (DataTreeModification<Cars> change : changes) {
*
* @author Thomas Pantelis
*/
-public class CarEntryDataTreeCommitCohort implements DOMDataTreeCommitCohort {
+public final class CarEntryDataTreeCommitCohort implements DOMDataTreeCommitCohort {
private static final Logger LOG = LoggerFactory.getLogger(CarEntryDataTreeCommitCohort.class);
private static final QName YEAR_QNAME = QName.create(Cars.QNAME, "year").intern();
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.rev140818.cars.CarEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.rev140818.cars.CarEntryBuilder;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
*
* @author Thomas Pantelis
*/
+@Singleton
+@Component(service = { })
@SuppressFBWarnings("SLF4J_ILLEGAL_PASSED_CLASS")
-public class CarProvider implements CarService {
+public final class CarProvider implements CarService {
private static final Logger LOG_PURCHASE_CAR = LoggerFactory.getLogger(PurchaseCarProvider.class);
private static final Logger LOG_CAR_PROVIDER = LoggerFactory.getLogger(CarProvider.class);
private final AtomicBoolean registeredListener = new AtomicBoolean();
private final Set<ListenerRegistration<?>> carsDclRegistrations = ConcurrentHashMap.newKeySet();
+
+ private final Set<ObjectRegistration<?>> regs = new HashSet<>();
private final Set<ListenerRegistration<CarDataTreeChangeListener>> carsDtclRegistrations =
ConcurrentHashMap.newKeySet();
private final AtomicReference<DOMDataTreeCommitCohortRegistration<CarEntryDataTreeCommitCohort>> commitCohortReg =
new AtomicReference<>();
- public CarProvider(final DataBroker dataProvider, final EntityOwnershipService ownershipService,
- final DOMDataBroker domDataBroker) {
+ @Inject
+ @Activate
+ public CarProvider(@Reference final DataBroker dataProvider,
+ @Reference final EntityOwnershipService ownershipService, @Reference final DOMDataBroker domDataBroker,
+ @Reference final RpcProviderService rpcProviderService) {
this.dataProvider = dataProvider;
this.ownershipService = ownershipService;
this.domDataBroker = domDataBroker;
+ regs.add(rpcProviderService.registerRpcImplementation(CarService.class, this));
}
+ @PreDestroy
+ @Deactivate
public void close() {
stopThread();
closeCommitCohortRegistration();
+ regs.forEach(ObjectRegistration::close);
+ regs.clear();
}
private void stopThread() {
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.opendaylight.controller.cluster.ActorSystemProvider;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface;
import org.opendaylight.controller.cluster.datastore.utils.ActorUtils;
import org.opendaylight.controller.cluster.raft.client.messages.Shutdown;
import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.lowlevel.control.rev170215.WriteTransactionsInput;
import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.lowlevel.control.rev170215.WriteTransactionsOutput;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.ErrorTag;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import scala.concurrent.duration.FiniteDuration;
+@Singleton
+@Component(service = {})
public final class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService {
private static final Logger LOG = LoggerFactory.getLogger(MdsalLowLevelTestProvider.class);
- private final ObjectRegistration<OdlMdsalLowlevelControlService> registration;
+ private final Registration registration;
private final DistributedDataStoreInterface configDataStore;
private final BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer;
private final DOMDataBroker domDataBroker;
private IdIntsListener idIntsListener;
private final Map<String, PublishNotificationsTask> publishNotificationsTasks = new HashMap<>();
+ @Inject
+ @Activate
public MdsalLowLevelTestProvider(
- // FIXME: do not depend on this service
- final RpcProviderService rpcRegistry,
- final DOMRpcProviderService domRpcService,
- final ClusterSingletonServiceProvider singletonService,
- // FIXME: do not depend on this service
- final DOMSchemaService schemaService,
- final BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer,
- final NotificationPublishService notificationPublishService,
- final NotificationService notificationService,
- final DOMDataBroker domDataBroker,
- final DistributedDataStoreInterface configDataStore,
- // FIXME: do not depend on this service
- final ActorSystemProvider actorSystemProvider) {
+ @Reference final RpcProviderService rpcRegistry,
+ @Reference final DOMRpcProviderService domRpcService,
+ @Reference final ClusterSingletonServiceProvider singletonService,
+ @Reference final DOMSchemaService schemaService,
+ @Reference final BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer,
+ @Reference final NotificationPublishService notificationPublishService,
+ @Reference final NotificationService notificationService,
+ @Reference final DOMDataBroker domDataBroker,
+ @Reference final DistributedDataStoreInterface configDataStore) {
this.domRpcService = domRpcService;
this.singletonService = singletonService;
this.bindingNormalizedNodeSerializer = bindingNormalizedNodeSerializer;
registration = rpcRegistry.registerRpcImplementation(OdlMdsalLowlevelControlService.class, this);
}
+ @PreDestroy
+ @Deactivate
+ public void close() {
+ registration.close();
+ }
+
@Override
@SuppressWarnings("checkstyle:IllegalCatch")
public ListenableFuture<RpcResult<UnregisterSingletonConstantOutput>> unregisterSingletonConstant(
import com.google.common.util.concurrent.SettableFuture;
import java.util.HashSet;
import java.util.Set;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class PeopleProvider implements PeopleService, AutoCloseable {
-
+@Singleton
+@Component(service = { })
+public final class PeopleProvider implements PeopleService, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(PeopleProvider.class);
private final Set<ObjectRegistration<?>> regs = new HashSet<>();
private final RpcProviderService rpcProviderService;
private final CarPurchaseService rpcImplementation;
- public PeopleProvider(final DataBroker dataProvider, final RpcProviderService rpcProviderService,
- final CarPurchaseService rpcImplementation) {
+ @Inject
+ @Activate
+ public PeopleProvider(@Reference final DataBroker dataProvider,
+ @Reference final RpcProviderService rpcProviderService,
+ @Reference final CarPurchaseService rpcImplementation) {
this.dataProvider = requireNonNull(dataProvider);
this.rpcProviderService = requireNonNull(rpcProviderService);
this.rpcImplementation = requireNonNull(rpcImplementation);
return futureResult;
}
+ @PreDestroy
+ @Deactivate
@Override
public void close() {
regs.forEach(ObjectRegistration::close);
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.purchase.rev140818.BuyCarInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.purchase.rev140818.BuyCarOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.purchase.rev140818.CarPurchaseService;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class PurchaseCarProvider implements CarPurchaseService, AutoCloseable {
+@Singleton
+@Component(service = CarPurchaseService.class)
+public final class PurchaseCarProvider implements CarPurchaseService {
private static final Logger LOG = LoggerFactory.getLogger(PurchaseCarProvider.class);
private final NotificationPublishService notificationProvider;
- public PurchaseCarProvider(final NotificationPublishService notificationProvider) {
+ @Inject
+ @Activate
+ public PurchaseCarProvider(@Reference final NotificationPublishService notificationProvider) {
this.notificationProvider = requireNonNull(notificationProvider);
}
result -> RpcResultBuilder.success(new BuyCarOutputBuilder().build()).build(),
MoreExecutors.directExecutor());
}
-
- @Override
- public void close() {
-
- }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class IdIntsListener implements ClusteredDOMDataTreeChangeListener {
+public final class IdIntsListener implements ClusteredDOMDataTreeChangeListener {
private static final Logger LOG = LoggerFactory.getLogger(IdIntsListener.class);
private static final long SECOND_AS_NANO = 1000000000;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class PublishNotificationsTask implements Runnable {
-
+public final class PublishNotificationsTask implements Runnable {
private static final Logger LOG = LoggerFactory.getLogger(PublishNotificationsTask.class);
- private static final int SECOND_AS_NANO = 1000000000;
+ private static final int SECOND_AS_NANO = 1_000_000_000;
private final NotificationPublishService notificationPublishService;
private final String notificationId;
this.notificationPublishService = requireNonNull(notificationPublishService);
this.notificationId = requireNonNull(notificationId);
checkArgument(secondsToTake > 0);
- this.timeToTake = secondsToTake * SECOND_AS_NANO;
+ timeToTake = secondsToTake * SECOND_AS_NANO;
checkArgument(maxPerSecond > 0);
- this.delay = SECOND_AS_NANO / maxPerSecond;
+ delay = SECOND_AS_NANO / maxPerSecond;
LOG.debug("Delay : {}", delay);
}
import org.slf4j.LoggerFactory;
public final class SingletonGetConstantService implements DOMRpcImplementation, ClusterSingletonService {
-
private static final Logger LOG = LoggerFactory.getLogger(SingletonGetConstantService.class);
private static final QNameModule MODULE = QNameModule.create(
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
- odl:use-default-for-reference-types="true">
-
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
- <reference id="entityOwnershipService" interface="org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService"/>
- <reference id="bindingRpcRegistry" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
- <reference id="domRpcProviderService" interface="org.opendaylight.mdsal.dom.api.DOMRpcProviderService"/>
- <reference id="clusterSingletonService" interface="org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider"/>
- <reference id="domDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
- <reference id="schemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
- <reference id="normalizedNodeSerializer" interface="org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer"/>
- <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" />
- <reference id="notificationListenerService" interface="org.opendaylight.mdsal.binding.api.NotificationService" />
- <reference id="configDatastore" interface="org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface"
- odl:type="distributed-config"/>
- <reference id="actorSystemProvider" interface="org.opendaylight.controller.cluster.ActorSystemProvider"/>
-
-
- <bean id="purchaseCarProvider" class="org.opendaylight.controller.clustering.it.provider.PurchaseCarProvider" >
- <argument ref="notificationPublishService"/>
- </bean>
-
- <bean id="peopleProvider" class="org.opendaylight.controller.clustering.it.provider.PeopleProvider"
- destroy-method="close">
- <argument ref="dataBroker"/>
- <argument ref="bindingRpcRegistry"/>
- <argument ref="purchaseCarProvider"/>
- </bean>
-
- <bean id="carProvider" class="org.opendaylight.controller.clustering.it.provider.CarProvider"
- destroy-method="close">
- <argument ref="dataBroker"/>
- <argument ref="entityOwnershipService"/>
- <argument ref="domDataBroker"/>
- </bean>
-
- <odl:rpc-implementation ref="carProvider"/>
- <odl:rpc-implementation ref="peopleProvider"/>
-
- <bean id="peopleCarListener" class="org.opendaylight.controller.clustering.it.listener.PeopleCarListener" >
- <property name="dataProvider" ref="dataBroker"/>
- </bean>
-
- <odl:notification-listener ref="peopleCarListener"/>
-
- <bean id="basicTestProvider" class="org.opendaylight.controller.clustering.it.provider.BasicRpcTestProvider">
- <argument ref="bindingRpcRegistry"/>
- <argument ref="clusterSingletonService"/>
- </bean>
-
- <bean id="lowLevelTestProvider" class="org.opendaylight.controller.clustering.it.provider.MdsalLowLevelTestProvider">
- <argument ref="bindingRpcRegistry"/>
- <argument ref="domRpcProviderService"/>
- <argument ref="clusterSingletonService"/>
- <argument ref="schemaService"/>
- <argument ref="normalizedNodeSerializer"/>
- <argument ref="notificationPublishService"/>
- <argument ref="notificationListenerService"/>
- <argument ref="domDataBroker"/>
- <argument ref="configDatastore"/>
- <argument ref="actorSystemProvider"/>
- </bean>
-
-</blueprint>