You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2016/07/15 13:19:13 UTC

[46/50] [abbrv] struts git commit: Merge remote-tracking branch 'upstream/master' into http-parameters

Merge remote-tracking branch 'upstream/master' into http-parameters

Conflicts:
	core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
	core/src/test/java/com/opensymphony/xwork2/interceptor/I18nInterceptorTest.java
	core/src/test/java/com/opensymphony/xwork2/interceptor/ParameterRemoverInterceptorTest.java
	core/src/test/java/org/apache/struts2/interceptor/MessageStoreInterceptorTest.java
	core/src/test/java/org/apache/struts2/interceptor/ServletConfigInterceptorTest.java
	core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bb21dbe4
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bb21dbe4
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bb21dbe4

Branch: refs/heads/master
Commit: bb21dbe4929cf88a4c2565fdbd359d0e0b067e1f
Parents: abd8c6b fc2179c
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Sat Mar 12 16:03:42 2016 +0100
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Sat Mar 12 16:03:42 2016 +0100

----------------------------------------------------------------------
 .gitignore                                      |   1 -
 apps/portlet/pom.xml                            |   2 +-
 .../struts2/portlet/test/BasePortletTest.java   |   6 +-
 .../portlet/test/Struts2PortletTest.java        |   2 +
 .../org/demo/rest/example/IndexController.java  |  16 ++
 apps/rest-showcase/src/main/webapp/index.jsp    |   2 -
 .../showcase/tiles/TilesAnnotationsAction.java  |  40 +++
 apps/showcase/src/main/webapp/WEB-INF/tiles.xml |  10 +-
 .../src/main/webapp/WEB-INF/tiles/body.jsp      |   3 +
 .../webapp/WEB-INF/tiles/layout-annotations.jsp |  14 ++
 .../WEB-INF/validation/ajaxFormSubmit.jsp       |   7 +-
 assembly/pom.xml                                |   5 -
 assembly/src/main/assembly/all.xml              |   4 -
 assembly/src/main/assembly/docs.xml             |   4 -
 bom/pom.xml                                     |   5 -
 .../xwork2/DefaultActionInvocation.java         |   7 +-
 .../com/opensymphony/xwork2/XWorkConstants.java |   1 +
 ...ervletContextAwareConfigurationProvider.java |  32 +++
 .../xwork2/config/entities/ActionConfig.java    |   1 +
 .../xwork2/config/entities/AllowedMethods.java  |  30 +++
 .../xwork2/config/entities/PackageConfig.java   |   2 +-
 .../xwork2/config/impl/ActionConfigMatcher.java |   1 +
 .../providers/XmlConfigurationProvider.java     |  32 +--
 .../interceptor/DefaultWorkflowInterceptor.java |   4 +-
 .../xwork2/interceptor/I18nInterceptor.java     |   5 +
 .../interceptor/ParametersInterceptor.java      |  29 +--
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  |  15 +-
 .../xwork2/ognl/OgnlValueStack.java             |   1 +
 .../xwork2/ognl/SecurityMemberAccess.java       |  16 +-
 .../xwork2/util/LocalizedTextUtil.java          |  31 ++-
 .../validator/DelegatingValidatorContext.java   |   7 +-
 .../org/apache/struts2/StrutsConstants.java     |   1 +
 .../apache/struts2/components/Component.java    |   6 +-
 .../org/apache/struts2/components/UIBean.java   |   4 +-
 .../template/VelocityTemplateEngine.java        |   2 +-
 .../config/DefaultBeanSelectionProvider.java    |   1 +
 .../apache/struts2/dispatcher/Dispatcher.java   |   3 +
 .../struts2/dispatcher/PrepareOperations.java   |   2 +
 .../multipart/JakartaMultiPartRequest.java      |  12 +-
 .../struts2/interceptor/CookieInterceptor.java  |  12 +-
 .../interceptor/MessageStoreInterceptor.java    |  58 +----
 .../MessageStorePreResultListener.java          |  95 +++++++
 .../org/apache/struts2/util/ComponentUtils.java |   9 +-
 .../struts2/views/jsp/ui/AbstractUITag.java     |   2 +-
 core/src/main/resources/struts-default.xml      |  20 +-
 .../resources/template/simple/checkboxlist.ftl  |   7 +-
 .../main/resources/template/simple/radiomap.ftl |   5 +-
 .../xwork2/DefaultActionInvocationTest.java     |   3 +
 .../config/entities/ActionConfigTest.java       |   4 +-
 .../config/entities/AllowedMethodsTest.java     |  15 ++
 .../config/impl/ActionConfigMatcherTest.java    |  16 +-
 ...ConfigurationProviderAllowedMethodsTest.java |  38 ++-
 .../XmlConfigurationProviderResultsTest.java    |  54 ++++
 .../xwork2/config/providers/XmlHelperTest.java  | 234 ++++++-----------
 .../xwork2/interceptor/I18nInterceptorTest.java |  16 +-
 .../ParameterRemoverInterceptorTest.java        |  23 +-
 .../PrefixMethodInvocationUtilTest.java         | 135 ++++------
 .../interceptor/PrepareInterceptorTest.java     |  83 +++---
 .../xwork2/ognl/SecurityMemberAccessTest.java   |  20 +-
 .../validator/VisitorFieldValidatorTest.java    |   2 +-
 .../org/apache/struts2/RequestUtilsTest.java    |  66 +++--
 .../interceptor/CookieInterceptorTest.java      | 124 ++++-----
 .../interceptor/I18nInterceptorTest.java        |  16 +-
 .../MessageStoreInterceptorTest.java            | 183 +++-----------
 .../MessageStorePreResultListenerTest.java      | 252 +++++++++++++++++++
 .../ServletConfigInterceptorTest.java           |  70 +++---
 .../struts2/result/VelocityResultTest.java      |   4 +-
 .../apache/struts2/util/ComponentUtilsTest.java |  44 ++++
 .../apache/struts2/views/jsp/ActionTagTest.java |   3 +-
 .../struts2/views/jsp/IncludeTagTest.java       |  50 ++--
 .../struts2/views/util/ResourceUtilTest.java    |  24 +-
 .../com/opensymphony/xwork2/TestBean.properties |   2 +-
 .../providers/xwork-test-allowed-methods.xml    |   6 +-
 .../providers/xwork-test-result-names.xml       |  48 ++++
 plugins/convention/pom.xml                      |   5 -
 .../convention/DefaultResultMapBuilder.java     |  20 +-
 .../PackageBasedActionConfigBuilder.java        |   6 +-
 .../convention/annotation/AllowedMethods.java   |   2 +-
 .../struts2/convention/annotation/Result.java   |   2 +-
 .../ConventionUnknownHandlerTest.java           |   6 +-
 .../convention/DefaultResultMapBuilderTest.java |  58 +++++
 .../PackageBasedActionConfigBuilderTest.java    |   4 +-
 .../actions/allowedmethods/package-info.java    |   2 +-
 .../result/ActionLevelResultsNamesAction.java   |  47 ++++
 plugins/javatemplates/pom.xml                   |   6 +-
 .../views/java/simple/TextFieldHandler.java     |   4 +-
 .../struts2/views/java/simple/AbstractTest.java |  36 +--
 .../rest/DefaultContentTypeHandlerManager.java  |  69 ++++-
 .../apache/struts2/rest/RestActionMapper.java   |   7 +-
 .../DefaultContentTypeHandlerManagerTest.java   |  42 ++++
 .../struts2/rest/RestActionMapperTest.java      |  41 ++-
 .../sitemesh/VelocityDecoratorServlet.java      |  53 ++--
 .../tiles/StrutsTilesAnnotationProcessor.java   | 177 +++++++++++++
 .../tiles/annotation/TilesAddAttribute.java     |  30 +++
 .../tiles/annotation/TilesAddListAttribute.java |  28 +++
 .../tiles/annotation/TilesDefinition.java       |  66 +++++
 .../tiles/annotation/TilesDefinitions.java      |  36 +++
 .../tiles/annotation/TilesPutAttribute.java     |  32 +++
 .../tiles/annotation/TilesPutListAttribute.java |  32 +++
 .../apache/struts2/views/tiles/TilesResult.java |  69 ++++-
 .../StrutsTilesAnnotationProcessorTest.java     | 147 +++++++++++
 .../TilesTestActionMultipleAnnotations.java     |  12 +
 .../tiles/TilesTestActionSingleAnnotation.java  |  49 ++++
 ...TilesTestActionSingleAnnotationAllEmpty.java |  28 +++
 pom.xml                                         |  23 +-
 .../VisitorValidatorTestAction.properties       |   1 +
 106 files changed, 2308 insertions(+), 941 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
