Author: julien(a)jboss.com
Date: 2007-03-19 19:14:00 -0400 (Mon, 19 Mar 2007)
New Revision: 6759
Modified:
trunk/bridge/src/main/org/jboss/portal/bridge/JBossServletContextProvider.java
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/HeaderInterceptor.java
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/TransactionInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ContextDispatcherInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ModesInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/PortletSessionSynchronizationInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ProducerCacheInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/SecureTransportInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ValveInterceptor.java
trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java
trunk/portlet/src/main/org/jboss/portal/portlet/invocation/PortletInvocation.java
trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
Log:
improved attribute management on the portlet invocation for the portlet container info
attribute
Modified: trunk/bridge/src/main/org/jboss/portal/bridge/JBossServletContextProvider.java
===================================================================
---
trunk/bridge/src/main/org/jboss/portal/bridge/JBossServletContextProvider.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/bridge/src/main/org/jboss/portal/bridge/JBossServletContextProvider.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -25,6 +25,8 @@
import org.apache.portals.bridges.common.ServletContextProvider;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletRequest;
@@ -121,7 +123,7 @@
public BridgeInfo(PortletInvocation invocation)
{
- ContainerPortletInfo info = (ContainerPortletInfo)invocation.getInfo();
+ ContainerPortletInfo info =
(ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
//
this.invocation = invocation;
Modified:
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/HeaderInterceptor.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/HeaderInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/HeaderInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -28,11 +28,13 @@
import org.jboss.portal.core.metadata.portlet.JBossPortletMetaData;
import org.jboss.portal.core.metadata.portlet.ElementMetaData;
import org.jboss.portal.portlet.container.PortletContainer;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
import org.jboss.portal.portlet.invocation.PortletInterceptor;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.info.PortletInfo;
import java.io.StringWriter;
import java.util.Iterator;
@@ -57,7 +59,7 @@
// Add declaratively injected header content here (get it via the component)
String headerChars = fragment.getHeader(); // Chris' modif: note that the
header might to be re-written...
- PortletContainer container =
((ContainerPortletInfo)invocation.getInfo()).getContainer();
+ PortletContainer container =
((ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO)).getContainer();
JBossPortletMetaData portletMD =
(JBossPortletMetaData)container.getJBossMetaData();
if (portletMD != null)
{
Modified:
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/TransactionInterceptor.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/TransactionInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/core/src/main/org/jboss/portal/core/aspects/portlet/TransactionInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -28,6 +28,8 @@
import org.jboss.portal.portlet.invocation.PortletInterceptor;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.metadata.JBossPortletMetaData;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -42,7 +44,7 @@
Transactions.Type txType = Transactions.TYPE_NOT_SUPPORTED;
// Override tx type if found
- ContainerPortletInfo portlet = (ContainerPortletInfo)invocation.getInfo();
+ ContainerPortletInfo portlet =
(ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
JBossPortletMetaData portletMD = portlet.getContainer().getJBossMetaData();
if (portletMD != null)
{
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ContextDispatcherInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ContextDispatcherInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ContextDispatcherInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -25,12 +25,14 @@
import org.jboss.portal.common.invocation.InvocationException;
import org.jboss.portal.portlet.container.PortletApplication;
import org.jboss.portal.portlet.container.PortletContainer;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.jboss.portal.web.spi.ServletContainerContext;
import org.jboss.portal.web.spi.RequestDispatchCallback;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
import org.jboss.portal.portlet.invocation.PortletInterceptor;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.spi.RequestContext;
+import org.jboss.portal.portlet.info.PortletInfo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -63,7 +65,7 @@
protected Object invoke(PortletInvocation invocation) throws Exception,
InvocationException
{
- PortletContainer container =
((ContainerPortletInfo)invocation.getInfo()).getContainer();
+ PortletContainer container =
((ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO)).getContainer();
PortletApplication portletApplication = container.getApplication();
RequestContext reqCtx = invocation.getRequestContext();
ServletContext targetCtx = portletApplication.getContext().getServletContext();
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ModesInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ModesInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ModesInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -28,6 +28,7 @@
import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.invocation.PortletInterceptor;
import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.jboss.portal.common.util.ContentInfo;
import java.util.HashSet;
@@ -68,7 +69,7 @@
String contentType = si.getContentType().toString();
// Get the modes for this content type
- PortletInfo containerInfo = invocation.getInfo();
+ PortletInfo containerInfo =
(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
CapabilitiesInfo capabilities = containerInfo.getCapabilities();
// Add all the modes
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/PortletSessionSynchronizationInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/PortletSessionSynchronizationInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/PortletSessionSynchronizationInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -29,6 +29,7 @@
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.session.SessionListener;
import org.jboss.portal.portlet.session.SubSession;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import java.util.List;
@@ -40,7 +41,7 @@
{
protected Object invoke(PortletInvocation invocation) throws Exception,
InvocationException
{
- PortletInfo portletInfo = invocation.getInfo();
+ PortletInfo portletInfo =
(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
SessionInfo sessionInfo = portletInfo.getSession();
if (sessionInfo != null &&
Boolean.TRUE.equals(sessionInfo.getDistributed()))
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ProducerCacheInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ProducerCacheInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ProducerCacheInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -31,6 +31,7 @@
import org.jboss.portal.portlet.invocation.RenderInvocation;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.apache.log4j.Logger;
/**
@@ -61,7 +62,7 @@
FragmentResponse fragmentResult = (FragmentResponse)response;
// Get config
- PortletInfo info = invocation.getInfo();
+ PortletInfo info =
(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
CacheInfo cacheInfo = info.getCache();
// Update the fragment cache info from the meta info
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/SecureTransportInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/SecureTransportInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/SecureTransportInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -24,6 +24,7 @@
import org.jboss.portal.common.invocation.InvocationException;
import org.jboss.portal.portlet.TransportGuarantee;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.info.SecurityInfo;
import org.jboss.portal.portlet.invocation.PortletInterceptor;
@@ -42,7 +43,7 @@
protected Object invoke(PortletInvocation invocation) throws Exception,
InvocationException
{
- PortletInfo containerInfo = invocation.getInfo();
+ PortletInfo containerInfo =
(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO);
SecurityInfo securityInfo = containerInfo.getSecurity();
SecurityContext securityContext = invocation.getSecurityContext();
boolean invoke = true;
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ValveInterceptor.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ValveInterceptor.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/aspects/portlet/ValveInterceptor.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -24,15 +24,16 @@
import org.jboss.portal.common.concurrent.Valve;
import org.jboss.portal.common.invocation.InvocationException;
-import org.jboss.portal.portlet.impl.jsr168.PortletApplicationImpl;
import org.jboss.portal.portlet.container.PortletContainer;
import org.jboss.portal.portlet.container.PortletApplication;
import org.jboss.portal.portlet.container.PortletApplicationContext;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
import org.jboss.portal.portlet.impl.jsr168.info.ContainerPortletInfo;
import org.jboss.portal.portlet.invocation.PortletInterceptor;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UnavailableResponse;
+import org.jboss.portal.portlet.info.PortletInfo;
/**
* This aspect has two responsabilities :<br/> <ul> <li>continue the
request only if the portlet container valve is
@@ -48,7 +49,7 @@
{
protected Object invoke(PortletInvocation invocation) throws Exception,
InvocationException
{
- PortletContainer container =
((ContainerPortletInfo)invocation.getInfo()).getContainer();
+ PortletContainer container =
((ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO)).getContainer();
Valve valve = container.getValve();
// Try to aquire the valve
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -57,6 +57,9 @@
public class PortletContainerInvoker implements PortletInvoker,
PortletApplicationRegistryListener
{
+ /** The key under which the portlet container info are stored in the request scope of
the invocation. */
+ public static final String PORTLET_CONTAINER_INFO =
"PORTLET_CONTAINER_INFO";
+
/** . */
private PortletApplicationRegistry registry;
@@ -72,16 +75,24 @@
public Object invoke(Invocation invocation) throws Exception,
org.jboss.portal.common.invocation.InvocationException
{
PortletInvocation portletInvocation = (PortletInvocation)invocation;
+ PortletContext ctx = portletInvocation.getTarget();
+ Portlet portlet = getPortlet(ctx);
+ ContainerPortletInfo info = (ContainerPortletInfo)portlet.getInfo();
+
+ //
try
{
portletInvocation.setHandler(null);
- ContainerPortletInfo info =
(ContainerPortletInfo)portletInvocation.getInfo();
+ invocation.setAttribute(PortletInvocation.REQUEST_SCOPE,
PORTLET_CONTAINER_INFO, info);
+
+ //
PortletContainer container = info.getContainer();
return container.dispatch(portletInvocation);
}
finally
{
portletInvocation.setHandler(this);
+ invocation.removeAttribute(PortletInvocation.REQUEST_SCOPE,
PORTLET_CONTAINER_INFO);
}
}
};
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/PortletRequestImpl.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -25,6 +25,8 @@
import org.apache.log4j.Logger;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.portlet.PortletParameters;
+import org.jboss.portal.portlet.container.PortletContainerInvoker;
+import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.impl.jsr168.PortletApplicationImpl;
import org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl;
import org.jboss.portal.portlet.impl.jsr168.PortletUtils;
@@ -105,7 +107,7 @@
this.securityContext = invocation.getSecurityContext();
this.requestContext = invocation.getRequestContext();
this.instanceContext = invocation.getInstanceContext();
- this.container =
(PortletContainerImpl)((ContainerPortletInfo)invocation.getInfo()).getContainer();
+ this.container =
(PortletContainerImpl)((ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO)).getContainer();
this.contentTypes = container.getContentTypes();
this.dreq = invocation.getDispatchedRequest();
this.portalContext = new PortalContextImpl(invocation.getPortalContext());
@@ -398,7 +400,7 @@
public boolean isUserInRole(String roleName)
{
// Get the map role name to role link
- Map securityRoleRefsMap =
((PortletContainerImpl)((ContainerPortletInfo)invocation.getInfo()).getContainer()).getSecurityRoleRefsMap();
+ Map securityRoleRefsMap =
((PortletContainerImpl)((ContainerPortletInfo)(PortletInfo)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE,
PortletContainerInvoker.PORTLET_CONTAINER_INFO)).getContainer()).getSecurityRoleRefsMap();
// Process the role link
String roleLink = (String)securityRoleRefsMap.get(roleName);
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/invocation/PortletInvocation.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/invocation/PortletInvocation.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/invocation/PortletInvocation.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -25,7 +25,6 @@
import org.jboss.portal.common.invocation.Invocation;
import org.jboss.portal.common.invocation.InvocationContext;
import org.jboss.portal.common.invocation.Scope;
-import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.spi.InstanceContext;
import org.jboss.portal.portlet.spi.PortalContext;
import org.jboss.portal.portlet.spi.PortletInvocationContext;
@@ -80,9 +79,6 @@
/** The window context. */
protected WindowContext windowContext;
- /** The portlet info we want to invoke. */
- protected PortletInfo info;
-
/** The window states this portlet can accept. */
protected Set supportedWindowStates;
@@ -154,16 +150,6 @@
this.supportedModes = supportedModes;
}
- public PortletInfo getInfo()
- {
- return info;
- }
-
- public void setInfo(PortletInfo info)
- {
- this.info = info;
- }
-
/** Return the dispatched http servlet request. */
public HttpServletResponse getDispatchedResponse()
{
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java 2007-03-19
22:13:35 UTC (rev 6758)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java 2007-03-19
23:14:00 UTC (rev 6759)
@@ -217,7 +217,6 @@
}
// Create prefs
- PortletInfo info = portlet.getInfo();
AbstractPropertyContext prefs = new AbstractPropertyContext(
access,
context.isStateful() ? ((StatefulContext)context).getProperties() : null,
@@ -229,7 +228,6 @@
{
invocation.setTarget(context.getPortletContext());
invocation.setAttribute(PortletInvocation.REQUEST_SCOPE,
PropertyContext.PREFERENCES_ATTRIBUTE, prefs);
- invocation.setInfo(info);
// Invoke
response = portletInvoker.invoke(invocation);
@@ -238,7 +236,6 @@
{
invocation.setTarget(portletContext);
invocation.removeAttribute(PortletInvocation.REQUEST_SCOPE,
PropertyContext.PREFERENCES_ATTRIBUTE);
- invocation.setInfo(null);
}
//