Versions Compared

Key

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

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

...