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) {
@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();