Author: mrdon Date: Sat Jun 17 13:12:40 2006 New Revision: 415054 URL: http://svn.apache.org/viewvc?rev=415054&view=rev Log: Fixing stack in portlet mode so action always on top, removing IoC intercepter stack Portlet patch provided by Nils-Helge Garli
WW-1313 WW-1286 WW-1342 Modified: struts/action2/trunk/core/src/main/java/org/apache/struts/action2/portlet/dispatcher/Jsr168Dispatcher.java struts/action2/trunk/core/src/main/resources/struts-default.xml Modified: struts/action2/trunk/core/src/main/java/org/apache/struts/action2/portlet/dispatcher/Jsr168Dispatcher.java URL: http://svn.apache.org/viewvc/struts/action2/trunk/core/src/main/java/org/apache/struts/action2/portlet/dispatcher/Jsr168Dispatcher.java?rev=415054&r1=415053&r2=415054&view=diff ============================================================================== --- struts/action2/trunk/core/src/main/java/org/apache/struts/action2/portlet/dispatcher/Jsr168Dispatcher.java (original) +++ struts/action2/trunk/core/src/main/java/org/apache/struts/action2/portlet/dispatcher/Jsr168Dispatcher.java Sat Jun 17 13:12:40 2006 @@ -36,11 +36,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - -import com.opensymphony.util.ClassLoaderUtil; -import com.opensymphony.util.FileManager; -import org.apache.struts.action2.StrutsStatics; import org.apache.struts.action2.StrutsConstants; +import org.apache.struts.action2.StrutsStatics; import org.apache.struts.action2.config.Configuration; import org.apache.struts.action2.dispatcher.ApplicationMap; import org.apache.struts.action2.dispatcher.RequestMap; @@ -54,12 +51,16 @@ import org.apache.struts.action2.portlet.context.ServletContextHolderListener; import org.apache.struts.action2.util.AttributeMap; import org.apache.struts.action2.util.ObjectFactoryInitializable; + +import com.opensymphony.util.ClassLoaderUtil; +import com.opensymphony.util.FileManager; import com.opensymphony.xwork.ActionContext; import com.opensymphony.xwork.ActionProxy; import com.opensymphony.xwork.ActionProxyFactory; import com.opensymphony.xwork.ObjectFactory; import com.opensymphony.xwork.config.ConfigurationException; import com.opensymphony.xwork.util.LocalizedTextUtil; +import com.opensymphony.xwork.util.OgnlValueStack; /** * <!-- START SNIPPET: javadoc --> @@ -420,8 +421,10 @@ ActionProxy action = (ActionProxy) request.getPortletSession() .getAttribute(EVENT_ACTION); if (action != null) { - proxy.getInvocation().getStack().push( - action.getInvocation().getAction()); + OgnlValueStack stack = proxy.getInvocation().getStack(); + Object top = stack.pop(); + stack.push(action.getInvocation().getAction()); + stack.push(top); } } proxy.execute(); Modified: struts/action2/trunk/core/src/main/resources/struts-default.xml URL: http://svn.apache.org/viewvc/struts/action2/trunk/core/src/main/resources/struts-default.xml?rev=415054&r1=415053&r2=415054&view=diff ============================================================================== --- struts/action2/trunk/core/src/main/resources/struts-default.xml (original) +++ struts/action2/trunk/core/src/main/resources/struts-default.xml Sat Jun 17 13:12:40 2006 @@ -67,14 +67,6 @@ <interceptor-ref name="basicStack"/> </interceptor-stack> - <!-- Sample Struts Inversion of Control stack - Note: Struts's IoC is deprecated - please - look at alternatives such as Spring --> - <interceptor-stack name="componentStack"> - <interceptor-ref name="component"/> - <interceptor-ref name="basicStack"/> - </interceptor-stack> - <!-- Sample model-driven stack --> <interceptor-stack name="modelDrivenStack"> <interceptor-ref name="model-driven"/>