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/06/25 10:31:28 UTC

[1/4] struts git commit: Merge pull request #17 from apache/master

Repository: struts
Updated Branches:
  refs/heads/master cd13846e1 -> 6e07a6379


Merge pull request #17 from apache/master

update pull

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

Branch: refs/heads/master
Commit: 7985fd191a39921817316f0f71348ffdd8233a4a
Parents: ffdacf1 095960b
Author: victor sosa <vi...@users.noreply.github.com>
Authored: Thu May 26 19:23:37 2016 -0400
Committer: victor sosa <vi...@users.noreply.github.com>
Committed: Thu May 26 19:23:37 2016 -0400

----------------------------------------------------------------------
 .../dispatcher/mapper/DefaultActionMapper.java  |  2 +-
 .../mapper/DefaultActionMapperTest.java         | 12 +++----
 .../apache/struts2/json/JSONInterceptor.java    | 26 +++++++-------
 .../struts2/json/JSONInterceptorTest.java       | 37 +++++++++++---------
 4 files changed, 40 insertions(+), 37 deletions(-)
----------------------------------------------------------------------



[4/4] struts git commit: WW-4650 Json deserialization does not work in 2.5.1

Posted by lu...@apache.org.
WW-4650 Json deserialization does not work in 2.5.1

logic need to be changed as accept can be a list; the check need to be
done in the list itself.

