X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsamples%2Ftoaster-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fconfig%2Ftoaster_provider%2Fimpl%2FToasterProviderModule.java;h=bd8e89fd7a5ab99ddb1246a167d0b142f446a07f;hp=d9bb36eb8ec6d1ca97032e3328cbb72a9879f1bf;hb=0453a062c587b03363c35e7989294b0933bb9895;hpb=e27d63bdcfbfb0c1078a9c3e5aabf59ae7e2315f diff --git a/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/config/yang/config/toaster_provider/impl/ToasterProviderModule.java b/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/config/yang/config/toaster_provider/impl/ToasterProviderModule.java index d9bb36eb8e..bd8e89fd7a 100644 --- a/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/config/yang/config/toaster_provider/impl/ToasterProviderModule.java +++ b/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/config/yang/config/toaster_provider/impl/ToasterProviderModule.java @@ -10,10 +10,11 @@ package org.opendaylight.controller.config.yang.config.toaster_provider.impl; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; +import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; import org.opendaylight.controller.sample.toaster.provider.OpendaylightToaster; -import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.Toaster; -import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterData; import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterService; +import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,7 +47,13 @@ public final class ToasterProviderModule extends org.opendaylight.controller.con // Register to md-sal opendaylightToaster.setNotificationProvider(getNotificationServiceDependency()); - opendaylightToaster.setDataProvider(getDataBrokerDependency()); + + DataProviderService dataBrokerService = getDataBrokerDependency(); + opendaylightToaster.setDataProvider(dataBrokerService); + + final ListenerRegistration dataChangeListenerRegistration = + dataBrokerService.registerDataChangeListener( OpendaylightToaster.TOASTER_IID, opendaylightToaster ); + final BindingAwareBroker.RpcRegistration rpcRegistration = getRpcRegistryDependency() .addRpcImplementation(ToasterService.class, opendaylightToaster); @@ -56,20 +63,16 @@ public final class ToasterProviderModule extends org.opendaylight.controller.con // Wrap toaster as AutoCloseable and close registrations to md-sal at // close() - final class AutoCloseableToaster implements AutoCloseable, ToasterData { + final class AutoCloseableToaster implements AutoCloseable { @Override public void close() throws Exception { + dataChangeListenerRegistration.close(); rpcRegistration.close(); runtimeReg.close(); opendaylightToaster.close(); log.info("Toaster provider (instance {}) torn down.", this); } - - @Override - public Toaster getToaster() { - return opendaylightToaster.getToaster(); - } } AutoCloseable ret = new AutoCloseableToaster();