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 2015/09/28 20:43:19 UTC
[1/8] struts git commit: Solves issue with vulnerable parameters
Repository: struts
Updated Branches:
refs/heads/master 43c030941 -> 48ea26be7
Solves issue with vulnerable parameters
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f420f284
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f420f284
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f420f284
Branch: refs/heads/master
Commit: f420f28466cb82915defc4e12466b298c275abaf
Parents: 925741a
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Sep 22 07:24:49 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Sep 22 07:24:49 2015 +0200
----------------------------------------------------------------------
.../DefaultExcludedPatternsChecker.java | 2 +-
.../interceptor/ParametersInterceptorTest.java | 6 ++--
.../DefaultExcludedPatternsCheckerTest.java | 35 ++++++++++++++++++++
3 files changed, 40 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/f420f284/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
index d96b67a..93d72ca 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
@@ -16,7 +16,7 @@ public class DefaultExcludedPatternsChecker implements ExcludedPatternsChecker {
private static final Logger LOG = LoggerFactory.getLogger(DefaultExcludedPatternsChecker.class);
public static final String[] EXCLUDED_PATTERNS = {
- "(^|.*#)(dojo|struts|session|request|application|servlet(Request|Response)|parameters|context|_memberAccess)(\\.|\\[).*",
+ "(^|\\%\\{)((#?)(top(\\.|\\['|\\[\")|\\[\\d\\]\\.)?)(dojo|struts|session|request|response|application|servlet(Request|Response|Context)|parameters|context|_memberAccess)(\\.|\\[).*",
"^(action|method):.*"
};
http://git-wip-us.apache.org/repos/asf/struts/blob/f420f284/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index f20e178..5dcc3e0 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -110,11 +110,13 @@ public class ParametersInterceptorTest extends XWorkTestCase {
pi.setParameters(action, vs, params);
// then
- assertEquals(1, action.getActionMessages().size());
+ assertEquals(2, action.getActionMessages().size());
String msg1 = action.getActionMessage(0);
+ String msg2 = action.getActionMessage(1);
- assertTrue(msg1.contains("Error setting expression 'top['name'](0)' with value 'true'"));
+ assertEquals("Error setting expression 'name' with value '(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), @java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)'", msg1);
+ assertEquals("Error setting expression 'top['name'](0)' with value 'true'", msg2);
assertNull(action.getName());
}
http://git-wip-us.apache.org/repos/asf/struts/blob/f420f284/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
index 22e4a73..d917808 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
@@ -3,6 +3,7 @@ package com.opensymphony.xwork2.security;
import com.opensymphony.xwork2.XWorkTestCase;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class DefaultExcludedPatternsCheckerTest extends XWorkTestCase {
@@ -35,6 +36,10 @@ public class DefaultExcludedPatternsCheckerTest extends XWorkTestCase {
add("%{#servletResponse.test}");
add("%{#ServletResponse['test']}");
add("%{#ServletResponse.test}");
+ add("%{#servletContext['test']}");
+ add("%{#servletContext.test}");
+ add("%{#ServletContext['test']}");
+ add("%{#ServletContext.test}");
add("%{#parameters['test']}");
add("%{#parameters.test}");
add("%{#Parameters['test']}");
@@ -65,6 +70,36 @@ public class DefaultExcludedPatternsCheckerTest extends XWorkTestCase {
}
}
+ public void testDefaultExcludePatterns() throws Exception {
+ // given
+ List<String> prefixes = Arrays.asList("#[0].%s", "[0].%s", "top.%s", "%{[0].%s}", "%{#[0].%s}", "%{top.%s}", "%{#top.%s}", "%{#%s}", "%{%s}", "#%s");
+ List<String> inners = Arrays.asList("servletRequest", "servletResponse", "servletContext", "application", "session", "struts", "request", "response", "dojo", "parameters");
+ List<String> suffixes = Arrays.asList("['test']", "[\"test\"]", ".test");
+
+ DefaultExcludedPatternsChecker checker = new DefaultExcludedPatternsChecker();
+ checker.setAdditionalExcludePatterns(".*(^|\\.|\\[|'|\")class(\\.|\\[|'|\").*");
+
+ List<String> params = new ArrayList<String>();
+ for (String prefix : prefixes) {
+ for (String inner : inners) {
+ String innerUp = inner.substring(0, 1).toUpperCase() + inner.substring(1);
+ for (String suffix : suffixes) {
+ params.add(prefix.replace("%s", inner + suffix));
+ params.add(prefix.replace("%s", innerUp + suffix));
+ }
+ }
+ }
+
+ for (String param : params) {
+ System.out.println(param);
+ // when
+ ExcludedPatternsChecker.IsExcluded actual = checker.isExcluded(param);
+
+ // then
+ assertTrue("Access to " + param + " is possible!", actual.isExcluded());
+ }
+ }
+
public void testParamWithClassInName() throws Exception {
// given
List<String> properParams = new ArrayList<String>();
[8/8] struts git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/struts
Posted by lu...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/struts
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/48ea26be
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/48ea26be
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/48ea26be
Branch: refs/heads/master
Commit: 48ea26be79bc54286ce50ec72aa6c53fee17b1bf
Parents: db62a57 43c0309
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Sep 28 20:42:36 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Sep 28 20:42:36 2015 +0200
----------------------------------------------------------------------
.../main/resources/archetype-resources/pom.xml | 14 ++-----
.../main/java/actions/ApplicationAction.java | 44 --------------------
.../src/main/java/actions/Index.java | 26 +++++-------
.../main/java/actions/data/ProjectsAction.java | 2 -
.../main/java/actions/data/package-info.java | 24 +++++++++++
.../src/main/resources/struts.xml | 4 +-
.../main/webapp/WEB-INF/content/application.jsp | 38 -----------------
.../src/main/webapp/WEB-INF/content/index.jsp | 38 +++++++++++++++++
.../src/main/webapp/index.jsp | 2 +-
.../java/actions/ApplicationActionTest.java | 32 --------------
.../src/test/java/actions/IndexTest.java | 13 +++---
.../src/main/resources/struts-plugin.xml | 41 ++++++++++++++++++
.../rest/src/main/resources/struts-plugin.xml | 4 +-
13 files changed, 131 insertions(+), 151 deletions(-)
----------------------------------------------------------------------
[7/8] struts git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/struts
Posted by lu...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/struts
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/db62a57b
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/db62a57b
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/db62a57b
Branch: refs/heads/master
Commit: db62a57bcb174a288a4cd706f4ade7875a332846
Parents: dc270c2 18fc7eb
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Sep 23 08:56:51 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Sep 23 08:56:51 2015 +0200
----------------------------------------------------------------------
.../WEB-INF/content/orders-deleteConfirm.jsp | 2 +
.../main/webapp/WEB-INF/content/orders-edit.jsp | 8 +
.../webapp/WEB-INF/content/orders-editNew.jsp | 9 +-
.../webapp/WEB-INF/content/orders-index.jsp | 2 +
.../main/webapp/WEB-INF/content/orders-show.jsp | 2 +
apps/rest-showcase/src/main/webapp/css/app.css | 5 +
.../webapp/js/lib/angular/angular-animate.js | 773 ++++++++-----
.../js/lib/angular/angular-animate.min.js | 98 +-
.../js/lib/angular/angular-animate.min.js.map | 6 +-
.../main/webapp/js/lib/angular/angular-aria.js | 2 +-
.../webapp/js/lib/angular/angular-aria.min.js | 2 +-
.../webapp/js/lib/angular/angular-cookies.js | 4 +-
.../js/lib/angular/angular-cookies.min.js | 2 +-
.../webapp/js/lib/angular/angular-loader.js | 9 +-
.../webapp/js/lib/angular/angular-loader.min.js | 9 +-
.../js/lib/angular/angular-loader.min.js.map | 6 +-
.../js/lib/angular/angular-message-format.js | 2 +-
.../lib/angular/angular-message-format.min.js | 2 +-
.../webapp/js/lib/angular/angular-messages.js | 2 +-
.../js/lib/angular/angular-messages.min.js | 2 +-
.../main/webapp/js/lib/angular/angular-mocks.js | 104 +-
.../webapp/js/lib/angular/angular-resource.js | 12 +-
.../js/lib/angular/angular-resource.min.js | 16 +-
.../js/lib/angular/angular-resource.min.js.map | 4 +-
.../main/webapp/js/lib/angular/angular-route.js | 7 +-
.../webapp/js/lib/angular/angular-route.min.js | 2 +-
.../js/lib/angular/angular-route.min.js.map | 2 +-
.../webapp/js/lib/angular/angular-sanitize.js | 4 +-
.../js/lib/angular/angular-sanitize.min.js | 2 +-
.../webapp/js/lib/angular/angular-scenario.js | 1068 +++++++++++------
.../main/webapp/js/lib/angular/angular-touch.js | 2 +-
.../webapp/js/lib/angular/angular-touch.min.js | 2 +-
.../src/main/webapp/js/lib/angular/angular.js | 1070 ++++++++++++------
.../main/webapp/js/lib/angular/angular.min.js | 559 ++++-----
.../webapp/js/lib/angular/angular.min.js.map | 6 +-
.../src/main/webapp/js/lib/angular/errors.json | 2 +-
.../js/lib/angular/i18n/angular-locale_af-na.js | 4 +-
.../js/lib/angular/i18n/angular-locale_af-za.js | 2 +-
.../js/lib/angular/i18n/angular-locale_af.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ak-gh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ak.js | 2 +-
.../js/lib/angular/i18n/angular-locale_am-et.js | 2 +-
.../js/lib/angular/i18n/angular-locale_am.js | 2 +-
.../lib/angular/i18n/angular-locale_ar-001.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-ae.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-bh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-dj.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-dz.js | 10 +-
.../js/lib/angular/i18n/angular-locale_ar-eg.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-eh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-er.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-il.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-iq.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-jo.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-km.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-kw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-lb.js | 6 +-
.../js/lib/angular/i18n/angular-locale_ar-ly.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-ma.js | 10 +-
.../js/lib/angular/i18n/angular-locale_ar-mr.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-om.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-ps.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-qa.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ar-sa.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ar-sd.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-so.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-ss.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ar-sy.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ar-td.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ar-tn.js | 16 +-
.../js/lib/angular/i18n/angular-locale_ar-ye.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ar.js | 2 +-
.../js/lib/angular/i18n/angular-locale_as-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_as.js | 2 +-
.../angular/i18n/angular-locale_az-cyrl-az.js | 2 +-
.../lib/angular/i18n/angular-locale_az-cyrl.js | 4 +-
.../angular/i18n/angular-locale_az-latn-az.js | 2 +-
.../lib/angular/i18n/angular-locale_az-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_az.js | 2 +-
.../js/lib/angular/i18n/angular-locale_be-by.js | 22 +-
.../js/lib/angular/i18n/angular-locale_be.js | 22 +-
.../lib/angular/i18n/angular-locale_bem-zm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_bem.js | 2 +-
.../angular/i18n/angular-locale_bm-latn-ml.js | 2 +-
.../lib/angular/i18n/angular-locale_bm-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_bm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_bo-cn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_bo-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_bo.js | 2 +-
.../lib/angular/i18n/angular-locale_brx-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_brx.js | 2 +-
.../angular/i18n/angular-locale_bs-cyrl-ba.js | 2 +-
.../lib/angular/i18n/angular-locale_bs-cyrl.js | 4 +-
.../angular/i18n/angular-locale_bs-latn-ba.js | 2 +-
.../lib/angular/i18n/angular-locale_bs-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_bs.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ca-ad.js | 24 +-
.../i18n/angular-locale_ca-es-valencia.js | 24 +-
.../js/lib/angular/i18n/angular-locale_ca-es.js | 24 +-
.../js/lib/angular/i18n/angular-locale_ca-fr.js | 24 +-
.../js/lib/angular/i18n/angular-locale_ca-it.js | 24 +-
.../js/lib/angular/i18n/angular-locale_ca.js | 24 +-
.../lib/angular/i18n/angular-locale_cgg-ug.js | 2 +-
.../js/lib/angular/i18n/angular-locale_cgg.js | 2 +-
.../lib/angular/i18n/angular-locale_chr-us.js | 2 +-
.../js/lib/angular/i18n/angular-locale_chr.js | 2 +-
.../angular/i18n/angular-locale_ckb-arab-iq.js | 2 +-
.../angular/i18n/angular-locale_ckb-arab-ir.js | 2 +-
.../lib/angular/i18n/angular-locale_ckb-arab.js | 4 +-
.../lib/angular/i18n/angular-locale_ckb-iq.js | 2 +-
.../lib/angular/i18n/angular-locale_ckb-ir.js | 2 +-
.../angular/i18n/angular-locale_ckb-latn-iq.js | 2 +-
.../lib/angular/i18n/angular-locale_ckb-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ckb.js | 2 +-
.../js/lib/angular/i18n/angular-locale_cs-cz.js | 4 +-
.../js/lib/angular/i18n/angular-locale_cs.js | 4 +-
.../js/lib/angular/i18n/angular-locale_cy-gb.js | 2 +-
.../js/lib/angular/i18n/angular-locale_cy.js | 2 +-
.../js/lib/angular/i18n/angular-locale_da-dk.js | 8 +-
.../js/lib/angular/i18n/angular-locale_da-gl.js | 8 +-
.../js/lib/angular/i18n/angular-locale_da.js | 8 +-
.../lib/angular/i18n/angular-locale_dav-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_dav.js | 2 +-
.../js/lib/angular/i18n/angular-locale_de-at.js | 10 +-
.../js/lib/angular/i18n/angular-locale_de-li.js | 2 +-
.../js/lib/angular/i18n/angular-locale_dz-bt.js | 2 +-
.../js/lib/angular/i18n/angular-locale_dz.js | 2 +-
.../lib/angular/i18n/angular-locale_ebu-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ebu.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ee-gh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ee-tg.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ee.js | 2 +-
.../js/lib/angular/i18n/angular-locale_el-cy.js | 8 +-
.../lib/angular/i18n/angular-locale_en-001.js | 14 +-
.../lib/angular/i18n/angular-locale_en-150.js | 16 +-
.../js/lib/angular/i18n/angular-locale_en-ag.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ai.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-as.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-au.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-bb.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-be.js | 16 +-
.../js/lib/angular/i18n/angular-locale_en-bm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-bs.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-bw.js | 4 +-
.../js/lib/angular/i18n/angular-locale_en-bz.js | 4 +-
.../js/lib/angular/i18n/angular-locale_en-ca.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-cc.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ck.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-cm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-cx.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-dg.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-dm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-er.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-fj.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-fk.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-fm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gb.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-gd.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gg.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gh.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gi.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-gu.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-gy.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-hk.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-ie.js | 10 +-
.../js/lib/angular/i18n/angular-locale_en-im.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-in.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-io.js | 14 +-
.../lib/angular/i18n/angular-locale_en-iso.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-je.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-jm.js | 10 +-
.../js/lib/angular/i18n/angular-locale_en-ke.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ki.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-kn.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ky.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-lc.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-lr.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ls.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mg.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-mo.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mp.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-ms.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mt.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mu.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-mw.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-my.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-na.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-nf.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ng.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-nr.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-nu.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-nz.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-pg.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ph.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-pk.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-pn.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-pr.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-pw.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-rw.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-sb.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-sc.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-sd.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-sg.js | 6 +-
.../js/lib/angular/i18n/angular-locale_en-sh.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-sl.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ss.js | 16 +-
.../js/lib/angular/i18n/angular-locale_en-sx.js | 16 +-
.../js/lib/angular/i18n/angular-locale_en-sz.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-tc.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-tk.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-to.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-tt.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-tv.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-tz.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ug.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-um.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-us.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-vc.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-vg.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-vi.js | 2 +-
.../js/lib/angular/i18n/angular-locale_en-vu.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-ws.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-za.js | 4 +-
.../js/lib/angular/i18n/angular-locale_en-zm.js | 14 +-
.../js/lib/angular/i18n/angular-locale_en-zw.js | 4 +-
.../js/lib/angular/i18n/angular-locale_en.js | 2 +-
.../lib/angular/i18n/angular-locale_eo-001.js | 2 +-
.../js/lib/angular/i18n/angular-locale_eo.js | 2 +-
.../lib/angular/i18n/angular-locale_es-419.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-ar.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-bo.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-cl.js | 8 +-
.../js/lib/angular/i18n/angular-locale_es-co.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-cr.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-cu.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-do.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-ea.js | 6 +-
.../js/lib/angular/i18n/angular-locale_es-ec.js | 12 +-
.../js/lib/angular/i18n/angular-locale_es-es.js | 6 +-
.../js/lib/angular/i18n/angular-locale_es-gq.js | 8 +-
.../js/lib/angular/i18n/angular-locale_es-gt.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-hn.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-ic.js | 6 +-
.../js/lib/angular/i18n/angular-locale_es-mx.js | 30 +-
.../js/lib/angular/i18n/angular-locale_es-ni.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-pa.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-pe.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-ph.js | 6 +-
.../js/lib/angular/i18n/angular-locale_es-pr.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-py.js | 12 +-
.../js/lib/angular/i18n/angular-locale_es-sv.js | 14 +-
.../js/lib/angular/i18n/angular-locale_es-us.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-uy.js | 10 +-
.../js/lib/angular/i18n/angular-locale_es-ve.js | 12 +-
.../js/lib/angular/i18n/angular-locale_es.js | 6 +-
.../js/lib/angular/i18n/angular-locale_fa-af.js | 2 +-
.../js/lib/angular/i18n/angular-locale_fa-ir.js | 2 +-
.../js/lib/angular/i18n/angular-locale_fa.js | 2 +-
.../lib/angular/i18n/angular-locale_fil-ph.js | 2 +-
.../js/lib/angular/i18n/angular-locale_fil.js | 2 +-
.../js/lib/angular/i18n/angular-locale_fr-ca.js | 4 +-
.../lib/angular/i18n/angular-locale_fur-it.js | 2 +-
.../js/lib/angular/i18n/angular-locale_fur.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ga-ie.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ga.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gd-gb.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gd.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gl-es.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gl.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gu-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gu.js | 2 +-
.../lib/angular/i18n/angular-locale_guz-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_guz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gv-im.js | 2 +-
.../js/lib/angular/i18n/angular-locale_gv.js | 2 +-
.../angular/i18n/angular-locale_ha-latn-gh.js | 2 +-
.../angular/i18n/angular-locale_ha-latn-ne.js | 2 +-
.../angular/i18n/angular-locale_ha-latn-ng.js | 2 +-
.../lib/angular/i18n/angular-locale_ha-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ha.js | 2 +-
.../lib/angular/i18n/angular-locale_haw-us.js | 2 +-
.../js/lib/angular/i18n/angular-locale_haw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_he-il.js | 8 +-
.../js/lib/angular/i18n/angular-locale_he.js | 8 +-
.../js/lib/angular/i18n/angular-locale_hi-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_hi.js | 2 +-
.../js/lib/angular/i18n/angular-locale_id-id.js | 2 +-
.../js/lib/angular/i18n/angular-locale_id.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ig-ng.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ig.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ii-cn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ii.js | 2 +-
.../js/lib/angular/i18n/angular-locale_in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_iw.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ja-jp.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ja.js | 2 +-
.../lib/angular/i18n/angular-locale_jgo-cm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_jgo.js | 2 +-
.../lib/angular/i18n/angular-locale_jmc-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_jmc.js | 2 +-
.../lib/angular/i18n/angular-locale_kam-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kam.js | 2 +-
.../lib/angular/i18n/angular-locale_kde-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kde.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ki-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ki.js | 2 +-
.../lib/angular/i18n/angular-locale_kk-cyrl.js | 2 +-
.../lib/angular/i18n/angular-locale_kkj-cm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kkj.js | 2 +-
.../lib/angular/i18n/angular-locale_kln-ke.js | 72 +-
.../js/lib/angular/i18n/angular-locale_kln.js | 72 +-
.../js/lib/angular/i18n/angular-locale_km-kh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_km.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kn-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ko-kp.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ko-kr.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ko.js | 2 +-
.../lib/angular/i18n/angular-locale_kok-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kok.js | 2 +-
.../angular/i18n/angular-locale_ks-arab-in.js | 2 +-
.../lib/angular/i18n/angular-locale_ks-arab.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ks.js | 2 +-
.../js/lib/angular/i18n/angular-locale_kw-gb.js | 46 +-
.../js/lib/angular/i18n/angular-locale_kw.js | 46 +-
.../lib/angular/i18n/angular-locale_ky-cyrl.js | 2 +-
.../lib/angular/i18n/angular-locale_lag-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_lag.js | 2 +-
.../lib/angular/i18n/angular-locale_lkt-us.js | 2 +-
.../js/lib/angular/i18n/angular-locale_lkt.js | 2 +-
.../js/lib/angular/i18n/angular-locale_lv-lv.js | 2 +-
.../js/lib/angular/i18n/angular-locale_lv.js | 2 +-
.../lib/angular/i18n/angular-locale_mas-ke.js | 2 +-
.../lib/angular/i18n/angular-locale_mas-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mas.js | 2 +-
.../lib/angular/i18n/angular-locale_mer-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mer.js | 2 +-
.../lib/angular/i18n/angular-locale_mfe-mu.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mfe.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mg-mg.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mg.js | 2 +-
.../lib/angular/i18n/angular-locale_mgh-mz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mgh.js | 2 +-
.../lib/angular/i18n/angular-locale_mgo-cm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mgo.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mk-mk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ml-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ml.js | 2 +-
.../angular/i18n/angular-locale_mn-cyrl-mn.js | 2 +-
.../lib/angular/i18n/angular-locale_mn-cyrl.js | 4 +-
.../js/lib/angular/i18n/angular-locale_mn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mr-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mr.js | 2 +-
.../angular/i18n/angular-locale_ms-latn-bn.js | 2 +-
.../angular/i18n/angular-locale_ms-latn-my.js | 2 +-
.../angular/i18n/angular-locale_ms-latn-sg.js | 2 +-
.../lib/angular/i18n/angular-locale_ms-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ms.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mt-mt.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mt.js | 2 +-
.../lib/angular/i18n/angular-locale_mua-cm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_mua.js | 2 +-
.../js/lib/angular/i18n/angular-locale_my-mm.js | 4 +-
.../js/lib/angular/i18n/angular-locale_my.js | 4 +-
.../lib/angular/i18n/angular-locale_naq-na.js | 2 +-
.../js/lib/angular/i18n/angular-locale_naq.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nb-no.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nb-sj.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nb.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nd-zw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nd.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ne-in.js | 24 +-
.../js/lib/angular/i18n/angular-locale_ne-np.js | 10 +-
.../js/lib/angular/i18n/angular-locale_ne.js | 10 +-
.../js/lib/angular/i18n/angular-locale_nl-aw.js | 4 +-
.../js/lib/angular/i18n/angular-locale_nl-be.js | 4 +-
.../js/lib/angular/i18n/angular-locale_nl-bq.js | 4 +-
.../js/lib/angular/i18n/angular-locale_nl-cw.js | 6 +-
.../js/lib/angular/i18n/angular-locale_nl-nl.js | 4 +-
.../js/lib/angular/i18n/angular-locale_nl-sr.js | 4 +-
.../js/lib/angular/i18n/angular-locale_nl-sx.js | 6 +-
.../js/lib/angular/i18n/angular-locale_nl.js | 4 +-
.../lib/angular/i18n/angular-locale_nnh-cm.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nnh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_no-no.js | 2 +-
.../js/lib/angular/i18n/angular-locale_no.js | 2 +-
.../lib/angular/i18n/angular-locale_nus-sd.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nus.js | 2 +-
.../lib/angular/i18n/angular-locale_nyn-ug.js | 2 +-
.../js/lib/angular/i18n/angular-locale_nyn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_om-et.js | 2 +-
.../js/lib/angular/i18n/angular-locale_om-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_om.js | 2 +-
.../js/lib/angular/i18n/angular-locale_or-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_or.js | 2 +-
.../js/lib/angular/i18n/angular-locale_os-ge.js | 2 +-
.../js/lib/angular/i18n/angular-locale_os-ru.js | 2 +-
.../js/lib/angular/i18n/angular-locale_os.js | 2 +-
.../angular/i18n/angular-locale_pa-arab-pk.js | 2 +-
.../lib/angular/i18n/angular-locale_pa-arab.js | 2 +-
.../angular/i18n/angular-locale_pa-guru-in.js | 2 +-
.../lib/angular/i18n/angular-locale_pa-guru.js | 4 +-
.../js/lib/angular/i18n/angular-locale_pa.js | 2 +-
.../js/lib/angular/i18n/angular-locale_pl-pl.js | 4 +-
.../js/lib/angular/i18n/angular-locale_pl.js | 4 +-
.../js/lib/angular/i18n/angular-locale_pt-br.js | 2 +-
.../js/lib/angular/i18n/angular-locale_pt.js | 2 +-
.../js/lib/angular/i18n/angular-locale_qu-bo.js | 2 +-
.../js/lib/angular/i18n/angular-locale_qu-ec.js | 2 +-
.../js/lib/angular/i18n/angular-locale_qu-pe.js | 2 +-
.../js/lib/angular/i18n/angular-locale_qu.js | 2 +-
.../lib/angular/i18n/angular-locale_rof-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_rof.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ru-ua.js | 6 +-
.../js/lib/angular/i18n/angular-locale_rw-rw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_rw.js | 2 +-
.../lib/angular/i18n/angular-locale_sah-ru.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sah.js | 2 +-
.../lib/angular/i18n/angular-locale_saq-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_saq.js | 2 +-
.../lib/angular/i18n/angular-locale_shi-latn.js | 2 +-
.../lib/angular/i18n/angular-locale_shi-tfng.js | 2 +-
.../js/lib/angular/i18n/angular-locale_si-lk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_si.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sl-si.js | 8 +-
.../js/lib/angular/i18n/angular-locale_sl.js | 8 +-
.../lib/angular/i18n/angular-locale_smn-fi.js | 2 +-
.../js/lib/angular/i18n/angular-locale_smn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sn-zw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sn.js | 2 +-
.../js/lib/angular/i18n/angular-locale_so-dj.js | 2 +-
.../js/lib/angular/i18n/angular-locale_so-et.js | 2 +-
.../js/lib/angular/i18n/angular-locale_so-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_so-so.js | 2 +-
.../js/lib/angular/i18n/angular-locale_so.js | 2 +-
.../angular/i18n/angular-locale_sr-cyrl-ba.js | 16 +-
.../lib/angular/i18n/angular-locale_sr-cyrl.js | 2 +-
.../angular/i18n/angular-locale_sr-latn-ba.js | 16 +-
.../js/lib/angular/i18n/angular-locale_sv-fi.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sw-cd.js | 128 +++
.../js/lib/angular/i18n/angular-locale_sw-ke.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sw-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sw-ug.js | 2 +-
.../js/lib/angular/i18n/angular-locale_sw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ta-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ta-lk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ta-my.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ta-sg.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ta.js | 2 +-
.../js/lib/angular/i18n/angular-locale_te-in.js | 2 +-
.../js/lib/angular/i18n/angular-locale_te.js | 2 +-
.../lib/angular/i18n/angular-locale_teo-ke.js | 2 +-
.../lib/angular/i18n/angular-locale_teo-ug.js | 2 +-
.../js/lib/angular/i18n/angular-locale_teo.js | 2 +-
.../js/lib/angular/i18n/angular-locale_th-th.js | 2 +-
.../js/lib/angular/i18n/angular-locale_th.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ti-er.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ti-et.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ti.js | 2 +-
.../js/lib/angular/i18n/angular-locale_tl.js | 2 +-
.../js/lib/angular/i18n/angular-locale_to-to.js | 2 +-
.../js/lib/angular/i18n/angular-locale_to.js | 2 +-
.../lib/angular/i18n/angular-locale_tzm-latn.js | 2 +-
.../angular/i18n/angular-locale_ug-arab-cn.js | 2 +-
.../lib/angular/i18n/angular-locale_ug-arab.js | 4 +-
.../js/lib/angular/i18n/angular-locale_ug.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ur-in.js | 8 +-
.../js/lib/angular/i18n/angular-locale_ur-pk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_ur.js | 2 +-
.../angular/i18n/angular-locale_uz-cyrl-uz.js | 2 +-
.../lib/angular/i18n/angular-locale_uz-cyrl.js | 4 +-
.../angular/i18n/angular-locale_uz-latn-uz.js | 2 +-
.../lib/angular/i18n/angular-locale_uz-latn.js | 4 +-
.../js/lib/angular/i18n/angular-locale_uz.js | 2 +-
.../angular/i18n/angular-locale_vai-latn-lr.js | 2 +-
.../lib/angular/i18n/angular-locale_vai-latn.js | 4 +-
.../angular/i18n/angular-locale_vai-vaii-lr.js | 2 +-
.../lib/angular/i18n/angular-locale_vai-vaii.js | 4 +-
.../js/lib/angular/i18n/angular-locale_vai.js | 2 +-
.../lib/angular/i18n/angular-locale_vun-tz.js | 2 +-
.../js/lib/angular/i18n/angular-locale_vun.js | 2 +-
.../lib/angular/i18n/angular-locale_wae-ch.js | 2 +-
.../js/lib/angular/i18n/angular-locale_wae.js | 2 +-
.../lib/angular/i18n/angular-locale_yi-001.js | 2 +-
.../js/lib/angular/i18n/angular-locale_yi.js | 2 +-
.../js/lib/angular/i18n/angular-locale_yo-bj.js | 2 +-
.../js/lib/angular/i18n/angular-locale_yo-ng.js | 2 +-
.../js/lib/angular/i18n/angular-locale_yo.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zh-cn.js | 2 +-
.../angular/i18n/angular-locale_zh-hans-cn.js | 2 +-
.../angular/i18n/angular-locale_zh-hans-hk.js | 2 +-
.../angular/i18n/angular-locale_zh-hans-mo.js | 2 +-
.../angular/i18n/angular-locale_zh-hans-sg.js | 6 +-
.../lib/angular/i18n/angular-locale_zh-hans.js | 4 +-
.../angular/i18n/angular-locale_zh-hant-hk.js | 2 +-
.../angular/i18n/angular-locale_zh-hant-mo.js | 10 +-
.../angular/i18n/angular-locale_zh-hant-tw.js | 2 +-
.../lib/angular/i18n/angular-locale_zh-hant.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zh-hk.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zh-tw.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zh.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zu-za.js | 2 +-
.../js/lib/angular/i18n/angular-locale_zu.js | 2 +-
.../src/main/webapp/js/lib/angular/version.json | 2 +-
.../src/main/webapp/js/lib/angular/version.txt | 2 +-
.../src/main/webapp/js/services/DataService.js | 33 +-
.../org/apache/struts2/util/ContainUtil.java | 4 +-
.../apache/struts2/util/ContainUtilTest.java | 30 +-
.../struts2/ConventionPluginResourceLoader.java | 29 +
.../apache/struts2/StrutsJUnit4TestCase.java | 7 +-
.../org/apache/struts2/StrutsRestTestCase.java | 131 +++
.../rest/DefaultContentTypeHandlerManager.java | 15 +-
515 files changed, 4066 insertions(+), 2918 deletions(-)
----------------------------------------------------------------------
[5/8] struts git commit: [maven-release-plugin] prepare for next
development iteration
Posted by lu...@apache.org.
[maven-release-plugin] prepare for next development iteration
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bfe51fcb
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bfe51fcb
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bfe51fcb
Branch: refs/heads/master
Commit: bfe51fcb7f536feae4ad24671fe319d9c5d9a38d
Parents: 7a98631
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Sep 22 07:49:39 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Sep 22 07:49:39 2015 +0200
----------------------------------------------------------------------
apps/blank/pom.xml | 2 +-
apps/jboss-blank/pom.xml | 2 +-
apps/mailreader/pom.xml | 2 +-
apps/pom.xml | 2 +-
apps/portlet/pom.xml | 2 +-
apps/rest-showcase/pom.xml | 4 ++--
apps/showcase/pom.xml | 2 +-
archetypes/pom.xml | 2 +-
archetypes/struts2-archetype-angularjs/pom.xml | 2 +-
archetypes/struts2-archetype-blank/pom.xml | 2 +-
archetypes/struts2-archetype-convention/pom.xml | 2 +-
archetypes/struts2-archetype-dbportlet/pom.xml | 2 +-
archetypes/struts2-archetype-plugin/pom.xml | 2 +-
archetypes/struts2-archetype-portlet/pom.xml | 2 +-
archetypes/struts2-archetype-starter/pom.xml | 2 +-
assembly/pom.xml | 2 +-
bom/pom.xml | 6 +++---
bundles/admin/pom.xml | 2 +-
bundles/demo/pom.xml | 2 +-
bundles/pom.xml | 2 +-
core/pom.xml | 2 +-
plugins/cdi/pom.xml | 2 +-
plugins/codebehind/pom.xml | 2 +-
plugins/config-browser/pom.xml | 2 +-
plugins/convention/pom.xml | 2 +-
plugins/dojo/pom.xml | 2 +-
plugins/dwr/pom.xml | 2 +-
plugins/embeddedjsp/pom.xml | 2 +-
plugins/gxp/pom.xml | 2 +-
plugins/jasperreports/pom.xml | 2 +-
plugins/java8-support/pom.xml | 2 +-
plugins/javatemplates/pom.xml | 2 +-
plugins/jfreechart/pom.xml | 2 +-
plugins/jsf/pom.xml | 2 +-
plugins/json/pom.xml | 2 +-
plugins/junit/pom.xml | 2 +-
plugins/osgi/pom.xml | 2 +-
plugins/oval/pom.xml | 2 +-
plugins/pell-multipart/pom.xml | 2 +-
plugins/plexus/pom.xml | 2 +-
plugins/pom.xml | 2 +-
plugins/portlet-tiles/pom.xml | 2 +-
plugins/portlet/pom.xml | 2 +-
plugins/rest/pom.xml | 2 +-
plugins/sitegraph/pom.xml | 2 +-
plugins/sitemesh/pom.xml | 2 +-
plugins/spring/pom.xml | 2 +-
plugins/struts1/pom.xml | 2 +-
plugins/testng/pom.xml | 2 +-
plugins/tiles/pom.xml | 2 +-
plugins/tiles3/pom.xml | 2 +-
pom.xml | 4 ++--
xwork-core/pom.xml | 2 +-
53 files changed, 57 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 85ff76f..33395d2 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/jboss-blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index 3f29927..626c588 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-jboss-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/mailreader/pom.xml
----------------------------------------------------------------------
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index 3b7e5cf..972d17c 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-mailreader</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/pom.xml
----------------------------------------------------------------------
diff --git a/apps/pom.xml b/apps/pom.xml
index d691694..9149740 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-apps</artifactId>
<packaging>pom</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index 78c7844..246e904 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/rest-showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml
index e50836f..d84b405 100644
--- a/apps/rest-showcase/pom.xml
+++ b/apps/rest-showcase/pom.xml
@@ -26,12 +26,12 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-rest-showcase</artifactId>
<packaging>war</packaging>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
<name>Struts 2 Rest Showcase Webapp</name>
<description>Struts 2 Rest Showcase Example</description>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/apps/showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index da417be..1158488 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-showcase</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/pom.xml b/archetypes/pom.xml
index 91bdc60..3a6c435 100644
--- a/archetypes/pom.xml
+++ b/archetypes/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-archetypes</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-angularjs/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-angularjs/pom.xml b/archetypes/struts2-archetype-angularjs/pom.xml
index 1be0f12..d361064 100644
--- a/archetypes/struts2-archetype-angularjs/pom.xml
+++ b/archetypes/struts2-archetype-angularjs/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-blank/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-blank/pom.xml b/archetypes/struts2-archetype-blank/pom.xml
index 77d00a2..1e76462 100644
--- a/archetypes/struts2-archetype-blank/pom.xml
+++ b/archetypes/struts2-archetype-blank/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-convention/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-convention/pom.xml b/archetypes/struts2-archetype-convention/pom.xml
index 6dc023e..cd85f24 100644
--- a/archetypes/struts2-archetype-convention/pom.xml
+++ b/archetypes/struts2-archetype-convention/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-dbportlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-dbportlet/pom.xml b/archetypes/struts2-archetype-dbportlet/pom.xml
index 1a45a6f..eeb4322 100644
--- a/archetypes/struts2-archetype-dbportlet/pom.xml
+++ b/archetypes/struts2-archetype-dbportlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-plugin/pom.xml b/archetypes/struts2-archetype-plugin/pom.xml
index 6ec6a2a..3be06a3 100644
--- a/archetypes/struts2-archetype-plugin/pom.xml
+++ b/archetypes/struts2-archetype-plugin/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-portlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-portlet/pom.xml b/archetypes/struts2-archetype-portlet/pom.xml
index 9f644e1..9704cb3 100644
--- a/archetypes/struts2-archetype-portlet/pom.xml
+++ b/archetypes/struts2-archetype-portlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/archetypes/struts2-archetype-starter/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-starter/pom.xml b/archetypes/struts2-archetype-starter/pom.xml
index bd122cf..6b01666 100644
--- a/archetypes/struts2-archetype-starter/pom.xml
+++ b/archetypes/struts2-archetype-starter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/assembly/pom.xml
----------------------------------------------------------------------
diff --git a/assembly/pom.xml b/assembly/pom.xml
index caf2d17..831c48f 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-assembly</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/bom/pom.xml
----------------------------------------------------------------------
diff --git a/bom/pom.xml b/bom/pom.xml
index 0b58195..9ac6160 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -10,7 +10,7 @@
</parent>
<artifactId>struts2-bom</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Struts 2 Bill of Materials</name>
@@ -25,7 +25,7 @@
</licenses>
<properties>
- <struts-version.version>2.3.24.1</struts-version.version>
+ <struts-version.version>2.3-SNAPSHOT</struts-version.version>
</properties>
<build>
@@ -197,6 +197,6 @@
</dependencyManagement>
<scm>
- <tag>STRUTS_2_3_24_1</tag>
+ <tag>STRUTS_2_3_24</tag>
</scm>
</project>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/bundles/admin/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/admin/pom.xml b/bundles/admin/pom.xml
index 57f6255..5546b82 100644
--- a/bundles/admin/pom.xml
+++ b/bundles/admin/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-admin-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/bundles/demo/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/demo/pom.xml b/bundles/demo/pom.xml
index f67cb0a..6f6f2ee 100644
--- a/bundles/demo/pom.xml
+++ b/bundles/demo/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-demo-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/bundles/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/pom.xml b/bundles/pom.xml
index b92b4cc..5ccbb61 100755
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-bundles</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 6fdd00d..3239240c 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-core</artifactId>
<packaging>jar</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/cdi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/cdi/pom.xml b/plugins/cdi/pom.xml
index 88cc976..5a90af8 100644
--- a/plugins/cdi/pom.xml
+++ b/plugins/cdi/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-cdi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/codebehind/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/codebehind/pom.xml b/plugins/codebehind/pom.xml
index 665af07..68e12d1 100644
--- a/plugins/codebehind/pom.xml
+++ b/plugins/codebehind/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-codebehind-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/config-browser/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/config-browser/pom.xml b/plugins/config-browser/pom.xml
index c804d5c..fbf6a4a 100644
--- a/plugins/config-browser/pom.xml
+++ b/plugins/config-browser/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-config-browser-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/convention/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/convention/pom.xml b/plugins/convention/pom.xml
index 35c452f..50a23ae 100644
--- a/plugins/convention/pom.xml
+++ b/plugins/convention/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-convention-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/dojo/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dojo/pom.xml b/plugins/dojo/pom.xml
index 4333e94..df50116 100644
--- a/plugins/dojo/pom.xml
+++ b/plugins/dojo/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>struts2-plugins</artifactId>
<groupId>org.apache.struts</groupId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/dwr/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dwr/pom.xml b/plugins/dwr/pom.xml
index 788c554..23d8876 100644
--- a/plugins/dwr/pom.xml
+++ b/plugins/dwr/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-dwr-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/embeddedjsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/pom.xml b/plugins/embeddedjsp/pom.xml
index b080423..b39bc8b 100644
--- a/plugins/embeddedjsp/pom.xml
+++ b/plugins/embeddedjsp/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-embeddedjsp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/gxp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/gxp/pom.xml b/plugins/gxp/pom.xml
index 4747b72..f2f819b 100644
--- a/plugins/gxp/pom.xml
+++ b/plugins/gxp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-gxp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/jasperreports/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml
index 537a5d5..25c3a1e 100644
--- a/plugins/jasperreports/pom.xml
+++ b/plugins/jasperreports/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-jasperreports-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/java8-support/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/java8-support/pom.xml b/plugins/java8-support/pom.xml
index dfb1763..6ad1321 100644
--- a/plugins/java8-support/pom.xml
+++ b/plugins/java8-support/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-java8-support-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/javatemplates/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/javatemplates/pom.xml b/plugins/javatemplates/pom.xml
index dd1f23c..4122380 100644
--- a/plugins/javatemplates/pom.xml
+++ b/plugins/javatemplates/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-javatemplates-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/jfreechart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index 96ca366..4bbe081 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-jfreechart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/jsf/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jsf/pom.xml b/plugins/jsf/pom.xml
index 1c4bb9a..c260485 100644
--- a/plugins/jsf/pom.xml
+++ b/plugins/jsf/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-jsf-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/json/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/json/pom.xml b/plugins/json/pom.xml
index 4f28759..90856a5 100644
--- a/plugins/json/pom.xml
+++ b/plugins/json/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-json-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/junit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/junit/pom.xml b/plugins/junit/pom.xml
index dc2d0bb..19dfd2e 100644
--- a/plugins/junit/pom.xml
+++ b/plugins/junit/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-junit-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/osgi/pom.xml b/plugins/osgi/pom.xml
index f2bde5c..815a527 100644
--- a/plugins/osgi/pom.xml
+++ b/plugins/osgi/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/oval/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/oval/pom.xml b/plugins/oval/pom.xml
index 1807b21..3e71692 100644
--- a/plugins/oval/pom.xml
+++ b/plugins/oval/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-oval-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/pell-multipart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml
index 6194dce..5bab519 100644
--- a/plugins/pell-multipart/pom.xml
+++ b/plugins/pell-multipart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-pell-multipart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/plexus/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/plexus/pom.xml b/plugins/plexus/pom.xml
index 7db60bb..2aa1664 100644
--- a/plugins/plexus/pom.xml
+++ b/plugins/plexus/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-plexus-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 2381d32..7f178ea 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-plugins</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/portlet-tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet-tiles/pom.xml b/plugins/portlet-tiles/pom.xml
index e499714..5e1709a 100644
--- a/plugins/portlet-tiles/pom.xml
+++ b/plugins/portlet-tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet/pom.xml b/plugins/portlet/pom.xml
index 47da660..33f578d 100644
--- a/plugins/portlet/pom.xml
+++ b/plugins/portlet/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/rest/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/rest/pom.xml b/plugins/rest/pom.xml
index 82b123c..3b723a2 100644
--- a/plugins/rest/pom.xml
+++ b/plugins/rest/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-rest-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/sitegraph/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index 9b222d2..36421e6 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-sitegraph-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/sitemesh/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitemesh/pom.xml b/plugins/sitemesh/pom.xml
index b447c76..0cf177f 100644
--- a/plugins/sitemesh/pom.xml
+++ b/plugins/sitemesh/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-sitemesh-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/spring/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml
index 56fdd94..e362622 100644
--- a/plugins/spring/pom.xml
+++ b/plugins/spring/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-spring-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/struts1/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/struts1/pom.xml b/plugins/struts1/pom.xml
index fa551d8..c5efeb9 100644
--- a/plugins/struts1/pom.xml
+++ b/plugins/struts1/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-struts1-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/testng/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/testng/pom.xml b/plugins/testng/pom.xml
index e157607..62ce0b8 100644
--- a/plugins/testng/pom.xml
+++ b/plugins/testng/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-testng-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 703c2b5..7e80f26 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/plugins/tiles3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles3/pom.xml b/plugins/tiles3/pom.xml
index 5de555c..c70a23c 100644
--- a/plugins/tiles3/pom.xml
+++ b/plugins/tiles3/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<artifactId>struts2-tiles3-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 66f016e..a153e20 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Struts 2</name>
<url>http://struts.apache.org/</url>
@@ -31,7 +31,7 @@
<connection>scm:git:git://git.apache.org/struts.git</connection>
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/struts.git</developerConnection>
<url>http://git.apache.org/struts.git</url>
- <tag>STRUTS_2_3_24_1</tag>
+ <tag>STRUTS_2_3_24</tag>
</scm>
<issueManagement>
http://git-wip-us.apache.org/repos/asf/struts/blob/bfe51fcb/xwork-core/pom.xml
----------------------------------------------------------------------
diff --git a/xwork-core/pom.xml b/xwork-core/pom.xml
index 0d6adbf..dc0d654 100644
--- a/xwork-core/pom.xml
+++ b/xwork-core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1</version>
+ <version>2.3-SNAPSHOT</version>
</parent>
<groupId>org.apache.struts.xwork</groupId>
[6/8] struts git commit: Merges security fixes from 2.3.24.1
Posted by lu...@apache.org.
Merges security fixes from 2.3.24.1
Conflicts:
apps/blank/pom.xml
apps/jboss-blank/pom.xml
apps/mailreader/pom.xml
apps/pom.xml
apps/portlet/pom.xml
apps/rest-showcase/pom.xml
apps/showcase/pom.xml
archetypes/pom.xml
archetypes/struts2-archetype-angularjs/pom.xml
archetypes/struts2-archetype-blank/pom.xml
archetypes/struts2-archetype-convention/pom.xml
archetypes/struts2-archetype-dbportlet/pom.xml
archetypes/struts2-archetype-plugin/pom.xml
archetypes/struts2-archetype-portlet/pom.xml
archetypes/struts2-archetype-starter/pom.xml
assembly/pom.xml
bom/pom.xml
bundles/admin/pom.xml
bundles/demo/pom.xml
bundles/pom.xml
core/pom.xml
plugins/bean-validation/pom.xml
plugins/cdi/pom.xml
plugins/codebehind/pom.xml
plugins/config-browser/pom.xml
plugins/convention/pom.xml
plugins/dojo/pom.xml
plugins/dwr/pom.xml
plugins/embeddedjsp/pom.xml
plugins/gxp/pom.xml
plugins/jasperreports/pom.xml
plugins/java8-support/pom.xml
plugins/javatemplates/pom.xml
plugins/jfreechart/pom.xml
plugins/json/pom.xml
plugins/junit/pom.xml
plugins/osgi/pom.xml
plugins/oval/pom.xml
plugins/pell-multipart/pom.xml
plugins/plexus/pom.xml
plugins/pom.xml
plugins/portlet-tiles/pom.xml
plugins/portlet/pom.xml
plugins/rest/pom.xml
plugins/sitegraph/pom.xml
plugins/sitemesh/pom.xml
plugins/spring/pom.xml
plugins/struts1/pom.xml
plugins/testng/pom.xml
plugins/tiles/pom.xml
plugins/tiles3/pom.xml
pom.xml
xwork-core/pom.xml
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/dc270c2e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/dc270c2e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/dc270c2e
Branch: refs/heads/master
Commit: dc270c2e09f944c9ed8936cb0a74cd2dfadacf81
Parents: 0fac539 bfe51fc
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Sep 23 08:42:01 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Sep 23 08:42:01 2015 +0200
----------------------------------------------------------------------
.../DefaultExcludedPatternsChecker.java | 2 +-
.../interceptor/ParametersInterceptorTest.java | 6 ++--
.../DefaultExcludedPatternsCheckerTest.java | 35 ++++++++++++++++++++
3 files changed, 40 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/dc270c2e/core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
----------------------------------------------------------------------
diff --cc core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
index f6d48cd,0000000..13e091e
mode 100644,000000..100644
--- a/core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
+++ b/core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
@@@ -1,77 -1,0 +1,77 @@@
+package com.opensymphony.xwork2.security;
+
+import com.opensymphony.xwork2.XWorkConstants;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.TextParseUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+public class DefaultExcludedPatternsChecker implements ExcludedPatternsChecker {
+
+ private static final Logger LOG = LogManager.getLogger(DefaultExcludedPatternsChecker.class);
+
+ public static final String[] EXCLUDED_PATTERNS = {
- "(^|.*#)(dojo|struts|session|request|application|servlet(Request|Response)|parameters|context|_memberAccess)(\\.|\\[).*",
++ "(^|\\%\\{)((#?)(top(\\.|\\['|\\[\")|\\[\\d\\]\\.)?)(dojo|struts|session|request|response|application|servlet(Request|Response|Context)|parameters|context|_memberAccess)(\\.|\\[).*",
+ "^(action|method):.*"
+ };
+
+ private Set<Pattern> excludedPatterns;
+
+ public DefaultExcludedPatternsChecker() {
+ setExcludedPatterns(EXCLUDED_PATTERNS);
+ }
+
+ @Inject(value = XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS, required = false)
+ public void setOverrideExcludePatterns(String excludePatterns) {
+ LOG.warn("Overriding excluded patterns [{}] with [{}], be aware that this affects all instances and safety of your application!",
+ XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS, excludePatterns);
+ excludedPatterns = new HashSet<Pattern>();
+ for (String pattern : TextParseUtil.commaDelimitedStringToSet(excludePatterns)) {
+ excludedPatterns.add(Pattern.compile(pattern, Pattern.CASE_INSENSITIVE));
+ }
+ }
+
+ @Inject(value = XWorkConstants.ADDITIONAL_EXCLUDED_PATTERNS, required = false)
+ public void setAdditionalExcludePatterns(String excludePatterns) {
+ LOG.debug("Adding additional global patterns [{}] to excluded patterns!", excludePatterns);
+ for (String pattern : TextParseUtil.commaDelimitedStringToSet(excludePatterns)) {
+ excludedPatterns.add(Pattern.compile(pattern, Pattern.CASE_INSENSITIVE));
+ }
+ }
+
+ public void setExcludedPatterns(String commaDelimitedPatterns) {
+ setExcludedPatterns(TextParseUtil.commaDelimitedStringToSet(commaDelimitedPatterns));
+ }
+
+ public void setExcludedPatterns(String[] patterns) {
+ setExcludedPatterns(new HashSet<>(Arrays.asList(patterns)));
+ }
+
+ public void setExcludedPatterns(Set<String> patterns) {
+ LOG.trace("Sets excluded patterns [{}]", patterns);
+ excludedPatterns = new HashSet<>(patterns.size());
+ for (String pattern : patterns) {
+ excludedPatterns.add(Pattern.compile(pattern, Pattern.CASE_INSENSITIVE));
+ }
+ }
+
+ public IsExcluded isExcluded(String value) {
+ for (Pattern excludedPattern : excludedPatterns) {
+ if (excludedPattern.matcher(value).matches()) {
+ LOG.trace("[{}] matches excluded pattern [{}]", value, excludedPattern);
+ return IsExcluded.yes(excludedPattern);
+ }
+ }
+ return IsExcluded.no(excludedPatterns);
+ }
+
+ public Set<Pattern> getExcludedPatterns() {
+ return excludedPatterns;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/dc270c2e/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index abf0f72,0000000..225d053
mode 100644,000000..100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@@ -1,856 -1,0 +1,858 @@@
+/*
+ * Copyright 2002-2006,2009 The Apache Software Foundation.
+ *
+ * Licensed 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 com.opensymphony.xwork2.interceptor;
+
+import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.config.entities.ActionConfig;
+import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
+import com.opensymphony.xwork2.mock.MockActionInvocation;
+import com.opensymphony.xwork2.ognl.OgnlValueStack;
+import com.opensymphony.xwork2.ognl.OgnlValueStackFactory;
+import com.opensymphony.xwork2.ognl.SecurityMemberAccess;
+import com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor;
+import com.opensymphony.xwork2.util.CompoundRoot;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.ValueStackFactory;
+import junit.framework.Assert;
+import ognl.OgnlContext;
+import ognl.PropertyAccessor;
+
+import java.io.File;
+import java.util.*;
+
+
+/**
+ * Unit test for {@link ParametersInterceptor}.
+ *
+ * @author Jason Carreira
+ */
+public class ParametersInterceptorTest extends XWorkTestCase {
+
+ public void testParameterNameAware() {
+ ParametersInterceptor pi = createParametersInterceptor();
+ final Map<String, Object> actual = injectValueStackFactory(pi);
+ ValueStack stack = createStubValueStack(actual);
+ final Map<String, Object> expected = new HashMap<String, Object>() {
+ {
+ put("fooKey", "fooValue");
+ put("barKey", "barValue");
+ }
+ };
+ Object a = new ParameterNameAware() {
+ public boolean acceptableParameterName(String parameterName) {
+ return expected.containsKey(parameterName);
+ }
+ };
+ final Map<String, Object> parameters = new HashMap<String, Object>() {
+ {
+ put("fooKey", "fooValue");
+ put("barKey", "barValue");
+ put("error-key", "error");
+ put("error key", "error");
+ put("error:key", "error");
+ put("error+key", "error");
+ put("test%test", "test%test");
+ }
+ };
+ pi.setParameters(a, stack, parameters);
+ assertEquals(expected, actual);
+ }
+
+ public void testInsecureParameters() throws Exception {
+ // given
+ loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+ final Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put("name", "(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new " +
+ "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
+ "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
+ put("top['name'](0)", "true");
+ }
+ };
+
+ ParametersInterceptor pi = new ParametersInterceptor();
+ container.inject(pi);
+ ValueStack vs = ActionContext.getContext().getValueStack();
+
+ // when
+ ValidateAction action = new ValidateAction();
+ pi.setParameters(action, vs, params);
+
+ // then
- assertEquals(1, action.getActionMessages().size());
++ assertEquals(2, action.getActionMessages().size());
+
+ String msg1 = action.getActionMessage(0);
++ String msg2 = action.getActionMessage(1);
+
- assertTrue(msg1.contains("Error setting expression 'top['name'](0)' with value 'true'"));
++ assertEquals("Error setting expression 'name' with value '(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), @java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)'", msg1);
++ assertEquals("Error setting expression 'top['name'](0)' with value 'true'", msg2);
+ assertNull(action.getName());
+ }
+
+ public void testClassPollutionBlockedByPattern() throws Exception {
+ // given
+ final String pollution1 = "class.classLoader.jarPath";
+ final String pollution2 = "model.class.classLoader.jarPath";
+
+ loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+ final Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put(pollution1, "bad");
+ put(pollution2, "very bad");
+ }
+ };
+
+ final Map<String, Boolean> excluded = new HashMap<>();
+ ParametersInterceptor pi = new ParametersInterceptor() {
+
+ @Override
+ protected boolean isExcluded(String paramName) {
+ boolean result = super.isExcluded(paramName);
+ excluded.put(paramName, result);
+ return result;
+ }
+
+ };
+
+ container.inject(pi);
+ ValueStack vs = ActionContext.getContext().getValueStack();
+
+ // when
+ ValidateAction action = new ValidateAction();
+ pi.setParameters(action, vs, params);
+
+ // then
+ assertEquals(0, action.getActionMessages().size());
+ assertTrue(excluded.get(pollution1));
+ assertTrue(excluded.get(pollution2));
+ }
+
+ public void testClassPollutionBlockedByOgnl() throws Exception {
+ // given
+ final String pollution1 = "class.classLoader.jarPath";
+ final String pollution2 = "model.class.classLoader.jarPath";
+ final String pollution3 = "class.classLoader.defaultAssertionStatus";
+
+ loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-class-param-test.xml"));
+ final Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put(pollution1, "bad");
+ put(pollution2, "very bad");
+ put(pollution3, true);
+ }
+ };
+
+ final Map<String, Boolean> excluded = new HashMap<>();
+ ParametersInterceptor pi = new ParametersInterceptor() {
+
+ @Override
+ protected boolean isExcluded(String paramName) {
+ boolean result = super.isExcluded(paramName);
+ excluded.put(paramName, result);
+ return result;
+ }
+
+ };
+
+ container.inject(pi);
+ ValueStack vs = ActionContext.getContext().getValueStack();
+
+ // when
+ ValidateAction action = new ValidateAction();
+ pi.setParameters(action, vs, params);
+
+ // then
+ assertEquals(3, action.getActionMessages().size());
+
+ String msg1 = action.getActionMessage(0);
+ String msg2 = action.getActionMessage(1);
+ String msg3 = action.getActionMessage(2);
+
+ assertEquals("Error setting expression 'class.classLoader.defaultAssertionStatus' with value 'true'", msg1);
+ assertEquals("Error setting expression 'class.classLoader.jarPath' with value 'bad'", msg2);
+ assertEquals("Error setting expression 'model.class.classLoader.jarPath' with value 'very bad'", msg3);
+
+ assertFalse(excluded.get(pollution1));
+ assertFalse(excluded.get(pollution2));
+ assertFalse(excluded.get(pollution3));
+ }
+
+ public void testDoesNotAllowMethodInvocations() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("@java.lang.System@exit(1).dummy", "dumb value");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.MODEL_DRIVEN_PARAM_TEST, null, extraContext);
+ assertEquals(Action.SUCCESS, proxy.execute());
+
+ String property = System.getProperty("xwork.security.test");
+ assertNull(property);
+ }
+
+ public void testModelDrivenParameters() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ final String fooVal = "com.opensymphony.xwork2.interceptor.ParametersInterceptorTest.foo";
+ params.put("foo", fooVal);
+
+ final String nameVal = "com.opensymphony.xwork2.interceptor.ParametersInterceptorTest.name";
+ params.put("name", nameVal);
+ params.put("count", "15");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.MODEL_DRIVEN_PARAM_TEST, null, extraContext);
+ assertEquals(Action.SUCCESS, proxy.execute());
+
+ ModelDrivenAction action = (ModelDrivenAction) proxy.getAction();
+ TestBean model = (TestBean) action.getModel();
+ assertEquals(nameVal, model.getName());
+ assertEquals(15, model.getCount());
+ assertEquals(fooVal, action.getFoo());
+ }
+
+ public void testParametersDoesNotAffectSession() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("blah", "This is blah");
+ params.put("#session.foo", "Foo");
+ params.put("\u0023session[\'user\']", "0wn3d");
+ params.put("\\u0023session[\'user\']", "0wn3d");
+ params.put("\u0023session.user2", "0wn3d");
+ params.put("\\u0023session.user2", "0wn3d");
+ params.put("('\u0023'%20%2b%20'session[\'user3\']')(unused)", "0wn3d");
+ params.put("('\\u0023' + 'session[\\'user4\\']')(unused)", "0wn3d");
+ params.put("('\u0023'%2b'session[\'user5\']')(unused)", "0wn3d");
+ params.put("('\\u0023'%2b'session[\'user5\']')(unused)", "0wn3d");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ ValueStack stack = proxy.getInvocation().getStack();
+ HashMap<String, Object> session = new HashMap<>();
+ stack.getContext().put("session", session);
+ proxy.execute();
+ assertEquals("This is blah", ((SimpleAction) proxy.getAction()).getBlah());
+ assertNull(session.get("foo"));
+ assertNull(session.get("user"));
+ assertNull(session.get("user2"));
+ assertNull(session.get("user3"));
+ assertNull(session.get("user4"));
+ assertNull(session.get("user5"));
+ }
+
+ public void testArrayClassPollutionBlockedByPattern() throws Exception {
+ // given
+ final String pollution1 = "model.class.classLoader.jarPath";
+ final String pollution2 = "model['class']['classLoader']['jarPath']";
+ final String pollution3 = "model[\"class\"]['classLoader']['jarPath']";
+ final String pollution4 = "class.classLoader.jarPath";
+ final String pollution5 = "class['classLoader']['jarPath']";
+ final String pollution6 = "class[\"classLoader\"]['jarPath']";
+
+ loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+ final Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put(pollution1, "bad");
+ put(pollution2, "bad");
+ put(pollution3, "bad");
+ put(pollution4, "bad");
+ put(pollution5, "bad");
+ put(pollution6, "bad");
+ }
+ };
+
+ final Map<String, Boolean> excluded = new HashMap<String, Boolean>();
+ ParametersInterceptor pi = new ParametersInterceptor() {
+
+ @Override
+ protected boolean isExcluded(String paramName) {
+ boolean result = super.isExcluded(paramName);
+ excluded.put(paramName, result);
+ return result;
+ }
+
+ };
+
+ container.inject(pi);
+ ValueStack vs = ActionContext.getContext().getValueStack();
+
+ // when
+ ValidateAction action = new ValidateAction();
+ pi.setParameters(action, vs, params);
+
+ // then
+ assertEquals(0, action.getActionMessages().size());
+ assertTrue(excluded.get(pollution1));
+ assertTrue(excluded.get(pollution2));
+ assertTrue(excluded.get(pollution3));
+ assertTrue(excluded.get(pollution4));
+ assertTrue(excluded.get(pollution5));
+ assertTrue(excluded.get(pollution6));
+ }
+
+ public void testAccessToOgnlInternals() throws Exception {
+ // given
+ Map<String, Object> params = new HashMap<>();
+ params.put("blah", "This is blah");
+ params.put("('\\u0023_memberAccess[\\'allowStaticMethodAccess\\']')(meh)", "true");
+ params.put("('(aaa)(('\\u0023context[\\'xwork.MethodAccessor.denyMethodExecution\\']\\u003d\\u0023foo')(\\u0023foo\\u003dnew java.lang.Boolean(\"false\")))", "");
+ params.put("(asdf)(('\\u0023rt.exit(1)')(\\u0023rt\\u003d@java.lang.Runtime@getRuntime()))", "1");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ ValueStack stack = proxy.getInvocation().getStack();
+
+ // when
+ proxy.execute();
+ proxy.getAction();
+
+ //then
+ assertEquals("This is blah", ((SimpleAction) proxy.getAction()).getBlah());
+ boolean allowMethodAccess = ((SecurityMemberAccess) ((OgnlContext) stack.getContext()).getMemberAccess()).getAllowStaticMethodAccess();
+ assertFalse(allowMethodAccess);
+ }
+
+ public void testParameters() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("blah", "This is blah");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ assertEquals("This is blah", ((SimpleAction) proxy.getAction()).getBlah());
+ }
+
+ public void testParametersWithSpacesInTheName() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("theProtectedMap['p0 p1']", "test1");
+ params.put("theProtectedMap['p0p1 ']", "test2");
+ params.put("theProtectedMap[' p0p1 ']", "test3");
+ params.put("theProtectedMap[' p0 p1 ']", "test4");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ Map<String, String> existingMap = ((SimpleAction) proxy.getAction()).getTheProtectedMap();
+ assertEquals(0, existingMap.size());
+ }
+
+ public void testParametersWithChineseInTheName() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("theProtectedMap['名字']", "test1");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ Map<String, String> existingMap = ((SimpleAction) proxy.getAction()).getTheProtectedMap();
+ assertEquals(1, existingMap.size());
+ }
+
+ public void testLargeParameterNameWithDefaultLimit() throws Exception {
+ ParametersInterceptor parametersInterceptor = createParametersInterceptor();
+ doTestParameterNameLengthRestriction(parametersInterceptor, ParametersInterceptor.PARAM_NAME_MAX_LENGTH);
+ }
+
+ public void testLargeParameterNameWithCustomLimit() throws Exception {
+ ParametersInterceptor parametersInterceptor = createParametersInterceptor();
+ int limit = 20;
+ parametersInterceptor.setParamNameMaxLength(limit);
+ doTestParameterNameLengthRestriction(parametersInterceptor, limit);
+ }
+
+ private void doTestParameterNameLengthRestriction(ParametersInterceptor parametersInterceptor,
+ int paramNameMaxLength) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < paramNameMaxLength + 1; i++) {
+ sb.append("x");
+ }
+
+ Map<String, Object> actual = new LinkedHashMap<>();
+ parametersInterceptor.setValueStackFactory(createValueStackFactory(actual));
+ ValueStack stack = createStubValueStack(actual);
+
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put(sb.toString(), "");
+ parameters.put("huuhaa", "");
+
+ Action action = new SimpleAction();
+ parametersInterceptor.setParameters(action, stack, parameters);
+ assertEquals(1, actual.size());
+ }
+
+ public void testExcludedTrickyParameters() throws Exception {
+ Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put("blah", "This is blah");
+ put("name", "try_1");
+ put("(name)", "try_2");
+ put("['name']", "try_3");
+ put("['na' + 'me']", "try_4");
+ put("{name}[0]", "try_5");
+ put("(new string{'name'})[0]", "try_6");
+ put("#{key: 'name'}.key", "try_7");
+
+ }
+ };
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+
+ ActionConfig config = configuration.getRuntimeConfiguration().getActionConfig("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME);
+ ParametersInterceptor pi = (ParametersInterceptor) config.getInterceptors().get(0).getInterceptor();
+ pi.setExcludeParams("name");
+
+ proxy.execute();
+
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ assertNull(action.getName());
+ assertEquals("This is blah", (action).getBlah());
+ }
+
+ public void testAcceptedTrickyParameters() throws Exception {
+ Map<String, Object> params = new HashMap<String, Object>() {
+ {
+ put("blah", "This is blah");
+ put("baz", "123");
+ put("name", "try_1");
+ put("(name)", "try_2");
+ put("['name']", "try_3");
+ put("['na' + 'me']", "try_4");
+ put("{name}[0]", "try_5");
+ put("(new string{'name'})[0]", "try_6");
+ put("#{key: 'name'}.key", "try_7");
+ }
+ };
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+
+ ActionConfig config = configuration.getRuntimeConfiguration().getActionConfig("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME);
+ ParametersInterceptor pi = (ParametersInterceptor) config.getInterceptors().get(0).getInterceptor();
+ pi.setAcceptParamNames("blah, baz");
+
+ proxy.execute();
+
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ assertNull("try_1", action.getName());
+ assertEquals("This is blah", (action).getBlah());
+ assertEquals(123, action.getBaz());
+ }
+
+
+ public void testParametersNotAccessPrivateVariables() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("protectedMap.foo", "This is blah");
+ params.put("theProtectedMap.boo", "This is blah");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ assertEquals(1, action.getTheProtectedMap().size());
+ assertNotNull(action.getTheProtectedMap().get("boo"));
+ assertNull(action.getTheProtectedMap().get("foo"));
+ }
+
+ public void testParametersNotAccessProtectedMethods() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("theSemiProtectedMap.foo", "This is blah");
+ params.put("theProtectedMap.boo", "This is blah");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ assertEquals(1, action.getTheProtectedMap().size());
+ assertNotNull(action.getTheProtectedMap().get("boo"));
+ assertNull(action.getTheProtectedMap().get("foo"));
+ }
+
+ /**
+ * This test demonstrates a vulnerability which allows to execute arbitrary code.
+ * For further details and explanations see https://cwiki.apache.org/confluence/display/WW/S2-009
+ *
+ * @throws Exception
+ */
+ public void testEvalExpressionAsParameterName() throws Exception {
+ Map<String, Object> params = new HashMap<>();
+ params.put("blah", "(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new " +
+ "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
+ "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
+ params.put("top['blah'](0)", "true");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ @SuppressWarnings("unused")
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ File pwn = new File("/tmp/PWNAGE");
+ boolean dirExists = pwn.exists();
+ @SuppressWarnings("unused")
+ boolean deleted = pwn.delete();
+ Assert.assertFalse("Remote exploit: The PWN folder has been created", dirExists);
+ }
+
+ public void testParametersOverwriteField() throws Exception {
+ Map<String, Object> params = new LinkedHashMap<>();
+ params.put("existingMap.boo", "This is blah");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ SimpleAction action = (SimpleAction) proxy.getAction();
+ assertEquals(1, action.getTheExistingMap().size());
+ assertNotNull(action.getTheExistingMap().get("boo"));
+ assertNull(action.getTheExistingMap().get("existingKey"));
+ }
+
+ public void testNonexistentParametersGetLoggedInDevMode() throws Exception {
+ XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+ container.inject(provider);
+ loadConfigurationProviders(provider,
+ new MockConfigurationProvider(Collections.singletonMap("devMode", "true")));
+ Map<String, Object> params = new HashMap<>();
+ params.put("not_a_property", "There is no action property named like this");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionConfig config = configuration.getRuntimeConfiguration().getActionConfig("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME);
+ container.inject(config.getInterceptors().get(0).getInterceptor());
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ final String actionMessage = "" + ((SimpleAction) proxy.getAction()).getActionMessages().toArray()[0];
+ assertTrue(actionMessage.contains("Error setting expression 'not_a_property' with value 'There is no action property named like this'"));
+ }
+
+ public void testNonexistentParametersAreIgnoredInProductionMode() throws Exception {
+ XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+ container.inject(provider);
+ loadConfigurationProviders(provider,
+ new MockConfigurationProvider(Collections.singletonMap("devMode", "false")));
+ Map<String, Object> params = new HashMap<>();
+ params.put("not_a_property", "There is no action property named like this");
+
+ HashMap<String, Object> extraContext = new HashMap<>();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionConfig config = configuration.getRuntimeConfiguration().getActionConfig("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME);
+ container.inject(config.getInterceptors().get(0).getInterceptor());
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+ proxy.execute();
+ assertTrue(((SimpleAction) proxy.getAction()).getActionMessages().isEmpty());
+ }
+
+ public void testNoParametersAction() throws Exception {
+ ParametersInterceptor interceptor = new ParametersInterceptor();
+ interceptor.init();
+
+ MockActionInvocation mai = new MockActionInvocation();
+ Action action = new NoParametersAction();
+ mai.setAction(action);
+
+ interceptor.doIntercept(mai);
+ interceptor.destroy();
+ }
+
+ public void testNoOrdered() throws Exception {
+ ParametersInterceptor pi = createParametersInterceptor();
+ final Map<String, Object> actual = new LinkedHashMap<>();
+ pi.setValueStackFactory(createValueStackFactory(actual));
+ ValueStack stack = createStubValueStack(actual);
+
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put("user.address.city", "London");
+ parameters.put("user.name", "Superman");
+
+ Action action = new SimpleAction();
+ pi.setParameters(action, stack, parameters);
+
+ assertEquals("ordered should be false by default", false, pi.isOrdered());
+ assertEquals(2, actual.size());
+ assertEquals("London", actual.get("user.address.city"));
+ assertEquals("Superman", actual.get("user.name"));
+
+ // is not ordered
+ List<Object> values = new ArrayList<Object>(actual.values());
+ assertEquals("London", values.get(0));
+ assertEquals("Superman", values.get(1));
+ }
+
+ public void testOrdered() throws Exception {
+ ParametersInterceptor pi = new ParametersInterceptor();
+ pi.setOrdered(true);
+ container.inject(pi);
+ final Map<String, Object> actual = new LinkedHashMap<>();
+ pi.setValueStackFactory(createValueStackFactory(actual));
+ ValueStack stack = createStubValueStack(actual);
+
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put("user.address.city", "London");
+ parameters.put("user.address['postal']", "QJR387");
+ parameters.put("user.name", "Superman");
+
+ Action action = new SimpleAction();
+ pi.setParameters(action, stack, parameters);
+
+ assertEquals(true, pi.isOrdered());
+ assertEquals(3, actual.size());
+ assertEquals("London", actual.get("user.address.city"));
+ assertEquals("QJR387", actual.get("user.address['postal']"));
+ assertEquals("Superman", actual.get("user.name"));
+
+ // should be ordered so user.name should be first
+ List<Object> values = new ArrayList<Object>(actual.values());
+ assertEquals("Superman", values.get(0));
+ assertEquals("London", values.get(1));
+ assertEquals("QJR387", values.get(2));
+ }
+
+ public void testSetOrdered() throws Exception {
+ ParametersInterceptor pi = createParametersInterceptor();
+ assertEquals("ordered should be false by default", false, pi.isOrdered());
+ pi.setOrdered(true);
+ assertEquals(true, pi.isOrdered());
+ }
+
+ public void testExcludedParametersAreIgnored() throws Exception {
+ ParametersInterceptor pi = createParametersInterceptor();
+ pi.setExcludeParams("dojo\\..*");
+ final Map<String, Object> actual = injectValueStackFactory(pi);
+ ValueStack stack = injectValueStack(actual);
+
+ final Map<String, Object> expected = new HashMap<String, Object>() {
+ {
+ put("fooKey", "fooValue");
+ }
+ };
+
+ Map<String, Object> parameters = new HashMap<String, Object>() {
+ {
+ put("dojo.test", "dojoValue");
+ put("fooKey", "fooValue");
+ }
+ };
+ pi.setParameters(new NoParametersAction(), stack, parameters);
+ assertEquals(expected, actual);
+ }
+
+ public void testInternalParametersAreIgnored() throws Exception {
+ // given
+ ParametersInterceptor interceptor = createParametersInterceptor();
+ final Map<String, Object> actual = injectValueStackFactory(interceptor);
+ ValueStack stack = injectValueStack(actual);
+
+
+ final Map<String, Object> expected = new HashMap<String, Object>() {
+ {
+ put("ordinary.bean", "value");
+ }
+ };
+
+ Map<String, Object> parameters = new HashMap<String, Object>() {
+ {
+ put("ordinary.bean", "value");
+ put("#some.internal.object", "true");
+ put("(bla)#some.internal.object", "true");
+ put("#some.internal.object(bla)#some.internal.object", "true");
+ put("#_some.internal.object", "true");
+ put("\u0023_some.internal.object", "true");
+ put("\u0023_some.internal.object,[dfd],bla(\u0023_some.internal.object)", "true");
+ put("\\u0023_some.internal.object", "true");
+ }
+ };
+
+ // when
+ interceptor.setParameters(new NoParametersAction(), stack, parameters);
+
+ // then
+ assertEquals(expected, actual);
+ }
+
+ private ValueStack injectValueStack(Map<String, Object> actual) {
+ ValueStack stack = createStubValueStack(actual);
+ container.inject(stack);
+ return stack;
+ }
+
+ private Map<String, Object> injectValueStackFactory(ParametersInterceptor interceptor) {
+ final Map<String, Object> actual = new HashMap<>();
+ interceptor.setValueStackFactory(createValueStackFactory(actual));
+ return actual;
+ }
+
+ private ParametersInterceptor createParametersInterceptor() {
+ ParametersInterceptor pi = new ParametersInterceptor();
+ container.inject(pi);
+ return pi;
+ }
+
+ private ValueStackFactory createValueStackFactory(final Map<String, Object> context) {
+ OgnlValueStackFactory factory = new OgnlValueStackFactory() {
+ @Override
+ public ValueStack createValueStack(ValueStack stack) {
+ return createStubValueStack(context);
+ }
+ };
+ container.inject(factory);
+ return factory;
+ }
+
+ private ValueStack createStubValueStack(final Map<String, Object> actual) {
+ ValueStack stack = new OgnlValueStack(
+ container.getInstance(XWorkConverter.class),
+ (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()),
+ container.getInstance(TextProvider.class, "system"), true) {
+ @Override
+ public void setValue(String expr, Object value) {
+ actual.put(expr, value);
+ }
+
+ @Override
+ public void setParameter(String expr, Object value) {
+ actual.put(expr, value);
+ }
+ };
+ container.inject(stack);
+ return stack;
+ }
+
+ /*
+ public void testIndexedParameters() throws Exception {
+ Map params = new HashMap();
+ params.put("indexedProp[33]", "This is blah");
+
+ HashMap extraContext = new HashMap();
+ extraContext.put(ActionContext.PARAMETERS, params);
+
+ ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, extraContext);
+ proxy.execute();
+ assertEquals("This is blah", ((SimpleAction) proxy.getAction()).getIndexedProp(33));
+ }
+ */
+
+
+ private class NoParametersAction implements Action, NoParameters {
+
+ public String execute() throws Exception {
+ return SUCCESS;
+ }
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+ container.inject(provider);
+ loadConfigurationProviders(provider, new MockConfigurationProvider());
+
+ ActionConfig config = configuration.getRuntimeConfiguration().getActionConfig("", MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME);
+ container.inject(config.getInterceptors().get(0).getInterceptor());
+ }
+
+}
+
+class ValidateAction implements ValidationAware {
+
+ private List<String> messages = new LinkedList<>();
+ private String name;
+
+ public void setActionErrors(Collection<String> errorMessages) {
+ }
+
+ public Collection<String> getActionErrors() {
+ return null;
+ }
+
+ public void setActionMessages(Collection<String> messages) {
+ }
+
+ public Collection<String> getActionMessages() {
+ return messages;
+ }
+
+ public void setFieldErrors(Map<String, List<String>> errorMap) {
+ }
+
+ public Map<String, List<String>> getFieldErrors() {
+ return null;
+ }
+
+ public void addActionError(String anErrorMessage) {
+ }
+
+ public void addActionMessage(String aMessage) {
+ messages.add(aMessage);
+ }
+
+ public void addFieldError(String fieldName, String errorMessage) {
+ }
+
+ public boolean hasActionErrors() {
+ return false;
+ }
+
+ public boolean hasActionMessages() {
+ return messages.size() > 0;
+ }
+
+ public boolean hasErrors() {
+ return false;
+ }
+
+ public boolean hasFieldErrors() {
+ return false;
+ }
+
+ public String getActionMessage(int index) {
+ return messages.get(index);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/dc270c2e/core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
----------------------------------------------------------------------
diff --cc core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
index 367e199,0000000..faf807e
mode 100644,000000..100644
--- a/core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
@@@ -1,106 -1,0 +1,141 @@@
+package com.opensymphony.xwork2.security;
+
+import com.opensymphony.xwork2.XWorkTestCase;
+
+import java.util.ArrayList;
++import java.util.Arrays;
+import java.util.List;
+
+public class DefaultExcludedPatternsCheckerTest extends XWorkTestCase {
+
+ public void testHardcodedPatterns() throws Exception {
+ // given
+ List<String> params = new ArrayList<String>() {
+ {
+ add("%{#application['test']}");
+ add("%{#application.test}");
+ add("%{#Application['test']}");
+ add("%{#Application.test}");
+ add("%{#session['test']}");
+ add("%{#session.test}");
+ add("%{#Session['test']}");
+ add("%{#Session.test}");
+ add("%{#struts['test']}");
+ add("%{#struts.test}");
+ add("%{#Struts['test']}");
+ add("%{#Struts.test}");
+ add("%{#request['test']}");
+ add("%{#request.test}");
+ add("%{#Request['test']}");
+ add("%{#Request.test}");
+ add("%{#servletRequest['test']}");
+ add("%{#servletRequest.test}");
+ add("%{#ServletRequest['test']}");
+ add("%{#ServletRequest.test}");
+ add("%{#servletResponse['test']}");
+ add("%{#servletResponse.test}");
+ add("%{#ServletResponse['test']}");
+ add("%{#ServletResponse.test}");
++ add("%{#servletContext['test']}");
++ add("%{#servletContext.test}");
++ add("%{#ServletContext['test']}");
++ add("%{#ServletContext.test}");
+ add("%{#parameters['test']}");
+ add("%{#parameters.test}");
+ add("%{#Parameters['test']}");
+ add("%{#Parameters.test}");
+ add("#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')");
+ add("%{#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')}");
+ add("#_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true)");
+ add("%{#_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true)}");
+ add("form.class.classLoader");
+ add("form[\"class\"][\"classLoader\"]");
+ add("form['class']['classLoader']");
+ add("class['classLoader']");
+ add("class[\"classLoader\"]");
+ add("class.classLoader.resources.dirContext.docBase=tttt");
+ add("Class.classLoader.resources.dirContext.docBase=tttt");
+ }
+ };
+
+ DefaultExcludedPatternsChecker checker = new DefaultExcludedPatternsChecker();
+ checker.setAdditionalExcludePatterns(".*(^|\\.|\\[|'|\")class(\\.|\\[|'|\").*");
+
+ for (String param : params) {
+ // when
+ ExcludedPatternsChecker.IsExcluded actual = checker.isExcluded(param);
+
+ // then
+ assertTrue("Access to " + param + " is possible!", actual.isExcluded());
+ }
+ }
+
++ public void testDefaultExcludePatterns() throws Exception {
++ // given
++ List<String> prefixes = Arrays.asList("#[0].%s", "[0].%s", "top.%s", "%{[0].%s}", "%{#[0].%s}", "%{top.%s}", "%{#top.%s}", "%{#%s}", "%{%s}", "#%s");
++ List<String> inners = Arrays.asList("servletRequest", "servletResponse", "servletContext", "application", "session", "struts", "request", "response", "dojo", "parameters");
++ List<String> suffixes = Arrays.asList("['test']", "[\"test\"]", ".test");
++
++ DefaultExcludedPatternsChecker checker = new DefaultExcludedPatternsChecker();
++ checker.setAdditionalExcludePatterns(".*(^|\\.|\\[|'|\")class(\\.|\\[|'|\").*");
++
++ List<String> params = new ArrayList<String>();
++ for (String prefix : prefixes) {
++ for (String inner : inners) {
++ String innerUp = inner.substring(0, 1).toUpperCase() + inner.substring(1);
++ for (String suffix : suffixes) {
++ params.add(prefix.replace("%s", inner + suffix));
++ params.add(prefix.replace("%s", innerUp + suffix));
++ }
++ }
++ }
++
++ for (String param : params) {
++ System.out.println(param);
++ // when
++ ExcludedPatternsChecker.IsExcluded actual = checker.isExcluded(param);
++
++ // then
++ assertTrue("Access to " + param + " is possible!", actual.isExcluded());
++ }
++ }
++
+ public void testParamWithClassInName() throws Exception {
+ // given
+ List<String> properParams = new ArrayList<>();
+ properParams.add("eventClass");
+ properParams.add("form.eventClass");
+ properParams.add("form[\"eventClass\"]");
+ properParams.add("form['eventClass']");
+ properParams.add("class.super@demo.com");
+ properParams.add("super.class@demo.com");
+
+ ExcludedPatternsChecker checker = new DefaultExcludedPatternsChecker();
+
+ for (String properParam : properParams) {
+ // when
+ ExcludedPatternsChecker.IsExcluded actual = checker.isExcluded(properParam);
+
+ // then
+ assertFalse("Param '" + properParam + "' is excluded!", actual.isExcluded());
+ }
+ }
+
+ public void testStrutsTokenIsExcluded() throws Exception {
+ // given
+ List<String> tokens = new ArrayList<>();
+ tokens.add("struts.token.name");
+ tokens.add("struts.token");
+
+ ExcludedPatternsChecker checker = new DefaultExcludedPatternsChecker();
+
+ for (String token : tokens) {
+ // when
+ ExcludedPatternsChecker.IsExcluded actual = checker.isExcluded(token);
+
+ // then
+ assertTrue("Param '" + token + "' is not excluded!", actual.isExcluded());
+ }
+ }
+
+}
[3/8] struts git commit: Updates bom
Posted by lu...@apache.org.
Updates bom
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/27f451d9
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/27f451d9
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/27f451d9
Branch: refs/heads/master
Commit: 27f451d99a110907968c438fd0237b06088fb9dd
Parents: 0cefe50
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Sep 22 07:41:42 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Sep 22 07:41:42 2015 +0200
----------------------------------------------------------------------
bom/pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/27f451d9/bom/pom.xml
----------------------------------------------------------------------
diff --git a/bom/pom.xml b/bom/pom.xml
index cee1958..21863bb 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -10,7 +10,7 @@
</parent>
<artifactId>struts2-bom</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Struts 2 Bill of Materials</name>
@@ -25,7 +25,7 @@
</licenses>
<properties>
- <struts-version.version>2.3.24</struts-version.version>
+ <struts-version.version>2.3.24.1</struts-version.version>
</properties>
<build>
[4/8] struts git commit: [maven-release-plugin] prepare release
STRUTS_2_3_24_1
Posted by lu...@apache.org.
[maven-release-plugin] prepare release STRUTS_2_3_24_1
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7a986316
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7a986316
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7a986316
Branch: refs/heads/master
Commit: 7a9863169f7d981be0d2d57437974ae2cc0c8bd3
Parents: 27f451d
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Sep 22 07:49:22 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Sep 22 07:49:22 2015 +0200
----------------------------------------------------------------------
apps/blank/pom.xml | 2 +-
apps/jboss-blank/pom.xml | 2 +-
apps/mailreader/pom.xml | 2 +-
apps/pom.xml | 2 +-
apps/portlet/pom.xml | 2 +-
apps/rest-showcase/pom.xml | 4 ++--
apps/showcase/pom.xml | 2 +-
archetypes/pom.xml | 2 +-
archetypes/struts2-archetype-angularjs/pom.xml | 2 +-
archetypes/struts2-archetype-blank/pom.xml | 2 +-
archetypes/struts2-archetype-convention/pom.xml | 2 +-
archetypes/struts2-archetype-dbportlet/pom.xml | 2 +-
archetypes/struts2-archetype-plugin/pom.xml | 2 +-
archetypes/struts2-archetype-portlet/pom.xml | 2 +-
archetypes/struts2-archetype-starter/pom.xml | 2 +-
assembly/pom.xml | 2 +-
bom/pom.xml | 4 ++--
bundles/admin/pom.xml | 2 +-
bundles/demo/pom.xml | 2 +-
bundles/pom.xml | 2 +-
core/pom.xml | 2 +-
plugins/cdi/pom.xml | 2 +-
plugins/codebehind/pom.xml | 2 +-
plugins/config-browser/pom.xml | 2 +-
plugins/convention/pom.xml | 2 +-
plugins/dojo/pom.xml | 2 +-
plugins/dwr/pom.xml | 2 +-
plugins/embeddedjsp/pom.xml | 2 +-
plugins/gxp/pom.xml | 2 +-
plugins/jasperreports/pom.xml | 2 +-
plugins/java8-support/pom.xml | 2 +-
plugins/javatemplates/pom.xml | 2 +-
plugins/jfreechart/pom.xml | 2 +-
plugins/jsf/pom.xml | 2 +-
plugins/json/pom.xml | 2 +-
plugins/junit/pom.xml | 2 +-
plugins/osgi/pom.xml | 2 +-
plugins/oval/pom.xml | 2 +-
plugins/pell-multipart/pom.xml | 2 +-
plugins/plexus/pom.xml | 2 +-
plugins/pom.xml | 2 +-
plugins/portlet-tiles/pom.xml | 2 +-
plugins/portlet/pom.xml | 2 +-
plugins/rest/pom.xml | 2 +-
plugins/sitegraph/pom.xml | 2 +-
plugins/sitemesh/pom.xml | 2 +-
plugins/spring/pom.xml | 2 +-
plugins/struts1/pom.xml | 2 +-
plugins/testng/pom.xml | 2 +-
plugins/tiles/pom.xml | 2 +-
plugins/tiles3/pom.xml | 2 +-
pom.xml | 4 ++--
xwork-core/pom.xml | 2 +-
53 files changed, 56 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 369de8d..85ff76f 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/jboss-blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index a12e542..3f29927 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-jboss-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/mailreader/pom.xml
----------------------------------------------------------------------
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index 92a74aa..3b7e5cf 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-mailreader</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/pom.xml
----------------------------------------------------------------------
diff --git a/apps/pom.xml b/apps/pom.xml
index 41a0c5a..d691694 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-apps</artifactId>
<packaging>pom</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index fecc4d1..78c7844 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-portlet</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/rest-showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml
index 8ce12a3..e50836f 100644
--- a/apps/rest-showcase/pom.xml
+++ b/apps/rest-showcase/pom.xml
@@ -26,12 +26,12 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-rest-showcase</artifactId>
<packaging>war</packaging>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
<name>Struts 2 Rest Showcase Webapp</name>
<description>Struts 2 Rest Showcase Example</description>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/apps/showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index 9406f74..da417be 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-showcase</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/pom.xml b/archetypes/pom.xml
index bbbf87c..91bdc60 100644
--- a/archetypes/pom.xml
+++ b/archetypes/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-archetypes</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-angularjs/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-angularjs/pom.xml b/archetypes/struts2-archetype-angularjs/pom.xml
index dd33d00..1be0f12 100644
--- a/archetypes/struts2-archetype-angularjs/pom.xml
+++ b/archetypes/struts2-archetype-angularjs/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-blank/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-blank/pom.xml b/archetypes/struts2-archetype-blank/pom.xml
index 990d3ca..77d00a2 100644
--- a/archetypes/struts2-archetype-blank/pom.xml
+++ b/archetypes/struts2-archetype-blank/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-convention/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-convention/pom.xml b/archetypes/struts2-archetype-convention/pom.xml
index c218d7b..6dc023e 100644
--- a/archetypes/struts2-archetype-convention/pom.xml
+++ b/archetypes/struts2-archetype-convention/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-dbportlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-dbportlet/pom.xml b/archetypes/struts2-archetype-dbportlet/pom.xml
index aa975ee..1a45a6f 100644
--- a/archetypes/struts2-archetype-dbportlet/pom.xml
+++ b/archetypes/struts2-archetype-dbportlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-plugin/pom.xml b/archetypes/struts2-archetype-plugin/pom.xml
index 09e4894..6ec6a2a 100644
--- a/archetypes/struts2-archetype-plugin/pom.xml
+++ b/archetypes/struts2-archetype-plugin/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-portlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-portlet/pom.xml b/archetypes/struts2-archetype-portlet/pom.xml
index 74bf5c1..9f644e1 100644
--- a/archetypes/struts2-archetype-portlet/pom.xml
+++ b/archetypes/struts2-archetype-portlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/archetypes/struts2-archetype-starter/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-starter/pom.xml b/archetypes/struts2-archetype-starter/pom.xml
index 9a88ae6..bd122cf 100644
--- a/archetypes/struts2-archetype-starter/pom.xml
+++ b/archetypes/struts2-archetype-starter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/assembly/pom.xml
----------------------------------------------------------------------
diff --git a/assembly/pom.xml b/assembly/pom.xml
index 735e093..caf2d17 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-assembly</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/bom/pom.xml
----------------------------------------------------------------------
diff --git a/bom/pom.xml b/bom/pom.xml
index 21863bb..0b58195 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -10,7 +10,7 @@
</parent>
<artifactId>struts2-bom</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
<packaging>pom</packaging>
<name>Struts 2 Bill of Materials</name>
@@ -197,6 +197,6 @@
</dependencyManagement>
<scm>
- <tag>STRUTS_2_3_24</tag>
+ <tag>STRUTS_2_3_24_1</tag>
</scm>
</project>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/bundles/admin/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/admin/pom.xml b/bundles/admin/pom.xml
index ac5ef3b..57f6255 100644
--- a/bundles/admin/pom.xml
+++ b/bundles/admin/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-osgi-admin-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/bundles/demo/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/demo/pom.xml b/bundles/demo/pom.xml
index 9ed5f20..f67cb0a 100644
--- a/bundles/demo/pom.xml
+++ b/bundles/demo/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-osgi-demo-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/bundles/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/pom.xml b/bundles/pom.xml
index 5c2b197..b92b4cc 100755
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-osgi-bundles</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3a0d48f..6fdd00d 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-core</artifactId>
<packaging>jar</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/cdi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/cdi/pom.xml b/plugins/cdi/pom.xml
index 06c87ac..88cc976 100644
--- a/plugins/cdi/pom.xml
+++ b/plugins/cdi/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-cdi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/codebehind/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/codebehind/pom.xml b/plugins/codebehind/pom.xml
index a502382..665af07 100644
--- a/plugins/codebehind/pom.xml
+++ b/plugins/codebehind/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-codebehind-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/config-browser/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/config-browser/pom.xml b/plugins/config-browser/pom.xml
index 7f3479c..c804d5c 100644
--- a/plugins/config-browser/pom.xml
+++ b/plugins/config-browser/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-config-browser-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/convention/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/convention/pom.xml b/plugins/convention/pom.xml
index c95d75e..35c452f 100644
--- a/plugins/convention/pom.xml
+++ b/plugins/convention/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-convention-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/dojo/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dojo/pom.xml b/plugins/dojo/pom.xml
index fc12680..4333e94 100644
--- a/plugins/dojo/pom.xml
+++ b/plugins/dojo/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>struts2-plugins</artifactId>
<groupId>org.apache.struts</groupId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/dwr/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dwr/pom.xml b/plugins/dwr/pom.xml
index 4287480..788c554 100644
--- a/plugins/dwr/pom.xml
+++ b/plugins/dwr/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-dwr-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/embeddedjsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/pom.xml b/plugins/embeddedjsp/pom.xml
index ce1bd46..b080423 100644
--- a/plugins/embeddedjsp/pom.xml
+++ b/plugins/embeddedjsp/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-embeddedjsp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/gxp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/gxp/pom.xml b/plugins/gxp/pom.xml
index 4a6f531..4747b72 100644
--- a/plugins/gxp/pom.xml
+++ b/plugins/gxp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-gxp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/jasperreports/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml
index 027401f..537a5d5 100644
--- a/plugins/jasperreports/pom.xml
+++ b/plugins/jasperreports/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-jasperreports-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/java8-support/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/java8-support/pom.xml b/plugins/java8-support/pom.xml
index 2e6e6bb..dfb1763 100644
--- a/plugins/java8-support/pom.xml
+++ b/plugins/java8-support/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-java8-support-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/javatemplates/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/javatemplates/pom.xml b/plugins/javatemplates/pom.xml
index ce4d39e..dd1f23c 100644
--- a/plugins/javatemplates/pom.xml
+++ b/plugins/javatemplates/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-javatemplates-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/jfreechart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index 74f1093..96ca366 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-jfreechart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/jsf/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jsf/pom.xml b/plugins/jsf/pom.xml
index be5b07d..1c4bb9a 100644
--- a/plugins/jsf/pom.xml
+++ b/plugins/jsf/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-jsf-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/json/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/json/pom.xml b/plugins/json/pom.xml
index 7477688..4f28759 100644
--- a/plugins/json/pom.xml
+++ b/plugins/json/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-json-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/junit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/junit/pom.xml b/plugins/junit/pom.xml
index 9eb5560..dc2d0bb 100644
--- a/plugins/junit/pom.xml
+++ b/plugins/junit/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-junit-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/osgi/pom.xml b/plugins/osgi/pom.xml
index f1cf960..f2bde5c 100644
--- a/plugins/osgi/pom.xml
+++ b/plugins/osgi/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-osgi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/oval/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/oval/pom.xml b/plugins/oval/pom.xml
index c963766..1807b21 100644
--- a/plugins/oval/pom.xml
+++ b/plugins/oval/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-oval-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/pell-multipart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml
index 837ba46..6194dce 100644
--- a/plugins/pell-multipart/pom.xml
+++ b/plugins/pell-multipart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-pell-multipart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/plexus/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/plexus/pom.xml b/plugins/plexus/pom.xml
index ddda6dd..7db60bb 100644
--- a/plugins/plexus/pom.xml
+++ b/plugins/plexus/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-plexus-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 6366e1e..2381d32 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-plugins</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/portlet-tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet-tiles/pom.xml b/plugins/portlet-tiles/pom.xml
index 7428d89..e499714 100644
--- a/plugins/portlet-tiles/pom.xml
+++ b/plugins/portlet-tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-portlet-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet/pom.xml b/plugins/portlet/pom.xml
index e751188..47da660 100644
--- a/plugins/portlet/pom.xml
+++ b/plugins/portlet/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-portlet-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/rest/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/rest/pom.xml b/plugins/rest/pom.xml
index d96f184..82b123c 100644
--- a/plugins/rest/pom.xml
+++ b/plugins/rest/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-rest-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/sitegraph/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index f874d85..9b222d2 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-sitegraph-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/sitemesh/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitemesh/pom.xml b/plugins/sitemesh/pom.xml
index b8373e9..b447c76 100644
--- a/plugins/sitemesh/pom.xml
+++ b/plugins/sitemesh/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-sitemesh-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/spring/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml
index 95b9070..56fdd94 100644
--- a/plugins/spring/pom.xml
+++ b/plugins/spring/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-spring-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/struts1/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/struts1/pom.xml b/plugins/struts1/pom.xml
index c91c4cc..fa551d8 100644
--- a/plugins/struts1/pom.xml
+++ b/plugins/struts1/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-struts1-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/testng/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/testng/pom.xml b/plugins/testng/pom.xml
index ea4e75e..e157607 100644
--- a/plugins/testng/pom.xml
+++ b/plugins/testng/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-testng-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index d0a9344..703c2b5 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/plugins/tiles3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles3/pom.xml b/plugins/tiles3/pom.xml
index 99c033c..5de555c 100644
--- a/plugins/tiles3/pom.xml
+++ b/plugins/tiles3/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<artifactId>struts2-tiles3-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fbc5763..66f016e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
<packaging>pom</packaging>
<name>Struts 2</name>
<url>http://struts.apache.org/</url>
@@ -31,7 +31,7 @@
<connection>scm:git:git://git.apache.org/struts.git</connection>
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/struts.git</developerConnection>
<url>http://git.apache.org/struts.git</url>
- <tag>STRUTS_2_3_24</tag>
+ <tag>STRUTS_2_3_24_1</tag>
</scm>
<issueManagement>
http://git-wip-us.apache.org/repos/asf/struts/blob/7a986316/xwork-core/pom.xml
----------------------------------------------------------------------
diff --git a/xwork-core/pom.xml b/xwork-core/pom.xml
index eaa6cc7..0d6adbf 100644
--- a/xwork-core/pom.xml
+++ b/xwork-core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24.1-SNAPSHOT</version>
+ <version>2.3.24.1</version>
</parent>
<groupId>org.apache.struts.xwork</groupId>
[2/8] struts git commit: Sets SNAPSHOT version
Posted by lu...@apache.org.
Sets SNAPSHOT version
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/0cefe507
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/0cefe507
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/0cefe507
Branch: refs/heads/master
Commit: 0cefe507fb757cc2f53ae87c54fbbec271a265c4
Parents: f420f28
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Sep 22 07:39:39 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Sep 22 07:39:39 2015 +0200
----------------------------------------------------------------------
apps/blank/pom.xml | 2 +-
apps/jboss-blank/pom.xml | 2 +-
apps/mailreader/pom.xml | 2 +-
apps/pom.xml | 2 +-
apps/portlet/pom.xml | 2 +-
apps/rest-showcase/pom.xml | 4 ++--
apps/showcase/pom.xml | 2 +-
archetypes/pom.xml | 2 +-
archetypes/struts2-archetype-angularjs/pom.xml | 2 +-
archetypes/struts2-archetype-blank/pom.xml | 2 +-
archetypes/struts2-archetype-convention/pom.xml | 2 +-
archetypes/struts2-archetype-dbportlet/pom.xml | 2 +-
archetypes/struts2-archetype-plugin/pom.xml | 2 +-
archetypes/struts2-archetype-portlet/pom.xml | 2 +-
archetypes/struts2-archetype-starter/pom.xml | 2 +-
assembly/pom.xml | 2 +-
bundles/admin/pom.xml | 2 +-
bundles/demo/pom.xml | 2 +-
bundles/pom.xml | 2 +-
core/pom.xml | 2 +-
plugins/cdi/pom.xml | 2 +-
plugins/codebehind/pom.xml | 2 +-
plugins/config-browser/pom.xml | 2 +-
plugins/convention/pom.xml | 2 +-
plugins/dojo/pom.xml | 2 +-
plugins/dwr/pom.xml | 2 +-
plugins/embeddedjsp/pom.xml | 2 +-
plugins/gxp/pom.xml | 2 +-
plugins/jasperreports/pom.xml | 2 +-
plugins/java8-support/pom.xml | 2 +-
plugins/javatemplates/pom.xml | 2 +-
plugins/jfreechart/pom.xml | 2 +-
plugins/jsf/pom.xml | 2 +-
plugins/json/pom.xml | 2 +-
plugins/junit/pom.xml | 2 +-
plugins/osgi/pom.xml | 2 +-
plugins/oval/pom.xml | 2 +-
plugins/pell-multipart/pom.xml | 2 +-
plugins/plexus/pom.xml | 2 +-
plugins/pom.xml | 2 +-
plugins/portlet-tiles/pom.xml | 2 +-
plugins/portlet/pom.xml | 2 +-
plugins/rest/pom.xml | 2 +-
plugins/sitegraph/pom.xml | 2 +-
plugins/sitemesh/pom.xml | 2 +-
plugins/spring/pom.xml | 2 +-
plugins/struts1/pom.xml | 2 +-
plugins/testng/pom.xml | 2 +-
plugins/tiles/pom.xml | 2 +-
plugins/tiles3/pom.xml | 2 +-
pom.xml | 2 +-
xwork-core/pom.xml | 2 +-
52 files changed, 53 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 530283b..369de8d 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/jboss-blank/pom.xml
----------------------------------------------------------------------
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index 6877f52..a12e542 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-jboss-blank</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/mailreader/pom.xml
----------------------------------------------------------------------
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index b7b9631..92a74aa 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-mailreader</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/pom.xml
----------------------------------------------------------------------
diff --git a/apps/pom.xml b/apps/pom.xml
index 71e526d..41a0c5a 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-apps</artifactId>
<packaging>pom</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index 937dbf0..fecc4d1 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/rest-showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml
index faabad7..8ce12a3 100644
--- a/apps/rest-showcase/pom.xml
+++ b/apps/rest-showcase/pom.xml
@@ -26,12 +26,12 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-rest-showcase</artifactId>
<packaging>war</packaging>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
<name>Struts 2 Rest Showcase Webapp</name>
<description>Struts 2 Rest Showcase Example</description>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/apps/showcase/pom.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index b1f62fa..9406f74 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-showcase</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/pom.xml b/archetypes/pom.xml
index 291a3ec..bbbf87c 100644
--- a/archetypes/pom.xml
+++ b/archetypes/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-archetypes</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-angularjs/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-angularjs/pom.xml b/archetypes/struts2-archetype-angularjs/pom.xml
index ea93fa2..dd33d00 100644
--- a/archetypes/struts2-archetype-angularjs/pom.xml
+++ b/archetypes/struts2-archetype-angularjs/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-blank/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-blank/pom.xml b/archetypes/struts2-archetype-blank/pom.xml
index f5e4cae..990d3ca 100644
--- a/archetypes/struts2-archetype-blank/pom.xml
+++ b/archetypes/struts2-archetype-blank/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-convention/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-convention/pom.xml b/archetypes/struts2-archetype-convention/pom.xml
index 0e8fd79..c218d7b 100644
--- a/archetypes/struts2-archetype-convention/pom.xml
+++ b/archetypes/struts2-archetype-convention/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-dbportlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-dbportlet/pom.xml b/archetypes/struts2-archetype-dbportlet/pom.xml
index eb9d3ec..aa975ee 100644
--- a/archetypes/struts2-archetype-dbportlet/pom.xml
+++ b/archetypes/struts2-archetype-dbportlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-plugin/pom.xml b/archetypes/struts2-archetype-plugin/pom.xml
index 48aff0d..09e4894 100644
--- a/archetypes/struts2-archetype-plugin/pom.xml
+++ b/archetypes/struts2-archetype-plugin/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-portlet/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-portlet/pom.xml b/archetypes/struts2-archetype-portlet/pom.xml
index 5f5b309..74bf5c1 100644
--- a/archetypes/struts2-archetype-portlet/pom.xml
+++ b/archetypes/struts2-archetype-portlet/pom.xml
@@ -2,7 +2,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/archetypes/struts2-archetype-starter/pom.xml
----------------------------------------------------------------------
diff --git a/archetypes/struts2-archetype-starter/pom.xml b/archetypes/struts2-archetype-starter/pom.xml
index 358da5c..9a88ae6 100644
--- a/archetypes/struts2-archetype-starter/pom.xml
+++ b/archetypes/struts2-archetype-starter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-archetypes</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/assembly/pom.xml
----------------------------------------------------------------------
diff --git a/assembly/pom.xml b/assembly/pom.xml
index 3f59bc1..735e093 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-assembly</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/bundles/admin/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/admin/pom.xml b/bundles/admin/pom.xml
index 33e3e54..ac5ef3b 100644
--- a/bundles/admin/pom.xml
+++ b/bundles/admin/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-admin-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/bundles/demo/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/demo/pom.xml b/bundles/demo/pom.xml
index b00c5df..9ed5f20 100644
--- a/bundles/demo/pom.xml
+++ b/bundles/demo/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-osgi-bundles</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-demo-bundle</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/bundles/pom.xml
----------------------------------------------------------------------
diff --git a/bundles/pom.xml b/bundles/pom.xml
index 27a529a..5c2b197 100755
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-bundles</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 70818c9..3a0d48f 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-core</artifactId>
<packaging>jar</packaging>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/cdi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/cdi/pom.xml b/plugins/cdi/pom.xml
index e1f968d..06c87ac 100644
--- a/plugins/cdi/pom.xml
+++ b/plugins/cdi/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-cdi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/codebehind/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/codebehind/pom.xml b/plugins/codebehind/pom.xml
index bfd377a..a502382 100644
--- a/plugins/codebehind/pom.xml
+++ b/plugins/codebehind/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-codebehind-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/config-browser/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/config-browser/pom.xml b/plugins/config-browser/pom.xml
index 9933acc..7f3479c 100644
--- a/plugins/config-browser/pom.xml
+++ b/plugins/config-browser/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-config-browser-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/convention/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/convention/pom.xml b/plugins/convention/pom.xml
index abd9968..c95d75e 100644
--- a/plugins/convention/pom.xml
+++ b/plugins/convention/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-convention-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/dojo/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dojo/pom.xml b/plugins/dojo/pom.xml
index b736eeb..fc12680 100644
--- a/plugins/dojo/pom.xml
+++ b/plugins/dojo/pom.xml
@@ -25,7 +25,7 @@
<parent>
<artifactId>struts2-plugins</artifactId>
<groupId>org.apache.struts</groupId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/dwr/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dwr/pom.xml b/plugins/dwr/pom.xml
index 63778ee..4287480 100644
--- a/plugins/dwr/pom.xml
+++ b/plugins/dwr/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-dwr-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/embeddedjsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/pom.xml b/plugins/embeddedjsp/pom.xml
index 317e118..ce1bd46 100644
--- a/plugins/embeddedjsp/pom.xml
+++ b/plugins/embeddedjsp/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-embeddedjsp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/gxp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/gxp/pom.xml b/plugins/gxp/pom.xml
index 6d0790b..4a6f531 100644
--- a/plugins/gxp/pom.xml
+++ b/plugins/gxp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-gxp-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/jasperreports/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml
index 00e8d8d..027401f 100644
--- a/plugins/jasperreports/pom.xml
+++ b/plugins/jasperreports/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-jasperreports-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/java8-support/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/java8-support/pom.xml b/plugins/java8-support/pom.xml
index ae10781..2e6e6bb 100644
--- a/plugins/java8-support/pom.xml
+++ b/plugins/java8-support/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-java8-support-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/javatemplates/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/javatemplates/pom.xml b/plugins/javatemplates/pom.xml
index 7bb6378..ce4d39e 100644
--- a/plugins/javatemplates/pom.xml
+++ b/plugins/javatemplates/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-javatemplates-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/jfreechart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index 506746b..74f1093 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-jfreechart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/jsf/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/jsf/pom.xml b/plugins/jsf/pom.xml
index 4fa3124..be5b07d 100644
--- a/plugins/jsf/pom.xml
+++ b/plugins/jsf/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-jsf-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/json/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/json/pom.xml b/plugins/json/pom.xml
index 3925f14..7477688 100644
--- a/plugins/json/pom.xml
+++ b/plugins/json/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-json-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/junit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/junit/pom.xml b/plugins/junit/pom.xml
index 2e595c6..9eb5560 100644
--- a/plugins/junit/pom.xml
+++ b/plugins/junit/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-junit-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/osgi/pom.xml b/plugins/osgi/pom.xml
index fb8948e..f1cf960 100644
--- a/plugins/osgi/pom.xml
+++ b/plugins/osgi/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-osgi-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/oval/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/oval/pom.xml b/plugins/oval/pom.xml
index 4b9977a..c963766 100644
--- a/plugins/oval/pom.xml
+++ b/plugins/oval/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-oval-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/pell-multipart/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml
index dd5bf50..837ba46 100644
--- a/plugins/pell-multipart/pom.xml
+++ b/plugins/pell-multipart/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-pell-multipart-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/plexus/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/plexus/pom.xml b/plugins/plexus/pom.xml
index 2d0707a..ddda6dd 100644
--- a/plugins/plexus/pom.xml
+++ b/plugins/plexus/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-plexus-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index bd3e1b9..6366e1e 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-plugins</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/portlet-tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet-tiles/pom.xml b/plugins/portlet-tiles/pom.xml
index 28a3f70..7428d89 100644
--- a/plugins/portlet-tiles/pom.xml
+++ b/plugins/portlet-tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/portlet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/portlet/pom.xml b/plugins/portlet/pom.xml
index 6442d59..e751188 100644
--- a/plugins/portlet/pom.xml
+++ b/plugins/portlet/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-portlet-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/rest/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/rest/pom.xml b/plugins/rest/pom.xml
index 2d4595c..d96f184 100644
--- a/plugins/rest/pom.xml
+++ b/plugins/rest/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-rest-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/sitegraph/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index 34662b1..f874d85 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-sitegraph-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/sitemesh/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/sitemesh/pom.xml b/plugins/sitemesh/pom.xml
index 9d5096e..b8373e9 100644
--- a/plugins/sitemesh/pom.xml
+++ b/plugins/sitemesh/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-sitemesh-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/spring/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml
index 2676837..95b9070 100644
--- a/plugins/spring/pom.xml
+++ b/plugins/spring/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-spring-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/struts1/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/struts1/pom.xml b/plugins/struts1/pom.xml
index 16354fb..c91c4cc 100644
--- a/plugins/struts1/pom.xml
+++ b/plugins/struts1/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-struts1-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/testng/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/testng/pom.xml b/plugins/testng/pom.xml
index 7f4947b..ea4e75e 100644
--- a/plugins/testng/pom.xml
+++ b/plugins/testng/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-testng-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/tiles/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 949285d..d0a9344 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-tiles-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/plugins/tiles3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tiles3/pom.xml b/plugins/tiles3/pom.xml
index e9064b5..99c033c 100644
--- a/plugins/tiles3/pom.xml
+++ b/plugins/tiles3/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<artifactId>struts2-tiles3-plugin</artifactId>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e42f0ec..fbc5763 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Struts 2</name>
<url>http://struts.apache.org/</url>
http://git-wip-us.apache.org/repos/asf/struts/blob/0cefe507/xwork-core/pom.xml
----------------------------------------------------------------------
diff --git a/xwork-core/pom.xml b/xwork-core/pom.xml
index 8a3925e..eaa6cc7 100644
--- a/xwork-core/pom.xml
+++ b/xwork-core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
- <version>2.3.24</version>
+ <version>2.3.24.1-SNAPSHOT</version>
</parent>
<groupId>org.apache.struts.xwork</groupId>