Warning | ||
---|---|---|
| ||
This is currently in DRAFT status |
Abstract
This document proposes a moderate improvement to the uPortal 2 codebase in that it recommends the deprecation of the IStatsRecorder interface (and its default implementations) and replacement with a much more flexible system based on the Spring ApplicationEventPublisher and Event Listeners.
...
- Removal of "EventsPublishing" from uPortal core code base and into AOP advices as EventsPublishing is a cross-cutting concern
- Use AspectJ to completely decouple event handling aspects from the portal core:
Code Block Initial, brainstorm with the following infrastructure: - Abstract aspect to capture the the event handling protocol - Subaspects for each type of event This will be a true modular and non-intrusive solution completely decoupled from the core. Could even be compiled into a reusable aspect library and applied to the uP core as needed (LTW, etc.) public abstract aspect AbstractPortalEventHandler { abstract pointcut eventBoundary(Object eventSource); after(Object eventSource) : eventBoundary(eventSource) { handleEvent(eventSource); } protected abstract void handleEvent(Object eventSource); } ... and then have subaspects like: public aspect XxxPortalEventHandler extends AbstractPortalEventHandler {...}
What's Currently Included in the Patch
...