Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The connector is intended to interface with an ESB, but anything that can receive and process events packages as JSON strings send over HTTP(S) or XMPP can be used.

Example HTTP ESB outgoing

Configure in grouper-loader.properties

...

Code Block
POST /whatever/something HTTP/1.1
Content-Type: application/json; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/3.0
Host: localhost:8100
Content-Length: 218
{"esbEvent":[
{"displayName":"etc:rulesActAsGroup","eventType":"GROUP_ADD","id":"c0660833739147d996edf35ec0418398","name":"etc:rulesActAsGroup","parentStemId":"453bc7000061473aa9a0f00d0f67c62e","sequenceNumber":"319"}
]}
Outgoing

All events which can be notified to an event log consumer are supported. Single events are loaded into an instance of the EsbEvent bean, which is added to an array in an instance of the EsbEvents bean. The EsbEvents class is transformed into an JSON string and despatched. The transformation includes the transformation of the EsbEvent beans, and as this occurs properties with null values are ignored so that they do not appear in the JSON string. More information on the outgoing beans is available.

In a future release it will be possible to send multiple events as a single JSON string, but only one is supported for now as it makes integration debugging easier.

Incoming

Membership add/deletes for a subject are supported. A listener can be set up to receive events over HTTP(S) or XMPP. The event must be a JSON string, which will be transformed into an EsbListenerEvents bean. This contains an array of one or more EsbListenerEvent beans. More information on the incoming beans is available.

Configuration

Examples of how to configure Grouper to use the ESB connector are available. Detailed configuration examples for various uses cases linked to an ESB can be found with the documentation for the (open source) ESB/Rules engine hybrid in use at Cardiff University.

Grouper client and example

The grouper client can consume ESB XMPP notifications and handle them.  An example is here.  In this sense, the grouper client can run as a daemon to listen for grouper changes of certain things (filter is configured on server and client), and do perform certian actions (implement an interface or use a built in one for example to update a text file).  The grouper client will also allow a quartz (cron like) schedule of a full refresh to prevent data corruption.