Pluto
  1. Pluto
  2. PLUTO-538

New EventCoordinationService and merging EventContainer with PortletContainer

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 2.0.0
    • Component/s: portlet container
    • Labels:
      None

      Description

      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.

        Activity

        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12565326 ] jira [ 12585987 ]
        Mark Thomas made changes -
        Workflow jira [ 12454466 ] Default workflow, editable Closed status [ 12565326 ]
        Ate Douma made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Ate Douma added a comment -

        All fixed and implemented with the recent big bang refactoring and final commits r753592 and r753593

        Show
        Ate Douma added a comment - All fixed and implemented with the recent big bang refactoring and final commits r753592 and r753593
        ate committed 753593 (28 files)
        Reviews: none

        Completion of the final big bang commit after the large schale refactoring of the Pluto container.
        This new implementation now (again) passes the Portlet API 2.0 TCK 100%!

        This commit for the portal driver and util (and the one beofre for the container) fixes and completes at least the following open issues (possibly even more):

        PLUTO-478 - Portlet Dispatching loses wrappers
        PLUTO-523 - Further abstractions of the Pluto SPI to support embedding in and extending by other portals
        PLUTO-529 - PortletRequest/PortletResponse implementations extending HttpServletRequest/Response wrappers causes "indentity" problems when accessed from servlets
        PLUTO-530 - RequestDispatcher path query string parameter handling too limited and broken with nested dispatches
        PLUTO-531 - New PortletRequestStateService SPI to replace and extend most of the currrent incorrect used PropertyManager SPI and PortletURLProvider SPI
        PLUTO-532 - New PortletResponseStateProvider SPI
        PLUTO-535 - Dispatched HttpServletRequest path info methods must return path information used to obtain the PortletRequestDispatcher
        PLUTO-536 - Setting the ResourceResponse character encoding requires to support locale-encoding-mapping-list from web.xml
        PLUTO-537 - Cleaning up Pluto packages
        PLUTO-538 - New EventCoordinationService and merging EventContainer with PortletContainer

        portals trunk
        ate committed 753592 (45 files)
        Reviews: none

        Final big bang commit after the large schale refactoring of the Pluto container.
        This new implementation now (again) passes the Portlet API 2.0 TCK 100%!

        This commit for the container (and one follow up commit for the portal driver & util changes) fixes and completes at least the following open issues (possibly even more):

        PLUTO-478 - Portlet Dispatching loses wrappers
        PLUTO-523 - Further abstractions of the Pluto SPI to support embedding in and extending by other portals
        PLUTO-529 - PortletRequest/PortletResponse implementations extending HttpServletRequest/Response wrappers causes "indentity" problems when accessed from servlets
        PLUTO-530 - RequestDispatcher path query string parameter handling too limited and broken with nested dispatches
        PLUTO-531 - New PortletRequestStateService SPI to replace and extend most of the currrent incorrect used PropertyManager SPI and PortletURLProvider SPI
        PLUTO-532 - New PortletResponseStateProvider SPI
        PLUTO-535 - Dispatched HttpServletRequest path info methods must return path information used to obtain the PortletRequestDispatcher
        PLUTO-536 - Setting the ResourceResponse character encoding requires to support locale-encoding-mapping-list from web.xml
        PLUTO-537 - Cleaning up Pluto packages
        PLUTO-538 - New EventCoordinationService and merging EventContainer with PortletContainer

        portals trunk
        ate committed 752471 (1 file)
        Reviews: none

        PLUTO-540: New PortletURLListenerService
        See: https://issues.apache.org/jira/browse/PLUTO-538
        - deleting the temporary generated skeleton to allow renaming the old PortletURLListenerImpl to the new PortletURLListenerServiceImpl

        ate committed 752460 (2 files)
        Reviews: none

        PLUTO-538: New EventCoordinationService and merging EventContainer with PortletContainer
        See: https://issues.apache.org/jira/browse/PLUTO-538
        - merging EventContainer with PortletContainer
        - alligning the fireEvent method name with the other container methods to doEvent
        - dropping EventContainer
        - expanding on the initial EventCoordinationService: for implentation the container itself, request and response also need to be provided.

        ate committed 752459 (3 files)
        Reviews: none

        PLUTO-538: New EventCoordinationService and merging EventContainer with PortletContainer
        See: https://issues.apache.org/jira/browse/PLUTO-538
        - merging EventContainer with PortletContainer
        - alligning the fireEvent method name with the other container methods to doEvent
        - dropping EventContainer
        - expanding on the initial EventCoordinationService: for implentation the container itself, request and response also need to be provided.

        Ate Douma created issue -

          People

          • Assignee:
            Ate Douma
            Reporter:
            Ate Douma
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development