Author: woonsan
Date: Fri Mar 27 12:50:11 2009
New Revision: 759121

URL: http://svn.apache.org/viewvc?rev=759121&view=rev
Log:
Fixes Portlet Filter handling.

Modified:
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
    
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
    
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java?rev=759121&r1=759120&r2=759121&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
 Fri Mar 27 12:50:11 2009
@@ -142,7 +142,7 @@
             window.setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, 
window.getFragment());
             
window.setAttribute(PortalReservedParameters.PORTLET_WINDOW_ATTRIBUTE, window);
             
window.setAttribute(PortalReservedParameters.PORTLET_DEFINITION_ATTRIBUTE, 
portletDefinition);
-
+            
window.setAttribute(PortalReservedParameters.PORTLET_FILTER_MANAGER_ATTRIBUTE, 
filter);
 
             if (useForward)
             {

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java?rev=759121&r1=759120&r2=759121&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 Fri Mar 27 12:50:11 2009
@@ -65,6 +65,7 @@
     public static final String RESOVLER_CACHE_ATTR = 
"org.apache.jetspeed.resovler.cache";
     public static final String PORTLET_DEFINITION_ATTRIBUTE = 
"org.apache.jetspeed.portlet.definition";
     public static final String PORTLET_WINDOW_ATTRIBUTE = 
"org.apache.jetspeed.portlet.window";
+    public static final String PORTLET_FILTER_MANAGER_ATTRIBUTE = 
"org.apache.jetspeed.portlet.container.filterManager";
     public static final String PAGE_THEME_ATTRIBUTE = 
"org.apache.jetspeed.theme";
     public static final String PAGE_LAYOUT_VIEW = 
"org.apache.jetspeed.layout.view";
     public static final String PAGE_LAYOUT_MAX = 
"org.apache.jetspeed.layout.max";

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java?rev=759121&r1=759120&r2=759121&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java
 Fri Mar 27 12:50:11 2009
@@ -26,12 +26,16 @@
 
 import javax.portlet.ActionRequest;
 import javax.portlet.ActionResponse;
+import javax.portlet.EventPortlet;
 import javax.portlet.EventRequest;
 import javax.portlet.EventResponse;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 import javax.portlet.ResourceRequest;
 import javax.portlet.ResourceResponse;
+import javax.portlet.ResourceServingPortlet;
 import javax.portlet.UnavailableException;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletConfig;
@@ -42,7 +46,9 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.container.session.PortalSessionsManager;
+import org.apache.jetspeed.factory.PortletInstance;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.services.JetspeedPortletServices;
 import org.apache.jetspeed.services.PortletServices;
@@ -237,32 +243,72 @@
                         
         try
         {
-            
window.getPortletRequestContext().init(window.getPortletInstance().getConfig(), 
getServletContext(), request, response);
-            window.getPortletResponseContext().init(request, response);
+            PortletInstance portletInstance = window.getPortletInstance();
+            PortletConfig portletConfig = portletInstance.getConfig();
 
+            window.getPortletRequestContext().init(portletConfig, 
getServletContext(), request, response);
+            window.getPortletResponseContext().init(request, response);
+            
+            FilterManager filterManager = (FilterManager) 
window.getAttribute(PortalReservedParameters.PORTLET_FILTER_MANAGER_ATTRIBUTE);
+            ClassLoader paCl = Thread.currentThread().getContextClassLoader();
+            
+            
window.removeAttribute(PortalReservedParameters.PORTLET_FILTER_MANAGER_ATTRIBUTE);
+            
             if (PortletWindow.Action.ACTION.equals(window.getAction()))
             {
                 ActionRequest actionRequest = 
(ActionRequest)window.getPortletRequest();
                 ActionResponse actionResponse = 
(ActionResponse)window.getPortletResponse();
-                window.getPortletInstance().processAction(actionRequest, 
actionResponse);
+                
+                if (filterManager != null)
+                {
+                    filterManager.processFilter(actionRequest, actionResponse, 
paCl, (Portlet) portletInstance, portletConfig.getPortletContext());
+                }
+                else
+                {
+                    portletInstance.processAction(actionRequest, 
actionResponse);
+                }
             }
             else if (PortletWindow.Action.RENDER.equals(window.getAction()))
             {
                 RenderRequest renderRequest = 
(RenderRequest)window.getPortletRequest();
                 RenderResponse renderResponse =  
(RenderResponse)window.getPortletResponse();
-                window.getPortletInstance().render(renderRequest, 
renderResponse);
+                
+                if (filterManager != null)
+                {
+                    filterManager.processFilter(renderRequest, renderResponse, 
paCl, (Portlet) portletInstance, portletConfig.getPortletContext());
+                }
+                else
+                {
+                    portletInstance.render(renderRequest, renderResponse);
+                }
             }
             else if (PortletWindow.Action.EVENT.equals(window.getAction()))
             {
                 EventRequest eventRequest = 
(EventRequest)window.getPortletRequest();
                 EventResponse eventResponse =  
(EventResponse)window.getPortletResponse();
-                window.getPortletInstance().processEvent(eventRequest, 
eventResponse);
+                
+                if (filterManager != null)
+                {
+                    filterManager.processFilter(eventRequest, eventResponse, 
paCl, (EventPortlet) portletInstance, portletConfig.getPortletContext());
+                }
+                else
+                {
+                    portletInstance.processEvent(eventRequest, eventResponse);
+                }
             }
             else if (PortletWindow.Action.RESOURCE.equals(window.getAction()))
             {
                 ResourceRequest resourceRequest = 
(ResourceRequest)window.getPortletRequest();
                 ResourceResponse resourceResponse = 
(ResourceResponse)window.getPortletResponse();
-                window.getPortletInstance().serveResource(resourceRequest, 
resourceResponse);
+                
+                if (filterManager != null)
+                {
+                    filterManager.processFilter(resourceRequest, 
resourceResponse, paCl, (ResourceServingPortlet) portletInstance, 
portletConfig.getPortletContext());
+                }
+                else
+                {
+                    portletInstance.serveResource(resourceRequest, 
resourceResponse);
+                }
             }
 
             // if we get this far we are home free



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to