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 f0e028c98..828477588 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,7 @@
package org.apache.struts2.convention;
import com.opensymphony.xwork2.inject.Inject;
+import org.apache.commons.lang.xwork.StringUtils;
/**
*
@@ -46,7 +47,7 @@ public class DefaultActionNameBuilder implements ActionNameBuilder {
*/
@Inject(value = "struts.convention.action.suffix", required = false)
public void setActionSuffix(String actionSuffix) {
- if (!StringTools.isTrimmedEmpty(actionSuffix)) {
+ if (StringUtils.isNotBlank(actionSuffix)) {
this.actionSuffix = actionSuffix;
}
}
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
index 71ad8af1a..fc011f010 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
@@ -32,6 +32,7 @@ import javax.servlet.ServletContext;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
+import org.apache.commons.lang.xwork.StringUtils;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.config.ConfigurationException;
@@ -440,9 +441,9 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
public ResultInfo(Result result, PackageConfig packageConfig, String resultPath,
Class> actionClass, Map resultsByExtension) {
this.name = result.name();
- if (!StringTools.isTrimmedEmpty(result.type())) {
+ if (StringUtils.isNotBlank(result.type())) {
this.type = result.type();
- } else if (!StringTools.isTrimmedEmpty(result.location())) {
+ } else if (StringUtils.isNotBlank(result.location())) {
this.type = determineType(result.location(), packageConfig, resultsByExtension);
} else {
throw new ConfigurationException("The action class [" + actionClass + "] contains a " +
@@ -451,7 +452,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
}
// See if we can handle relative locations or not
- if (!StringTools.isTrimmedEmpty(result.location())) {
+ if (StringUtils.isNotBlank(result.location())) {
if (relativeResultTypes.contains(this.type) && !result.location().startsWith("/")) {
location = resultPath + result.location();
} else {
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 27e292d34..ab12b4cf1 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
@@ -146,7 +146,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject("struts.convention.action.fileProtocols")
public void setFileProtocols(String fileProtocols) {
- if (!StringTools.isTrimmedEmpty(fileProtocols)) {
+ if (StringUtils.isNotBlank(fileProtocols)) {
this.fileProtocols = TextParseUtil.commaDelimitedStringToSet(fileProtocols);
}
}
@@ -182,7 +182,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.packages", required = false)
public void setActionPackages(String actionPackages) {
- if (!StringTools.isTrimmedEmpty(actionPackages)) {
+ if (StringUtils.isNotBlank(actionPackages)) {
this.actionPackages = actionPackages.split("\\s*[,]\\s*");
}
}
@@ -202,7 +202,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.suffix", required = false)
public void setActionSuffix(String actionSuffix) {
- if (!StringTools.isTrimmedEmpty(actionSuffix)) {
+ if (StringUtils.isNotBlank(actionSuffix)) {
this.actionSuffix = actionSuffix;
}
}
@@ -213,7 +213,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.exclude.packages", required = false)
public void setExcludePackages(String excludePackages) {
- if (!StringTools.isTrimmedEmpty(excludePackages)) {
+ if (StringUtils.isNotBlank(excludePackages)) {
this.excludePackages = excludePackages.split("\\s*[,]\\s*");
}
}
@@ -681,7 +681,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (annotation != null) {
actionName = annotation.value() != null && annotation.value().equals(Action.DEFAULT_VALUE) ?
actionName : annotation.value();
- actionName = StringTools.lastToken(actionName, "/");
+ actionName = StringUtils.contains(actionName, "/") ? StringUtils.substringAfterLast(actionName, "/") : actionName;
}
ActionConfig.Builder actionConfig = new ActionConfig.Builder(pkgCfg.getName(),
@@ -758,7 +758,8 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (LOG.isTraceEnabled()) {
LOG.trace("Using non-default action namespace from the Action annotation of [#0]", action.value());
}
- actionNamespace = StringTools.upToLastToken(action.value(), "/");
+ String actionName = action.value();
+ actionNamespace = StringUtils.contains(actionName, "/") ? StringUtils.substringBeforeLast(actionName, "/") : StringUtils.EMPTY;
}
// Next grab the parent annotation from the class
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 b2a093df6..2c8ec6e90 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
@@ -23,6 +23,7 @@ package org.apache.struts2.convention;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.commons.lang.xwork.StringUtils;
/**
*
@@ -51,7 +52,7 @@ public class SEOActionNameBuilder implements ActionNameBuilder {
*/
@Inject(value = "struts.convention.action.suffix", required = false)
public void setActionSuffix(String actionSuffix) {
- if (!StringTools.isTrimmedEmpty(actionSuffix)) {
+ if (StringUtils.isNotBlank(actionSuffix)) {
this.actionSuffix = actionSuffix;
}
}
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/StringTools.java b/plugins/convention/src/main/java/org/apache/struts2/convention/StringTools.java
index 336d9fea9..ee6823c69 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/StringTools.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/StringTools.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.config.ConfigurationException;
+import org.apache.commons.lang.xwork.StringUtils;
/**
*
@@ -31,19 +32,6 @@ import com.opensymphony.xwork2.config.ConfigurationException;
*
*/
public class StringTools {
- public static boolean isTrimmedEmpty(String s) {
- return s == null || s.trim().length() == 0;
- }
-
- public static String lastToken(String str, String s) {
- int index = str.lastIndexOf(s);
- if (index >= 0) {
- return str.substring(index + 1);
- }
-
- return str;
- }
-
public static boolean contains(String[] strings, String value, boolean ignoreCase) {
if (strings != null) {
for (String string : strings) {
@@ -55,15 +43,6 @@ public class StringTools {
return false;
}
- public static String upToLastToken(String str, String s) {
- int index = str.lastIndexOf(s);
- if (index >= 0) {
- return str.substring(0, index);
- }
-
- return "";
- }
-
public static Map createParameterMap(String[] parms) {
Map map = new HashMap();
int subtract = parms.length % 2;
diff --git a/plugins/convention/src/test/java/org/apache/struts2/convention/StringToolsTest.java b/plugins/convention/src/test/java/org/apache/struts2/convention/StringToolsTest.java
deleted file mode 100644
index 811d4b8ea..000000000
--- a/plugins/convention/src/test/java/org/apache/struts2/convention/StringToolsTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $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
- * 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 junit.framework.TestCase;
-
-/**
- *
- * This class tests the string tools.
- *
- */
-public class StringToolsTest extends TestCase {
- public void testEmpty() {
- assertTrue(StringTools.isTrimmedEmpty(null));
- assertTrue(StringTools.isTrimmedEmpty(""));
- assertTrue(StringTools.isTrimmedEmpty(" "));
- assertFalse(StringTools.isTrimmedEmpty("f"));
- assertFalse(StringTools.isTrimmedEmpty(" f "));
- }
-
- public void testLastToken() {
- assertEquals("bar", StringTools.lastToken("/foo/bar", "/"));
- assertEquals("baz", StringTools.lastToken("/foo/bar/baz", "/"));
- assertEquals("baz", StringTools.lastToken("baz", "/"));
- }
-
- public void testUpToLastToken() {
- assertEquals("/foo", StringTools.upToLastToken("/foo/bar", "/"));
- assertEquals("/foo/bar", StringTools.upToLastToken("/foo/bar/baz", "/"));
- assertEquals("", StringTools.upToLastToken("/foo", "/"));
- assertEquals("", StringTools.upToLastToken("foo", "/"));
- }
-}
\ No newline at end of file