Package wt.notify

Provides classes to represent, manage, and execute notification definitions.

See:
          Description

Interface Summary
DistributionList Holds users, principals, and roles and resolves these entities to a unique set of users.
Notifiable This is an interface that should be implemented by classes supporting object event notification.
Notification Represents a notification e-mail message.
NotificationManager NotificationManager provides client invokable methods to notification services.
NotificationManagerSvr NotificationManagerSvr provides methods for notification services that can only be invoked from classes running on the server.
ObjectSubscriptionListener ObjectSubscriptionListener is the class the must be implemented by all non-users subscribers.
 

Class Summary
AttributeValueSelector AttributeValueSelector adds to Selector the ability to specify attribute names and their values to select an object.
NotificationHelper Helper class to allow easy access to the NotificationManager functions.
NotificationList A notification list is simply a set of messages and principals that must be notified in case a event happens to a certain class of objects in a certain state.
NotificationListCache This class implements cache service to store notification lists.
NotificationListCacheKey  
NotificationManagerFwd NotificationManager provides client invokable methods to notification services.
NotificationPolicy Deprecated.  
NotificationRule A NotificationRule tells for a class, state and event what are the principals that should be notified.
NotificationServerHelper

Supported API: false

Extendable: false
NotificationSet A notification set associates a message with a list of recipients.
ObjectNotificationProcessor

Supported API: false

Extendable: false
ObjectSubscription The ObjectSubscription class represents subscription requests on Notifiable objects.
PolicyNotificationProcessor Provides support for the generation of policy notifications.
SimpleNotification

Supported API: false

Extendable: false
StandardNotificationManager Standard implementation of the notification service interfaces.
SubscriptionActionDelegate

Supported API: false

Extendable: false
SubscriptionFormProcessor

Supported API: false

Extendable: false
SubscriptionTableModel

Supported API: false

Extendable: false
SubscriptionTaskDelegate

Supported API: false

Extendable: false
SubscriptionURLActionDelegate

Supported API: false

Extendable: false
TemplateNotification A Notification that derives its message body from an html template and its subject from a resource bundle message.
ValueTableCellComponent ValueTableCellComponent is a table cell that display a drop down list of values.
WTDistributionList Reference implementation of DistributionList.
 

Exception Summary
NotificationException NotificationException is the base class of the exception hierarchy for the notify package.
 

Package wt.notify Description

Provides classes to represent, manage, and execute notification definitions.

The Notification manager is responsible for defining and executing notifications. Notifications can be defined through a notification policy or an object subscription and are triggered by events.

Design Overview

The Notification policy design follows the pattern for administrative policies. Notification policies and subscriptions can only be defined for objects that are notifiable. For an object to be notifiable, its class must implement the Notifiable interface. This interface contains no methods, but a notifiable object may hold the set of events that have been subscribed to for that object. Notification policies and subscriptions for an object result in a notification message being sent to the specified principals whenever an event occurs for the object that satisfies a notification policy or subscription definition for the object.

NotificationPolicy

A Notification Policy is composed of many rules represented by NotificationRule objects. Each rule contains an antecedent: a Selector object composed of a domain, type, and event, and a consequent: a NotificationSet object (identifying the principals to receive the notification). Similarly, each notification list contains a selector (that works as a locator for the list) and a rule set. The difference between lists and rules is that lists are entirely derived from the rules by evaluating all rules that may possibly apply to a selector (for example, a rule that refers to a more general type also applies to derived types). Notification lists, once constructed, are stored persistently and cached for performance reasons. The message sent as a result of a notification policy is very simple. It basically informs the recipient that the event that triggered the notification occurred for the object in question.

The NotificationManager interface supports the notification functionality with methods for managing rules as well as methods for event subscriptions. Besides providing these methods for storing and retrieving lists, the StandardNotificationManager also listens for events that trigger notifications based on the notification policy lists. Notifications to be sent are not performed immediately, but rather queued for asynchronous execution.

Notifications can be sent to users either as a result of a notification policy or an object subscription created by a service or application. For example, the properties page for some objects contains a subscription menu item that allows users to subscribe to events on the object. The following figure shows the main classes involved in ad hoc notifications (or object subscriptions).

Ad Hoc Notification

The object subscription class supports ad hoc notification.

External Interface

The Notification Manager methods can be accessed through the NotificationHelper class.

Business Rules

The users that are the final recipients of notification messages must have an e-mail attribute defined. Additionally, for messages generated by notification policies, the user must have read access over the object to which the event occurred.

Although the notification policy mechanism can use any event posted by any service, in practice the notification is limited to the events listed in the wt.admin.adminEventResource class because these are used by the administrator client to construct rules. The events must also be listed in the notify.properties file.

Event Processing

No event is generated. However, this service listens to the events specified in the notification policy rules.

The list of events for the notification service includes the following in addition to events defined in notify.properties:

/wt.admin.AdministrativeDomainManagerEvent/POST_CHANGE_DOMAIN

/wt.fc.PersistenceManagerEvent/POST_DELETE

/wt.fc.PersistenceManagerEvent/PRE_DELETE

/wt.vc.VersionControlServiceEvent/NEW_ITERATION

/wt.vc.sessioniteration.SessionIterationEvent/POST_COMMIT_SESSION_ITERATION

/wt.vc.wip.WorkInProgressServiceEvent/POST_CHECKIN