----------------------------------------------------------------------
diff --cc core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
index 3d1e6f2,cf4995e..acc0d7b
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
@@@ -20,9 -20,8 +20,10 @@@ import com.opensymphony.xwork2.ActionIn
  import com.opensymphony.xwork2.util.LocalizedTextUtil;
  import org.apache.logging.log4j.LogManager;
  import org.apache.logging.log4j.Logger;
 +import org.apache.struts2.dispatcher.Parameter;
 +import org.apache.struts2.dispatcher.HttpParameters;
  
+ import java.util.Arrays;
  import java.util.Locale;
  import java.util.Map;
  

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
----------------------------------------------------------------------
diff --cc core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
index 67288ff,f90e8c3..80aa363
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
@@@ -168,10 -169,11 +168,10 @@@ public class ParametersInterceptor exte
              acceptableParameters = new TreeMap<>();
          }
  
 -        for (Map.Entry<String, Object> entry : params.entrySet()) {
 -            String name = entry.getKey();
 -            Object value = entry.getValue();
 +        for (String name : params.getNames()) {
 +            Parameter parameter = params.get(name);
-             if (isAcceptableParameter(name, action) && isAcceptableValue(parameter.getValue())) {
+             if (isAcceptableParameter(name, action)) {
 -                acceptableParameters.put(name, entry.getValue());
 +                acceptableParameters.put(name, parameter);
              }
          }
  

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
index 341615d,4b7220e..f3e8cb5
--- a/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
@@@ -27,9 -27,7 +27,8 @@@ import com.opensymphony.xwork2.intercep
  import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
  import org.apache.logging.log4j.LogManager;
  import org.apache.logging.log4j.Logger;
 +import org.apache.struts2.dispatcher.HttpParameters;
  
- import org.apache.struts2.ServletActionContext;
  import org.apache.struts2.result.ServletRedirectResult;
  
  import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/test/java/com/opensymphony/xwork2/interceptor/I18nInterceptorTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/com/opensymphony/xwork2/interceptor/I18nInterceptorTest.java
index 2a4d98c,17c27aa..f4dfa93
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/I18nInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/I18nInterceptorTest.java
@@@ -83,12 -82,12 +83,12 @@@ public class I18nInterceptorTest extend
      }
  
      public void testCountryOnlyLocale() throws Exception {
-         prepare(I18nInterceptor.DEFAULT_PARAMETER, "DK");
 -        params.put(I18nInterceptor.DEFAULT_PARAMETER, "NL");
++        prepare(I18nInterceptor.DEFAULT_PARAMETER, "NL");
          interceptor.intercept(mai);
  
 -        assertNull(params.get(I18nInterceptor.DEFAULT_PARAMETER)); // should have been removed
 +        assertFalse(mai.getInvocationContext().getParameters().get(I18nInterceptor.DEFAULT_PARAMETER).isDefined()); // should have been removed
  
-         Locale denmark = new Locale("DK");
+         Locale denmark = new Locale("NL");
          assertNotNull(session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE)); // should be stored here
          assertEquals(denmark, session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE)); // should create a locale object
      }
