bind(DOMMountPointService.class).to(DOMMountPointServiceImpl.class);
DOMRpcRouter domRpcRouter = DOMRpcRouter.newInstance(domSchemaService);
+ bind(DOMRpcRouter.class).toInstance(domRpcRouter);
+
DOMRpcService rpcService = domRpcRouter.getRpcService();
bind(DOMRpcService.class).toInstance(rpcService);
import org.opendaylight.controller.sal.core.compat.DOMDataBrokerAdapter;
import org.opendaylight.controller.sal.core.compat.DOMNotificationServiceAdapter;
import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcProviderServiceAdapter;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcServiceAdapter;
import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
import org.opendaylight.mdsal.dom.api.DOMMountPointService;
import org.opendaylight.mdsal.dom.api.DOMNotificationService;
+import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
+import org.opendaylight.mdsal.dom.api.DOMRpcService;
import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl;
+import org.opendaylight.mdsal.dom.broker.DOMRpcRouter;
import org.opendaylight.mdsal.dom.broker.pingpong.PingPongDataBroker;
import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
import org.opendaylight.mdsal.eos.binding.dom.adapter.BindingDOMEntityOwnershipServiceAdapter;
@Singleton ClusterSingletonServiceProvider getClusterSingletonServiceProvider(DOMEntityOwnershipService eos) {
return new DOMClusterSingletonServiceProviderImpl(eos);
}
-/*
+
+// @Provides
+// @Singleton DOMRpcService getDOMService(org.opendaylight.controller.md.sal.dom.api.DOMRpcService controllerDRSA) {
+// return new DOMRpcServiceAdapter(controllerDRSA);
+// }
+
+ @Provides
+ @Singleton
+ RpcConsumerRegistry getRpcConsumerRegistry(DOMRpcService domService, BindingToNormalizedNodeCodec codec) {
+ return new BindingDOMRpcServiceAdapter(domService, codec);
+ }
+
@Provides
@Singleton
RpcProviderService getRpcProviderService(DOMRpcProviderService domRpcRegistry, BindingToNormalizedNodeCodec codec) {
return new BindingDOMRpcProviderServiceAdapter(domRpcRegistry, codec);
}
-*/
+
+ @Provides
+ @Singleton DOMRpcProviderService getDOMRpcProviderService(DOMRpcRouter domRpcRouter) {
+ return domRpcRouter.getRpcProviderService();
+ }
}
import org.opendaylight.controller.simple.ConfigReader;
import org.opendaylight.infrautils.inject.guice.AutoWiringModule;
import org.opendaylight.infrautils.inject.guice.GuiceClassPathBinder;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
import org.opendaylight.mdsal.simple.PingPong;
import org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderFactoryImpl;
import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProviderFactory;
import org.opendaylight.openflowplugin.impl.ForwardingPingPongDataBroker;
import org.opendaylight.openflowplugin.impl.PingPongDataBroker;
import org.opendaylight.openflowplugin.impl.configuration.ConfigurationServiceFactoryImpl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig;
bind(SwitchConnectionProviderFactory.class).to(SwitchConnectionProviderFactoryImpl.class);
}
+ @Provides
+ @Singleton PacketProcessingService getPacketProcessingService(RpcConsumerRegistry rpcConsumerRegistry) {
+ return rpcConsumerRegistry.getRpcService(PacketProcessingService.class);
+ }
+
@Provides
@Singleton PingPongDataBroker getPingPongDataBroker(@PingPong DataBroker pingPongDataBroker) {
return new ForwardingPingPongDataBroker(pingPongDataBroker);
import org.opendaylight.infrautils.inject.guice.testutils.GuiceRule2;
import org.opendaylight.infrautils.simple.testutils.AbstractSimpleDistributionTest;
import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.simple.PingPong;
public class InMemoryMdsalModuleTest extends AbstractSimpleDistributionTest {
@Inject @PingPong DataBroker pingPongDataBroker;
@Inject DataBroker dataBroker;
+ @Inject RpcProviderService rpcProviderService;
+ @Inject RpcConsumerRegistry rpcConsumerRegistry;
+
@Test public void testDataBroker() throws InterruptedException, ExecutionException {
dataBroker.newReadWriteTransaction().commit().get();
}
+
}