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=8f4794ed8fa75fe49507245d6ccbe2eb47b509a8;hb=02a9d36756493691fda2bdd36a1c243ebc5e7cca;hp=5bd1316504a02f8d5b4aa25a2cc4c911d1d852a8;hpb=db89afdefb3cfa4454dfdc6008e1d54d3ede66fb;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 5bd1316504..8f4794ed8f 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 @@ -8,21 +8,19 @@ package org.opendaylight.controller.sal.binding.test.util; import static com.google.common.base.Preconditions.checkState; + import com.google.common.annotations.Beta; -import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableMap; -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 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; @@ -44,27 +42,20 @@ import org.opendaylight.controller.md.sal.dom.broker.impl.mount.DOMMountPointSer 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.RootBindingAwareBroker; -import org.opendaylight.controller.sal.core.api.BrokerService; import org.opendaylight.controller.sal.core.spi.data.DOMStore; -import org.opendaylight.controller.sal.dom.broker.BrokerImpl; +import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator; +import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator; +import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; import org.opendaylight.mdsal.binding.generator.util.JavassistUtils; -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.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -import org.opendaylight.yangtools.yang.binding.util.BindingReflections; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import javassist.ClassPool; @Beta public class BindingTestContext implements AutoCloseable { - - private BindingToNormalizedNodeCodec codec; private RootBindingAwareBroker baBrokerImpl; @@ -72,8 +63,6 @@ public class BindingTestContext implements AutoCloseable { private HeliumNotificationProviderServiceAdapter baNotifyImpl; - private BrokerImpl biBrokerImpl; - private final ListeningExecutorService executor; private final ClassPool classPool; @@ -83,9 +72,6 @@ public class BindingTestContext implements AutoCloseable { private ImmutableMap newDatastores; - @Deprecated - private DataProviderService baData; - private DOMDataBroker newDOMDataBroker; private final MockSchemaService mockSchemaService = new MockSchemaService(); @@ -96,6 +82,7 @@ public class BindingTestContext implements AutoCloseable { private BindingDOMRpcProviderServiceAdapter baProviderRpc; private DOMRpcRouter domRouter; + private org.opendaylight.mdsal.dom.broker.DOMRpcRouter delegateDomRouter; private NotificationPublishService publishService; @@ -105,7 +92,7 @@ public class BindingTestContext implements AutoCloseable { private DOMNotificationService domListenService; - + private Set schemaModuleInfos; public DOMDataBroker getDomAsyncDataBroker() { return this.newDOMDataBroker; @@ -115,7 +102,8 @@ public class BindingTestContext implements AutoCloseable { return this.codec; } - protected BindingTestContext(final ListeningExecutorService executor, final ClassPool classPool, final boolean startWithSchema) { + protected BindingTestContext(final ListeningExecutorService executor, final ClassPool classPool, + final boolean startWithSchema) { this.executor = executor; this.classPool = classPool; this.startWithSchema = startWithSchema; @@ -153,7 +141,6 @@ public class BindingTestContext implements AutoCloseable { public void startBindingBroker() { checkState(this.executor != null, "Executor needs to be set"); - checkState(this.baData != null, "Binding Data Broker must be started"); checkState(this.baNotifyImpl != null, "Notification Service must be started"); this.baConsumerRpc = new BindingDOMRpcServiceAdapter(getDomRpcInvoker(), this.codec); @@ -163,9 +150,7 @@ public class BindingTestContext implements AutoCloseable { final MountPointService mountService = new BindingDOMMountPointServiceAdapter(this.biMountImpl, this.codec); this.baBrokerImpl.setMountService(mountService); - this.baBrokerImpl.setLegacyMountManager(new HydrogenMountProvisionServiceAdapter(mountService)); this.baBrokerImpl.setRpcBroker(new HeliumRpcProviderRegistry(this.baConsumerRpc, this.baProviderRpc)); - this.baBrokerImpl.setLegacyDataBroker(this.baData); this.baBrokerImpl.setNotificationBroker(this.baNotifyImpl); this.baBrokerImpl.start(); } @@ -177,18 +162,19 @@ public class BindingTestContext implements AutoCloseable { public void startBindingToDomMappingService() { checkState(this.classPool != null, "ClassPool needs to be present"); - final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(this.classPool)); + final DataObjectSerializerGenerator generator = StreamWriterGenerator.create( + JavassistUtils.forClassPool(this.classPool)); final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator); final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(); this.codec = new BindingToNormalizedNodeCodec(loading, codecRegistry); this.mockSchemaService.registerSchemaContextListener(this.codec); } - private void updateYangSchema(final ImmutableSet moduleInfos) { + private void updateYangSchema(final Set moduleInfos) { this.mockSchemaService.changeSchema(getContext(moduleInfos)); } - private SchemaContext getContext(final ImmutableSet moduleInfos) { + private static SchemaContext getContext(final Set moduleInfos) { final ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create(); ctx.addModuleInfos(moduleInfos); return ctx.tryToCreateSchemaContext().get(); @@ -201,21 +187,18 @@ public class BindingTestContext implements AutoCloseable { startDomMountPoint(); startBindingToDomMappingService(); startNewDataBroker(); - startNewBindingDataBroker(); startBindingNotificationBroker(); startBindingBroker(); startForwarding(); - if (this.startWithSchema) { + + if (schemaModuleInfos != null) { + updateYangSchema(schemaModuleInfos); + } else if (this.startWithSchema) { loadYangSchemaFromClasspath(); } } - public void startNewBindingDataBroker() { - final HydrogenDataBrokerAdapter forwarded = new HydrogenDataBrokerAdapter(this.dataBroker); - this.baData = forwarded; - } - private void startDomMountPoint() { this.biMountImpl = new DOMMountPointServiceImpl(); } @@ -223,14 +206,8 @@ public class BindingTestContext implements AutoCloseable { private void startDomBroker() { checkState(this.executor != null); - this.domRouter = new DOMRpcRouter(); - this.mockSchemaService.registerSchemaContextListener(this.domRouter); - - final ClassToInstanceMap services = MutableClassToInstanceMap.create(); - services.put(DOMRpcService.class, this.domRouter); - - this.biBrokerImpl = new BrokerImpl(this.domRouter,services); - + delegateDomRouter = org.opendaylight.mdsal.dom.broker.DOMRpcRouter.newInstance(mockSchemaService); + this.domRouter = new DOMRpcRouter(delegateDomRouter.getRpcService(), delegateDomRouter.getRpcProviderService()); } public void startBindingNotificationBroker() { @@ -245,13 +222,7 @@ public class BindingTestContext implements AutoCloseable { } public void loadYangSchemaFromClasspath() { - final ImmutableSet moduleInfos = BindingReflections.loadModuleInfos(); - updateYangSchema(moduleInfos); - } - - @Deprecated - public DataProviderService getBindingDataBroker() { - return this.baData; + updateYangSchema(BindingReflections.loadModuleInfos()); } public RpcProviderRegistry getBindingRpcRegistry() { @@ -266,13 +237,17 @@ public class BindingTestContext implements AutoCloseable { return this.domRouter; } + public org.opendaylight.mdsal.dom.broker.DOMRpcRouter getDelegateDomRouter() { + return delegateDomRouter; + } + @Override - public void close() throws Exception { + public void close() { } - public MountProviderService getBindingMountProviderService() { - return this.baBrokerImpl.getLegacyMount(); + public MountPointService getBindingMountPointService() { + return this.baBrokerImpl.getMountService(); } public DOMMountPointService getDomMountProviderService() { @@ -283,5 +258,7 @@ public class BindingTestContext implements AutoCloseable { return this.dataBroker; } - + public void setSchemaModuleInfos(Set moduleInfos) { + this.schemaModuleInfos = moduleInfos; + } }