@@@ -105,12 -104,12 +105,12 @@@
      }
  
      public void testWithVariant() throws Exception {
-         prepare(I18nInterceptor.DEFAULT_PARAMETER, "fr_CA_xx");
 -        params.put(I18nInterceptor.DEFAULT_PARAMETER, "ja_JP_JP");
++        prepare(I18nInterceptor.DEFAULT_PARAMETER, "ja_JP_JP");
          interceptor.intercept(mai);
  
 -        assertNull(params.get(I18nInterceptor.DEFAULT_PARAMETER)); // should have been removed
 +        assertFalse(mai.getInvocationContext().getParameters().get(I18nInterceptor.DEFAULT_PARAMETER).isDefined()); // should have been removed
  
-         Locale variant = new Locale("fr", "CA", "xx");
+         Locale variant = new Locale("ja", "JP", "JP");
          Locale locale = (Locale) session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE);
          assertNotNull(locale); // should be stored here
          assertEquals(variant, locale);
@@@ -118,13 -117,13 +118,13 @@@
      }
  
      public void testWithVariantRequestOnly() throws Exception {
-         prepare(I18nInterceptor.DEFAULT_REQUESTONLY_PARAMETER, "fr_CA_xx");
 -        params.put(I18nInterceptor.DEFAULT_REQUESTONLY_PARAMETER, "ja_JP_JP");
++        prepare(I18nInterceptor.DEFAULT_REQUESTONLY_PARAMETER, "ja_JP_JP");
          interceptor.intercept(mai);
  
 -        assertNull(params.get(I18nInterceptor.DEFAULT_PARAMETER)); // should have been removed
 +        assertFalse(mai.getInvocationContext().getParameters().get(I18nInterceptor.DEFAULT_PARAMETER).isDefined()); // should have been removed
          assertNull(session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE));
  
