X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fmd%2Fsal%2Fdom%2Fimpl%2FDomBrokerImplModule.java;h=6e86795ea0b47c603b2de9df9f4ffd3f85cb7308;hb=d8d8f731bbe6c58fcbd0e616734e2e230aaf4ab4;hp=998d884b0cde71cd2fe774352229a61afd98761d;hpb=c1362c86eb19e92e6c64d10099a45deb499c6db1;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java index 998d884b0c..6e86795ea0 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java @@ -7,27 +7,30 @@ */ package org.opendaylight.controller.config.yang.md.sal.dom.impl; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.MutableClassToInstanceMap; 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.compat.BackwardsCompatibleDataBroker; +import org.opendaylight.controller.md.sal.dom.broker.impl.mount.DOMMountPointServiceImpl; import org.opendaylight.controller.sal.core.api.BrokerService; import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; import org.opendaylight.controller.sal.core.api.data.DataBrokerService; import org.opendaylight.controller.sal.core.api.data.DataProviderService; -import org.opendaylight.controller.sal.core.api.data.DataStore; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.controller.sal.core.api.mount.MountProvisionService; import org.opendaylight.controller.sal.core.api.mount.MountService; +import org.opendaylight.controller.sal.dom.broker.BackwardsCompatibleMountPointManager; import org.opendaylight.controller.sal.dom.broker.BrokerImpl; -import org.opendaylight.controller.sal.dom.broker.DataBrokerImpl; import org.opendaylight.controller.sal.dom.broker.GlobalBundleScanningSchemaServiceImpl; -import org.opendaylight.controller.sal.dom.broker.MountPointManagerImpl; -import org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter; import org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareRpcBroker; import org.opendaylight.controller.sal.dom.broker.impl.SchemaContextProviders; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; - -import com.google.common.collect.ClassToInstanceMap; -import com.google.common.collect.MutableClassToInstanceMap; /** * @@ -50,49 +53,42 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi @Override public java.lang.AutoCloseable createInstance() { - final DataStore legacyStore = getDataStoreDependency(); final DOMDataBroker asyncBroker= getAsyncDataBrokerDependency(); - ClassToInstanceMap services = MutableClassToInstanceMap.create(); + final ClassToInstanceMap services = MutableClassToInstanceMap.create(); + + // TODO: retrieve from config subsystem + final int queueDepth = 1024; + final DOMNotificationRouter domNotificationRouter = DOMNotificationRouter.create(queueDepth); + services.putInstance(DOMNotificationService.class, domNotificationRouter); + services.putInstance(DOMNotificationPublishService.class, domNotificationRouter); - SchemaService schemaService = getSchemaServiceImpl(); + final SchemaService schemaService = getSchemaServiceImpl(); services.putInstance(SchemaService.class, schemaService); - SchemaAwareRpcBroker router = new SchemaAwareRpcBroker("/", SchemaContextProviders + final SchemaAwareRpcBroker router = new SchemaAwareRpcBroker("/", SchemaContextProviders .fromSchemaService(schemaService)); services.putInstance(RpcProvisionRegistry.class, router); - final DataProviderService legacyData; - if(asyncBroker != null) { - services.putInstance(DOMDataBroker.class, asyncBroker); - legacyData = new BackwardsCompatibleDataBroker(asyncBroker,schemaService); - } else { - legacyData = createLegacyDataService(legacyStore,schemaService); - } + services.putInstance(DOMDataBroker.class, asyncBroker); + final DataProviderService legacyData = new BackwardsCompatibleDataBroker(asyncBroker,schemaService); services.putInstance(DataProviderService.class,legacyData); services.putInstance(DataBrokerService.class, legacyData); + final DOMRpcRouter rpcRouter = new DOMRpcRouter(); + schemaService.registerSchemaContextListener(rpcRouter); + services.putInstance(DOMRpcService.class, rpcRouter); + services.putInstance(DOMRpcProviderService.class, rpcRouter); - MountPointManagerImpl mountService = new MountPointManagerImpl(); - services.putInstance(MountService.class, mountService); - services.putInstance(MountProvisionService.class, mountService); - - return new BrokerImpl(router, services); - } - - private DataProviderService createLegacyDataService(final DataStore legacyStore, final SchemaService schemaService) { - InstanceIdentifier rootPath = InstanceIdentifier.builder().toInstance(); - DataBrokerImpl dataService = new DataBrokerImpl(); - SchemaAwareDataStoreAdapter wrappedStore = new SchemaAwareDataStoreAdapter(); - wrappedStore.changeDelegate(legacyStore); - wrappedStore.setValidationEnabled(false); + final DOMMountPointService mountService = new DOMMountPointServiceImpl(); + services.putInstance(DOMMountPointService.class, mountService); - schemaService.registerSchemaServiceListener(wrappedStore); + // TODO remove backwards service, use only new DOMMountPointService + final MountProvisionService backwardsMountService = new BackwardsCompatibleMountPointManager(mountService); + services.putInstance(MountService.class, backwardsMountService); + services.putInstance(MountProvisionService.class, backwardsMountService); - dataService.registerConfigurationReader(rootPath, wrappedStore); - dataService.registerCommitHandler(rootPath, wrappedStore); - dataService.registerOperationalReader(rootPath, wrappedStore); - return dataService; + return new BrokerImpl(router, services); } private SchemaService getSchemaServiceImpl() {