X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Ftest%2Futil%2FBindingTestContext.java;h=1203a72dc3616805c009d3a30a74edf3630a5e53;hb=9d382baa1e291f3199089b00f2e9adf910c1f9a0;hp=58d6a3de889b8759140b9ee7334719f3ab4780ca;hpb=fdb31721b3b17060158556f3e36be5800be18a07;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/test/util/BindingTestContext.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/test/util/BindingTestContext.java index 58d6a3de88..1203a72dc3 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/test/util/BindingTestContext.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/test/util/BindingTestContext.java @@ -17,75 +17,64 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.MutableClassToInstanceMap; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; -import java.util.Set; -import java.util.concurrent.Future; import javassist.ClassPool; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.MountPointService; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.api.NotificationService; +import org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceAdapter; import org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry; import org.opendaylight.controller.md.sal.binding.compat.HydrogenDataBrokerAdapter; import org.opendaylight.controller.md.sal.binding.compat.HydrogenMountProvisionServiceAdapter; +import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter; +import org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter; +import org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; -import org.opendaylight.controller.md.sal.binding.impl.ForwardedBindingDataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; +import org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService; +import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService; import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService; import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; +import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter; import org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter; import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker; -import org.opendaylight.controller.md.sal.dom.broker.impl.compat.BackwardsCompatibleDataBroker; import org.opendaylight.controller.md.sal.dom.broker.impl.mount.DOMMountPointServiceImpl; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore; import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.controller.sal.binding.api.data.DataProviderService; import org.opendaylight.controller.sal.binding.api.mount.MountProviderService; -import org.opendaylight.controller.sal.binding.impl.NotificationBrokerImpl; import org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker; import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; -import org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration; -import org.opendaylight.controller.sal.core.api.Broker.RpcRegistration; import org.opendaylight.controller.sal.core.api.BrokerService; -import org.opendaylight.controller.sal.core.api.RpcImplementation; -import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; -import org.opendaylight.controller.sal.core.api.RpcRegistrationListener; import org.opendaylight.controller.sal.core.spi.data.DOMStore; import org.opendaylight.controller.sal.dom.broker.BrokerImpl; -import org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareRpcBroker; import org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerGenerator; import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator; import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; -import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl; import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.binding.util.BindingReflections; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @Beta public class BindingTestContext implements AutoCloseable { - private RuntimeGeneratedMappingServiceImpl mappingServiceImpl; private BindingToNormalizedNodeCodec codec; private RootBindingAwareBroker baBrokerImpl; - private NotificationBrokerImpl baNotifyImpl; + private HeliumNotificationProviderServiceAdapter baNotifyImpl; - @Deprecated - private org.opendaylight.controller.sal.core.api.data.DataProviderService biDataLegacyBroker; private BrokerImpl biBrokerImpl; private final ListeningExecutorService executor; @@ -97,9 +86,6 @@ public class BindingTestContext implements AutoCloseable { private ImmutableMap newDatastores; - @Deprecated - private BackwardsCompatibleDataBroker biCompatibleBroker; - @Deprecated private DataProviderService baData; @@ -114,6 +100,14 @@ public class BindingTestContext implements AutoCloseable { private BindingDOMRpcProviderServiceAdapter baProviderRpc; private DOMRpcRouter domRouter; + private NotificationPublishService publishService; + + private NotificationService listenService; + + private DOMNotificationPublishService domPublishService; + + private DOMNotificationService domListenService; + public DOMDataBroker getDomAsyncDataBroker() { @@ -136,7 +130,7 @@ public class BindingTestContext implements AutoCloseable { public void startNewDataBroker() { checkState(executor != null, "Executor needs to be set"); checkState(newDOMDataBroker != null, "DOM Data Broker must be set"); - dataBroker = new ForwardedBindingDataBroker(newDOMDataBroker, codec); + dataBroker = new BindingDOMDataBrokerAdapter(newDOMDataBroker, codec); } public void startNewDomDataBroker() { @@ -150,11 +144,8 @@ public class BindingTestContext implements AutoCloseable { newDOMDataBroker = new SerializedDOMDataBroker(newDatastores, executor); - biCompatibleBroker = new BackwardsCompatibleDataBroker(newDOMDataBroker,mockSchemaService); - mockSchemaService.registerSchemaContextListener(configStore); mockSchemaService.registerSchemaContextListener(operStore); - biDataLegacyBroker = biCompatibleBroker; } public void startBindingDataBroker() { @@ -174,7 +165,7 @@ public class BindingTestContext implements AutoCloseable { final MountPointService mountService = new BindingDOMMountPointServiceAdapter(biMountImpl, codec); baBrokerImpl.setMountService(mountService); baBrokerImpl.setLegacyMountManager(new HydrogenMountProvisionServiceAdapter(mountService)); - baBrokerImpl.setRpcBroker(new HeliumRpcProviderRegistry(baConsumerRpc,baProviderRpc)); + baBrokerImpl.setRpcBroker(new HeliumRpcProviderRegistry(baConsumerRpc, baProviderRpc)); baBrokerImpl.setLegacyDataBroker(baData); baBrokerImpl.setNotificationBroker(baNotifyImpl); baBrokerImpl.start(); @@ -190,18 +181,12 @@ public class BindingTestContext implements AutoCloseable { final ClassToInstanceMap domBrokerServices = ImmutableClassToInstanceMap . builder() // - .put(org.opendaylight.controller.sal.core.api.data.DataProviderService.class, biDataLegacyBroker) // - .put(RpcProvisionRegistry.class, biBrokerImpl.getRouter()) // + .put(DOMRpcRouter.class, biBrokerImpl.getRouter()) // .put(DOMMountPointService.class, biMountImpl) .build(); return new ProviderSession() { - @Override - public Future> rpc(final QName rpc, final CompositeNode input) { - throw new UnsupportedOperationException(); - } - @Override public T getService(final Class service) { return domBrokerServices.getInstance(service); @@ -212,48 +197,19 @@ public class BindingTestContext implements AutoCloseable { return false; } - @Override - public Set getSupportedRpcs() { - return null; - } - @Override public void close() { } - - @Override - public ListenerRegistration addRpcRegistrationListener( - final RpcRegistrationListener listener) { - return null; - } - - @Override - public RpcRegistration addRpcImplementation(final QName rpcType, final RpcImplementation implementation) - throws IllegalArgumentException { - return null; - } - - @Override - public RoutedRpcRegistration addRoutedRpcImplementation(final QName rpcType, final RpcImplementation implementation) { - return null; - } - - @Override - public RoutedRpcRegistration addMountedRpcImplementation(final QName rpcType, final RpcImplementation implementation) { - return null; - } }; } public void startBindingToDomMappingService() { checkState(classPool != null, "ClassPool needs to be present"); - mappingServiceImpl = new RuntimeGeneratedMappingServiceImpl(classPool); - mockSchemaService.registerSchemaContextListener(mappingServiceImpl); final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(classPool)); final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator); final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(); - codec = new BindingToNormalizedNodeCodec(loading, mappingServiceImpl, codecRegistry); + codec = new BindingToNormalizedNodeCodec(loading, codecRegistry); mockSchemaService.registerSchemaContextListener(codec); } @@ -296,21 +252,24 @@ public class BindingTestContext implements AutoCloseable { private void startDomBroker() { checkState(executor != null); - final SchemaAwareRpcBroker router = new SchemaAwareRpcBroker("/", mockSchemaService); - domRouter = new DOMRpcRouter(); mockSchemaService.registerSchemaContextListener(domRouter); final ClassToInstanceMap services = MutableClassToInstanceMap.create(); services.put(DOMRpcService.class, domRouter); - biBrokerImpl = new BrokerImpl(router,services); + biBrokerImpl = new BrokerImpl(domRouter,services); } public void startBindingNotificationBroker() { checkState(executor != null); - baNotifyImpl = new NotificationBrokerImpl(executor); + final DOMNotificationRouter router = DOMNotificationRouter.create(16); + domPublishService = router; + domListenService = router; + publishService = new BindingDOMNotificationPublishServiceAdapter(codec, domPublishService); + listenService = new BindingDOMNotificationServiceAdapter(codec, domListenService); + baNotifyImpl = new HeliumNotificationProviderServiceAdapter(publishService,listenService); } @@ -324,15 +283,6 @@ public class BindingTestContext implements AutoCloseable { return baData; } - @Deprecated - public org.opendaylight.controller.sal.core.api.data.DataProviderService getDomDataBroker() { - return biDataLegacyBroker; - } - - public BindingIndependentMappingService getBindingToDomMappingService() { - return mappingServiceImpl; - } - public RpcProviderRegistry getBindingRpcRegistry() { return baBrokerImpl.getRoot(); }