-         Locale variant = new Locale("fr", "CA", "xx");
+         Locale variant = new Locale("ja", "JP", "JP");
          Locale locale = mai.getInvocationContext().getLocale();
          assertNotNull(locale); // should be stored here
          assertEquals(variant, locale);

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/test/java/com/opensymphony/xwork2/interceptor/ParameterRemoverInterceptorTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/com/opensymphony/xwork2/interceptor/ParameterRemoverInterceptorTest.java
index eeaec7c,720ef93..5412fb8
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/ParameterRemoverInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ParameterRemoverInterceptorTest.java
@@@ -4,8 -4,7 +4,9 @@@ import com.opensymphony.xwork2.ActionCo
  import com.opensymphony.xwork2.ActionInvocation;
  import com.opensymphony.xwork2.ActionSupport;
  import junit.framework.TestCase;
 +import org.apache.struts2.dispatcher.HttpParameters;
 +import org.easymock.MockControl;
+ import static org.easymock.EasyMock.*;
  
  import java.util.LinkedHashMap;
  import java.util.Map;
@@@ -34,30 -31,31 +33,30 @@@ public class ParameterRemoverIntercepto
  	}
  	
  	public void testInterception1() throws Exception {
 -		contextMap.put(ActionContext.PARAMETERS, new LinkedHashMap<String, Object>() {
 -			private static final long serialVersionUID = 0L;
 +		contextMap.put(ActionContext.PARAMETERS, HttpParameters.create(new LinkedHashMap<String, Object>() {
  			{
 -				put("param1", new String[] { "paramValue1" });
 -				put("param2", new String[] { "paramValue2" });
 -				put("param3", new String[] { "paramValue3" });
 -				put("param", new String[] { "paramValue" });
 +				put("param1", new String[]{"paramValue1"});
 +				put("param2", new String[]{"paramValue2"});
 +				put("param3", new String[]{"paramValue3"});
 +				put("param", new String[]{"paramValue"});
  			}
 -		});
 +		}).build());
  		
- 		actionInvocationControl.replay();
+ 		replay(actionInvocation);
  		
  		ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
  		interceptor.setParamNames("param1,param2");
  		interceptor.setParamValues("paramValue1,paramValue2");
  		interceptor.intercept(actionInvocation);
  		
 -		Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
 -		assertEquals(params.size(), 2);
 -		assertTrue(params.containsKey("param3"));
 -		assertTrue(params.containsKey("param"));
 -		assertEquals(((String[])params.get("param3"))[0], "paramValue3");
 -		assertEquals(((String[])params.get("param"))[0], "paramValue");
 +		HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
 +		assertEquals(params.getNames().size(), 2);
 +		assertTrue(params.contains("param3"));
 +		assertTrue(params.contains("param"));
 +		assertEquals(params.get("param3").getValue(), "paramValue3");
 +		assertEquals(params.get("param").getValue(), "paramValue");
  		
- 		actionInvocationControl.verify();
+ 		verify(actionInvocation);
  	}
  	
  	
