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 ta...@apache.org on 2007/05/24 22:27:27 UTC
svn commit: r541420 - in /portals/jetspeed-2/trunk:
components/portal/src/java/org/apache/jetspeed/aggregator/impl/
components/portal/src/java/org/apache/jetspeed/container/state/impl/
components/portal/src/java/org/apache/jetspeed/request/ components/...
Author: taylor
Date: Thu May 24 13:27:17 2007
New Revision: 541420
URL: http://svn.apache.org/viewvc?view=rev&rev=541420
Log:
https://issues.apache.org/jira/browse/JS2-584
https://issues.apache.org/jira/browse/JS2-690
Added:
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/request-context-objects.xml
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/request/RequestContext.java
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-spring.xml
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java Thu May 24 13:27:17 2007
@@ -472,7 +472,8 @@
request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE, requestContext.getPage());
request.setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, fragment);
request.setAttribute(PortalReservedParameters.CONTENT_DISPATCHER_ATTRIBUTE, dispatcher);
- request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
+ request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
+ request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_OBJECTS, requestContext.getObjects());
request.setAttribute(PortalReservedParameters.PATH_ATTRIBUTE, requestContext.getAttribute(PortalReservedParameters.PATH_ATTRIBUTE));
request.setAttribute(PortalReservedParameters.PORTLET_WINDOW_ATTRIBUTE, portletWindow);
@@ -488,7 +489,8 @@
workerAttrs.put(PortalReservedParameters.PAGE_ATTRIBUTE, requestContext.getPage());
workerAttrs.put(PortalReservedParameters.FRAGMENT_ATTRIBUTE, fragment);
workerAttrs.put(PortalReservedParameters.CONTENT_DISPATCHER_ATTRIBUTE, dispatcher);
- workerAttrs.put(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
+ workerAttrs.put(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
+ workerAttrs.put(PortalReservedParameters.REQUEST_CONTEXT_OBJECTS, requestContext.getObjects());
workerAttrs.put(PortalReservedParameters.PATH_ATTRIBUTE, requestContext.getAttribute(PortalReservedParameters.PATH_ATTRIBUTE));
workerAttrs.put(PortalReservedParameters.PORTLET_WINDOW_ATTRIBUTE, portletWindow);
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java Thu May 24 13:27:17 2007
@@ -237,6 +237,7 @@
this.request.setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, fragment);
this.request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE, requestContext.getPage());
this.request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
+ this.request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_OBJECTS, requestContext.getObjects());
// this.request.setAttribute(PortalReservedParameters.CONTENT_DISPATCHER_ATTRIBUTE,dispatcher);
container.renderPortlet(this.window, this.request, this.response);
this.response.flushBuffer();
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java Thu May 24 13:27:17 2007
@@ -53,6 +53,15 @@
if (JetspeedActions.SOLO_STATE.equals(state))
{
// skip *any* synchronizations when in SOLO state
+ HttpSession session = context.getRequest().getSession();
+ if ( session != null )
+ {
+ PortletWindowSessionNavigationalStates sessionStates = (PortletWindowSessionNavigationalStates)session.getAttribute(NavigationalState.NAVSTATE_SESSION_KEY);
+ if ( sessionStates != null )
+ {
+ sessionStates.removeFromCache(context, requestMaximizedWindowId, cache);
+ }
+ }
return;
}
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java Thu May 24 13:27:17 2007
@@ -92,6 +92,7 @@
private UserInfoManager userInfoMgr;
private Map requestsForWindows;
private Map responsesForWindows;
+ private final Map objects;
/**
* Create a new Request Context
@@ -104,6 +105,12 @@
public JetspeedRequestContext( HttpServletRequest request, HttpServletResponse response, ServletConfig config,
UserInfoManager userInfoMgr )
{
+ this(request, response, config, userInfoMgr, new HashMap());
+ }
+
+ public JetspeedRequestContext( HttpServletRequest request, HttpServletResponse response, ServletConfig config,
+ UserInfoManager userInfoMgr, Map objects)
+ {
this.request = request;
this.response = response;
this.config = config;
@@ -111,6 +118,7 @@
this.userInfoMgr = userInfoMgr;
this.requestsForWindows = new HashMap();
this.responsesForWindows = new HashMap();
+ this.objects = objects;
// set context in Request for later use
if (null != this.request)
@@ -137,9 +145,9 @@
// to the original request.
this.request = new HttpServletRequestWrapper(this.request);
}
- }
+ }
}
-
+
public HttpServletRequest getRequest()
{
return request;
@@ -670,4 +678,8 @@
return null;
}
+ public Map getObjects()
+ {
+ return objects;
+ }
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java Thu May 24 13:27:17 2007
@@ -17,6 +17,8 @@
package org.apache.jetspeed.request;
import java.lang.reflect.Constructor;
+import java.util.HashMap;
+import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
@@ -42,12 +44,14 @@
/** The user info manager. */
private UserInfoManager userInfoMgr;
private ThreadLocal tlRequestContext = new ThreadLocal();
-
+ private Map requestContextObjects;
+
private final static Log log = LogFactory.getLog(JetspeedRequestContextComponent.class);
public JetspeedRequestContextComponent(String contextClassName)
{
this.contextClassName = contextClassName;
+ this.requestContextObjects = new HashMap();
}
public JetspeedRequestContextComponent(String contextClassName,
@@ -55,8 +59,18 @@
{
this.contextClassName = contextClassName;
this.userInfoMgr = userInfoMgr;
+ this.requestContextObjects = new HashMap();
}
+ public JetspeedRequestContextComponent(String contextClassName,
+ UserInfoManager userInfoMgr,
+ Map requestContextObjects)
+ {
+ this.contextClassName = contextClassName;
+ this.userInfoMgr = userInfoMgr;
+ this.requestContextObjects = requestContextObjects;
+ }
+
public RequestContext create(HttpServletRequest req, HttpServletResponse resp, ServletConfig config)
{
RequestContext context = null;
@@ -74,18 +88,17 @@
HttpServletRequest.class,
HttpServletResponse.class,
ServletConfig.class,
- UserInfoManager.class});
- context = (RequestContext) constructor.newInstance(new Object[] { req, resp, config, userInfoMgr});
-
+ UserInfoManager.class,
+ Map.class});
+ context = (RequestContext) constructor.newInstance(new Object[] { req, resp, config, userInfoMgr, requestContextObjects});
+
}
catch (Exception e)
{
String msg = "JetspeedRequestContextComponent: Failed to create a Class object for RequestContext: " + e.toString();
log.error(msg);
}
-
- tlRequestContext.set(context);
-
+ tlRequestContext.set(context);
return context;
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java Thu May 24 13:27:17 2007
@@ -287,6 +287,7 @@
ctx.put("windowStateNormal", WindowState.NORMAL);
ctx.put("windowStateMinimized", WindowState.MINIMIZED);
ctx.put("windowStateMaximized", WindowState.MAXIMIZED);
+ ctx.put("rco", requestContext.getObjects());
StringBuffer appRoot = new StringBuffer();
if (!requestContext.getPortalURL().isRelativeOnly())
{
Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/PortalReservedParameters.java Thu May 24 13:27:17 2007
@@ -39,6 +39,7 @@
public static final String PAGE_EDIT_ACCESS_ATTRIBUTE = "org.apache.jetspeed.decoration.PageEditAccess";
public static final String SESSION_KEY_SUBJECT = "org.apache.jetspeed.security.subject";
public static final String REQUEST_CONTEXT_ATTRIBUTE = "org.apache.jetspeed.request.RequestContext";
+ public static final String REQUEST_CONTEXT_OBJECTS = "org.apache.jetspeed.request.RequestContextObjects";
public static final String FRAGMENT_ATTRIBUTE = "org.apache.jetspeed.Fragment";
public static final String MAXIMIZED_FRAGMENT_ATTRIBUTE = "org.apache.jetspeed.maximized.Fragment";
public static final String MAXIMIZED_LAYOUT_ATTRIBUTE = "org.apache.jetspeed.maximized.Layout";
Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java Thu May 24 13:27:17 2007
@@ -65,6 +65,7 @@
private HttpServletResponse response;
private Object session;
private Pipeline pipeline;
+ private Map objects;
/* (non-Javadoc)
* @see org.apache.jetspeed.request.RequestContext#getUserInfoMap(org.apache.pluto.om.common.ObjectID)
@@ -555,5 +556,15 @@
public ContentPage locatePage(Profiler profiler, String nonProfiledPath)
{
return null;
+ }
+
+ public Map getObjects()
+ {
+ return objects;
+ }
+
+ public void setObjects(Map objects)
+ {
+ this.objects = objects;
}
}
Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/request/RequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/request/RequestContext.java?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/request/RequestContext.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/request/RequestContext.java Thu May 24 13:27:17 2007
@@ -439,5 +439,13 @@
* @return A Content Page located by the profiler, or null if not found
*/
ContentPage locatePage(Profiler profiler, String nonProfiledPath);
+
+ /**
+ * Return a map of Jetspeed Request Context objects configured via Spring Map
+ *
+ * @return a Map of request context objects
+ * @since 2.1.1
+ */
+ Map getObjects();
}
Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-spring.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-spring.xml?view=diff&rev=541420&r1=541419&r2=541420
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-spring.xml (original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-spring.xml Thu May 24 13:27:17 2007
@@ -94,11 +94,14 @@
<!-- Request Context -->
<bean id="org.apache.jetspeed.request.RequestContextComponent" class="org.apache.jetspeed.request.JetspeedRequestContextComponent">
- <constructor-arg>
+ <constructor-arg index='0'>
<value>org.apache.jetspeed.request.JetspeedRequestContext</value>
</constructor-arg>
- <constructor-arg>
+ <constructor-arg index='1'>
<ref bean="org.apache.jetspeed.userinfo.UserInfoManager" />
+ </constructor-arg>
+ <constructor-arg index='2'>
+ <ref bean="RequestContextObjects" />
</constructor-arg>
</bean>
Added: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/request-context-objects.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/request-context-objects.xml?view=auto&rev=541420
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/request-context-objects.xml (added)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/request-context-objects.xml Thu May 24 13:27:17 2007
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<beans>
+ <!-- Request Context Objects will be populated into the Jetspeed Request Context
+ and are accessible in the vm context of templates in the "rco" variable, example:
+ $rco.get("myObject")
+ -->
+ <bean id="RequestContextObjects" class="java.util.HashMap">
+ <constructor-arg index="0">
+ <map>
+ <!--
+ <entry key="myObject">
+ <ref bean="org.me.MyObject" />
+ </entry>
+ -->
+ </map>
+ </constructor-arg>
+ </bean>
+</beans>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org