You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2009/03/27 13:50:12 UTC

svn commit: r759121 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ jetspeed-api/src/main/java/org/apache/jetspeed/ jetspeed-commons/src/main/java/org/apache/jetspeed/container/

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: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org