@@@ -67,19 -66,19 +66,19 @@@
  				put("param1", new String[] { "paramValue2" });
  				put("param2", new String[] { "paramValue1" });
  			}
 -		});
 +		}).build());
  		
- 		actionInvocationControl.replay();
+ 		replay(actionInvocation);
  		
  		ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
  		interceptor.setParamNames("param1,param2");
  		interceptor.setParamValues("paramValue1,paramValue2");
  		interceptor.intercept(actionInvocation);
  		
 -		Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
 -		assertEquals(params.size(), 0);
 +		HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
 +		assertEquals(params.getNames().size(), 0);
  		
- 		actionInvocationControl.verify();
+ 		verify(actionInvocation);
  	}
  	
  	
@@@ -89,23 -89,23 +88,23 @@@
  				put("param1", new String[] { "paramValueOne" });
  				put("param2", new String[] { "paramValueTwo" });
  			}
 -		});
 +		}).build());
  		
- 		actionInvocationControl.replay();
+ 		replay(actionInvocation);
  		
  		ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
  		interceptor.setParamNames("param1,param2");
  		interceptor.setParamValues("paramValue1,paramValue2");
  		interceptor.intercept(actionInvocation);
  		
 -		Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
 -		assertEquals(params.size(), 2);
 -		assertTrue(params.containsKey("param1"));
 -		assertTrue(params.containsKey("param2"));
 -		assertEquals(((String[])params.get("param1"))[0], "paramValueOne");
 -		assertEquals(((String[])params.get("param2"))[0], "paramValueTwo");
 +		HttpParameters params = (HttpParameters) contextMap.get(ActionContext.PARAMETERS);
 +		assertEquals(params.getNames().size(), 2);
 +		assertTrue(params.contains("param1"));
 +		assertTrue(params.contains("param2"));
 +		assertEquals(params.get("param1").getValue(), "paramValueOne");
 +		assertEquals(params.get("param2").getValue(), "paramValueTwo");
  		
