struts-extras git commit: Updates info about Struts 2.3.8
Repository: struts-extras Updated Branches: refs/heads/master c056b516a -> 3103f1fbe Updates info about Struts 2.3.8 Project: http://git-wip-us.apache.org/repos/asf/struts-extras/repo Commit: http://git-wip-us.apache.org/repos/asf/struts-extras/commit/3103f1fb Tree: http://git-wip-us.apache.org/repos/asf/struts-extras/tree/3103f1fb Diff: http://git-wip-us.apache.org/repos/asf/struts-extras/diff/3103f1fb Branch: refs/heads/master Commit: 3103f1fbec18edc9d4098d1aac13c0b7140c8f28 Parents: c056b51 Author: Lukasz Lenart Authored: Tue Aug 1 10:47:47 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 10:48:13 2017 +0200 -- struts2-secure-jakarta-multipart-parser-plugin/README.md| 3 +++ struts2-secure-jakarta-stream-multipart-parser-plugin/README.md | 3 +++ 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/struts-extras/blob/3103f1fb/struts2-secure-jakarta-multipart-parser-plugin/README.md -- diff --git a/struts2-secure-jakarta-multipart-parser-plugin/README.md b/struts2-secure-jakarta-multipart-parser-plugin/README.md index 0676d3d..783c96d 100644 --- a/struts2-secure-jakarta-multipart-parser-plugin/README.md +++ b/struts2-secure-jakarta-multipart-parser-plugin/README.md @@ -24,6 +24,9 @@ Just drop the jar into `WEB-INF/libs` folder and add the bellow definition into name="secure-jakarta" scope="default"/> + + + ``` http://git-wip-us.apache.org/repos/asf/struts-extras/blob/3103f1fb/struts2-secure-jakarta-stream-multipart-parser-plugin/README.md -- diff --git a/struts2-secure-jakarta-stream-multipart-parser-plugin/README.md b/struts2-secure-jakarta-stream-multipart-parser-plugin/README.md index 984ba6d..a7aaf5b 100644 --- a/struts2-secure-jakarta-stream-multipart-parser-plugin/README.md +++ b/struts2-secure-jakarta-stream-multipart-parser-plugin/README.md @@ -24,6 +24,9 @@ Just drop the jar into `WEB-INF/libs` folder and add the bellow definition into name="secure-jakarta-stream" scope="default"/> + + + ```
[2/2] struts git commit: Upgrades to OGNL 3.1.15
Upgrades to OGNL 3.1.15 Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d29caba5 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d29caba5 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d29caba5 Branch: refs/heads/master Commit: d29caba5eedf463a0c4f748d50a23cd69ab92cde Parents: 8df5a89 Author: Lukasz Lenart Authored: Tue Aug 1 11:41:48 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 11:41:48 2017 +0200 -- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/d29caba5/pom.xml -- diff --git a/pom.xml b/pom.xml index b3c9328..4f757ab 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ ${project.version} 4.1.6.RELEASE -3.1.12 +3.1.15 5.2 3.0.7 1.0.6
[1/2] struts git commit: Uses better regex to improve performance
Repository: struts Updated Branches: refs/heads/master 91ae3448c -> d29caba5e Uses better regex to improve performance Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8df5a897 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8df5a897 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8df5a897 Branch: refs/heads/master Commit: 8df5a897f61f3ef45c36fdd9275e9ae4516c Parents: 91ae344 Author: Lukasz Lenart Authored: Tue Aug 1 11:29:23 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 11:29:23 2017 +0200 -- .../validator/validators/URLValidator.java | 10 .../xwork2/validator/URLValidatorTest.java | 26 2 files changed, 31 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/8df5a897/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java -- diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java index eab0fa8..6cf58ef 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java @@ -49,18 +49,18 @@ public class URLValidator extends FieldValidatorSupport { private static final Logger LOG = LogManager.getLogger(URLValidator.class); public static final String DEFAULT_URL_REGEX = "^(https?|ftp):\\/\\/" + -"(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+" + -"(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)?" + +"(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+" + +"(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+)?" + "@)?(#?" + ")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*" + "[a-z][a-z0-9-]*[a-z0-9]" + "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}" + "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])" + ")(:\\d+)?" + - ")(((\\/{0,1}([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*" + -"(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)" + +")(((\\/([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)*" + + "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-\\/\\:]|%[0-9a-f]{2})*)" + "?)?)?" + -"(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?" + +"(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)?" + "$"; private String urlRegexExpression; http://git-wip-us.apache.org/repos/asf/struts/blob/8df5a897/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java -- diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java index 5c83dd1..baa2bb1 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java @@ -160,6 +160,32 @@ public class URLValidatorTest extends XWorkTestCase { assertTrue(pattern.matcher("http://netsol-underconstruction-page-monitor-1.com/__media__/js/netsoltrademark.php?d=www.le-soutien-scolaire.fr%2Favis-et-test-comparatifs-des-robots-multifonctions%2F";).matches()); assertTrue(UrlValidator.getInstance().isValid("http://netsol-underconstruction-page-monitor-1.com/__media__/js/netsoltrademark.php?d=www.le-soutien-scolaire.fr%2Favis-et-test-comparatifs-des-robots-multifonctions%2F";)); + +//this will cause test to hang indefinitely using JDK 1.8.0_121, Struts 2.5.10.1 and JUnit 4.5 + assertTrue(pattern.matcher("http://www.javaroad.jp/news/redirect.jsp?link=http://www.forum-course-de-cote.com/que-penser-dune-trottinette-electrique/";).matches()); + assertTrue(UrlValidator.getInstance().isValid("http://www.javaroad.jp/news/redirect.jsp?link=http://www.forum-course-de-cote.com/que-penser-dune-trottinette-electrique/";)); + +//this will cause test to hang indefinitely using JDK 1.8.0_121, Struts 2.5.10.1 and JUnit 4.5 + assertTrue(pattern.matcher("http://wargame.ch/wc/acw/sub/aotm/guestbook/index.php?page3D183EClearwater20Roofing20Contractors3C/a3E3Ekaldu20non20msg3C/a3E";).matches()); + assertTrue(UrlValidator.getInstance().isValid("http://wargame.ch/wc/acw/sub/aotm/guestbook/index.php?page3D183EClearwater20Roofing20Contractors3C/a3E3Ekaldu20non20msg3C/a3E";)); +} + +public void testLongRu
struts git commit: WW-4832 Upgrades to OGNL 3.0.21
Repository: struts Updated Branches: refs/heads/support-2-3 16eb7fa76 -> 54a4dce7b WW-4832 Upgrades to OGNL 3.0.21 Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/54a4dce7 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/54a4dce7 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/54a4dce7 Branch: refs/heads/support-2-3 Commit: 54a4dce7bfbe33f01c6a9836ae5da30ae6300d0a Parents: 16eb7fa Author: Lukasz Lenart Authored: Tue Aug 1 11:50:33 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 11:50:33 2017 +0200 -- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/54a4dce7/pom.xml -- diff --git a/pom.xml b/pom.xml index 8173be5..956f794 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ ${project.version} 3.0.5.RELEASE -3.0.19 +3.0.21 3.3 5.0.2 2.2.2
struts git commit: Uses better RegEx to improve performance
Repository: struts Updated Branches: refs/heads/support-2-3 54a4dce7b -> 744c1f409 Uses better RegEx to improve performance Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/744c1f40 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/744c1f40 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/744c1f40 Branch: refs/heads/support-2-3 Commit: 744c1f409d983641af3e8e3b573c2f2d2c2c6d9c Parents: 54a4dce Author: Lukasz Lenart Authored: Tue Aug 1 12:01:43 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 12:01:43 2017 +0200 -- .../xwork2/validator/validators/URLValidator.java | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/744c1f40/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java -- diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java index 9aa3c9d..b46dea3 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java @@ -74,18 +74,18 @@ public class URLValidator extends FieldValidatorSupport { return urlRegex; } else { return "^(https?|ftp):\\/\\/" + -"(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+" + - "(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)?" + +"(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+" + + "(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+)?" + "@)?(#?" + ")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*" + "[a-z][a-z0-9-]*[a-z0-9]" + "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}" + "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])" + ")(:\\d+)?" + - ")(((\\/{0,1}([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*" + - "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)" + + ")(((\\/([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)*" + + "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-\\/\\:]|%[0-9a-f]{2})*)" + "?)?)?" + -"(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?" + + "(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)?" + "$"; } }
[8/8] struts git commit: WW-4808 Allows define multiple suffixes when using Convention plugin
WW-4808 Allows define multiple suffixes when using Convention plugin Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/62900ee9 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/62900ee9 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/62900ee9 Branch: refs/heads/master Commit: 62900ee9868c4d12ef76b8a7a8bbc60b694cbcaa Parents: d29caba 855be0e Author: Lukasz Lenart Authored: Tue Aug 1 15:50:24 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 15:50:24 2017 +0200 -- .../convention/AbstractActionNameBuilder.java | 63 .../struts2/convention/ActionConfigBuilder.java | 2 - .../struts2/convention/ActionNameBuilder.java | 2 - .../ClasspathConfigurationProvider.java | 4 +- .../convention/ClasspathPackageProvider.java| 5 +- .../struts2/convention/ConventionConstants.java | 26 +++- .../convention/ConventionUnknownHandler.java| 8 +-- .../struts2/convention/ConventionsService.java | 2 - .../convention/ConventionsServiceImpl.java | 4 +- .../convention/DefaultActionNameBuilder.java| 45 ++ .../struts2/convention/DefaultClassFinder.java | 29 + .../DefaultInterceptorMapBuilder.java | 2 - .../convention/DefaultResultMapBuilder.java | 6 +- .../convention/InterceptorMapBuilder.java | 2 - .../PackageBasedActionConfigBuilder.java| 51 +--- .../struts2/convention/ReflectionTools.java | 2 - .../struts2/convention/ResultMapBuilder.java| 2 - .../convention/SEOActionNameBuilder.java| 39 .../apache/struts2/convention/StringTools.java | 2 - 19 files changed, 171 insertions(+), 125 deletions(-) --
[1/8] struts git commit: Extends action suffix to support multiple suffixes
Repository: struts Updated Branches: refs/heads/master d29caba5e -> 62900ee98 Extends action suffix to support multiple suffixes Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/cf10f68e Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/cf10f68e Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/cf10f68e Branch: refs/heads/master Commit: cf10f68e766957fdd7f1bf70f25d4cc899a40b87 Parents: cf7bfe6 Author: Lukasz Lenart Authored: Fri Jul 7 10:23:54 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 10:23:54 2017 +0200 -- .../convention/PackageBasedActionConfigBuilder.java | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/cf10f68e/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java index 25083e2..b244392 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java @@ -75,7 +75,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { private String packageLocatorsBasePackage; private boolean disableActionScanning = false; private boolean disablePackageLocatorsScanning = false; -private String actionSuffix = "Action"; +private Set actionSuffix = Collections.singleton("Action"); private boolean checkImplementsAction = true; private boolean mapAllMatches = false; private Set loadedFileUrls = new HashSet<>(); @@ -227,7 +227,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { @Inject(value = "struts.convention.action.suffix", required = false) public void setActionSuffix(String actionSuffix) { if (StringUtils.isNotBlank(actionSuffix)) { -this.actionSuffix = actionSuffix; +this.actionSuffix = TextParseUtil.commaDelimitedStringToSet(actionSuffix); } } @@ -615,7 +615,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { // such as com.opensymphony.xwork2.ActionSupport. We repeat the // package filter here to filter out such results. boolean inPackage = includeClassNameInActionScan(classInfo.getName()); -boolean nameMatches = classInfo.getName().endsWith(actionSuffix); +boolean nameMatches = matchesSuffix(classInfo.getName()); try { return inPackage && (nameMatches || (checkImplementsAction && com.opensymphony.xwork2.Action.class.isAssignableFrom(classInfo.get(; @@ -624,6 +624,15 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { return false; } } + +private boolean matchesSuffix(String name) { +for (String suffix : actionSuffix) { +if (name.endsWith(suffix)) { +return true; +} +} +return false; +} }; }
[4/8] struts git commit: Converts comments into logging statements
Converts comments into logging statements Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b5be431f Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b5be431f Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b5be431f Branch: refs/heads/master Commit: b5be431f540271685eed803c7e55bf5a4d3138e6 Parents: f522fbc Author: Lukasz Lenart Authored: Fri Jul 7 11:01:03 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 11:01:03 2017 +0200 -- .../convention/DefaultActionNameBuilder.java| 16 +--- .../struts2/convention/SEOActionNameBuilder.java| 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/b5be431f/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java index 797a519..8a220b8 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java @@ -21,6 +21,8 @@ package org.apache.struts2.convention; import com.opensymphony.xwork2.inject.Inject; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @@ -33,6 +35,8 @@ import com.opensymphony.xwork2.inject.Inject; */ public class DefaultActionNameBuilder extends AbstractActionNameBuilder { +private static final Logger LOG = LogManager.getLogger(DefaultActionNameBuilder.class); + private boolean lowerCase; @Inject @@ -47,17 +51,15 @@ public class DefaultActionNameBuilder extends AbstractActionNameBuilder { checkActionName(actionName); -// Truncate Action suffix if found +LOG.trace("Truncate Action suffix if found"); actionName = truncateSuffixIfMatches(actionName); -// Force initial letter of action to lowercase, if desired +LOG.trace("Force initial letter of action to lowercase, if desired"); if ((lowerCase) && (actionName.length() > 1)) { int lowerPos = actionName.lastIndexOf('/') + 1; -StringBuilder sb = new StringBuilder(); -sb.append(actionName.substring(0, lowerPos)); -sb.append(Character.toLowerCase(actionName.charAt(lowerPos))); -sb.append(actionName.substring(lowerPos + 1)); -actionName = sb.toString(); +actionName = actionName.substring(0, lowerPos) + +Character.toLowerCase(actionName.charAt(lowerPos)) + +actionName.substring(lowerPos + 1); } return actionName; http://git-wip-us.apache.org/repos/asf/struts/blob/b5be431f/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java index 3fea36a..d96fd2d 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java @@ -53,10 +53,10 @@ public class SEOActionNameBuilder extends AbstractActionNameBuilder { checkActionName(actionName); -// Truncate Action suffix if found +LOG.trace("Truncate Action suffix if found"); actionName = truncateSuffixIfMatches(actionName); -// Convert to underscores +LOG.trace("Convert to underscores"); char[] ca = actionName.toCharArray(); StringBuilder build = new StringBuilder("" + ca[0]); boolean lower = true;
[7/8] struts git commit: Updates header with license
Updates header with license Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/855be0e3 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/855be0e3 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/855be0e3 Branch: refs/heads/master Commit: 855be0e36c0ac07e36bb027750ae6ddf20dfbfee Parents: 89d9342 Author: Lukasz Lenart Authored: Fri Jul 7 11:31:45 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 11:31:45 2017 +0200 -- .../convention/AbstractActionNameBuilder.java | 19 + .../struts2/convention/ActionConfigBuilder.java | 2 -- .../struts2/convention/ActionNameBuilder.java | 2 -- .../ClasspathConfigurationProvider.java | 2 -- .../convention/ClasspathPackageProvider.java| 5 ++-- .../struts2/convention/ConventionConstants.java | 2 -- .../convention/ConventionUnknownHandler.java| 2 -- .../struts2/convention/ConventionsService.java | 2 -- .../convention/ConventionsServiceImpl.java | 2 -- .../convention/DefaultActionNameBuilder.java| 2 -- .../struts2/convention/DefaultClassFinder.java | 29 +++- .../DefaultInterceptorMapBuilder.java | 2 -- .../convention/DefaultResultMapBuilder.java | 2 -- .../convention/InterceptorMapBuilder.java | 2 -- .../PackageBasedActionConfigBuilder.java| 2 -- .../struts2/convention/ReflectionTools.java | 2 -- .../struts2/convention/ResultMapBuilder.java| 2 -- .../convention/SEOActionNameBuilder.java| 2 -- .../apache/struts2/convention/StringTools.java | 2 -- 19 files changed, 37 insertions(+), 48 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/855be0e3/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java index df2214f..333b293 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java @@ -1,3 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + package org.apache.struts2.convention; import com.opensymphony.xwork2.inject.Inject; http://git-wip-us.apache.org/repos/asf/struts/blob/855be0e3/plugins/convention/src/main/java/org/apache/struts2/convention/ActionConfigBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ActionConfigBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ActionConfigBuilder.java index 0d45590..89a9832 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ActionConfigBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ActionConfigBuilder.java @@ -1,6 +1,4 @@ /* - * $Id$ - * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information http://git-wip-us.apache.org/repos/asf/struts/blob/855be0e3/plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameBuilder.java index 8944405..e9f41e3 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ActionNameBuilder.java @@ -1,6 +1,4 @@ /* - * $Id$ - * * Licensed to the Apache Software Foundation (ASF) under one *
[5/8] struts git commit: Extracts constants
Extracts constants Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f585d792 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f585d792 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f585d792 Branch: refs/heads/master Commit: f585d7920ebdd2ce5b7164b5425d4567dddeddcb Parents: b5be431 Author: Lukasz Lenart Authored: Fri Jul 7 11:13:44 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 11:13:44 2017 +0200 -- .../convention/AbstractActionNameBuilder.java | 2 +- .../ClasspathConfigurationProvider.java | 2 +- .../struts2/convention/ConventionConstants.java | 20 .../convention/ConventionUnknownHandler.java| 6 ++-- .../convention/ConventionsServiceImpl.java | 2 +- .../convention/DefaultResultMapBuilder.java | 4 +-- .../PackageBasedActionConfigBuilder.java| 34 ++-- 7 files changed, 45 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/f585d792/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java index a546e62..df2214f 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java @@ -15,7 +15,7 @@ public abstract class AbstractActionNameBuilder implements ActionNameBuilder { * @param actionSuffix (Optional) Classes that end with these value will be mapped as actions * (defaults to "Action") */ -@Inject(value = "struts.convention.action.suffix", required = false) +@Inject(value = ConventionConstants.CONVENTION_ACTION_SUFFIX, required = false) public void setActionSuffix(String actionSuffix) { if (StringUtils.isNotBlank(actionSuffix)) { this.actionSuffix = TextParseUtil.commaDelimitedStringToSet(actionSuffix); http://git-wip-us.apache.org/repos/asf/struts/blob/f585d792/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java index 32aec96..79334e7 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java @@ -53,7 +53,7 @@ public class ClasspathConfigurationProvider implements ConfigurationProvider, Di this.devMode = BooleanUtils.toBoolean(mode); } -@Inject("struts.convention.classes.reload") +@Inject(ConventionConstants.CONVENTION_CLASSES_RELOAD) public void setReload(String reload) { this.reload = BooleanUtils.toBoolean(reload); } http://git-wip-us.apache.org/repos/asf/struts/blob/f585d792/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java index b360d94..ad5f4e8 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java @@ -31,4 +31,24 @@ public class ConventionConstants { public static final String CONVENTION_CONVENTIONS_SERVICE = "struts.convention.conventionsService"; public static final String CONVENTION_ACTION_NAME_LOWERCASE = "struts.convention.action.name.lowercase"; public static final String CONVENTION_ACTION_NAME_SEPARATOR = "struts.convention.action.name.separator"; +public static final String CONVENTION_ACTION_SUFFIX = "struts.convention.action.suffix"; +public static final String CONVENTION_CLASSES_RELOAD = "struts.convention.classes.reload"; +public static final String CONVENTION_RESULT_PATH = "struts.convention.result.path"; +public static final String CONVENTION_DEFAULT_PARENT_PACKAGE = "struts.convention.default.parent.package"; +public static final String CONVENTION_REDIRECT_TO_SLASH = "struts.convention.redirect.to.slash"; +public st
[2/8] struts git commit: Uses multiple suffixes
Uses multiple suffixes Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b708d844 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b708d844 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b708d844 Branch: refs/heads/master Commit: b708d844c292e064f5ef90bf65bfcd53b32b6659 Parents: cf10f68 Author: Lukasz Lenart Authored: Fri Jul 7 10:24:02 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 10:24:02 2017 +0200 -- .../convention/DefaultActionNameBuilder.java| 22 +--- .../convention/SEOActionNameBuilder.java| 36 +++- 2 files changed, 45 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/b708d844/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java index 46b2169..9719970 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java @@ -21,8 +21,12 @@ package org.apache.struts2.convention; import com.opensymphony.xwork2.inject.Inject; +import com.opensymphony.xwork2.util.TextParseUtil; import org.apache.commons.lang3.StringUtils; +import java.util.Collections; +import java.util.Set; + /** * * This class strips the word Action from the end of the class name @@ -33,7 +37,7 @@ import org.apache.commons.lang3.StringUtils; * */ public class DefaultActionNameBuilder implements ActionNameBuilder { -private String actionSuffix = "Action"; +private Set actionSuffix = Collections.singleton("Action"); private boolean lowerCase; @Inject @@ -48,7 +52,7 @@ public class DefaultActionNameBuilder implements ActionNameBuilder { @Inject(value = "struts.convention.action.suffix", required = false) public void setActionSuffix(String actionSuffix) { if (StringUtils.isNotBlank(actionSuffix)) { -this.actionSuffix = actionSuffix; +this.actionSuffix = TextParseUtil.commaDelimitedStringToSet(actionSuffix); } } @@ -56,9 +60,7 @@ public class DefaultActionNameBuilder implements ActionNameBuilder { String actionName = className; // Truncate Action suffix if found -if (actionName.endsWith(actionSuffix)) { -actionName = actionName.substring(0, actionName.length() - actionSuffix.length()); -} +actionName = truncateSuffixIfMatches(actionName); // Force initial letter of action to lowercase, if desired if ((lowerCase) && (actionName.length() > 1)) { @@ -72,4 +74,14 @@ public class DefaultActionNameBuilder implements ActionNameBuilder { return actionName; } + +private String truncateSuffixIfMatches(String name) { +String actionName = name; +for (String suffix : actionSuffix) { +if (actionName.endsWith(suffix)) { +actionName = actionName.substring(0, actionName.length() - suffix.length()); +} +} +return actionName; +} } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts/blob/b708d844/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java index f2920c0..490476d 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/SEOActionNameBuilder.java @@ -21,10 +21,14 @@ package org.apache.struts2.convention; import com.opensymphony.xwork2.inject.Inject; +import com.opensymphony.xwork2.util.TextParseUtil; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.apache.commons.lang3.StringUtils; +import java.util.Collections; +import java.util.Set; + /** * * This class converts the class name into a SEO friendly name by recognizing @@ -35,7 +39,7 @@ import org.apache.commons.lang3.StringUtils; */ public class SEOActionNameBuilder implements ActionNameBuilder { private static final Logger LOG = LogManager.getLogger(SEOActionNameBuilder.class); -private String actionSuffix = "Action"; +private Set actionSuffix = Collections.singleton
[6/8] struts git commit: Fixes small typo
Fixes small typo Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/89d9342e Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/89d9342e Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/89d9342e Branch: refs/heads/master Commit: 89d9342e53c167fadc883afd81c1f81443e28c24 Parents: f585d79 Author: Lukasz Lenart Authored: Fri Jul 7 11:28:14 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 11:28:14 2017 +0200 -- .../java/org/apache/struts2/convention/ConventionConstants.java| 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/89d9342e/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java index ad5f4e8..3d8c74d 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java @@ -21,7 +21,7 @@ package org.apache.struts2.convention; /** - * Constants used to extend the COnvention plugin + * Constants used to extend the Convention plugin */ public class ConventionConstants { public static final String CONVENTION_ACTION_CONFIG_BUILDER = "struts.convention.actionConfigBuilder";
[3/8] struts git commit: Extract common code
Extract common code Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f522fbc4 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f522fbc4 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f522fbc4 Branch: refs/heads/master Commit: f522fbc45417b836463553e3d9110ee58fcf2673 Parents: b708d84 Author: Lukasz Lenart Authored: Fri Jul 7 10:58:26 2017 +0200 Committer: Lukasz Lenart Committed: Fri Jul 7 10:58:26 2017 +0200 -- .../convention/AbstractActionNameBuilder.java | 44 +++ .../struts2/convention/ConventionConstants.java | 2 + .../convention/DefaultActionNameBuilder.java| 35 +++ .../convention/SEOActionNameBuilder.java| 45 +++- 4 files changed, 60 insertions(+), 66 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/f522fbc4/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java new file mode 100644 index 000..a546e62 --- /dev/null +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/AbstractActionNameBuilder.java @@ -0,0 +1,44 @@ +package org.apache.struts2.convention; + +import com.opensymphony.xwork2.inject.Inject; +import com.opensymphony.xwork2.util.TextParseUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.Set; + +public abstract class AbstractActionNameBuilder implements ActionNameBuilder { + +private Set actionSuffix = Collections.singleton("Action"); + +/** + * @param actionSuffix (Optional) Classes that end with these value will be mapped as actions + * (defaults to "Action") + */ +@Inject(value = "struts.convention.action.suffix", required = false) +public void setActionSuffix(String actionSuffix) { +if (StringUtils.isNotBlank(actionSuffix)) { +this.actionSuffix = TextParseUtil.commaDelimitedStringToSet(actionSuffix); +} +} + + +protected void checkActionName(String actionName) { +for (String suffix : actionSuffix) { +if (actionName.equals(suffix)) { +throw new IllegalStateException("The action name cannot be the same as the action suffix [" + suffix + "]"); +} +} +} + +protected String truncateSuffixIfMatches(String name) { +String actionName = name; +for (String suffix : actionSuffix) { +if (actionName.endsWith(suffix)) { +actionName = actionName.substring(0, actionName.length() - suffix.length()); +} +} +return actionName; +} + +} http://git-wip-us.apache.org/repos/asf/struts/blob/f522fbc4/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java index 2842b8c..b360d94 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionConstants.java @@ -29,4 +29,6 @@ public class ConventionConstants { public static final String CONVENTION_RESULT_MAP_BUILDER = "struts.convention.resultMapBuilder"; public static final String CONVENTION_INTERCEPTOR_MAP_BUILDER = "struts.convention.interceptorMapBuilder"; public static final String CONVENTION_CONVENTIONS_SERVICE = "struts.convention.conventionsService"; +public static final String CONVENTION_ACTION_NAME_LOWERCASE = "struts.convention.action.name.lowercase"; +public static final String CONVENTION_ACTION_NAME_SEPARATOR = "struts.convention.action.name.separator"; } http://git-wip-us.apache.org/repos/asf/struts/blob/f522fbc4/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java -- diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java index 9719970..797a519 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultActionNameBuilder.java @@ -21,11
[1/3] struts git commit: [WW-4831] convert nulls within arrays to empty strings rather than the 4 letters 'null'
Repository: struts Updated Branches: refs/heads/master 62900ee98 -> 7f90a4fec [WW-4831] convert nulls within arrays to empty strings rather than the 4 letters 'null' Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8cc56b29 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8cc56b29 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8cc56b29 Branch: refs/heads/master Commit: 8cc56b2974e5c744954b110e645f61f18e0b12ab Parents: 91ae344 Author: thrawnca Authored: Tue Aug 1 11:51:20 2017 +1000 Committer: thrawnca Committed: Tue Aug 1 11:51:20 2017 +1000 -- .../com/opensymphony/xwork2/conversion/impl/StringConverter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/8cc56b29/core/src/main/java/com/opensymphony/xwork2/conversion/impl/StringConverter.java -- diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/StringConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/StringConverter.java index 61d2516..d8895e8 100644 --- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/StringConverter.java +++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/StringConverter.java @@ -14,6 +14,7 @@ import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; public class StringConverter extends DefaultTypeConverter { @@ -69,7 +70,7 @@ public class StringConverter extends DefaultTypeConverter { } return format.format(value); } else { -return String.valueOf(value); +return Objects.toString(value, null); } }
[3/3] struts git commit: WW-4831 Converts nulls to nulls
WW-4831 Converts nulls to nulls Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7f90a4fe Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7f90a4fe Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7f90a4fe Branch: refs/heads/master Commit: 7f90a4fec9e6718621c4f195fe7a334d43d8a2bb Parents: 62900ee 60d61fa Author: Lukasz Lenart Authored: Tue Aug 1 15:56:36 2017 +0200 Committer: Lukasz Lenart Committed: Tue Aug 1 15:56:36 2017 +0200 -- .../xwork2/conversion/impl/StringConverter.java | 3 ++- .../conversion/impl/StringConverterTest.java| 28 +++- 2 files changed, 29 insertions(+), 2 deletions(-) --
[2/3] struts git commit: [WW-4831] add unit tests for conversion of String arrays
[WW-4831] add unit tests for conversion of String arrays Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/60d61fac Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/60d61fac Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/60d61fac Branch: refs/heads/master Commit: 60d61fac0abb5993977e84f8dcc5bea6588f41d6 Parents: 8cc56b2 Author: thrawnca Authored: Tue Aug 1 11:51:37 2017 +1000 Committer: thrawnca Committed: Tue Aug 1 11:51:37 2017 +1000 -- .../conversion/impl/StringConverterTest.java| 28 +++- 1 file changed, 27 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/60d61fac/core/src/test/java/com/opensymphony/xwork2/conversion/impl/StringConverterTest.java -- diff --git a/core/src/test/java/com/opensymphony/xwork2/conversion/impl/StringConverterTest.java b/core/src/test/java/com/opensymphony/xwork2/conversion/impl/StringConverterTest.java index c275669..27fbb6b 100644 --- a/core/src/test/java/com/opensymphony/xwork2/conversion/impl/StringConverterTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/conversion/impl/StringConverterTest.java @@ -49,4 +49,30 @@ public class StringConverterTest extends StrutsInternalTestCase { assertEquals("234,12", value); } -} \ No newline at end of file +public void testStringArrayToStringConversion() { +// given +StringConverter converter = new StringConverter(); +Map context = new HashMap<>(); +context.put(ActionContext.LOCALE, new Locale("pl", "PL")); + +// when +Object value = converter.convertValue(context, null, null, null, new String[] {"foo", "baz"}, null); + +// then +assertEquals("foo, baz", value); + } + +public void testArrayOfNullToStringConversion() { +// given +StringConverter converter = new StringConverter(); +Map context = new HashMap<>(); +context.put(ActionContext.LOCALE, new Locale("pl", "PL")); + +// when +Object value = converter.convertValue(context, null, null, null, new String[] {null}, null); + +// then +assertEquals("", value); + } + +}
struts git commit: WW-4834 Improve RegEx used to validate URLs
Repository: struts Updated Branches: refs/heads/master 7f90a4fec -> 9d47af6ff WW-4834 Improve RegEx used to validate URLs Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/9d47af6f Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/9d47af6f Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/9d47af6f Branch: refs/heads/master Commit: 9d47af6ffa355977b5acc713e6d1f25fac260a28 Parents: 7f90a4f Author: Stefaan Dutry Authored: Tue Aug 1 17:33:53 2017 +0200 Committer: Stefaan Dutry Committed: Tue Aug 1 17:33:53 2017 +0200 -- .../validator/validators/URLValidator.java | 23 ++-- 1 file changed, 11 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/9d47af6f/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java -- diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java index 6cf58ef..b61f786 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java @@ -48,19 +48,18 @@ public class URLValidator extends FieldValidatorSupport { private static final Logger LOG = LogManager.getLogger(URLValidator.class); -public static final String DEFAULT_URL_REGEX = "^(https?|ftp):\\/\\/" + -"(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+" + -"(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=\\-]|%[0-9a-f]{2})+)?" + -"@)?(#?" + -")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*" + +public static final String DEFAULT_URL_REGEX = "^(?:https?|ftp)://" + +"(?:(?:[a-z0-9$_.+!*'(),;?&=\\-]|%[0-9a-f]{2})+" + +"(?::(?:[a-z0-9$_.+!*'(),;?&=\\-]|%[0-9a-f]{2})+)?" + +"@)?#?" + +"(?:(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*" + "[a-z][a-z0-9-]*[a-z0-9]" + -"|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}" + -"(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])" + -")(:\\d+)?" + -")(((\\/([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)*" + - "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-\\/\\:]|%[0-9a-f]{2})*)" + -"?)?)?" + -"(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=\\-]|%[0-9a-f]{2})*)?" + +"|(?:[1-9]?\\d|1\\d{2}|2[0-4]\\d|25[0-5]\\.){3}" + +"[1-9]?\\d|1\\d{2}|2[0-4]\\d|25[0-5]" + +")(?::\\d+)?" + +")(?:(?:/(?:[a-z0-9$_.+!*'(),;:@&=\\-]|%[0-9a-f]{2})*)*" + +"(?:\\?(?:[a-z0-9$_.+!*'(),;:@&=\\-/:]|%[0-9a-f]{2})*)?)?" + +"(?:#(?:[a-z0-9$_.+!*'(),;:@&=\\-]|%[0-9a-f]{2})*)?" + "$"; private String urlRegexExpression;