+
+ /**
+ * Publishes a notification.
+ *
+ * @param Notification
+ * notification to publish.
+ *
+ */
+ @Override
+ void publish(Notification notification);
+
+ /**
+ * Publishes a notification, listener calls are done in provided executor.
+ *
+ */
+ @Override
+ void publish(Notification notification, ExecutorService service);
+
+ ListenerRegistration<NotificationInterestListener> registerInterestListener(
+ NotificationInterestListener interestListener);
+
+ public interface NotificationInterestListener extends EventListener {
+
+ void onNotificationSubscribtion(Class<? extends Notification> notificationType);
+ }