- 		actionInvocationControl.verify();
+ 		verify(actionInvocation);
  	}
  	
  	class SampleAction extends ActionSupport {

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/test/java/org/apache/struts2/interceptor/MessageStoreInterceptorTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/struts2/interceptor/MessageStoreInterceptorTest.java
index a3784d3,9fc8396..1e73955
--- a/core/src/test/java/org/apache/struts2/interceptor/MessageStoreInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/MessageStoreInterceptorTest.java
@@@ -27,9 -27,10 +27,11 @@@ import java.util.LinkedHashMap
  import java.util.List;
  import java.util.Map;
  
+ import com.opensymphony.xwork2.ActionProxy;
+ import com.opensymphony.xwork2.interceptor.PreResultListener;
  import org.apache.struts2.ServletActionContext;
  import org.apache.struts2.StrutsInternalTestCase;
 +import org.apache.struts2.dispatcher.HttpParameters;
  import org.apache.struts2.result.ServletActionRedirectResult;
  import org.easymock.EasyMock;
  
@@@ -65,81 -69,24 +70,22 @@@ public class MessageStoreInterceptorTes
          interceptor.setAllowRequestParameterSwitch(true);
          interceptor.setOperationMode(MessageStoreInterceptor.STORE_MODE);
  
- 
-         Map sessionMap = new LinkedHashMap();
 -        Map paramMap = new LinkedHashMap();
--
          ActionSupport action = new ActionSupport();
          action.addActionError("some action error 1");
-         action.addActionError("some action error 2");
          action.addActionMessage("some action message 1");
-         action.addActionMessage("some action message 2");
-         action.addFieldError("field1", "some field error 1");
          action.addFieldError("field2", "some field error 2");
  
          ActionContext actionContext = new ActionContext(new HashMap());
 -        actionContext.put(ActionContext.PARAMETERS, paramMap);
 +        actionContext.setParameters(HttpParameters.createEmpty().build());
-         actionContext.setSession(sessionMap);
- 
-         // Mock (ActionInvocation)
-         ActionInvocation mockActionInvocation = EasyMock.createControl().createMock(ActionInvocation.class);
-         mockActionInvocation.getInvocationContext();
-         EasyMock.expectLastCall().andReturn(actionContext);
-         EasyMock.expectLastCall().anyTimes();
- 
-         mockActionInvocation.invoke();
-         EasyMock.expectLastCall().andReturn(Action.SUCCESS);
- 
-         mockActionInvocation.getAction();
-         EasyMock.expectLastCall().andReturn(action);
-         
-         mockActionInvocation.getResult();
-         EasyMock.expectLastCall().andReturn(new ServletActionRedirectResult());
- 
-         EasyMock.replay(mockActionInvocation);
  
-         interceptor.init();
-         interceptor.intercept(mockActionInvocation);
-         interceptor.destroy();
- 
-         assertEquals(sessionMap.size(), 3);
-         assertTrue(sessionMap.containsKey(MessageStoreInterceptor.actionErrorsSessionKey));
-         assertTrue(sessionMap.containsKey(MessageStoreInterceptor.actionMessagesSessionKey));
-         assertTrue(sessionMap.containsKey(MessageStoreInterceptor.fieldErrorsSessionKey));
- 
-         List actionErrors = (List) sessionMap.get(MessageStoreInterceptor.actionErrorsSessionKey);
-         List actionMessages = (List) sessionMap.get(MessageStoreInterceptor.actionMessagesSessionKey);
-         Map fieldErrors = (Map) sessionMap.get(MessageStoreInterceptor.fieldErrorsSessionKey);
- 
-         assertEquals(actionErrors.size(), 2);
-         assertEquals(actionMessages.size(), 2);
-         assertEquals(fieldErrors.size(), 2);
- 
-         assertTrue(actionErrors.contains("some action error 1"));
-         assertTrue(actionErrors.contains("some action error 2"));
-         assertTrue(actionMessages.contains("some action message 1"));
-         assertTrue(actionMessages.contains("some action message 2"));
-         assertTrue(fieldErrors.containsKey("field1"));
-         assertTrue(fieldErrors.containsKey("field2"));
-         assertEquals(((List)fieldErrors.get("field1")).size(), 1);
-         assertEquals(((List)fieldErrors.get("field2")).size(), 1);
-         assertEquals(((List)fieldErrors.get("field1")).get(0), "some field error 1");
-         assertEquals(((List)fieldErrors.get("field2")).get(0), "some field error 2");
- 
-         EasyMock.verify(mockActionInvocation);
-     }
- 
-     public void testIgnoreMessageWithoutSession() throws Exception {
-         MessageStoreInterceptor interceptor = new MessageStoreInterceptor();
-         interceptor.setAllowRequestParameterSwitch(true);
-         interceptor.setOperationMode(MessageStoreInterceptor.STORE_MODE);
+         HttpSession mockedSession = EasyMock.createControl().createMock(HttpSession.class);
+         HttpServletRequest mockedRequest = EasyMock.createControl().createMock(HttpServletRequest.class);
+         mockedRequest.getSession(false);
+         EasyMock.expectLastCall().andReturn(mockedSession);
+         EasyMock.expectLastCall().once();
+         ServletActionContext.setRequest(mockedRequest);
  
-         ActionSupport action = new ActionSupport();
-         action.addActionError("some action error 1");
-         action.addActionMessage("some action message 1");
-         action.addFieldError("field2", "some field error 2");
- 
-         ActionContext actionContext = new ActionContext(new HashMap());
-         actionContext.setParameters(HttpParameters.createEmpty().build());
+         EasyMock.replay(mockedRequest);
  
          // Mock (ActionInvocation)
          ActionInvocation mockActionInvocation = EasyMock.createControl().createMock(ActionInvocation.class);
@@@ -198,9 -143,17 +141,17 @@@
          sessionMap.put(MessageStoreInterceptor.actionMessagesSessionKey, actionMessages);
          sessionMap.put(MessageStoreInterceptor.fieldErrorsSessionKey, fieldErrors);
  
+         HttpSession mockedSession = EasyMock.createControl().createMock(HttpSession.class);
+         HttpServletRequest mockedRequest = EasyMock.createControl().createMock(HttpServletRequest.class);
+         mockedRequest.getSession(false);
+         EasyMock.expectLastCall().andReturn(mockedSession);
+         EasyMock.expectLastCall().once();
+         ServletActionContext.setRequest(mockedRequest);
+ 
+         EasyMock.replay(mockedRequest);
  
          ActionContext actionContext = new ActionContext(new HashMap());
 -        actionContext.put(ActionContext.PARAMETERS, paramsMap);
 +        actionContext.setParameters(HttpParameters.createEmpty().build());
          actionContext.put(ActionContext.SESSION, sessionMap);
  
          mockActionInvocation.getInvocationContext();
@@@ -252,9 -206,18 +203,18 @@@
          action.addFieldError("field2", "some field error 2");
  
          ActionContext actionContext = new ActionContext(new HashMap());
 -        actionContext.put(ActionContext.PARAMETERS, paramMap);
 +        actionContext.setParameters(HttpParameters.createEmpty().build());
          actionContext.put(ActionContext.SESSION, sessionMap);
  
+         HttpSession mockedSession = EasyMock.createControl().createMock(HttpSession.class);
+         HttpServletRequest mockedRequest = EasyMock.createControl().createMock(HttpServletRequest.class);
+         mockedRequest.getSession(false);
+         EasyMock.expectLastCall().andReturn(mockedSession);
+         EasyMock.expectLastCall().once();
+         ServletActionContext.setRequest(mockedRequest);
+ 
+         EasyMock.replay(mockedRequest);
+ 
          // Mock (ActionInvocation)
          ActionInvocation mockActionInvocation = EasyMock.createControl().createMock(ActionInvocation.class);
          mockActionInvocation.getInvocationContext();

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/test/java/org/apache/struts2/interceptor/ServletConfigInterceptorTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/struts2/interceptor/ServletConfigInterceptorTest.java
index 982d7b1,a3b8a7b..244d5f3
--- a/core/src/test/java/org/apache/struts2/interceptor/ServletConfigInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/ServletConfigInterceptorTest.java
@@@ -30,9 -30,10 +30,11 @@@ import javax.servlet.http.HttpServletRe
  
  import org.apache.struts2.StrutsInternalTestCase;
  import org.apache.struts2.StrutsStatics;
+ import org.apache.struts2.interceptor.servlet.ServletPrincipalProxy;
 +import org.apache.struts2.dispatcher.HttpParameters;
  import org.apache.struts2.util.ServletContextAware;
- import org.easymock.MockControl;
+ 
+ import static org.easymock.EasyMock.*;
  import org.springframework.mock.web.MockHttpServletRequest;
  import org.springframework.mock.web.MockHttpServletResponse;
  import org.springframework.mock.web.MockServletContext;
@@@ -89,15 -87,15 +88,15 @@@ public class ServletConfigInterceptorTe
  
          MockActionInvocation mai = createActionInvocation(mock);
  
 -        Map<String, Object> param = new HashMap<String, Object>();
 +        HttpParameters param = HttpParameters.createEmpty().build();
          mai.getInvocationContext().setParameters(param);
  
 -        mock.setParameters((Map)param);
 +        mock.setParameters(param);
-         control.setVoidCallable();
+         expectLastCall().times(1);
  
-         control.replay();
+         replay(mock);
          interceptor.intercept(mai);
-         control.verify();
+         verify(mock);
      }
  
      public void testSessionAware() throws Exception {
@@@ -125,13 -121,13 +122,13 @@@
  
          Map<String, Object> app = new HashMap<String, Object>();
          mai.getInvocationContext().setApplication(app);
 -        
 +
          mock.setApplication(app);
-         control.setVoidCallable();
+         expectLastCall().times(1);
  
-         control.replay();
+         replay(mock);
          interceptor.intercept(mai);
-         control.verify();
+         verify(mock);
      }
  
      public void testPrincipalAware() throws Exception {
@@@ -148,12 -142,12 +143,12 @@@
          MockServletContext ctx = new MockServletContext();
          mai.getInvocationContext().put(StrutsStatics.SERVLET_CONTEXT, ctx);
  
-         mock.setPrincipalProxy(null); // we can do this because of ALWAYS_MATCHER
-         control.setVoidCallable();
+         mock.setPrincipalProxy(anyObject(ServletPrincipalProxy.class)); // less strick match is needed for this unit test to be conducted using mocks
+         expectLastCall().times(1);
 -        
 +
-         control.replay();
+         replay(mock);
          interceptor.intercept(mai);
-         control.verify();
+         verify(mock);
      }
  
      public void testPrincipalProxy() throws Exception {
@@@ -186,13 -179,13 +180,13 @@@
  
          MockServletContext ctx = new MockServletContext();
          mai.getInvocationContext().put(StrutsStatics.SERVLET_CONTEXT, ctx);
 -        
 +
          mock.setServletContext((ServletContext) ctx);
-         control.setVoidCallable();
+         expectLastCall().times(1);
 -        
 +
-         control.replay();
+         replay(mock);
          interceptor.intercept(mai);
-         control.verify();
+         verify(mock);
      }
  
      private MockActionInvocation createActionInvocation(Object mock) {

http://git-wip-us.apache.org/repos/asf/struts/blob/bb21dbe4/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
index 4d2f878,2b1cd82..024ded8
--- a/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
@@@ -180,8 -178,9 +180,9 @@@ public class ActionTagTest extends Abst
          TestActionTagResult result = (TestActionTagResult) component.getProxy().getInvocation().getResult();
  
          assertTrue(stack.getContext().containsKey(ServletActionContext.PAGE_CONTEXT));
 -        assertTrue(stack.getContext().get(ServletActionContext.PAGE_CONTEXT)instanceof PageContext);
 +        assertTrue(stack.getContext().get(ServletActionContext.PAGE_CONTEXT) instanceof PageContext);
-         assertNull(result); // result is never executed, hence never set into invocation
+         assertNotNull(result);
+         assertFalse(result.isExecuted());
      }
  
       public void testExecuteButResetReturnSameInvocation() throws Exception {