BUG 2412 - Remove CompositeNode from sal-dom-*
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / config / yang / md / sal / dom / impl / DomBrokerImplModule.java
index 998d884b0cde71cd2fe774352229a61afd98761d..35c22a1bee122d31b67bcd700c571b5f283ffc95 100644 (file)
@@ -7,27 +7,21 @@
  */
 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.broker.impl.compat.BackwardsCompatibleDataBroker;
+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.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.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 +44,31 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-        final DataStore legacyStore = getDataStoreDependency();
         final DOMDataBroker asyncBroker= getAsyncDataBrokerDependency();
 
-        ClassToInstanceMap<BrokerService> services = MutableClassToInstanceMap.create();
-
+        final ClassToInstanceMap<BrokerService> services = MutableClassToInstanceMap.create();
 
-        SchemaService schemaService = getSchemaServiceImpl();
-        services.putInstance(SchemaService.class, schemaService);
-        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(DataProviderService.class,legacyData);
-        services.putInstance(DataBrokerService.class, legacyData);
+        // 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);
 
-        MountPointManagerImpl mountService = new MountPointManagerImpl();
-        services.putInstance(MountService.class, mountService);
-        services.putInstance(MountProvisionService.class, mountService);
+        final SchemaService schemaService = getSchemaServiceImpl();
+        services.putInstance(SchemaService.class, schemaService);
 
-        return new BrokerImpl(router, services);
-    }
+        services.putInstance(DOMDataBroker.class, asyncBroker);
 
-    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 DOMRpcRouter rpcRouter = new DOMRpcRouter();
+        schemaService.registerSchemaContextListener(rpcRouter);
+        services.putInstance(DOMRpcService.class, rpcRouter);
+        services.putInstance(DOMRpcProviderService.class, rpcRouter);
 
-        schemaService.registerSchemaServiceListener(wrappedStore);
+        final DOMMountPointService mountService = new DOMMountPointServiceImpl();
+        services.putInstance(DOMMountPointService.class, mountService);
 
-        dataService.registerConfigurationReader(rootPath, wrappedStore);
-        dataService.registerCommitHandler(rootPath, wrappedStore);
-        dataService.registerOperationalReader(rootPath, wrappedStore);
-        return dataService;
+        return new BrokerImpl(rpcRouter, services);
     }
 
     private SchemaService getSchemaServiceImpl() {