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