Notification broker which allows clients to subscribe for and publish YANG-modeled notifications.
Each YANG module which defines notifications results in a generated interface
{ModuleName}Listener
which handles all the notifications defined in the YANG model.
Each notification type translates to a specific method of the form
on{NotificationType}
on the generated interface. The generated interface also
extends the
org.opendaylight.yangtools.yang.binding.NotificationListener interface and
implementations are registered using
#registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener)method.
Dispatch Listener Example
Lets assume we have following YANG model:
module example {
...
notification start {
...
}
notification stop {
...
}
}
The generated interface will be:
public interface ExampleListener extends NotificationListener {
void onStart(Start notification);
void onStop(Stop notification);
}
The following defines an implementation of the generated interface:
public class MyExampleListener implements ExampleListener {
public void onStart(Start notification) {
// do something
}
public void onStop(Stop notification) {
// do something
}
}
The implementation is registered as follows:
MyExampleListener listener = new MyExampleListener();
ListenerRegistration<NotificationListener> reg = service.registerNotificationListener(listener);
The onStart
method will be invoked when someone publishes a Start
notification and the onStop
method will be invoked when someone publishes a
Stop
notification.