New PortletResponseStateProvider SPI
------------------------------------

                 Key: PLUTO-532
                 URL: https://issues.apache.org/jira/browse/PLUTO-532
             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

*** new: PortletResponseStateProvider SPI
The current PortletResponse (and derivate) implementations "write" the response 
state directly to the portal provided servlet response, or use the above 
described PropertyManager SPI (see: PLUTO-531)
For the generated content output, this solution assumes (requires) that the 
portal provided servlet response properly deals with
the required buffering, content type, etc. handling, but this is not 
appropriately captured in a SPI contract.
In addition, essential JSR-286 features like CacheControl, PortletWindow title 
setting nextPossiblePortletModes, etc. are not yet implemented or in an 
unexpected way (RenderResponse.setTitle using PortalCallback.setTitle).

In my view, all these response "state" parameters need to be dealt with as a 
single set as the aggregating portal will have to deal
with then as a a single set anyway. For example, Once response caching is 
properly implemented, *all* these response state parameters need
to be cached as one set. For that, one single SPI should be used instead of 
requiring a generic servlet response wrapper
implementation by the Portal without any formal contract as well as having to 
"merge" with some other SPI callback method results too.

I propose adding a new PortletResponseStateProvider SPI to take over the set* 
methods of the current PropertyManager SPI
as well as for storing response content (and related attributes like 
contentType), PortletWindow title, nextPossiblePortletModes and the 
CacheControl. All PortletResponse (and dispatched Servletresponse) methods 
dealing with writing content state should delegate to this new SPI.
The aggregating portal then can retrieve and process the resulting response 
state as a single entity after the portlet invocation is completed.


-- 
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