Add support for a callback right before Render and Action in PortletServlet
---------------------------------------------------------------------------

                 Key: PLUTO-328
                 URL: https://issues.apache.org/jira/browse/PLUTO-328
             Project: Pluto
          Issue Type: New Feature
          Components: portlet container
    Affects Versions: 1.1.0
            Reporter: Charles Severance
            Priority: Minor
             Fix For: 1.1.1


Basically we need another Optional service that provides a user of Pluto's 
container (like Sakai) with the opportunity to adjust things *right* before 
Action and Render is called.

In Sakai's case the use case is that we need to put a few items (context) into 
thread local on every request so that the entire suite of Sakai APIs works in 
portlets.

For Sakai tools, this is done with a Request Filter - but for Pluto I do not 
want to add anything like a filter because I want to maintain 100% binary 
compatibility of war files between Sakai and all other Pluto 1.1 based 
implementations - so for me an answer that says "just hack the web.xml and add 
your filter" is not acceptible.

I am already working on this and have complete but untested code.  Once 
everything tests out, I will post a patch.  Here is the basic idea (imitating 
the ADMIN listener):

+public interface PortletPrepareListener {
+
+    void preRender(PortletRequest request, PortletResponse response);
+
+    void preAction(PortletRequest request, PortletResponse response);
+
+}

I use Exactly the same pattern as the ADMIN listener.  I decided one listener 
with two methods was better than two listeners.  

And frankly - people smarter than me migh actually decide to refactor this and 
call our new friend the "PortletServletListener" and have three mentods (admin, 
preRender, and preAction).

Once I hand in my patch - I am happt to see the refactor happen - based on what 
folks think.

 

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