Add a registry to enable another sakai service to handle some types of events

Description

Add an interface in the kernel event API for an "EventHandler" that can take part in handling events.

Add an interface in the kernel event API for an "EventHandlerRegistry" to keep track of EventHandlers.

Add an implementation of the EventHandlerRegistry in kernel event impl.

Modify ClusterEventTracking to consult the EventHandlerRegistry and allow any registered EventHandler's to partipate in handling events.

This opens the possibility that some events can be diverted out of the usual ETS and handled more efficiently.

Environment

None

Test Plan

None

Attachments

1

Activity

Show:

Matthew Jones April 24, 2018 at 10:33 AM

Bulk closing issues that have not been updated since 2015 and earlier. Please reopen if this is still an issue and you have new information or if this is a feature you'd like to still have consideration for.

Jim Eng April 8, 2011 at 8:54 AM

This ticket is not proposing an immediate replacement of the EventTrackingService with ActiveMQ, but this approach could be used to make that happen. That would involve adding an event handler to send a message through ActiveMQ for every event of interest and then revising the observers so they listen for messages from ActiveMQ instead of listening for events read from the database. I think that would be a good idea, but we're not proposing to do all of that for 2.9.

Jim Eng April 8, 2011 at 8:49 AM

Attaching patch file showing the extent of the proposed changes.

Stephen Marquard April 8, 2011 at 5:41 AM

An alternate implementation of events in the kernel (e.g. to use ActiveMQ) should not require any non-kernel code changes. I look forward to seeing what you propose.

Jim Eng April 8, 2011 at 5:38 AM

I agree with what you are saying, Stephen. This is a way to get there without having to modify code throughout subversion (including contrib). The current way of posting events can continue, but the result of posting certain event can change, and eventually the way all events are handled may change. We expect that parts of the other work we are doing will use the contrib wrapper for ActiveMQ. But we think it makes more sense piggyback on the current event system than to rewrite code in content, assignments, calendar, etc.

I hope to post a patch soon that will show this has the potential to improve performance and usability. And we will add a sakai property to enable/disable it entirely.

Won't Fix

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created March 31, 2011 at 7:06 PM
Updated April 25, 2018 at 3:34 PM
Resolved April 24, 2018 at 10:33 AM