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 at...@apache.org on 2009/04/16 11:33:59 UTC
svn commit: r765538 - in /portals/jetspeed-2/portal/trunk:
components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/
components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/
components/jetspeed-portal/src/t...
Author: ate
Date: Thu Apr 16 09:33:58 2009
New Revision: 765538
URL: http://svn.apache.org/viewvc?rev=765538&view=rev
Log:
Implementing JS2-969: Add portlet content cache managment and invalidation for JSR-286 Public Render Parameters usage
See: http://issues.apache.org/jira/browse/JS2-969
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/CommonjWorkerMonitorImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/MockRenderJob.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletRenderer.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/RenderingJob.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/state/NavigationalState.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/CommonjWorkerMonitorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/CommonjWorkerMonitorImpl.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/CommonjWorkerMonitorImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/CommonjWorkerMonitorImpl.java Thu Apr 16 09:33:58 2009
@@ -358,7 +358,7 @@
{
synchronized (content)
{
- content.completeWithError();
+ content.complete();
}
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java Thu Apr 16 09:33:58 2009
@@ -25,7 +25,6 @@
import org.apache.commons.collections.list.TreeList;
import org.apache.jetspeed.aggregator.PortletContent;
-import org.apache.jetspeed.aggregator.PortletRenderer;
import org.apache.jetspeed.cache.ContentCacheKey;
import org.apache.jetspeed.util.DOMUtils;
import org.apache.jetspeed.util.DefaultKeyValue;
@@ -42,7 +41,6 @@
private int expiration;
private String title;
private String contentType;
- private PortletRenderer renderer;
/**
* The list container for all contributed head elements from this portlet content.
@@ -52,16 +50,16 @@
PortletContentImpl()
{
- init();
+ cw = new CharArrayWriter();
+ writer = new PrintWriter(cw);
}
- PortletContentImpl(PortletRenderer renderer, ContentCacheKey cacheKey, int expiration, String title)
+ PortletContentImpl(ContentCacheKey cacheKey, int expiration, String title)
{
- this.renderer = renderer;
+ this();
this.cacheKey = cacheKey;
this.expiration = expiration;
this.title = title;
- init();
}
public PrintWriter getWriter()
@@ -69,12 +67,6 @@
return writer;
}
- public void init()
- {
- cw = new CharArrayWriter();
- writer = new PrintWriter(cw);
- }
-
public void release()
{
if (writer != null)
@@ -84,6 +76,7 @@
}
cw = null;
writer = null;
+ headElements = null;
}
public String toString()
@@ -109,13 +102,6 @@
return complete;
}
- void setComplete(boolean state, boolean notify)
- {
- if (renderer != null && notify)
- renderer.notifyContentComplete(this);
- this.complete = state;
- }
-
public String getContent()
{
return toString();
@@ -130,13 +116,7 @@
*/
public void complete()
{
- setComplete(true, true);
- }
-
- // error case, don't notify
- public void completeWithError()
- {
- setComplete(true, false);
+ this.complete = true;
}
public ContentCacheKey getCacheKey()
@@ -179,7 +159,8 @@
if (!complete)
{
resetBuffer();
- // TODO: clear headers
+ headElements = null;
+ // TODO: clear other (normal) headers
}
}
@@ -264,5 +245,4 @@
return headElems;
}
-
}
\ No newline at end of file
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java Thu Apr 16 09:33:58 2009
@@ -320,7 +320,7 @@
{
title = portletWindow.getPortletDefinition().getPortletName();
}
- return new PortletContentImpl(this, cacheKey, expirationCache, title);
+ return new PortletContentImpl(cacheKey, expirationCache, title);
}
protected RenderingJob buildRenderingJob( PortletWindow portletWindow,
@@ -399,7 +399,7 @@
return true;
}
- protected void addToCache(PortletContent content)
+ protected void addToCache(RequestContext context, PortletContent content)
{
CacheElement cachedElement = portletContentCache.createElement(content.getCacheKey(), content);
if (content.getExpiration() == -1)
@@ -412,14 +412,16 @@
cachedElement.setTimeToIdleSeconds(content.getExpiration());
cachedElement.setTimeToLiveSeconds(content.getExpiration());
}
- portletContentCache.put(cachedElement);
+ portletContentCache.put(cachedElement);
+ context.getPortalURL().getNavigationalState().registerPortletContentCachedForPublicRenderParameters(context, content);
}
- public void notifyContentComplete(PortletContent content)
+ public void notifyContentComplete(RequestContext context, PortletWindow window)
{
+ PortletContent content = window.getFragment().getPortletContent();
if (content.getExpiration() != 0)
{
- addToCache(content);
+ addToCache(context, content);
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java Thu Apr 16 09:33:58 2009
@@ -97,6 +97,11 @@
this.window = window;
this.expirationCache = expirationCache;
}
+
+ public PortletRenderer getRenderer()
+ {
+ return renderer;
+ }
/**
* Sets portlet timout in milliseconds.
@@ -219,13 +224,10 @@
{
synchronized (fragment.getPortletContent())
{
- if (fragment.getOverriddenContent() != null)
- {
- fragment.getPortletContent().completeWithError();
- }
- else
+ fragment.getPortletContent().complete();
+ if (fragment.getOverriddenContent() == null)
{
- fragment.getPortletContent().complete();
+ renderer.notifyContentComplete(requestContext, window);
}
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java Thu Apr 16 09:33:58 2009
@@ -17,17 +17,22 @@
package org.apache.jetspeed.container.state.impl;
import java.io.UnsupportedEncodingException;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
+import javax.servlet.http.HttpSession;
import javax.xml.namespace.QName;
import org.apache.jetspeed.JetspeedActions;
+import org.apache.jetspeed.aggregator.PortletContent;
+import org.apache.jetspeed.cache.ContentCacheKey;
import org.apache.jetspeed.cache.JetspeedContentCache;
import org.apache.jetspeed.container.state.MutableNavigationalState;
+import org.apache.jetspeed.container.state.NavigationalState;
import org.apache.jetspeed.container.url.PortalURL;
import org.apache.jetspeed.om.portlet.PortletApplication;
import org.apache.jetspeed.request.RequestContext;
@@ -67,6 +72,35 @@
}
}
+ private static boolean changedParameterValues(String[] requestValues, String[] sessionValues)
+ {
+ if ((requestValues == null) || (sessionValues == null) || (requestValues.length != sessionValues.length))
+ {
+ return true;
+ }
+ for (int ix = 0; ix < requestValues.length; ix++)
+ {
+ if (!requestValues[ix].equals(sessionValues[ix]))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static void removeFromCache(RequestContext context, String id, JetspeedContentCache cache)
+ {
+ if (cache != null)
+ {
+ ContentCacheKey cacheKey = cache.createCacheKey(context, id);
+ if (cache.isKeyInCache(cacheKey))
+ {
+ cache.remove(cacheKey);
+ }
+ cache.invalidate(context);
+ }
+ }
+
protected boolean resolvePortletWindows(RequestContext requestContext)
{
boolean targetResolved = true;
@@ -147,7 +181,87 @@
}
requestStates.setPublicRenderParametersMap(map);
}
-
+
+ @SuppressWarnings("unchecked")
+ protected void syncPublicRequestParameters(RequestContext context, boolean transientNavState)
+ {
+ Map<QName, ValuesAndWindowUsage> publicRenderParametersMap = null;
+
+ // sync public render parameters if not a transient NavState request
+ if (!transientNavState && requestStates.getPublicRenderParametersMap() != null)
+ {
+ HttpSession session = context.getRequest().getSession(true);
+ publicRenderParametersMap = (Map<QName, ValuesAndWindowUsage>)session.getAttribute(NavigationalState.PRP_SESSION_KEY);
+
+ if (publicRenderParametersMap == null)
+ {
+ publicRenderParametersMap = Collections.synchronizedMap(new HashMap<QName, ValuesAndWindowUsage>());
+ session.setAttribute(NavigationalState.PRP_SESSION_KEY, publicRenderParametersMap);
+ }
+
+ for (Iterator<Map.Entry<QName, String[]>> iter = requestStates.getPublicRenderParametersMap().entrySet()
+ .iterator(); iter.hasNext();)
+ {
+ Map.Entry<QName, String[]> entry = iter.next();
+ ValuesAndWindowUsage vawu = publicRenderParametersMap.get(entry.getKey());
+ if (vawu == null || changedParameterValues(entry.getValue(), vawu.getValues()))
+ {
+ if (vawu != null && vawu.getWindowIds() != null)
+ {
+ for (String windowId : vawu.getWindowIds())
+ {
+ removeFromCache(context, windowId, cache);
+ }
+ for (String pageId : vawu.getPageIds())
+ {
+ removeFromCache(context, pageId, decorationCache);
+ }
+ }
+ if (entry.getValue() == null)
+ {
+ iter.remove();
+ publicRenderParametersMap.remove(entry.getKey());
+ }
+ else if (vawu == null)
+ {
+ publicRenderParametersMap.put(entry.getKey(), new ValuesAndWindowUsage(entry.getValue()));
+ }
+ else
+ {
+ vawu.setValues(entry.getValue());
+ }
+ }
+ }
+ }
+
+ if (publicRenderParametersMap == null)
+ {
+ HttpSession session = context.getRequest().getSession(false);
+ if (session != null)
+ {
+ publicRenderParametersMap = (Map<QName, ValuesAndWindowUsage>)session.getAttribute(NavigationalState.PRP_SESSION_KEY);
+ }
+ }
+
+ if (publicRenderParametersMap != null && !publicRenderParametersMap.isEmpty())
+ {
+ Map<QName, String[]> map = requestStates.getPublicRenderParametersMap();
+ if (map == null)
+ {
+ map = new HashMap<QName, String[]>();
+ }
+ for (Map.Entry<QName, ValuesAndWindowUsage> entry : publicRenderParametersMap.entrySet())
+ {
+ if (!map.containsKey(entry.getKey()))
+ {
+ map.put(entry.getKey(), entry.getValue().getValues());
+ }
+ }
+ requestStates.setPublicRenderParametersMap(map);
+ }
+ }
+
+
protected void resetRequestPortletWindowPublicRenderParameters()
{
for (PortletWindowRequestNavigationalState state : requestStates.getPortletWindowRequestNavigationalStates().values())
@@ -443,6 +557,11 @@
{
Map<String, String[]> targets = new HashMap<String, String[]>();
Map<QName, String[]> qtargets = new HashMap<QName, String[]>();
+ Map<QName, String[]> rsPrpMap = requestStates.getPublicRenderParametersMap();
+ if (rsPrpMap == null)
+ {
+ rsPrpMap = new HashMap<QName,String[]>();
+ }
for (Map.Entry<String,String[]> entry : publicRenderParametersMap.entrySet())
{
QName qname = targetState.getPublicRenderParameterQNameByIdentifier(entry.getKey());
@@ -452,14 +571,18 @@
targets.put(entry.getKey(),entry.getValue());
if (entry.getValue() == null)
{
- requestStates.getPublicRenderParametersMap().remove(qname);
+ rsPrpMap.remove(qname);
}
else
{
- requestStates.getPublicRenderParametersMap().put(qname, entry.getValue());
+ rsPrpMap.put(qname, entry.getValue());
}
}
}
+ if (!rsPrpMap.isEmpty())
+ {
+ requestStates.setPublicRenderParametersMap(rsPrpMap);
+ }
targetState.setTargetPublicRenderParametersMap(targets);
// now symc with the requestStates publicParametersMap and other possible targetted states
@@ -625,4 +748,36 @@
{
return requestStates.getWindowIdIterator();
}
+
+ @SuppressWarnings("unchecked")
+ public void registerPortletContentCachedForPublicRenderParameters(RequestContext context, PortletContent content)
+ {
+ String windowId = content.getCacheKey().getWindowId();
+ PortletWindowRequestNavigationalState state = requestStates.getPortletWindowNavigationalState(windowId);
+ if (state != null && state.getPublicRenderParametersMap() != null && !state.getPublicRenderParametersMap().isEmpty())
+ {
+ HttpSession session = context.getRequest().getSession(true);
+
+ synchronized (session)
+ {
+ String pageId = context.getPage().getId();
+ Map<QName, ValuesAndWindowUsage> publicRenderParametersMap = (Map<QName, ValuesAndWindowUsage>)session.getAttribute(NavigationalState.PRP_SESSION_KEY);
+ if (publicRenderParametersMap == null)
+ {
+ // should not be possible, because having publicRenderParameters implies the publicRenderParametersMap already must have been created
+ publicRenderParametersMap = Collections.synchronizedMap(new HashMap<QName, ValuesAndWindowUsage>());
+ session.setAttribute(PRP_SESSION_KEY, publicRenderParametersMap);
+ }
+ for (String identifier : state.getPublicRenderParametersMap().keySet())
+ {
+ QName qname = state.getPublicRenderParameterQNameByIdentifier(identifier);
+ ValuesAndWindowUsage usage = publicRenderParametersMap.get(qname);
+ if (usage != null)
+ {
+ usage.registerWindowUsage(pageId, windowId);
+ }
+ }
+ }
+ }
+ }
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java Thu Apr 16 09:33:58 2009
@@ -38,7 +38,7 @@
public boolean sync(RequestContext context)
{
- HttpSession session = context.getRequest().getSession();
+ HttpSession session = context.getRequest().getSession(false);
Object syncLock = session;
if (syncLock == null)
{
@@ -48,6 +48,7 @@
{
boolean result = resolvePortletWindows(context);
resolvePublicParametersMap();
+ syncPublicRequestParameters(context, false);
resetRequestPortletWindowPublicRenderParameters();
return result;
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java Thu Apr 16 09:33:58 2009
@@ -24,7 +24,6 @@
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
-import javax.xml.namespace.QName;
import org.apache.jetspeed.cache.ContentCacheKey;
import org.apache.jetspeed.cache.JetspeedContentCache;
@@ -46,7 +45,6 @@
private final boolean storeParameters;
private Map<String, PageState> pageStates = new HashMap<String, PageState>();
- private Map<QName, ValuesAndWindowUsage> publicRenderParametersMap = Collections.synchronizedMap(new HashMap<QName, ValuesAndWindowUsage>());
public PortletWindowSessionNavigationalStates(boolean storeParameters)
{
@@ -114,69 +112,10 @@
((PortletWindowExtendedNavigationalState)sessionState).resetDecoratorActionEncodings();
}
}
- syncPublicRequestParameters(context, requestStates, false, cache, decorationCache);
}
}
}
- public void syncPublicRequestParameters(RequestContext context, PortletWindowRequestNavigationalStates requestStates,
- boolean transientNavState,
- JetspeedContentCache cache, JetspeedContentCache decorationCache)
- {
- // sync session states public render parameters
- if (!transientNavState && requestStates.getPublicRenderParametersMap() != null)
- {
- for (Iterator<Map.Entry<QName, String[]>> iter = requestStates.getPublicRenderParametersMap().entrySet().iterator(); iter.hasNext(); )
- {
- Map.Entry<QName, String[]> entry = iter.next();
- ValuesAndWindowUsage vawu = publicRenderParametersMap.get(entry.getKey());
- if (vawu == null || changedParameterValues(entry.getValue(), vawu.getValues()))
- {
- if (vawu != null && vawu.getWindowIds() != null)
- {
- for (String windowId : vawu.getWindowIds())
- {
- removeFromCache(context, windowId, cache);
- }
- for (String pageId : vawu.getPageIds())
- {
- removeFromCache(context, pageId, decorationCache);
- }
- }
- if (entry.getValue() == null)
- {
- iter.remove();
- }
- else if (vawu == null)
- {
- publicRenderParametersMap.put(entry.getKey(), new ValuesAndWindowUsage(entry.getValue()));
- }
- else
- {
- vawu.setValues(entry.getValue());
- }
- }
- }
- }
-
- if (!publicRenderParametersMap.isEmpty())
- {
- Map<QName, String[]> map = requestStates.getPublicRenderParametersMap();
- if (map == null)
- {
- map = new HashMap<QName, String[]>();
- }
- for (Map.Entry<QName, ValuesAndWindowUsage> entry : publicRenderParametersMap.entrySet())
- {
- if (!map.containsKey(entry.getKey()))
- {
- map.put(entry.getKey(), entry.getValue().getValues());
- }
- }
- requestStates.setPublicRenderParametersMap(map);
- }
- }
-
public void sync(RequestContext context, Page page,
PortletWindowRequestNavigationalStates requestStates,
JetspeedContentCache cache, JetspeedContentCache decorationCache)
@@ -327,7 +266,6 @@
}
}
}
- syncPublicRequestParameters(context, requestStates, false, cache, decorationCache);
}
private boolean modeChanged(PortletMode req, PortletMode ses)
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java Thu Apr 16 09:33:58 2009
@@ -59,7 +59,7 @@
public boolean sync(RequestContext context)
{
- HttpSession session = context.getRequest().getSession();
+ HttpSession session = context.getRequest().getSession(false);
Object syncLock = session;
if (syncLock == null)
{
@@ -109,14 +109,6 @@
}
}
}
- if ( session != null )
- {
- PortletWindowSessionNavigationalStates sessionStates = (PortletWindowSessionNavigationalStates)session.getAttribute(NavigationalState.NAVSTATE_SESSION_KEY);
- if ( sessionStates != null )
- {
- sessionStates.syncPublicRequestParameters(context, requestStates, true, cache, decorationCache);
- }
- }
}
else
{
@@ -144,8 +136,8 @@
}
}
}
-
- this.resetRequestPortletWindowPublicRenderParameters();
+ syncPublicRequestParameters(context, transientNavState);
+ resetRequestPortletWindowPublicRenderParameters();
return result;
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/MockRenderJob.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/MockRenderJob.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/MockRenderJob.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/MockRenderJob.java Thu Apr 16 09:33:58 2009
@@ -107,6 +107,15 @@
// TODO Auto-generated method stub
return window;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.aggregator.RenderingJob#getRenderer()
+ */
+ public PortletRenderer getRenderer()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
/* (non-Javadoc)
* @see org.apache.jetspeed.aggregator.RenderingJob#getPortletContent()
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletContent.java Thu Apr 16 09:33:58 2009
@@ -56,12 +56,6 @@
void complete();
/**
- * Notify that this content is complete with error
- *
- */
- void completeWithError();
-
- /**
* Get a writer to the content to stream content into this object
* @return
*/
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletRenderer.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletRenderer.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletRenderer.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/PortletRenderer.java Thu Apr 16 09:33:58 2009
@@ -21,6 +21,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.jetspeed.container.PortletWindow;
import org.apache.jetspeed.om.page.ContentFragment;
import org.apache.jetspeed.request.RequestContext;
@@ -82,10 +83,10 @@
/**
* Notify that content completed by worker jobs
* So that renderer can update its state
- *
- * @param content
+ * @param context
+ * @param window
*/
- public void notifyContentComplete(PortletContent content);
+ public void notifyContentComplete(RequestContext context, PortletWindow window);
PortletTrackingManager getPortletTrackingManager();
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/RenderingJob.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/RenderingJob.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/RenderingJob.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/aggregator/RenderingJob.java Thu Apr 16 09:33:58 2009
@@ -36,6 +36,8 @@
{
void execute();
+ PortletRenderer getRenderer();
+
PortletWindow getWindow();
PortletContent getPortletContent();
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/state/NavigationalState.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/state/NavigationalState.java?rev=765538&r1=765537&r2=765538&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/state/NavigationalState.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/state/NavigationalState.java Thu Apr 16 09:33:58 2009
@@ -24,6 +24,7 @@
import javax.portlet.WindowState;
import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.aggregator.PortletContent;
import org.apache.jetspeed.container.PortletWindow;
import org.apache.jetspeed.container.url.PortalURL;
@@ -40,7 +41,15 @@
*/
public interface NavigationalState
{
+ /**
+ * Session key for storing the PortletWindowSessionNavigationalStates
+ */
public static final String NAVSTATE_SESSION_KEY = "org.apache.jetspeed.navstate";
+
+ /**
+ * Session key for storing the PublicRenderParametersMap
+ */
+ public static final String PRP_SESSION_KEY = "org.apache.jetspeed.prp";
/*
* Decodes an encoded Navigational State as retrieved from a Portal URL.
@@ -236,4 +245,6 @@
* @return true if render parameters will be saved in the Session
*/
boolean isRenderParameterStateFull();
+
+ void registerPortletContentCachedForPublicRenderParameters(RequestContext context, PortletContent content);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org