New EventCoordinationService and merging EventContainer with PortletContainer
-----------------------------------------------------------------------------

                 Key: PLUTO-538
                 URL: https://issues.apache.org/jira/browse/PLUTO-538
             Project: Pluto
          Issue Type: Improvement
          Components: portlet container
    Affects Versions: 2.0.0
            Reporter: Ate Douma
            Assignee: Ate Douma
             Fix For: 2.0.0


Below copied (in part) from email discussion on the Pluto dev list, see also: 
http://www.nabble.com/More-required-Pluto-2.0-SPI-and-implementation-refactoring-issues-td21973310.html

*** EventProvider SPI
The EventProvider SPI also has "mixed" responsibilities.
As a "-Provider" it is used to generate PortletEvent objects on behalf of the 
ActionResponse and EventResponse implementations which is
subsequently stores in an internal list.
But, it is also responsible for dispatching (coordinating) these registered 
PortletEvents after the container processAction or fireEvent
invocation.
The problem is that the EventProvider can only fireEvents which have been 
registered by the portlet itself.
Container initiated events (as described by JSR-286) cannot be handled through 
this SPI, and Pluto currently doesn't have any support for
them either.

As the logic for event coordination (firing) is a very portal (and possibly 
policy based) functionality, while the creation of events by a
portlet is very "standards" based, these two responsibilities shouldn't be 
"mixed" in one interface.

I propose to remove the fireEvents handling from the EventProvider SPI and 
introduce a new SPI for handling the event coordination.
The EventProvider SPI needs to be extended to allow retrieving the "registered" 
event queue after the portlet invocation by the container.

(site note: the EventProvider as provided by the Pluto Portal Driver needs some 
major internal refactoring as well as its implementation is
rather inefficient right now)


*** new: EventCoordinationService SPI
As described above,  PortletEvent coordination should be dealt with separately, 
which this new SPI will provide.
It should as a minimum allow firing events based on a (also new to be defined) 
PortletEventQueue, as provided by the EventProvider or
created directly by the container or possibly even the Portal itself.

==================================================
Some of the above steps have already been done or are in progress as result of 
several other JIRA issues like PLUTO-532 and PLUTO-537.
In addition tho that, I'll merge the current EventContainer interface with the 
PortletContainer interface:
as event handling is already implemented in the PortletContainerImpl, I see no 
reason why to keep these separate, and using a different container for the 
event handling simply makes no sense at all.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to