X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-adapter%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fadapter%2Ftest%2Futil%2FBindingTestContext.java;h=dd06d7e63ff56d9d1def584ac178c3c5f837ce67;hb=133ae0cce0740ccbe8a00d04490a934ee05faad9;hp=78f52c72f3d376227bf74a8fa65a88828c5e0b2b;hpb=4b652dbcfd5878cb0aace36780bbc7a1ee8dd025;p=mdsal.git diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java index 78f52c72f3..dd06d7e63f 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java @@ -14,25 +14,22 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; -import javassist.ClassPool; +import java.util.Set; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.MountPointService; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMMountPointServiceAdapter; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationServiceAdapter; 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.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.mdsal.binding.runtime.spi.BindingRuntimeHelpers; +import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataBroker; import org.opendaylight.mdsal.dom.api.DOMMountPointService; @@ -47,17 +44,11 @@ import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker; import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -import org.opendaylight.yangtools.yang.binding.util.BindingReflections; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @Beta public class BindingTestContext implements AutoCloseable { - - - private BindingToNormalizedNodeCodec codec; - private final ListeningExecutorService executor; - private final ClassPool classPool; private final boolean startWithSchema; @@ -84,20 +75,18 @@ public class BindingTestContext implements AutoCloseable { private DOMNotificationService domListenService; - + private Set schemaModuleInfos; public DOMDataBroker getDomAsyncDataBroker() { return newDOMDataBroker; } - public BindingToNormalizedNodeCodec getCodec() { - return codec; + public AdapterContext getCodec() { + return mockSchemaService; } - protected BindingTestContext(final ListeningExecutorService executor, - final ClassPool classPool, final boolean startWithSchema) { + protected BindingTestContext(final ListeningExecutorService executor, final boolean startWithSchema) { this.executor = executor; - this.classPool = classPool; this.startWithSchema = startWithSchema; } @@ -107,7 +96,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 BindingDOMDataBrokerAdapter(newDOMDataBroker, codec); + dataBroker = new BindingDOMDataBrokerAdapter(mockSchemaService, newDOMDataBroker); } public void startNewDomDataBroker() { @@ -134,9 +123,9 @@ public class BindingTestContext implements AutoCloseable { public void startBindingBroker() { checkState(executor != null, "Executor needs to be set"); - baConsumerRpc = new BindingDOMRpcServiceAdapter(getDomRpcInvoker(), codec); - baProviderRpc = new BindingDOMRpcProviderServiceAdapter(getDomRpcRegistry(), codec); - final MountPointService mountService = new BindingDOMMountPointServiceAdapter(biMountImpl, codec); + baConsumerRpc = new BindingDOMRpcServiceAdapter(mockSchemaService, getDomRpcInvoker()); + baProviderRpc = new BindingDOMRpcProviderServiceAdapter(mockSchemaService, getDomRpcRegistry()); + final MountPointService mountService = new BindingDOMMountPointServiceAdapter(mockSchemaService, biMountImpl); } public void startForwarding() { @@ -144,28 +133,15 @@ public class BindingTestContext implements AutoCloseable { } public void startBindingToDomMappingService() { - checkState(classPool != null, "ClassPool needs to be present"); - - final DataObjectSerializerGenerator generator - = StreamWriterGenerator.create(JavassistUtils.forClassPool(classPool)); - final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator); - final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(); - codec = new BindingToNormalizedNodeCodec(loading, codecRegistry); - mockSchemaService.registerSchemaContextListener(codec); - } - - private void updateYangSchema(final ImmutableSet moduleInfos) { - mockSchemaService.changeSchema(getContext(moduleInfos)); + // No-op, really } - private static SchemaContext getContext(final ImmutableSet moduleInfos) { - final ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create(); - ctx.addModuleInfos(moduleInfos); - return ctx.tryToCreateSchemaContext().get(); + private void updateYangSchema(final Set moduleInfos) { + mockSchemaService.changeSchema(BindingRuntimeHelpers.createRuntimeContext(moduleInfos)); } - public SchemaContext getContext() { - return mockSchemaService.getSchemaContext(); + public EffectiveModelContext getContext() { + return mockSchemaService.getEffectiveModelContext(); } public void start() { @@ -179,7 +155,10 @@ public class BindingTestContext implements AutoCloseable { startBindingBroker(); startForwarding(); - if (startWithSchema) { + + if (schemaModuleInfos != null) { + updateYangSchema(schemaModuleInfos); + } else if (startWithSchema) { loadYangSchemaFromClasspath(); } } @@ -199,8 +178,8 @@ public class BindingTestContext implements AutoCloseable { final DOMNotificationRouter router = DOMNotificationRouter.create(16); domPublishService = router; domListenService = router; - publishService = new BindingDOMNotificationPublishServiceAdapter(codec, domPublishService); - listenService = new BindingDOMNotificationServiceAdapter(codec, domListenService); + publishService = new BindingDOMNotificationPublishServiceAdapter(mockSchemaService, domPublishService); + listenService = new BindingDOMNotificationServiceAdapter(mockSchemaService, domListenService); } @@ -217,6 +196,14 @@ public class BindingTestContext implements AutoCloseable { return domRouter.getRpcService(); } + public RpcProviderService getBindingRpcProviderRegistry() { + return baProviderRpc; + } + + public RpcConsumerRegistry getBindingRpcConsumerRegistry() { + return baConsumerRpc; + } + @Override public void close() throws Exception { @@ -229,4 +216,8 @@ public class BindingTestContext implements AutoCloseable { public DataBroker getDataBroker() { return dataBroker; } + + public void setSchemaModuleInfos(final Set moduleInfos) { + schemaModuleInfos = moduleInfos; + } }