Addition of OpFlex server configuration and message support.
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / controller / config / yang / config / opflex_provider / impl / OpflexProviderModule.java
index 1e73d1b5f0d14badc3cc2827d70124ecf60b6bd9..10a12419c834a31e2a52eb7deefec23f6f0ff47e 100644 (file)
@@ -1,6 +1,11 @@
 package org.opendaylight.controller.config.yang.config.opflex_provider.impl;
 
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.groupbasedpolicy.renderer.opflex.OpflexConnectionService;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
 
 public class OpflexProviderModule extends org.opendaylight.controller.config.yang.config.opflex_provider.impl.AbstractOpflexProviderModule {
     public OpflexProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
@@ -19,12 +24,20 @@ public class OpflexProviderModule extends org.opendaylight.controller.config.yan
     @Override
     public java.lang.AutoCloseable createInstance() {
         final OpflexConnectionService connectionService = new OpflexConnectionService();
-        connectionService.setDataProvider(getDataBrokerDependency());
+        DataBroker dataBrokerService = getDataBrokerDependency();
+
+        connectionService.setDataProvider(dataBrokerService);
+        final ListenerRegistration<DataChangeListener> dataChangeListenerRegistration =
+                dataBrokerService
+                .registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
+                        OpflexConnectionService.DISCOVERY_DEFINITIONS_IID,
+                        connectionService, DataChangeScope.SUBTREE );
 
         final class AutoCloseableConnectionService implements AutoCloseable {
             @Override
             public void close() throws Exception {
                 connectionService.stopping();
+                dataChangeListenerRegistration.close();
             }
         }
         return new AutoCloseableConnectionService();