[CONF] Confluence Changes in the last 24 hours
- This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache Geronimo Development (GMOxDEV) http://cwiki.apache.org/confluence/display/GMOxDEV | |-Pages Added or Edited in This Space |-- Building Apache Geronimo was last edited by jdillon (07:23 PM). | http://cwiki.apache.org/confluence/display/GMOxDEV/Building+Apache+Geronimo OpenJPA (openjpa) http://cwiki.apache.org/confluence/display/openjpa | |-Pages Added or Edited in This Space |-- APIDiscussionFollowUp was created by pcl (09:15 AM). | http://cwiki.apache.org/confluence/display/openjpa/APIDiscussionFollowUp |-- OpenJPA Up Close and Personal was last edited by pcl (09:32 AM). | http://cwiki.apache.org/confluence/display/openjpa/OpenJPA+Up+Close+and+Personal Apache Camel (CAMEL) http://cwiki.apache.org/confluence/display/CAMEL | |-Pages Added or Edited in This Space |-- Xml Reference was last edited by jstrachan (09:19 AM). | http://cwiki.apache.org/confluence/display/CAMEL/Xml+Reference Apache CXF 2.0 Documentation (CXF20DOC) http://cwiki.apache.org/confluence/display/CXF20DOC | |-Pages Added or Edited in This Space |-- WSDL to Java was last edited by mmao (11:27 PM). | http://cwiki.apache.org/confluence/display/CXF20DOC/WSDL+to+Java |-- Server HTTP Transport was last edited by njiang (06:59 PM). | http://cwiki.apache.org/confluence/display/CXF20DOC/Server+HTTP+Transport |-- Client HTTP Transport was last edited by njiang (06:50 PM). | http://cwiki.apache.org/confluence/display/CXF20DOC/Client+HTTP+Transport |-- WS-Security was last edited by andreasmyth (03:45 AM). | http://cwiki.apache.org/confluence/display/CXF20DOC/WS-Security |-- JAX-WS Configuration was last edited by andreasmyth (03:19 AM). | http://cwiki.apache.org/confluence/display/CXF20DOC/JAX-WS+Configuration Apache Struts 2 Plugin Registry (S2PLUGINS) http://cwiki.apache.org/confluence/display/S2PLUGINS | |-Pages Added or Edited in This Space |-- JSCalendar 0.1 Plugin Released was created by [EMAIL PROTECTED] (06:13 AM). | http://cwiki.apache.org/confluence/display/S2PLUGINS/2007/08/08/JSCalendar+0.1+Plugin+Released Apache Geronimo Project Management (GMOxPMGT) http://cwiki.apache.org/confluence/display/GMOxPMGT | |-Pages Added or Edited in This Space |-- Release Branching Process was last edited by pkashyap (09:03 AM). | http://cwiki.apache.org/confluence/display/GMOxPMGT/Release+Branching+Process Apache Struts 2 Documentation (WW) http://cwiki.apache.org/confluence/display/WW | |-Pages Added or Edited in This Space |-- Creating and Signing a Distribution was last edited by husted (06:14 PM). | http://cwiki.apache.org/confluence/display/WW/Creating+and+Signing+a+Distribution Apache Wicket (WICKET) http://cwiki.apache.org/confluence/display/WICKET | |-Pages Added or Edited in This Space |-- Wicket SVN was last edited by syl (01:05 AM). | http://cwiki.apache.org/confluence/display/WICKET/Wicket+SVN Apache Felix (FELIX) http://cwiki.apache.org/confluence/display/FELIX | |-Pages Added or Edited in This Space |-- iPOJO Tutorial (0.7.3) was last edited by clement.escoffier (11:22 PM). | http://cwiki.apache.org/confluence/display/FELIX/iPOJO+Tutorial+%280.7.3%29 Apache FTPServer Project (FTPSERVER) http://cwiki.apache.org/confluence/display/FTPSERVER | |-Pages Added or Edited in This Space |-- Building was last edited by ngn (11:50 PM). | http://cwiki.apache.org/confluence/display/FTPSERVER/Building |-- Downloads was last edited by ngn (11:48 PM). | http://cwiki.apache.org/confluence/display/FTPSERVER/Downloads OpenEJB (OPENEJB) http://cwiki.apache.org/confluence/display/OPENEJB | |-Pages Added or Edited in This Space |-- The Team was created by karan_malhi (08:18 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/The+Team |-- IRC was created by karan_malhi (08:18 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/IRC |-- Issue Tracking was created by karan_malhi (08:18 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/Issue+Tracking |-- Repository was created by karan_malhi (08:17 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/Repository |-- How to contribute was created by karan_malhi (08:17 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/How+to+contribute |-- Netbeans (D) was created by karan_malhi (08:16 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/Netbeans+%28D%29 |-- IntelliJ IDEA (D) was created by karan_malhi (08:16 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/IntelliJ++IDEA+%28D%29 |-- Eclipse (D) was created by karan_malhi (08:15 PM). | http://cwiki.apache.org/confluence/display/OPENEJB/Eclipse+%28D%29 |-- Developers (IDE) was created by karan_malhi (08:15 PM). | http:
svn commit: r564120 - in /struts/struts2/trunk/plugins/portlet/src: main/java/org/apache/struts2/portlet/ main/java/org/apache/struts2/portlet/dispatcher/ main/java/org/apache/struts2/portlet/result/
Author: nilsga Date: Thu Aug 9 00:14:51 2007 New Revision: 564120 URL: http://svn.apache.org/viewvc?view=rev&rev=564120 Log: WW-2052 Put location from renderDirect action in session instead of render parameter Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/result/PortletResultTest.java Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java?view=diff&rev=564120&r1=564119&r2=564120 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java Thu Aug 9 00:14:51 2007 @@ -103,4 +103,14 @@ * [EMAIL PROTECTED] org.apache.struts2.portlet.context.PortletActionContext}. */ String DEFAULT_ACTION_FOR_MODE = "struts.portlet.defaultActionForMode"; + +/** + * Key for request attribute indicating if the action has been reset. + */ +String ACTION_RESET = "struts.portlet.actionReset"; + +/** + * Key for session attribute indicating the location of the render direct action. + */ +String RENDER_DIRECT_LOCATION = "struts.portlet.renderDirectLocation"; } Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java?view=diff&rev=564120&r1=564119&r2=564120 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java Thu Aug 9 00:14:51 2007 @@ -23,6 +23,10 @@ import com.opensymphony.xwork2.Action; import java.io.Serializable; +import java.util.Map; + +import org.apache.struts2.interceptor.SessionAware; +import org.apache.struts2.portlet.PortletActionConstants; /** * When a portlet is targetted for an event, the portlet will receive two @@ -38,7 +42,7 @@ * specifying this action and the location of the view, which then will be executed in the * following render request. */ -public class DirectRenderFromEventAction implements Action, Serializable { +public class DirectRenderFromEventAction implements SessionAware, PortletActionConstants, Action, Serializable { private static final long serialVersionUID = -1814807772308405785L; @@ -54,15 +58,6 @@ } /** - * Set the location of the view. - * - * @param location The location to set. - */ -public void setLocation(String location) { -this.location = location; -} - -/** * Always return success. * * @return SUCCESS @@ -70,4 +65,8 @@ public String execute() throws Exception { return SUCCESS; } + + public void setSession(Map session) { + location = (String)session.get(RENDER_DIRECT_LOCATION); + } } Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java?view=diff&rev=564120&r1=564119&r2=564120 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java Thu Aug 9 00:14:51 2007 @@ -21,6 +21,7 @@ package org.apache.struts2.portlet.result; import java.io.IOException; +import java.util.Map; import java.util.StringTokenizer; import javax.portlet.ActionResponse; @@ -48,7 +49,7 @@ * Result type that includes a JSP to render. * */ -public class PortletResult extends StrutsResultSupport { +public class PortletResult extends StrutsResultSupport implements PortletActionConstants { private static final long serialVersionUID = 434251393926178567L; @@ -131,11 +132,12 @@ // View is rendered
svn commit: r564246 - /struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/
Author: nilsga Date: Thu Aug 9 08:36:52 2007 New Revision: 564246 URL: http://svn.apache.org/viewvc?view=rev&rev=564246 Log: WW-1989,WW-2053 Provide "mock" implentation of servlet classes wrapping the portlet classes. Eases reuse of components/interceptors that has references to servlet api objects. Added: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletConfig.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletContext.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletInputStream.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletOutputStream.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequest.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequestDispatcher.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletServletResponse.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/package.html Added: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java?view=auto&rev=564246 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java (added) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java Thu Aug 9 08:36:52 2007 @@ -0,0 +1,214 @@ +/* + * $Id: $ + * + * 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. + */ +package org.apache.struts2.portlet.servlet; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +import javax.portlet.PortletSession; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionContext; + +/** + * Wrapper object exposing a [EMAIL PROTECTED] PortletSession} as a [EMAIL PROTECTED] HttpSession} instance. + * Clients accessing this session object will in fact operate on the + * [EMAIL PROTECTED] PortletSession} object wrapped by this session object. + */ +public class PortletHttpSession implements HttpSession { + + private PortletSession portletSession; + + public PortletHttpSession(PortletSession portletSession) { + this.portletSession = portletSession; + } + + /* +* (non-Javadoc) +* +* @see javax.servlet.http.HttpSession#getAttribute(java.lang.String) +*/ + public Object getAttribute(String name) { + return portletSession.getAttribute(name); + } + + /* +* (non-Javadoc) +* +* @see javax.servlet.http.HttpSession#getAttributeNames() +*/ + public Enumeration getAttributeNames() { + return portletSession.getAttributeNames(); + } + + /* +* (non-Javadoc) +* +* @see javax.servlet.http.HttpSession#getCreationTime() +*/ + public long getCreationTime() { + return portletSession.getCreationTime(); + } + + /* +* (non-Javadoc) +* +* @see javax.servlet.http.HttpSession#getId() +*/ + public String getId() { + return portletSession.getId(); + } + + /* +* (non-Javadoc) +* +* @see javax.servlet.http.HttpSession#getLastAccessedTime() +*/ + public long getLastAccessedTime() { + return portletSession.getLastAccessedTime(); + } + + /* +* (non-Javadoc) +
svn commit: r564279 - /struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java
Author: nilsga Date: Thu Aug 9 10:00:49 2007 New Revision: 564279 URL: http://svn.apache.org/viewvc?view=rev&rev=564279 Log: Added method to get the portlet context Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java?view=diff&rev=564279&r1=564278&r2=564279 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java Thu Aug 9 10:00:49 2007 @@ -25,11 +25,13 @@ import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; import javax.portlet.PortletRequest; import javax.portlet.PortletResponse; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; +import org.apache.struts2.StrutsStatics; import org.apache.struts2.dispatcher.mapper.ActionMapping; import org.apache.struts2.portlet.PortletActionConstants; @@ -192,6 +194,14 @@ */ public static Map getModeNamespaceMap() { return (Map)getContext().get(MODE_NAMESPACE_MAP); +} + +/** + * Get the portlet context. + * @return The portlet context. + */ +public static PortletContext getPortletContext() { + return (PortletContext)getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT); } }
svn commit: r564280 - /struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
Author: nilsga Date: Thu Aug 9 10:06:07 2007 New Revision: 564280 URL: http://svn.apache.org/viewvc?view=rev&rev=564280 Log: WW-1989,WW-2053,WW-2096 Push action on stack instead of action proxy. Also use the new wrapper servlet objects to support components/interceptors that rely on the servlet classes. Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java?view=diff&rev=564280&r1=564279&r2=564280 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java Thu Aug 9 10:06:07 2007 @@ -21,6 +21,7 @@ package org.apache.struts2.portlet.dispatcher; import java.io.IOException; +import java.util.Collection; import java.util.Enumeration; import java.util.HashMap; import java.util.Locale; @@ -37,6 +38,9 @@ import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.portlet.WindowState; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -55,18 +59,21 @@ import org.apache.struts2.portlet.PortletSessionMap; import org.apache.struts2.portlet.context.PortletActionContext; import org.apache.struts2.portlet.context.ServletContextHolderListener; -import org.apache.struts2.portlet.util.HttpServletRequestMock; +import org.apache.struts2.portlet.servlet.PortletServletContext; +import org.apache.struts2.portlet.servlet.PortletServletRequest; +import org.apache.struts2.portlet.servlet.PortletServletResponse; import org.apache.struts2.util.AttributeMap; -import com.opensymphony.xwork2.util.FileManager; -import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ActionProxyFactory; +import com.opensymphony.xwork2.ValidationAware; import com.opensymphony.xwork2.config.ConfigurationException; import com.opensymphony.xwork2.inject.Container; +import com.opensymphony.xwork2.util.FileManager; import com.opensymphony.xwork2.util.LocalizedTextUtil; import com.opensymphony.xwork2.util.TextUtils; +import com.opensymphony.xwork2.util.ValueStack; /** * @@ -339,11 +346,22 @@ */ public HashMap createContextMap(Map requestMap, Map parameterMap, Map sessionMap, Map applicationMap, PortletRequest request, -PortletResponse response, PortletConfig portletConfig, Integer phase) { +PortletResponse response, PortletConfig portletConfig, Integer phase) throws IOException { // TODO Must put http request/response objects into map for use with + HttpServletResponse dummyResponse = new PortletServletResponse(response); + HttpServletRequest dummyRequest = new PortletServletRequest(request, getPortletContext()); + ServletContext dummyServletContext = new PortletServletContext(getPortletContext()); + if(EVENT_PHASE.equals(phase)) { + dummyRequest = dispatcherUtils.wrapRequest(dummyRequest, dummyServletContext); + } // ServletActionContext HashMap extraContext = new HashMap(); +// The dummy servlet objects. Eases reuse of existing interceptors that uses the servlet objects. +extraContext.put(StrutsStatics.HTTP_REQUEST, dummyRequest); +extraContext.put(StrutsStatics.HTTP_RESPONSE, dummyResponse); +extraContext.put(StrutsStatics.SERVLET_CONTEXT, dummyServletContext); +// End dummy servlet objects extraContext.put(ActionContext.PARAMETERS, parameterMap); extraContext.put(ActionContext.SESSION, sessionMap); extraContext.put(ActionContext.APPLICATION, applicationMap); @@ -400,13 +418,13 @@ Map sessionMap, Map applicationMap, String portletNamespace, Integer phase) throws PortletException { LOG.debug("serviceAction"); -HashMap extraContext = createContextMap(requestMap, parameterMap, -sessionMap, applicationMap, request, response, -getPortletConfig(), phase); String actionName = mapping.getName(); String namespace = mapping.getNamespace(); Dispatcher.setInstance(dispatcherUtils); try { +HashMap extraContext = createContextMap(requestMap, parameterMap, +sessionMap, applicationMap, request, response, +
svn commit: r564282 - in /struts/struts2/trunk/plugins/portlet/src: main/java/org/apache/struts2/portlet/interceptor/ main/resources/ test/java/org/apache/struts2/portlet/interceptor/
Author: nilsga Date: Thu Aug 9 10:15:28 2007 New Revision: 564282 URL: http://svn.apache.org/viewvc?view=rev&rev=564282 Log: WW-2097 New "aware" interfaces and interceptor. The PortletAwareInterceptor replaces the PortletPreferencesInterceptor. Added: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletContextAware.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletRequestAware.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletResponseAware.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java Modified: struts/struts2/trunk/plugins/portlet/src/main/resources/struts-plugin.xml Added: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java?view=auto&rev=564282 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java (added) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java Thu Aug 9 10:15:28 2007 @@ -0,0 +1,84 @@ +/* + * $Id: $ + * + * 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. + */ +package org.apache.struts2.portlet.interceptor; + +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.struts2.StrutsStatics; +import org.apache.struts2.interceptor.PrincipalAware; +import org.apache.struts2.portlet.PortletActionConstants; + +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.ActionInvocation; +import com.opensymphony.xwork2.interceptor.AbstractInterceptor; + +public class PortletAwareInterceptor extends AbstractInterceptor implements PortletActionConstants, StrutsStatics { + + private static final long serialVersionUID = 2476509721059587700L; + + private static final Log LOG = LogFactory.getLog(PortletAwareInterceptor.class); + + /** + * Sets action properties based on the interfaces an action implements. Things like application properties, + * parameters, session attributes, etc are set based on the implementing interface. + * + * @param invocation an encapsulation of the action execution state. + * @throws Exception if an error occurs when setting action properties. + */ +public String intercept(ActionInvocation invocation) throws Exception { +final Object action = invocation.getAction(); +final ActionContext context = invocation.getInvocationContext(); + +if (action instanceof PortletRequestAware) { +PortletRequest request = (PortletRequest) context.get(REQUEST); +((PortletRequestAware) action).setPortletRequest(request); +} + +if (action instanceof PortletResponseAware) { +PortletResponse response = (PortletResponse) context.get(RESPONSE); +((PortletResponseAware) action).setPortletResponse(response); +} +if (action instanceof PrincipalAware) { +PortletRequest request = (PortletRequest) context.get(REQUEST); +((PrincipalAware) action).setPrincipalProxy(new PortletPrincipalProxy(request)); +} +if (action instanceof PortletContextAware) { +PortletContext portletContext = (PortletContext) context.get(STRUTS_PORTLET_CONTEXT); +((PortletContextAware) action).setPortletContext(portletContext); +} +if (action instanceof PortletPrefere
svn commit: r564283 - /struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesInterceptor.java
Author: nilsga Date: Thu Aug 9 10:16:06 2007 New Revision: 564283 URL: http://svn.apache.org/viewvc?view=rev&rev=564283 Log: WW-2097 The PortletAwareInterceptor replaces the PortletPreferencesInterceptor. Removed: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesInterceptor.java
svn commit: r564287 - /struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
Author: nilsga Date: Thu Aug 9 10:29:01 2007 New Revision: 564287 URL: http://svn.apache.org/viewvc?view=rev&rev=564287 Log: WW-2096 Missing test-change that subclipse didn't pick up... Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java?view=diff&rev=564287&r1=564286&r2=564287 == --- struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java (original) +++ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java Thu Aug 9 10:29:01 2007 @@ -171,7 +171,7 @@ initRequest(requestParams, new HashMap(), new HashMap(), new HashMap(), PortletMode.VIEW, WindowState.NORMAL, true, null); setupActionFactory("/view", "testAction", "success", ValueStackFactory.getFactory().createValueStack()); Constraint[] paramConstraints = new Constraint[] { -eq(PortletActionConstants.EVENT_ACTION), same(mockActionProxy.proxy()) }; +eq(PortletActionConstants.EVENT_ACTION), same(mockAction.proxy()) }; mockSession.expects(once()).method("setAttribute").with( paramConstraints);
svn commit: r564485 - in /struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet: PortletRequestMapTest.java PortletSessionMapTest.java
Author: nilsga Date: Thu Aug 9 23:37:07 2007 New Revision: 564485 URL: http://svn.apache.org/viewvc?view=rev&rev=564485 Log: WW-1836 Order of the entries in the entry set is not guaranteed. Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java?view=diff&rev=564485&r1=564484&r2=564485 == --- struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java (original) +++ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java Thu Aug 9 23:37:07 2007 @@ -96,12 +96,22 @@ assertEquals(2, entries.size()); Iterator it = entries.iterator(); Map.Entry entry = (Map.Entry)it.next(); -assertEquals("testAttribute1", entry.getKey()); -assertEquals("testValue1", entry.getValue()); +checkEntry(entry); entry = (Map.Entry)it.next(); -assertEquals("testAttribute2", entry.getKey()); -assertEquals("testValue2", entry.getValue()); +checkEntry(entry); } + + private void checkEntry(Map.Entry entry) { + if(entry.getKey().equals("testAttribute1")) { + assertEquals("testValue1", entry.getValue()); +} +else if(entry.getKey().equals("testAttribute2")) { + assertEquals("testValue2", entry.getValue()); +} +else { + fail("Unexpected entry in etry set: " + entry); +} + } } Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java?view=diff&rev=564485&r1=564484&r2=564485 == --- struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java (original) +++ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java Thu Aug 9 23:37:07 2007 @@ -99,12 +99,23 @@ assertEquals(2, entries.size()); Iterator it = entries.iterator(); Map.Entry entry = (Map.Entry)it.next(); -assertEquals("testAttribute1", entry.getKey()); -assertEquals("testValue1", entry.getValue()); +checkEntry(entry); entry = (Map.Entry)it.next(); -assertEquals("testAttribute2", entry.getKey()); -assertEquals("testValue2", entry.getValue()); +checkEntry(entry); } + + private void checkEntry(Map.Entry entry) { + if(entry.getKey().equals("testAttribute1")) { + assertEquals("testValue1", entry.getValue()); +} +else if(entry.getKey().equals("testAttribute2")) { + assertEquals("testValue2", entry.getValue()); +} +else { + fail("Unexpected entry in etry set: " + entry); +} + } + }
svn commit: r564476 - in /struts/struts2/trunk/plugins/portlet: ./ src/main/java/org/apache/struts2/portlet/ src/test/java/org/apache/struts2/portlet/
Author: nilsga Date: Thu Aug 9 23:07:48 2007 New Revision: 564476 URL: http://svn.apache.org/viewvc?view=rev&rev=564476 Log: WW-1836 Refactored unit tests for PortletSessionMap and PortletRequestMap. Also removed some unecessary logging. Added: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletRequest.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletSession.java Modified: struts/struts2/trunk/plugins/portlet/pom.xml struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletRequestMapTest.java struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/PortletSessionMapTest.java Modified: struts/struts2/trunk/plugins/portlet/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/pom.xml?view=diff&rev=564476&r1=564475&r2=564476 == --- struts/struts2/trunk/plugins/portlet/pom.xml (original) +++ struts/struts2/trunk/plugins/portlet/pom.xml Thu Aug 9 23:07:48 2007 @@ -112,6 +112,13 @@ test + +log4j +log4j +1.2.9 +test + + org.springframework Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java?view=diff&rev=564476&r1=564475&r2=564476 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletRequestMap.java Thu Aug 9 23:07:48 2007 @@ -49,15 +49,6 @@ */ public PortletRequestMap(PortletRequest request) { this.request = request; -if(LOG.isDebugEnabled()) { -LOG.debug("Dumping request parameters: "); -Iterator params = request.getParameterMap().keySet().iterator(); -while(params.hasNext()) { -String key = (String)params.next(); -String val = request.getParameter(key); -LOG.debug(key + " = " + val); -} -} } /** Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java?view=diff&rev=564476&r1=564475&r2=564476 == --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/PortletSessionMap.java Thu Aug 9 23:07:48 2007 @@ -52,15 +52,6 @@ */ public PortletSessionMap(PortletRequest request) { this.session = request.getPortletSession(); -if(LOG.isDebugEnabled()) { -LOG.debug("Dumping session info: "); -Enumeration enumeration = session.getAttributeNames(); -while(enumeration.hasMoreElements()) { -String key = (String)enumeration.nextElement(); -Object val = session.getAttribute(key); -LOG.debug(key + " = " + val); -} -} } /** Added: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletRequest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletRequest.java?view=auto&rev=564476 == --- struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletRequest.java (added) +++ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/MockPortletRequest.java Thu Aug 9 23:07:48 2007 @@ -0,0 +1,165 @@ +package org.apache.struts2.portlet; + +import java.security.Principal; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import javax.portlet.PortalContext; +import javax.portlet.PortletMode; +import javax.portlet.PortletPreferences; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.portlet.WindowState; + +public class MockPortletRequest implemen