Event Dispatcher

This plugin informs external systems about changes in CELUM. Various filters allow you to restrict the scope of the events, so that only relevant events are dispatched. Both the filters and the dispatcher allow for custom implementations through the use of beans.

General properties

eventDispatcher.filters

type: bean names (comma separated), required: no, default: -

Event filters to apply - needs to pass all of them in order to be dispatched. One of:

  • eventFilterByName
  • eventFilterByUser
  • eventFilterByNode
eventDispatcher.dispatchers

type: bean names (comma separated), required: yes, default: eventDispatcherSimpleGet

Event dispatchers to inform about the event, all will be called in order. One of

  • eventDispatcherSimpleGet
  • eventDispatcherSimplePost
eventDispatcher.threads

type: int, required: yes, default: 4

Size of the thread pool that dispatches the events

Dispatcher properties

eventDispatcher.baseUrl

type: string, required: yes, default: http://localhost, applies to: eventDispatcherSimpleGet, eventDispatcherSimplePost

Endpoint to be informed about the event. Adds additional parameters when available:

  • eventType: Name of the event (always; since 1.0)
  • id: ID of the affected object, unique per object type (on assets, nodes, users and usergroups; since 1.0)
  • name: Name of the affected object, non-unique (on assets, nodes, users and usergroups; since 1.3)
  • fileName: Original file name of the asset (on assets; since 1.3)

Example: http://pim.brix.ch/event-handler/celum.do?eventType=AssetAddedEvent&id=1337&name=Ponies&fileName=Ponies.jpg

Filter properties

eventDispatcher.eventWhitelist

type: string (comma separated), required: no, default: -, applies to: eventFilterByName

Only pass on events with the following names, list of:

  • AssetAddedEvent
  • AssetCreatedEvent
  • AssetDeletedEvent
  • AssetReleasedEvent
  • AssetRemovedEvent
  • AssetSyncedEvent
  • AssetVersionActivatedEvent
  • AssetVersionAddedEvent
  • AssetVersionDeletedEvent
  • AssetMetadataUpdatedEvent
  • AssetStatusAvailable
  • AssetStatusUnavailable
  • NodeCreatedEvent
  • NodeDeletedEvent
  • NodeMetadataUpdatedEvent
  • NodeMovedEvent
  • UserAddedToUserGroupEvent
  • UserGroupAddedToUserGroupEvent
  • UserGroupCreatedEvent
  • UserGroupDeletedEvent
  • UserGroupRemovedFromUserGroupEvent
  • UserRemovedFromUserGroupEvent
  • UserCreatedEvent
  • UserDeletedEvent
  • AssetsDownloadStartedEvent
  • AssetsDownloadStartedEvent
  • PropertyChangedEvent
  • UserLoggedInEvent
  • UserLoginFailedEvent
eventDispatcher.scopeUserId

type: long, required: no, default: -, applies to: eventFilterByUser

Only pass on events that originate from an asset/node that this user can see

eventDispatcher.scopeNodeId

type: long, required: no, default: -, applies to: eventFilterByNode

Only pass on events that originate in a certain node (recursively)

Release Notes

1.0

Initial version with support for eventFilterByName, eventFilterByUser, eventFilterByNode as well as eventDispatcherSimpleGet and eventDispatcherSimplePost.

1.1

Added synthesized events AssetStatusAvailable and AssetStatusUnavailable through a nightly task (in order to detect assets at the egde of their validity period).

1.2

Switched synthesized event source to SolrQueries (way faster)

1.3

Added additional parameters to the GET- and POST-Dispatchers (name and fileName when applicable)