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