Accept:application/json, text/plain, */*

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

Branch: refs/heads/master
Commit: 6e07a63797422994a96059188b1753597a22ffd1
Parents: b462286
Author: victorsosa <vi...@peopleware.do>
Authored: Fri Jun 24 09:06:52 2016 -0400
Committer: victorsosa <vi...@peopleware.do>
Committed: Fri Jun 24 09:06:52 2016 -0400

----------------------------------------------------------------------
 .gitignore                                      |   3 +
 .../apache/struts2/json/JSONInterceptor.java    | 144 ++++++++++---------
 .../struts2/json/JSONInterceptorTest.java       |  28 ++--
 3 files changed, 91 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/6e07a637/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 0285aab..65b5ac5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,9 @@
 .metadata/
 Servers/
 
+#VSCode
+.vscode
+
 # OSX
 .DS_Store
 

http://git-wip-us.apache.org/repos/asf/struts/blob/6e07a637/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
index ba775d3..b4ad4b7 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
@@ -82,6 +82,8 @@ public class JSONInterceptor extends AbstractInterceptor {
             accept = request.getHeader("accept");
         }
         
+        String[] accepts = accept.split(",");
+        
         Object rootObject = null;
         final ValueStack stack = invocation.getStack();
         if (this.root != null) {
@@ -92,96 +94,98 @@ public class JSONInterceptor extends AbstractInterceptor {
             }
         }
 
-        if ((accept != null) && accept.equalsIgnoreCase("application/json")) {
-            // load JSON object
-            Object obj = JSONUtil.deserialize(request.getReader());
+        for (String accept : accepts) {
+            if ((accept != null) && accept.equalsIgnoreCase("application/json")) {
+                // load JSON object
+                Object obj = JSONUtil.deserialize(request.getReader());
 
-            // JSON array (this.root cannot be null in this case)
-            if(obj instanceof List && this.root != null) {
-                String mapKey = this.root;
-                rootObject = null;
+                // JSON array (this.root cannot be null in this case)
+                if(obj instanceof List && this.root != null) {
+                    String mapKey = this.root;
+                    rootObject = null;
 
-                if(this.root.indexOf('.') != -1) {
-                    mapKey = this.root.substring(this.root.lastIndexOf('.') + 1);
+                    if(this.root.indexOf('.') != -1) {
+                        mapKey = this.root.substring(this.root.lastIndexOf('.') + 1);
 
-                    rootObject = stack.findValue(this.root.substring(0, this.root.lastIndexOf('.')));
-                    if (rootObject == null) {
-                        throw new RuntimeException("JSON array: Invalid root expression: '" + this.root + "'.");
+                        rootObject = stack.findValue(this.root.substring(0, this.root.lastIndexOf('.')));
+                        if (rootObject == null) {
+                            throw new RuntimeException("JSON array: Invalid root expression: '" + this.root + "'.");
+                        }
                     }
-                }
 
-                // create a map with a list inside
-                Map m = new HashMap();
-                m.put(mapKey, new ArrayList((List) obj));
-                obj = m;
-            }
+                    // create a map with a list inside
+                    Map m = new HashMap();
+                    m.put(mapKey, new ArrayList((List) obj));
+                    obj = m;
+                }
 
-            if (obj instanceof Map) {
-                Map json = (Map) obj;
+                if (obj instanceof Map) {
+                    Map json = (Map) obj;
 
-                // clean up the values
-                if (dataCleaner != null)
-                    dataCleaner.clean("", json);
+                    // clean up the values
+                    if (dataCleaner != null)
+                        dataCleaner.clean("", json);
 
-                if (rootObject == null) // model overrides action
-                    rootObject = invocation.getStack().peek();
+                    if (rootObject == null) // model overrides action
+                        rootObject = invocation.getStack().peek();
 
-                // populate fields
-                populator.populateObject(rootObject, json);
-            } else {
-                LOG.error("Unable to deserialize JSON object from request");
-                throw new JSONException("Unable to deserialize JSON object from request");
-            }
-        } else if ((accept != null) && accept.equalsIgnoreCase("application/json-rpc")) {
-            Object result;
-            if (this.enableSMD) {
-                // load JSON object
-                Object obj = JSONUtil.deserialize(request.getReader());
-
-                if (obj instanceof Map) {
-                    Map smd = (Map) obj;
-
-                    if (rootObject == null) { // model makes no sense when using RPC
-                        rootObject = invocation.getAction();
-                    }
+                    // populate fields
+                    populator.populateObject(rootObject, json);
+                } else {
+                    LOG.error("Unable to deserialize JSON object from request");
+                    throw new JSONException("Unable to deserialize JSON object from request");
+                }
+            } else if ((accept != null) && accept.equalsIgnoreCase("application/json-rpc")) {
+                Object result;
+                if (this.enableSMD) {
+                    // load JSON object
+                    Object obj = JSONUtil.deserialize(request.getReader());
+
+                    if (obj instanceof Map) {
+                        Map smd = (Map) obj;
+
+                        if (rootObject == null) { // model makes no sense when using RPC
+                            rootObject = invocation.getAction();
+                        }
+
+                        // invoke method
+                        try {
+                            result = this.invoke(rootObject, smd);
+                        } catch (Exception e) {
+                            RPCResponse rpcResponse = new RPCResponse();
+                            rpcResponse.setId(smd.get("id").toString());
+                            rpcResponse.setError(new RPCError(e, RPCErrorCode.EXCEPTION, getDebug()));
+
+                            result = rpcResponse;
+                        }
+                    } else {
+                        String message = "SMD request was not in the right format. See http://json-rpc.org";
 
-                    // invoke method
-                    try {
-                        result = this.invoke(rootObject, smd);
-                    } catch (Exception e) {
                         RPCResponse rpcResponse = new RPCResponse();
-                        rpcResponse.setId(smd.get("id").toString());
-                        rpcResponse.setError(new RPCError(e, RPCErrorCode.EXCEPTION, getDebug()));
-
+                        rpcResponse.setError(new RPCError(message, RPCErrorCode.INVALID_PROCEDURE_CALL));
                         result = rpcResponse;
                     }
                 } else {
-                    String message = "SMD request was not in the right format. See http://json-rpc.org";
+                    String message = "Request with content type of 'application/json-rpc' was received but SMD is "
+                            + "not enabled for this interceptor. Set 'enableSMD' to true to enable it";
 
                     RPCResponse rpcResponse = new RPCResponse();
-                    rpcResponse.setError(new RPCError(message, RPCErrorCode.INVALID_PROCEDURE_CALL));
+                    rpcResponse.setError(new RPCError(message, RPCErrorCode.SMD_DISABLED));
                     result = rpcResponse;
                 }
-            } else {
-                String message = "Request with content type of 'application/json-rpc' was received but SMD is "
-                        + "not enabled for this interceptor. Set 'enableSMD' to true to enable it";
 
-                RPCResponse rpcResponse = new RPCResponse();
-                rpcResponse.setError(new RPCError(message, RPCErrorCode.SMD_DISABLED));
-                result = rpcResponse;
+                String json = JSONUtil.serialize(result, excludeProperties, getIncludeProperties(),
+                        ignoreHierarchy, excludeNullProperties);
+                json = addCallbackIfApplicable(request, json);
+                boolean writeGzip = enableGZIP && JSONUtil.isGzipInRequest(request);
+                JSONUtil.writeJSONToResponse(new SerializationParams(response, this.defaultEncoding,
+                        this.wrapWithComments, json, true, writeGzip, noCache, -1, -1, prefix, "application/json"));
+
+                return Action.NONE;
+            } else {            
+                LOG.debug("Accept header parameter must be 'application/json' or 'application/json-rpc'. Ignoring request with accept ", accept);
+                break;
             }
-
-            String json = JSONUtil.serialize(result, excludeProperties, getIncludeProperties(),
-                    ignoreHierarchy, excludeNullProperties);
-            json = addCallbackIfApplicable(request, json);
-            boolean writeGzip = enableGZIP && JSONUtil.isGzipInRequest(request);
-            JSONUtil.writeJSONToResponse(new SerializationParams(response, this.defaultEncoding,
-                    this.wrapWithComments, json, true, writeGzip, noCache, -1, -1, prefix, "application/json"));
-
-            return Action.NONE;
-        } else {
-            
-            LOG.debug("Accept header parameter must be 'application/json' or 'application/json-rpc'. Ignoring request with accept ", accept);
         }
 
         return invocation.invoke();

http://git-wip-us.apache.org/repos/asf/struts/blob/6e07a637/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
index ddae716..85e64ec 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
@@ -71,7 +71,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     private void tryBadJSON(String fileName) throws Exception {
         // request
         setRequestContent(fileName);
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -92,7 +92,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDDisabledSMD() throws Exception {
         // request
         setRequestContent("smd-3.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         SMDActionTest1 action = new SMDActionTest1();
@@ -111,7 +111,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDAliasedMethodCall1() throws Exception {
         // request
         setRequestContent("smd-14.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -129,7 +129,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDAliasedMethodCall2() throws Exception {
         // request
         setRequestContent("smd-15.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -147,7 +147,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDNoMethod() throws Exception {
         // request
         setRequestContent("smd-4.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -171,7 +171,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDMethodWithoutAnnotations() throws Exception {
         // request
         setRequestContent("smd-9.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -192,7 +192,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDPrimitivesNoResult() throws Exception {
         // request
         setRequestContent("smd-6.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -227,7 +227,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDReturnObject() throws Exception {
         // request
         setRequestContent("smd-10.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -252,7 +252,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testSMDObjectsNoResult() throws Exception {
         // request
         setRequestContent("smd-7.txt");
-        this.request.addHeader("accept", "application/json-rpc");
+        this.request.addHeader("accept", "application/json-rpc, text/plain, */*");
 
         JSONInterceptor interceptor = new JSONInterceptor();
         interceptor.setEnableSMD(true);
