This document provides MDM developers the background needed to publish new notification event types to the JMS message broker so that clients can subscribe to topics and receive real-time updates to MDM events. In JMS, a topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.
...
- Add the new notification topic name to the
topic
enum in:open-mdm/src/main/resources/raml/schemas/topicPref.json
. This is a RAML file so the source needs to be built for the change to take effect. - Typically the notification is triggered at the resource layer (e.g.
impl.resource/DomainsResource.java
) after the service layer has successfully completed the event. Use the static methodcreateEvent()
in theNotificationService class
.
Notification Service MethodNotificationService.createEvent(Enum eventType, String message, Map<String, String> map)
Trigger a JMS notification of a given topic (zone) for a given event type.
Parameters
eventType - The event type being generated defined in the enum TopicPref.Topic
message - A message to be sent to the subscriber. This string should be a human readable appropriate for viewing in a log or UI.
map - Optional map of key values that the subscriber can use to discover details about the event.
The notification
deliver scope ysent to the subscriber can retrieve the message using the "body" key. A series of key/value pairs can be retrieved inside of the "header" payload (not to be confused with the HTTP header). A series of standard key/value pairs are included in the "header" of all requests (for a description see MDM Client: Subscribing to Event Notifications). Additionally, "header" will include key/value pairs provided by the publisher in "map" described above.
The notification deliver scope for an event by default is ALL but you can override this by TBD (TODO: Mayank):
Subscribing to Topics
Clients such as the YOUnite UI require real time updates of MDM events. Background on how to develop applications that subscribe to events can be found on the MDM Client: Subscribing to Event Notifications page.
...