sal-dom-broker-config: use lambdas
[controller.git] / opendaylight / md-sal / sal-dom-broker-config / src / main / java / org / opendaylight / controller / config / yang / md / sal / dom / impl / DomBrokerImplModule.java
index e3d71fb9aaae78ad0f98f9ed1c51bc58dc63fd31..1adf404f0390e20234f7463b628df0b518d8465d 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
 import org.opendaylight.controller.sal.core.api.BrokerService;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
 import org.opendaylight.controller.sal.dom.broker.BrokerImpl;
-import org.opendaylight.controller.sal.dom.broker.GlobalBundleScanningSchemaServiceImpl;
 import org.osgi.framework.BundleContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -72,6 +71,9 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
         DOMMountPointService mountService = newTracker(DOMMountPointService.class, closeables).
                 waitForService(WaitingServiceTracker.FIVE_MINUTES);
 
+        SchemaService globalSchemaService = newTracker(SchemaService.class, closeables).
+                waitForService(WaitingServiceTracker.FIVE_MINUTES);
+
         final DOMDataBroker dataBroker = getAsyncDataBrokerDependency();
 
         final ClassToInstanceMap<BrokerService> services = MutableClassToInstanceMap.create();
@@ -79,7 +81,7 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
         services.putInstance(DOMNotificationService.class, domNotificationService);
         services.putInstance(DOMNotificationPublishService.class, domNotificationPublishService);
 
-        final SchemaService schemaService = getSchemaServiceImpl();
+        final SchemaService schemaService = getSchemaServiceImpl(globalSchemaService);
         services.putInstance(SchemaService.class, schemaService);
 
         services.putInstance(DOMDataBroker.class, dataBroker);
@@ -90,15 +92,12 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
         services.putInstance(DOMMountPointService.class, mountService);
 
         BrokerImpl broker = new BrokerImpl(domRpcService, domRpcProvider, services);
-        broker.setDeactivator(new AutoCloseable() {
-            @Override
-            public void close() {
-                for(AutoCloseable ac: closeables) {
-                    try {
-                        ac.close();
-                    } catch(Exception e) {
-                        LOG.warn("Exception while closing {}", ac, e);
-                    }
+        broker.setDeactivator(() -> {
+            for (AutoCloseable ac : closeables) {
+                try {
+                    ac.close();
+                } catch (Exception e) {
+                    LOG.warn("Exception while closing {}", ac, e);
                 }
             }
         });
@@ -112,12 +111,12 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi
         return tracker;
     }
 
-    private SchemaService getSchemaServiceImpl() {
+    private SchemaService getSchemaServiceImpl(SchemaService globalSchemaService) {
         final SchemaService schemaService;
         if(getRootSchemaService() != null) {
             schemaService = getRootSchemaServiceDependency();
         } else {
-            schemaService = GlobalBundleScanningSchemaServiceImpl.getInstance();
+            schemaService = globalSchemaService;
         }
         return schemaService;
     }