X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Ftest%2FDataBrokerTestCustomizer.java;h=f8f45f25e004eea5cea925dbc3ec5ef93fda8d31;hp=60eec55ca55df3df580318e5608ea08f1a319801;hb=0dcdc14a4ff38b39fed0d07658941a09a4c043fd;hpb=a1ea6554ff025f333b171637b37a9ad87c7846ea diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/DataBrokerTestCustomizer.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/DataBrokerTestCustomizer.java index 60eec55ca5..f8f45f25e0 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/DataBrokerTestCustomizer.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/DataBrokerTestCustomizer.java @@ -7,32 +7,42 @@ */ package org.opendaylight.controller.md.sal.binding.test; +import com.google.common.collect.ImmutableMap; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.MoreExecutors; import javassist.ClassPool; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker; +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.impl.BindingToNormalizedNodeCodec; import org.opendaylight.controller.md.sal.binding.impl.ForwardedBindingDataBroker; +import org.opendaylight.controller.md.sal.binding.impl.ForwardedNotificationPublishService; +import org.opendaylight.controller.md.sal.binding.impl.ForwardedNotificationService; 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.broker.impl.DOMDataBrokerImpl; +import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter; +import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore; +import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder; import org.opendaylight.controller.sal.binding.test.util.MockSchemaService; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.controller.sal.core.spi.data.DOMStore; +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.sal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl; -import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; +import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import com.google.common.collect.ImmutableMap; -import com.google.common.util.concurrent.ListeningExecutorService; -import com.google.common.util.concurrent.MoreExecutors; - public class DataBrokerTestCustomizer { private DOMDataBroker domDataBroker; + private final DOMNotificationRouter domNotificationRouter; private final RuntimeGeneratedMappingServiceImpl mappingService; private final MockSchemaService schemaService; private ImmutableMap datastores; + private final BindingToNormalizedNodeCodec bindingToNormalized; public ImmutableMap createDatastores() { return ImmutableMap.builder() @@ -43,48 +53,58 @@ public class DataBrokerTestCustomizer { public DataBrokerTestCustomizer() { schemaService = new MockSchemaService(); - mappingService = new RuntimeGeneratedMappingServiceImpl(ClassPool.getDefault()); + final ClassPool pool = ClassPool.getDefault(); + mappingService = new RuntimeGeneratedMappingServiceImpl(pool); + final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(pool)); + final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator); + final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(); + bindingToNormalized = new BindingToNormalizedNodeCodec(loading, mappingService, codecRegistry); + schemaService.registerSchemaContextListener(bindingToNormalized); + domNotificationRouter = DOMNotificationRouter.create(16); } public DOMStore createConfigurationDatastore() { - InMemoryDOMDataStore store = new InMemoryDOMDataStore("CFG", - MoreExecutors.sameThreadExecutor(), MoreExecutors.sameThreadExecutor()); + final InMemoryDOMDataStore store = new InMemoryDOMDataStore("CFG", MoreExecutors.sameThreadExecutor()); schemaService.registerSchemaContextListener(store); return store; } public DOMStore createOperationalDatastore() { - InMemoryDOMDataStore store = new InMemoryDOMDataStore("OPER", - MoreExecutors.sameThreadExecutor(), MoreExecutors.sameThreadExecutor()); + final InMemoryDOMDataStore store = new InMemoryDOMDataStore("OPER", MoreExecutors.sameThreadExecutor()); schemaService.registerSchemaContextListener(store); return store; } public DOMDataBroker createDOMDataBroker() { - return new DOMDataBrokerImpl(getDatastores(), getCommitCoordinatorExecutor()); + return new SerializedDOMDataBroker(getDatastores(), getCommitCoordinatorExecutor()); } + public NotificationService createNotificationService() { + return new ForwardedNotificationService(bindingToNormalized.getCodecRegistry(), domNotificationRouter, + SingletonHolder.INVOKER_FACTORY); + } + + public NotificationPublishService createNotificationPublishService() { + return new ForwardedNotificationPublishService(bindingToNormalized.getCodecRegistry(), domNotificationRouter); + } + + public ListeningExecutorService getCommitCoordinatorExecutor() { return MoreExecutors.sameThreadExecutor(); } public DataBroker createDataBroker() { - return new ForwardedBindingDataBroker(getDOMDataBroker(), getMappingService(), getSchemaService()); + return new ForwardedBindingDataBroker(getDOMDataBroker(), bindingToNormalized); } - public ForwardedBackwardsCompatibleDataBroker createBackwardsCompatibleDataBroker() { - return new ForwardedBackwardsCompatibleDataBroker(getDOMDataBroker(), getMappingService(), getSchemaService(), MoreExecutors.sameThreadExecutor()); + public BindingToNormalizedNodeCodec getBindingToNormalized() { + return bindingToNormalized; } - - private SchemaService getSchemaService() { + public SchemaService getSchemaService() { return schemaService; } - private BindingIndependentMappingService getMappingService() { - return mappingService; - } - private DOMDataBroker getDOMDataBroker() { if(domDataBroker == null) { domDataBroker = createDOMDataBroker(); @@ -92,8 +112,8 @@ public class DataBrokerTestCustomizer { return domDataBroker; } - private ImmutableMap getDatastores() { - if(datastores == null) { + private synchronized ImmutableMap getDatastores() { + if (datastores == null) { datastores = createDatastores(); } return datastores; @@ -104,4 +124,7 @@ public class DataBrokerTestCustomizer { mappingService.onGlobalContextUpdated(ctx); } + public DOMNotificationRouter getDomNotificationRouter() { + return domNotificationRouter; + } }