...
Hence Fedora Content Change Messaging. The messages are designed to be deliberately agnostic to Fedora's API, and instead represent, using a generic message format (encapsulated within AtomPub), additions, deletions and modifications to content within Fedora; identifying the item using an HTTP URI, and providing a "callback" HTTP URI from which the new or modified content can be accessed.
The source code is hosted on Github. See the README file for instructions on installing and using.
Consumers of messages can make use of the following classes:
net.acuityunlimited.fedora.messaging.AtomContentChangeMessage
which can be used to deserialize the AtomPub message to net.acuityunlimited.gen.messaging.ContentObjectModification
.
This is a module that utilises Fedora's decorator pattern, in the same way as the current JMS messaging module. It can either be used alongside the existing messaging plug-in, or as an alternative.
API-M methods are handed off to an implementation of org.fcrepo.server.management.Management
which constructs the appropriate message, and then passes the method down the decorator chain.
(In the future other architectural patterns might be considered, eg there may be more appropriate places to hook in notification with High-Level Storage.)