@@ -300,7 +300,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void testReadEmpty() throws Exception {
         // request
         setRequestContent("json-6.txt");
-        this.request.addHeader("accept", "application/json");
+        this.request.addHeader("accept", "application/json, text/plain, */*");
 
         // interceptor
         JSONInterceptor interceptor = new JSONInterceptor();
@@ -315,7 +315,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     public void test() throws Exception {
         // request
         setRequestContent("json-1.txt");
-        this.request.addHeader("accept", "application/json");
+        this.request.addHeader("accept", "application/json, text/plain, */*");
 
         // interceptor
         JSONInterceptor interceptor = new JSONInterceptor();
@@ -437,7 +437,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
 
     public void testRoot() throws Exception {
         setRequestContent("json-5.txt");
-        this.request.addHeader("accept", "application/json");
+        this.request.addHeader("accept", "application/json, text/plain, */*");
 
         // interceptor
         JSONInterceptor interceptor = new JSONInterceptor();
@@ -462,7 +462,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
     
     public void testJSONArray() throws Exception {
         setRequestContent("json-12.txt");
-        this.request.addHeader("accept", "application/json");
+        this.request.addHeader("accept", "application/json, text/plain, */*");
 
         // interceptor
         JSONInterceptor interceptor = new JSONInterceptor();
@@ -488,7 +488,7 @@ public class JSONInterceptorTest extends StrutsTestCase {
 
     public void testJSONArray2() throws Exception {
         setRequestContent("json-12.txt");
-        this.request.addHeader("accept", "application/json");
+        this.request.addHeader("accept", "application/json, text/plain, */*");
 
         // interceptor
         JSONInterceptor interceptor = new JSONInterceptor();


[3/4] struts git commit: Merge branch 'apache-master'

Posted by lu...@apache.org.
Merge branch 'apache-master'


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

Branch: refs/heads/master
Commit: b4622865893731277ac0034d54d26216f09b7054
Parents: 7985fd1 4f07433
Author: victorsosa <vi...@peopleware.do>
Authored: Fri Jun 24 08:26:27 2016 -0400
Committer: victorsosa <vi...@peopleware.do>
Committed: Fri Jun 24 08:26:27 2016 -0400

----------------------------------------------------------------------
 apps/pom.xml                                    |  2 +-
 apps/portlet/pom.xml                            |  2 +-
 apps/portlet/src/main/resources/struts-edit.xml |  4 +-
 .../src/main/resources/struts-eventing.xml      |  4 +-
 apps/portlet/src/main/resources/struts-help.xml |  4 +-
 .../portlet/src/main/resources/struts-tiles.xml |  4 +-
 apps/portlet/src/main/resources/struts-view.xml |  4 +-
 apps/portlet/src/main/resources/struts.xml      |  4 +-
 apps/rest-showcase/pom.xml                      |  4 +-
 apps/showcase/pom.xml                           |  2 +-
 .../main/resources/struts-actionchaining.xml    |  4 +-
 .../src/main/resources/struts-conversion.xml    |  4 +-
 .../src/main/resources/struts-filedownload.xml  |  4 +-
 .../src/main/resources/struts-fileupload.xml    |  4 +-
 .../src/main/resources/struts-freemarker.xml    |  4 +-
 .../src/main/resources/struts-hangman.xml       |  4 +-
 .../src/main/resources/struts-interactive.xml   |  4 +-
 .../src/main/resources/struts-model-driven.xml  |  4 +-
 .../src/main/resources/struts-person.xml        |  4 +-
 .../src/main/resources/struts-tags-non-ui.xml   |  4 +-
 .../src/main/resources/struts-tags-ui.xml       |  4 +-
 .../showcase/src/main/resources/struts-tags.xml |  4 +-
 .../src/main/resources/struts-tiles.xml         |  4 +-
 .../src/main/resources/struts-token.xml         |  4 +-
 .../src/main/resources/struts-validation.xml    |  4 +-
 .../showcase/src/main/resources/struts-wait.xml |  4 +-
 .../showcase/src/main/resources/struts-xslt.xml |  4 +-
 apps/showcase/src/main/resources/struts.xml     |  4 +-
 archetypes/pom.xml                              |  2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-blank/pom.xml      |  2 +-
 .../src/main/resources/example.xml              |  4 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-convention/pom.xml |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-dbportlet/pom.xml  |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-plugin/pom.xml     |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 archetypes/struts2-archetype-portlet/pom.xml    |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-starter/pom.xml    |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 assembly/pom.xml                                |  2 +-
 bom/pom.xml                                     |  9 +--
 bundles/admin/pom.xml                           |  2 +-
 bundles/demo/pom.xml                            |  2 +-
 bundles/pom.xml                                 |  2 +-
 core/pom.xml                                    |  2 +-
 .../com/opensymphony/xwork2/ActionSupport.java  |  4 --
 .../xwork2/DefaultActionInvocation.java         |  2 +-
 .../opensymphony/xwork2/DefaultActionProxy.java | 14 ++++-
 .../com/opensymphony/xwork2/XWorkMessages.java  | 31 ----------
 .../xwork2/config/entities/PackageConfig.java   |  7 +++
 .../xwork2/conversion/impl/XWorkConverter.java  |  2 +-
 .../StaticParametersInterceptor.java            |  2 +-
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  | 64 ++++++++++++++++++++
 .../validator/DelegatingValidatorContext.java   |  2 +-
 .../validator/validators/URLValidator.java      |  2 +-
 .../struts2/components/DoubleListUIBean.java    |  2 +-
 .../org/apache/struts2/components/I18n.java     | 38 +++++++-----
 .../apache/struts2/components/ListUIBean.java   |  2 +-
 .../java/org/apache/struts2/components/Set.java |  2 +-
 .../struts2/factory/StrutsResultFactory.java    |  2 +-
 .../struts2/views/freemarker/tags/TagModel.java |  2 +-
 .../xwork2/xwork-messages.properties            |  2 +-
 .../resources/template/xhtml/controlheader.ftl  |  6 +-
 .../main/resources/template/xhtml/styles.css    | 10 +--
 .../opensymphony/xwork2/ActionSupportTest.java  |  5 +-
 .../xwork2/DefaultActionProxyTest.java          | 24 ++++++++
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 15 +++++
 .../xwork2/util/LocalizedTextUtilTest.java      | 13 ++--
 .../xwork2/validator/URLValidatorTest.java      |  1 +
 .../apache/struts2/components/UIBeanTest.java   | 17 ------
 .../struts2/views/jsp/ui/TextfieldTest.java     | 16 +++++
 .../struts2/views/jsp/ui/CheckboxList-1.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-2.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-3.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-4.txt     |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-2.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-3.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-4.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Component-2.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Component-3.txt |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-1.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-2.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-3.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-4.txt     |  2 +-
 .../org/apache/struts2/views/jsp/ui/File-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-11.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-2.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-22.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-24.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-27.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-6.txt   |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-1.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-2.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-3.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-4.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-5.txt |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-2.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-3.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-4.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-5.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-7.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Password-1.txt  |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-1.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-2.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-3.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-4.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-5.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-6.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-7.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Select-1.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-10.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-11.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-12.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-13.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-2.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-3.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-4.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-5.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-6.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-7.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-8.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-9.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Textarea-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-1.txt |  2 +-
 .../struts2/views/jsp/ui/Textfield-12.txt       |  2 +-
 .../struts2/views/jsp/ui/Textfield-13.txt       |  2 +-
 .../struts2/views/jsp/ui/Textfield-14.txt       |  4 ++
 .../apache/struts2/views/jsp/ui/Textfield-2.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-3.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-4.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-5.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-6.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-7.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-8.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-9.txt |  2 +-
 .../views/jsp/ui/inputtransferselect-1.txt      |  4 +-
 .../views/jsp/ui/optiontransferselect-1.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-2.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-3.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-4.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-5.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-6.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-7.txt     |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-1.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-2.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-3.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-4.txt   |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-1.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-10.txt |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-11.txt |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-2.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-3.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-4.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-5.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-6.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-7.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-8.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-9.txt  |  2 +-
 .../struts2/views/jsp/ui/validationstyles-1.txt |  2 +-
 .../struts2/views/jsp/ui/validationstyles-2.txt |  2 +-
 .../struts2/views/jsp/ui/validationstyles-3.txt |  2 +-
 .../struts-object-factory-result-builder.xml    |  4 +-
 plugins/bean-validation/pom.xml                 |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/cdi/pom.xml                             |  2 +-
 .../cdi/src/main/resources/struts-plugin.xml    |  4 +-
 plugins/config-browser/pom.xml                  |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/convention/pom.xml                      |  2 +-
 .../convention/ConventionUnknownHandler.java    |  7 ++-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/dwr/pom.xml                             |  2 +-
 plugins/embeddedjsp/pom.xml                     |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/gxp/pom.xml                             |  2 +-
 .../gxp/src/main/resources/struts-plugin.xml    |  4 +-
 plugins/jasperreports/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/java8-support/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/javatemplates/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/jfreechart/pom.xml                      |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/json/pom.xml                            |  2 +-
 .../json/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/junit/pom.xml                           |  2 +-
 .../struts-convention-configuration.xml         |  4 +-
 plugins/osgi/pom.xml                            |  2 +-
 .../osgi/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/oval/pom.xml                            |  2 +-
 .../oval/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/pell-multipart/pom.xml                  |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/plexus/pom.xml                          |  2 +-
 .../plexus/src/main/resources/struts-plugin.xml |  4 +-
 plugins/pom.xml                                 |  2 +-
 plugins/portlet-tiles/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/portlet/pom.xml                         |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/portlet/src/test/resources/struts.xml   |  4 +-
 plugins/rest/pom.xml                            |  2 +-
 plugins/sitegraph/pom.xml                       |  2 +-
 plugins/sitemesh/pom.xml                        |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/spring/pom.xml                          |  2 +-
 .../spring/src/main/resources/struts-plugin.xml |  4 +-
 plugins/testng/pom.xml                          |  2 +-
 plugins/tiles/pom.xml                           |  2 +-
 .../tiles/src/main/resources/struts-plugin.xml  |  4 +-
 pom.xml                                         |  6 +-
 220 files changed, 449 insertions(+), 358 deletions(-)
----------------------------------------------------------------------



[2/4] struts git commit: Merge branch 'master' of https://github.com/apache/struts into apache-master

Posted by lu...@apache.org.
Merge branch 'master' of https://github.com/apache/struts into apache-master


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

Branch: refs/heads/master
Commit: 4f07433626dc5bef4e626c00cf880e848ac70f80
Parents: 7985fd1 cd13846
Author: victorsosa <vi...@peopleware.do>
Authored: Fri Jun 24 08:25:42 2016 -0400
Committer: victorsosa <vi...@peopleware.do>
Committed: Fri Jun 24 08:25:42 2016 -0400

----------------------------------------------------------------------
 apps/pom.xml                                    |  2 +-
 apps/portlet/pom.xml                            |  2 +-
 apps/portlet/src/main/resources/struts-edit.xml |  4 +-
 .../src/main/resources/struts-eventing.xml      |  4 +-
 apps/portlet/src/main/resources/struts-help.xml |  4 +-
 .../portlet/src/main/resources/struts-tiles.xml |  4 +-
 apps/portlet/src/main/resources/struts-view.xml |  4 +-
 apps/portlet/src/main/resources/struts.xml      |  4 +-
 apps/rest-showcase/pom.xml                      |  4 +-
 apps/showcase/pom.xml                           |  2 +-
 .../main/resources/struts-actionchaining.xml    |  4 +-
 .../src/main/resources/struts-conversion.xml    |  4 +-
 .../src/main/resources/struts-filedownload.xml  |  4 +-
 .../src/main/resources/struts-fileupload.xml    |  4 +-
 .../src/main/resources/struts-freemarker.xml    |  4 +-
 .../src/main/resources/struts-hangman.xml       |  4 +-
 .../src/main/resources/struts-interactive.xml   |  4 +-
 .../src/main/resources/struts-model-driven.xml  |  4 +-
 .../src/main/resources/struts-person.xml        |  4 +-
 .../src/main/resources/struts-tags-non-ui.xml   |  4 +-
 .../src/main/resources/struts-tags-ui.xml       |  4 +-
 .../showcase/src/main/resources/struts-tags.xml |  4 +-
 .../src/main/resources/struts-tiles.xml         |  4 +-
 .../src/main/resources/struts-token.xml         |  4 +-
 .../src/main/resources/struts-validation.xml    |  4 +-
 .../showcase/src/main/resources/struts-wait.xml |  4 +-
 .../showcase/src/main/resources/struts-xslt.xml |  4 +-
 apps/showcase/src/main/resources/struts.xml     |  4 +-
 archetypes/pom.xml                              |  2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-blank/pom.xml      |  2 +-
 .../src/main/resources/example.xml              |  4 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-convention/pom.xml |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-dbportlet/pom.xml  |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-plugin/pom.xml     |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 archetypes/struts2-archetype-portlet/pom.xml    |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 archetypes/struts2-archetype-starter/pom.xml    |  2 +-
 .../src/main/resources/struts.xml               |  4 +-
 assembly/pom.xml                                |  2 +-
 bom/pom.xml                                     |  9 +--
 bundles/admin/pom.xml                           |  2 +-
 bundles/demo/pom.xml                            |  2 +-
 bundles/pom.xml                                 |  2 +-
 core/pom.xml                                    |  2 +-
 .../com/opensymphony/xwork2/ActionSupport.java  |  4 --
 .../xwork2/DefaultActionInvocation.java         |  2 +-
 .../opensymphony/xwork2/DefaultActionProxy.java | 14 ++++-
 .../com/opensymphony/xwork2/XWorkMessages.java  | 31 ----------
 .../xwork2/config/entities/PackageConfig.java   |  7 +++
 .../xwork2/conversion/impl/XWorkConverter.java  |  2 +-
 .../StaticParametersInterceptor.java            |  2 +-
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  | 64 ++++++++++++++++++++
 .../validator/DelegatingValidatorContext.java   |  2 +-
 .../validator/validators/URLValidator.java      |  2 +-
 .../struts2/components/DoubleListUIBean.java    |  2 +-
 .../org/apache/struts2/components/I18n.java     | 38 +++++++-----
 .../apache/struts2/components/ListUIBean.java   |  2 +-
 .../java/org/apache/struts2/components/Set.java |  2 +-
 .../struts2/factory/StrutsResultFactory.java    |  2 +-
 .../struts2/views/freemarker/tags/TagModel.java |  2 +-
 .../xwork2/xwork-messages.properties            |  2 +-
 .../resources/template/xhtml/controlheader.ftl  |  6 +-
 .../main/resources/template/xhtml/styles.css    | 10 +--
 .../opensymphony/xwork2/ActionSupportTest.java  |  5 +-
 .../xwork2/DefaultActionProxyTest.java          | 24 ++++++++
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 15 +++++
 .../xwork2/util/LocalizedTextUtilTest.java      | 13 ++--
 .../xwork2/validator/URLValidatorTest.java      |  1 +
 .../apache/struts2/components/UIBeanTest.java   | 17 ------
 .../struts2/views/jsp/ui/TextfieldTest.java     | 16 +++++
 .../struts2/views/jsp/ui/CheckboxList-1.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-2.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-3.txt     |  2 +-
 .../struts2/views/jsp/ui/CheckboxList-4.txt     |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-2.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-3.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/ComboBox-4.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Component-2.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Component-3.txt |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-1.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-2.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-3.txt     |  2 +-
 .../struts2/views/jsp/ui/DoubleSelect-4.txt     |  2 +-
 .../org/apache/struts2/views/jsp/ui/File-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-11.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-2.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-22.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-24.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-27.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Formtag-6.txt   |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-1.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-2.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-3.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-4.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Label-5.txt |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-2.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-3.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-4.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-5.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/OptGroup-7.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Password-1.txt  |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-1.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-2.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-3.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-4.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-5.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-6.txt |  2 +-
 .../org/apache/struts2/views/jsp/ui/Radio-7.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Select-1.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-10.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-11.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-12.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-13.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/Select-2.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-3.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-4.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-5.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-6.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-7.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-8.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Select-9.txt    |  2 +-
 .../apache/struts2/views/jsp/ui/Textarea-1.txt  |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-1.txt |  2 +-
 .../struts2/views/jsp/ui/Textfield-12.txt       |  2 +-
 .../struts2/views/jsp/ui/Textfield-13.txt       |  2 +-
 .../struts2/views/jsp/ui/Textfield-14.txt       |  4 ++
 .../apache/struts2/views/jsp/ui/Textfield-2.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-3.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-4.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-5.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-6.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-7.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-8.txt |  2 +-
 .../apache/struts2/views/jsp/ui/Textfield-9.txt |  2 +-
 .../views/jsp/ui/inputtransferselect-1.txt      |  4 +-
 .../views/jsp/ui/optiontransferselect-1.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-2.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-3.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-4.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-5.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-6.txt     |  2 +-
 .../views/jsp/ui/optiontransferselect-7.txt     |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-1.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-2.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-3.txt   |  2 +-
 .../apache/struts2/views/jsp/ui/tooltip-4.txt   |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-1.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-10.txt |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-11.txt |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-2.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-3.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-4.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-5.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-6.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-7.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-8.txt  |  2 +-
 .../struts2/views/jsp/ui/updownselecttag-9.txt  |  2 +-
 .../struts2/views/jsp/ui/validationstyles-1.txt |  2 +-
 .../struts2/views/jsp/ui/validationstyles-2.txt |  2 +-
 .../struts2/views/jsp/ui/validationstyles-3.txt |  2 +-
 .../struts-object-factory-result-builder.xml    |  4 +-
 plugins/bean-validation/pom.xml                 |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/cdi/pom.xml                             |  2 +-
 .../cdi/src/main/resources/struts-plugin.xml    |  4 +-
 plugins/config-browser/pom.xml                  |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/convention/pom.xml                      |  2 +-
 .../convention/ConventionUnknownHandler.java    |  7 ++-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/dwr/pom.xml                             |  2 +-
 plugins/embeddedjsp/pom.xml                     |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/gxp/pom.xml                             |  2 +-
 .../gxp/src/main/resources/struts-plugin.xml    |  4 +-
 plugins/jasperreports/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/java8-support/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/javatemplates/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/jfreechart/pom.xml                      |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/json/pom.xml                            |  2 +-
 .../json/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/junit/pom.xml                           |  2 +-
 .../struts-convention-configuration.xml         |  4 +-
 plugins/osgi/pom.xml                            |  2 +-
 .../osgi/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/oval/pom.xml                            |  2 +-
 .../oval/src/main/resources/struts-plugin.xml   |  4 +-
 plugins/pell-multipart/pom.xml                  |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/plexus/pom.xml                          |  2 +-
 .../plexus/src/main/resources/struts-plugin.xml |  4 +-
 plugins/pom.xml                                 |  2 +-
 plugins/portlet-tiles/pom.xml                   |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/portlet/pom.xml                         |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/portlet/src/test/resources/struts.xml   |  4 +-
 plugins/rest/pom.xml                            |  2 +-
 plugins/sitegraph/pom.xml                       |  2 +-
 plugins/sitemesh/pom.xml                        |  2 +-
 .../src/main/resources/struts-plugin.xml        |  4 +-
 plugins/spring/pom.xml                          |  2 +-
 .../spring/src/main/resources/struts-plugin.xml |  4 +-
 plugins/testng/pom.xml                          |  2 +-
 plugins/tiles/pom.xml                           |  2 +-
 .../tiles/src/main/resources/struts-plugin.xml  |  4 +-
 pom.xml                                         |  6 +-
 220 files changed, 449 insertions(+), 358 deletions(-)
----------------------------------------------------------------------