You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/06/16 20:37:17 UTC
[2/2] struts git commit: Minor code improvements's in the cdi,
convention, jasperreports, junit, rest and sitemesh plugin
Minor code improvements's in the cdi, convention, jasperreports, junit, rest and sitemesh plugin
- Use Java 7 features like diamond operator
- Improve some logging message and don't check LOG.isXxx if not necessary
- Fix some typos
- Use BooleanUtils.toBoolean(string) instead of "true".isEquals to be more robust
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/5a835cf6
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/5a835cf6
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/5a835cf6
Branch: refs/heads/master
Commit: 5a835cf6ac85a630704d52128ba0cbb58f03182a
Parents: 2e9df57
Author: Johannes Geppert <jo...@apache.org>
Authored: Tue Jun 16 20:37:20 2015 +0200
Committer: Johannes Geppert <jo...@apache.org>
Committed: Tue Jun 16 20:37:20 2015 +0200
----------------------------------------------------------------------
.../apache/struts2/cdi/CdiObjectFactory.java | 18 +--
.../struts2/convention/ActionConfigBuilder.java | 2 +-
.../ClasspathConfigurationProvider.java | 14 +-
.../convention/ConventionUnknownHandler.java | 60 +++-----
.../convention/ConventionsServiceImpl.java | 2 +-
.../DefaultInterceptorMapBuilder.java | 26 ++--
.../convention/DefaultResultMapBuilder.java | 18 +--
.../PackageBasedActionConfigBuilder.java | 153 ++++++++-----------
.../struts2/convention/ReflectionTools.java | 16 +-
.../apache/struts2/convention/StringTools.java | 12 +-
.../ConventionUnknownHandlerTest.java | 8 +-
.../convention/DefaultResultMapBuilderTest.java | 37 ++---
.../PackageBasedActionConfigBuilderTest.java | 54 ++-----
.../jasperreports/JasperReportsResult.java | 42 ++---
.../jasperreports/ValueStackShadowMap.java | 2 +-
.../apache/struts2/StrutsJUnit4TestCase.java | 15 +-
.../rest/DefaultContentTypeHandlerManager.java | 4 +-
.../org/apache/struts2/rest/HttpHeaders.java | 2 +-
.../struts2/rest/RestActionInvocation.java | 49 +++---
.../apache/struts2/rest/RestActionMapper.java | 36 ++---
.../struts2/rest/RestWorkflowInterceptor.java | 11 +-
.../sitemesh/FreemarkerDecoratorServlet.java | 31 ++--
.../struts2/sitemesh/StrutsSiteMeshFactory.java | 8 +-
.../sitemesh/VelocityDecoratorServlet.java | 14 +-
24 files changed, 235 insertions(+), 399 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/cdi/src/main/java/org/apache/struts2/cdi/CdiObjectFactory.java
----------------------------------------------------------------------
diff --git a/plugins/cdi/src/main/java/org/apache/struts2/cdi/CdiObjectFactory.java b/plugins/cdi/src/main/java/org/apache/struts2/cdi/CdiObjectFactory.java
index 08a5ffa..91601b3 100644
--- a/plugins/cdi/src/main/java/org/apache/struts2/cdi/CdiObjectFactory.java
+++ b/plugins/cdi/src/main/java/org/apache/struts2/cdi/CdiObjectFactory.java
@@ -21,8 +21,8 @@ package org.apache.struts2.cdi;
import com.opensymphony.xwork2.ObjectFactory;
import com.opensymphony.xwork2.inject.Inject;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.BeanManager;
@@ -114,14 +114,10 @@ public class CdiObjectFactory extends ObjectFactory {
bm = lookup(initialContext, CDI_JNDIKEY_BEANMANAGER_COMP_ENV);
}
if (bm == null) {
- if (LOG.isErrorEnabled()) {
- LOG.error("[findBeanManager]: Could not find BeanManager instance for any given JNDI key, giving up");
- }
+ LOG.error("[findBeanManager]: Could not find BeanManager instance for any given JNDI key, giving up");
}
} catch ( NamingException e ) {
- if (LOG.isErrorEnabled()) {
- LOG.error("[findBeanManager]: Unable to get InitialContext for BeanManager lookup", e);
- }
+ LOG.error("[findBeanManager]: Unable to get InitialContext for BeanManager lookup", e);
}
return bm;
}
@@ -135,16 +131,12 @@ public class CdiObjectFactory extends ObjectFactory {
* @return the BeanManager, if found; <tt>null</tt> if not found or {@link javax.naming.NamingException} was thrown.
*/
protected BeanManager lookup( Context context, String jndiKeyToCheck ) {
- if (LOG.isInfoEnabled()) {
- LOG.info("[lookup]: Checking for BeanManager under JNDI key " + jndiKeyToCheck);
- }
+ LOG.info("[lookup]: Checking for BeanManager under JNDI key {}", jndiKeyToCheck);
BeanManager result = null;
try {
result = (BeanManager) context.lookup(jndiKeyToCheck);
} catch ( NamingException e ) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("[lookup]: BeanManager lookup failed for JNDI key " + jndiKeyToCheck, e);
- }
+ LOG.debug("[lookup]: BeanManager lookup failed for JNDI key {}", jndiKeyToCheck, e);
}
return result;
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/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 71ec481..0d45590 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
@@ -32,7 +32,7 @@ package org.apache.struts2.convention;
public interface ActionConfigBuilder {
/**
* Builds all the action configurations and stores them into the XWork configuration instance
- * via XWork dependency injetion.
+ * via XWork dependency injection.
*/
void buildActionConfigs();
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/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 153986e..f5e7973 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
@@ -23,13 +23,14 @@ package org.apache.struts2.convention;
import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.ConfigurationException;
import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.ContainerBuilder;
import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.util.location.LocatableProperties;
-import org.apache.struts2.dispatcher.DispatcherListener;
-import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.commons.lang3.BooleanUtils;
import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.dispatcher.DispatcherListener;
/**
* <p>
@@ -49,20 +50,21 @@ public class ClasspathConfigurationProvider implements ConfigurationProvider, Di
@Inject(StrutsConstants.STRUTS_DEVMODE)
public void setDevMode(String mode) {
- this.devMode = "true".equals(mode);
+ this.devMode = BooleanUtils.toBoolean(mode);
}
@Inject("struts.convention.classes.reload")
public void setReload(String reload) {
- this.reload = "true".equals(reload);
+ this.reload = BooleanUtils.toBoolean(reload);
}
/**
* Not used.
*/
public void destroy() {
- if (this.listeningToDispatcher)
+ if (this.listeningToDispatcher) {
Dispatcher.removeDispatcherListener(this);
+ }
actionConfigBuilder.destroy();
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionUnknownHandler.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionUnknownHandler.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionUnknownHandler.java
index 4ba807b..bacc30d 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionUnknownHandler.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionUnknownHandler.java
@@ -20,34 +20,21 @@
*/
package org.apache.struts2.convention;
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionSupport;
-import com.opensymphony.xwork2.ObjectFactory;
-import com.opensymphony.xwork2.Result;
-import com.opensymphony.xwork2.UnknownHandler;
-import com.opensymphony.xwork2.XWorkException;
+import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.ConfigurationException;
-import com.opensymphony.xwork2.config.entities.ActionConfig;
-import com.opensymphony.xwork2.config.entities.InterceptorMapping;
-import com.opensymphony.xwork2.config.entities.PackageConfig;
-import com.opensymphony.xwork2.config.entities.ResultConfig;
-import com.opensymphony.xwork2.config.entities.ResultTypeConfig;
+import com.opensymphony.xwork2.config.entities.*;
import com.opensymphony.xwork2.config.providers.InterceptorBuilder;
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.ClassLoaderUtil;
-import org.apache.logging.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import javax.servlet.ServletContext;
import java.net.MalformedURLException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* <p>
@@ -172,7 +159,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
// try to find index action in current namespace or in default one
if (actionConfig == null) {
- LOG.trace("Looking for action named [index] in namespace [#0] or in default namespace", namespace);
+ LOG.trace("Looking for action named [index] in namespace [{}] or in default namespace", namespace);
actionConfig = configuration.getRuntimeConfiguration().getActionConfig(namespace, "index");
}
}
@@ -197,9 +184,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
return new Resource(canonicalPath, ext);
}
} catch (MalformedURLException e) {
- if (LOG.isErrorEnabled()) {
- LOG.error("Unable to parse path to the web application resource {} skipping...", canonicalPath);
- }
+ LOG.error("Unable to parse path to the web application resource {} skipping...", canonicalPath);
}
}
@@ -215,8 +200,8 @@ public class ConventionUnknownHandler implements UnknownHandler {
}
protected ActionConfig buildActionConfig(String path, ResultTypeConfig resultTypeConfig) {
- Map<String, ResultConfig> results = new HashMap<String, ResultConfig>();
- HashMap<String, String> params = new HashMap<String, String>();
+ Map<String, ResultConfig> results = new HashMap<>();
+ HashMap<String, String> params = new HashMap<>();
if (resultTypeConfig.getParams() != null) {
params.putAll(resultTypeConfig.getParams());
}
@@ -240,7 +225,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
if (LOG.isTraceEnabled()) {
String fqan = ns + "/" + actionName;
LOG.trace("Trying to locate the correct result for the FQ action [{}]"
- + " with an file extension of [#1] in the directory [{}] " + "and a result code of [{}]",
+ + " with an file extension of [{}] in the directory [{}] " + "and a result code of [{}]",
fqan, ext, pathPrefix, resultCode);
}
@@ -306,10 +291,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
String chainedTo = actionName + nameSeparator + resultCode;
ActionConfig chainedToConfig = pkg.getActionConfigs().get(chainedTo);
if (chainedToConfig != null) {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Action [{}] used as chain result for [{}] and result [{}]", chainedTo, actionName, resultCode);
- }
-
+ LOG.trace("Action [{}] used as chain result for [{}] and result [{}]", chainedTo, actionName, resultCode);
ResultTypeConfig chainResultType = pkg.getAllResultTypeConfigs().get("chain");
result = buildResult(chainedTo, resultCode, chainResultType, actionContext);
}
@@ -321,28 +303,22 @@ public class ConventionUnknownHandler implements UnknownHandler {
protected Result findResult(String path, String resultCode, String ext, ActionContext actionContext,
Map<String, ResultTypeConfig> resultsByExtension) {
try {
- boolean traceEnabled = LOG.isTraceEnabled();
- if (traceEnabled)
- LOG.trace("Checking ServletContext for {}", path);
+ LOG.trace("Checking ServletContext for {}", path);
if (servletContext.getResource(path) != null) {
- if (traceEnabled)
- LOG.trace("Found");
+ LOG.trace("Found");
return buildResult(path, resultCode, resultsByExtension.get(ext), actionContext);
}
- if (traceEnabled)
- LOG.trace("Checking ClasLoader for {}", path);
+ LOG.trace("Checking ClassLoader for {}", path);
String classLoaderPath = path.startsWith("/") ? path.substring(1, path.length()) : path;
if (ClassLoaderUtil.getResource(classLoaderPath, getClass()) != null) {
- if (traceEnabled)
- LOG.trace("Found");
+ LOG.trace("Found");
return buildResult(path, resultCode, resultsByExtension.get(ext), actionContext);
}
} catch (MalformedURLException e) {
- if (LOG.isErrorEnabled())
- LOG.error("Unable to parse template path: {} skipping...", path);
+ LOG.error("Unable to parse template path: {} skipping...", path);
}
return null;
@@ -351,7 +327,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
protected Result buildResult(String path, String resultCode, ResultTypeConfig config, ActionContext invocationContext) {
String resultClass = config.getClassName();
- Map<String, String> params = new LinkedHashMap<String, String>();
+ Map<String, String> params = new LinkedHashMap<>();
if (config.getParams() != null) {
params.putAll(config.getParams());
}
@@ -389,7 +365,7 @@ public class ConventionUnknownHandler implements UnknownHandler {
finalPrefix += "/";
}
- if (namespace == null || "/".equals(namespace)) {
+ if (StringUtils.equals(namespace,"/" )) {
namespace = "";
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionsServiceImpl.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionsServiceImpl.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionsServiceImpl.java
index 56815a6..1a8af90 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionsServiceImpl.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ConventionsServiceImpl.java
@@ -107,7 +107,7 @@ public class ConventionsServiceImpl implements ConventionsService {
public Map<String, ResultTypeConfig> getResultTypesByExtension(PackageConfig packageConfig) {
Map<String, ResultTypeConfig> results = packageConfig.getAllResultTypeConfigs();
- Map<String, ResultTypeConfig> resultsByExtension = new HashMap<String, ResultTypeConfig>();
+ Map<String, ResultTypeConfig> resultsByExtension = new HashMap<>();
resultsByExtension.put("jsp", results.get("dispatcher"));
resultsByExtension.put("jspf", results.get("dispatcher"));
resultsByExtension.put("jspx", results.get("dispatcher"));
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
index 0e9edd8..6ebce88 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
@@ -27,8 +27,8 @@ import com.opensymphony.xwork2.config.entities.PackageConfig;
import com.opensymphony.xwork2.config.providers.InterceptorBuilder;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.AnnotationUtils;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
@@ -50,7 +50,7 @@ public class DefaultInterceptorMapBuilder implements InterceptorMapBuilder {
public List<InterceptorMapping> build(Class<?> actionClass, PackageConfig.Builder builder,
String actionName, Action annotation) {
- List<InterceptorMapping> interceptorList = new ArrayList<InterceptorMapping>(
+ List<InterceptorMapping> interceptorList = new ArrayList<>(
10);
//from @InterceptorRefs annotation
@@ -75,27 +75,19 @@ public class DefaultInterceptorMapBuilder implements InterceptorMapBuilder {
}
protected List<InterceptorMapping> build(InterceptorRef[] interceptors, String actionName, PackageConfig.Builder builder) {
- List<InterceptorMapping> interceptorList = new ArrayList<InterceptorMapping>(
- 10);
+ List<InterceptorMapping> interceptorList = new ArrayList<>(10);
for (InterceptorRef interceptor : interceptors) {
- if (LOG.isTraceEnabled())
- LOG.trace("Adding interceptor [{}] to [{}]",
- interceptor.value(), actionName);
- Map<String, String> params = StringTools.createParameterMap(interceptor
- .params());
- interceptorList.addAll(buildInterceptorList(builder,
- interceptor, params));
+ LOG.trace("Adding interceptor [{}] to [{}]", interceptor.value(), actionName);
+ Map<String, String> params = StringTools.createParameterMap(interceptor.params());
+ interceptorList.addAll(buildInterceptorList(builder, interceptor, params));
}
return interceptorList;
}
- protected List<InterceptorMapping> buildInterceptorList(
- PackageConfig.Builder builder, InterceptorRef ref, Map params) {
- return InterceptorBuilder.constructInterceptorReference(builder, ref
- .value(), params, builder.build().getLocation(),
- configuration.getContainer().getInstance(
- ObjectFactory.class));
+ protected List<InterceptorMapping> buildInterceptorList(PackageConfig.Builder builder, InterceptorRef ref, Map params) {
+ return InterceptorBuilder.constructInterceptorReference(builder, ref.value(), params, builder.build().getLocation(),
+ configuration.getContainer().getInstance(ObjectFactory.class));
}
@Inject
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
----------------------------------------------------------------------
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 d27381d..767b534 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,21 +32,17 @@ import com.opensymphony.xwork2.util.finder.ClassLoaderInterface;
import com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate;
import com.opensymphony.xwork2.util.finder.ResourceFinder;
import com.opensymphony.xwork2.util.finder.Test;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.net.URL;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
/**
* <p>
@@ -135,7 +131,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
public DefaultResultMapBuilder(ServletContext servletContext, Container container,
@Inject("struts.convention.relative.result.types") String relativeResultTypes) {
this.servletContext = servletContext;
- this.relativeResultTypes = new HashSet<String>(Arrays.asList(relativeResultTypes.split("\\s*[,]\\s*")));
+ this.relativeResultTypes = new HashSet<>(Arrays.asList(relativeResultTypes.split("\\s*[,]\\s*")));
this.conventionsService = container.getInstance(ConventionsService.class, container.getInstance(String.class, ConventionConstants.CONVENTION_CONVENTIONS_SERVICE));
}
@@ -184,7 +180,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
String resultPrefix = defaultResultPath + actionName;
//results from files
- Map<String, ResultConfig> results = new HashMap<String, ResultConfig>();
+ Map<String, ResultConfig> results = new HashMap<>();
Map<String, ResultTypeConfig> resultsByExtension = conventionsService.getResultTypesByExtension(packageConfig);
createFromResources(actionClass, results, defaultResultPath, resultPrefix, actionName,
packageConfig, resultsByExtension);
@@ -318,7 +314,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
if (ctx != null)
classLoaderInterface = (ClassLoaderInterface) ctx.get(ClassLoaderInterface.CLASS_LOADER_INTERFACE);
- return (ClassLoaderInterface) ObjectUtils.defaultIfNull(classLoaderInterface, new ClassLoaderInterfaceDelegate(Thread.currentThread().getContextClassLoader()));
+ return ObjectUtils.defaultIfNull(classLoaderInterface, new ClassLoaderInterfaceDelegate(Thread.currentThread().getContextClassLoader()));
}
@@ -448,7 +444,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
}
// Add the default parameters for the result type config (if any)
- HashMap<String, String> params = new HashMap<String, String>();
+ HashMap<String, String> params = new HashMap<>();
if (resultTypeConfig.getParams() != null) {
params.putAll(resultTypeConfig.getParams());
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/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 702e1d3..cac3566 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
@@ -26,52 +26,28 @@ import com.opensymphony.xwork2.FileManagerFactory;
import com.opensymphony.xwork2.ObjectFactory;
import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.ConfigurationException;
-import com.opensymphony.xwork2.config.entities.ActionConfig;
-import com.opensymphony.xwork2.config.entities.ExceptionMappingConfig;
-import com.opensymphony.xwork2.config.entities.InterceptorMapping;
-import com.opensymphony.xwork2.config.entities.PackageConfig;
-import com.opensymphony.xwork2.config.entities.ResultConfig;
+import com.opensymphony.xwork2.config.entities.*;
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.AnnotationUtils;
import com.opensymphony.xwork2.util.TextParseUtil;
import com.opensymphony.xwork2.util.WildcardHelper;
import com.opensymphony.xwork2.util.classloader.ReloadingClassLoader;
-import com.opensymphony.xwork2.util.finder.ClassFinder;
-import com.opensymphony.xwork2.util.finder.ClassFinderFactory;
-import com.opensymphony.xwork2.util.finder.DefaultClassFinder;
-import com.opensymphony.xwork2.util.finder.ClassLoaderInterface;
-import com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate;
-import com.opensymphony.xwork2.util.finder.Test;
-import com.opensymphony.xwork2.util.finder.UrlSet;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
+import com.opensymphony.xwork2.util.finder.*;
+import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.struts2.StrutsConstants;
import org.apache.struts2.StrutsException;
-import org.apache.struts2.convention.annotation.Action;
-import org.apache.struts2.convention.annotation.Actions;
-import org.apache.struts2.convention.annotation.DefaultInterceptorRef;
-import org.apache.struts2.convention.annotation.ExceptionMapping;
-import org.apache.struts2.convention.annotation.ExceptionMappings;
-import org.apache.struts2.convention.annotation.Namespace;
-import org.apache.struts2.convention.annotation.Namespaces;
-import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.*;
import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Pattern;
/**
@@ -101,7 +77,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
private String actionSuffix = "Action";
private boolean checkImplementsAction = true;
private boolean mapAllMatches = false;
- private Set<String> loadedFileUrls = new HashSet<String>();
+ private Set<String> loadedFileUrls = new HashSet<>();
private boolean devMode;
private ReloadingClassLoader reloadingClassLoader;
private boolean reload;
@@ -151,7 +127,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
@Inject(StrutsConstants.STRUTS_DEVMODE)
public void setDevMode(String mode) {
- this.devMode = "true".equals(mode);
+ this.devMode = BooleanUtils.toBoolean(mode);
}
/**
@@ -160,13 +136,13 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject("struts.convention.classes.reload")
public void setReload(String reload) {
- this.reload = "true".equals(reload);
+ this.reload = BooleanUtils.toBoolean(reload);
}
@Inject(StrutsConstants.STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES)
public void setSlashesInActionNames(String slashesInActionNames) {
- this.slashesInActionNames = "true".equals(slashesInActionNames);
+ this.slashesInActionNames = BooleanUtils.toBoolean(slashesInActionNames);
}
/**
@@ -174,7 +150,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject("struts.convention.exclude.parentClassLoader")
public void setExcludeParentClassLoader(String exclude) {
- this.excludeParentClassLoader = "true".equals(exclude);
+ this.excludeParentClassLoader = BooleanUtils.toBoolean(exclude);
}
/**
@@ -183,7 +159,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject("struts.convention.action.alwaysMapExecute")
public void setAlwaysMapExecute(String alwaysMapExecute) {
- this.alwaysMapExecute = "true".equals(alwaysMapExecute);
+ this.alwaysMapExecute = BooleanUtils.toBoolean(alwaysMapExecute);
}
/**
@@ -202,7 +178,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.disableScanning", required = false)
public void setDisableActionScanning(String disableActionScanning) {
- this.disableActionScanning = "true".equals(disableActionScanning);
+ this.disableActionScanning = BooleanUtils.toBoolean(disableActionScanning);
}
/**
@@ -219,7 +195,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.package.locators.disable", required = false)
public void setDisablePackageLocatorsScanning(String disablePackageLocatorsScanning) {
- this.disablePackageLocatorsScanning = "true".equals(disablePackageLocatorsScanning);
+ this.disablePackageLocatorsScanning = BooleanUtils.toBoolean(disablePackageLocatorsScanning);
}
/**
@@ -239,7 +215,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.checkImplementsAction", required = false)
public void setCheckImplementsAction(String checkImplementsAction) {
- this.checkImplementsAction = "true".equals(checkImplementsAction);
+ this.checkImplementsAction = BooleanUtils.toBoolean(checkImplementsAction);
}
/**
@@ -288,7 +264,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.mapAllMatches", required = false)
public void setMapAllMatches(String mapAllMatches) {
- this.mapAllMatches = "true".equals(mapAllMatches);
+ this.mapAllMatches = BooleanUtils.toBoolean(mapAllMatches);
}
/**
@@ -297,7 +273,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
@Inject(value = "struts.convention.action.eagerLoading", required = false)
public void setEagerLoading(String eagerLoading) {
- this.eagerLoading = "true".equals(eagerLoading);
+ this.eagerLoading = BooleanUtils.toBoolean(eagerLoading);
}
@Inject
@@ -343,12 +319,15 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (LOG.isTraceEnabled()) {
LOG.trace("Loading action configurations");
- if (actionPackages != null)
- LOG.trace("Actions being loaded from action packages " + Arrays.asList(actionPackages));
- if (packageLocators != null)
- LOG.trace("Actions being loaded using package locators " + Arrays.asList(packageLocators));
- if (excludePackages != null)
- LOG.trace("Excluding actions from packages " + Arrays.asList(excludePackages));
+ if (actionPackages != null) {
+ LOG.trace("Actions being loaded from action packages: {}", actionPackages);
+ }
+ if (packageLocators != null) {
+ LOG.trace("Actions being loaded using package locator's: {}", packageLocators);
+ }
+ if (excludePackages != null) {
+ LOG.trace("Excluding actions from packages: {}", excludePackages);
+ }
}
Set<Class> classes = findActions();
@@ -357,8 +336,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
}
protected ClassLoaderInterface getClassLoaderInterface() {
- if (isReloadEnabled())
+ if (isReloadEnabled()) {
return new ClassLoaderInterfaceDelegate(this.reloadingClassLoader);
+ }
else {
/*
if there is a ClassLoaderInterface in the context, use it, otherwise
@@ -370,9 +350,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
ClassLoaderInterface classLoaderInterface = null;
ActionContext ctx = ActionContext.getContext();
- if (ctx != null)
+ if (ctx != null) {
classLoaderInterface = (ClassLoaderInterface) ctx.get(ClassLoaderInterface.CLASS_LOADER_INTERFACE);
-
+ }
return ObjectUtils.defaultIfNull(classLoaderInterface, new ClassLoaderInterfaceDelegate(getClassLoader()));
}
}
@@ -383,7 +363,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
@SuppressWarnings("unchecked")
protected Set<Class> findActions() {
- Set<Class> classes = new HashSet<Class>();
+ Set<Class> classes = new HashSet<>();
try {
if (actionPackages != null || (packageLocators != null && !disablePackageLocatorsScanning)) {
@@ -400,8 +380,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
classes.addAll(finder.findClasses(test));
}
} catch (Exception ex) {
- if (LOG.isErrorEnabled())
- LOG.error("Unable to scan named packages", ex);
+ LOG.error("Unable to scan named packages", ex);
}
return classes;
@@ -418,7 +397,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
}
private List<URL> readUrls() throws IOException {
- List<URL> resourceUrls = new ArrayList<URL>();
+ List<URL> resourceUrls = new ArrayList<>();
// Usually the "classes" dir.
ArrayList<URL> classesList = Collections.list(getClassLoaderInterface().getResources(""));
for (URL url : classesList) {
@@ -437,7 +416,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
//exclude parent of classloaders
ClassLoaderInterface parent = classLoaderInterface.getParent();
//if reload is enabled, we need to step up one level, otherwise the UrlSet will be empty
- //this happens because the parent of the realoding class loader is the web app classloader
+ //this happens because the parent of the reloading class loader is the web app classloader
if (parent != null && isReloadEnabled())
parent = parent.getParent();
@@ -450,8 +429,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
urlSet = urlSet.exclude(new ClassLoaderInterfaceDelegate(systemClassLoader.getParent()));
} catch (SecurityException e) {
- if (LOG.isWarnEnabled())
- LOG.warn("Could not get the system classloader due to security constraints, there may be improper urls left to scan");
+ LOG.warn("Could not get the system classloader due to security constraints, there may be improper urls left to scan");
}
}
@@ -469,8 +447,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
urlSet = urlSet.excludeJavaHome();
} catch (NullPointerException e) {
// This happens in GAE since the sandbox contains no java.home directory
- if (LOG.isWarnEnabled())
- LOG.warn("Could not exclude JAVA_HOME, is this a sandbox jvm?");
+ LOG.warn("Could not exclude JAVA_HOME, is this a sandbox jvm?");
}
urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", ""));
urlSet = urlSet.exclude(".*/JavaVM.framework/.*");
@@ -482,12 +459,12 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
LOG.debug("jar urls regexes were specified: {}", Arrays.asList(includeJars));
}
List<URL> rawIncludedUrls = urlSet.getUrls();
- Set<URL> includeUrls = new HashSet<URL>();
+ Set<URL> includeUrls = new HashSet<>();
boolean[] patternUsed = new boolean[includeJars.length];
for (URL url : rawIncludedUrls) {
if (fileProtocols.contains(url.getProtocol())) {
- //it is a jar file, make sure it macthes at least a url regex
+ //it is a jar file, make sure it matches at least a url regex
for (int i = 0; i < includeJars.length; i++) {
String includeJar = includeJars[i];
if (Pattern.matches(includeJar, url.toExternalForm())) {
@@ -544,7 +521,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
WildcardHelper wildcardHelper = new WildcardHelper();
//we really don't care about the results, just the boolean
- Map<String, String> matchMap = new HashMap<String, String>();
+ Map<String, String> matchMap = new HashMap<>();
for(String packageExclude : excludePackages) {
int[] packagePattern = wildcardHelper.compilePattern(packageExclude);
@@ -566,9 +543,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (actionPackages != null) {
for (String packageName : actionPackages) {
String strictPackageName = packageName + ".";
- if (classPackageName.equals(packageName)
- || classPackageName.startsWith(strictPackageName))
+ if (classPackageName.equals(packageName) || classPackageName.startsWith(strictPackageName)) {
return true;
+ }
}
}
return false;
@@ -587,8 +564,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
for (String packageLocator : packageLocators) {
String[] splitted = classPackageName.split("\\.");
- if (StringTools.contains(splitted, packageLocator, false))
+ if (StringTools.contains(splitted, packageLocator, false)) {
return true;
+ }
}
}
return false;
@@ -638,7 +616,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
try {
return inPackage && (nameMatches || (checkImplementsAction && com.opensymphony.xwork2.Action.class.isAssignableFrom(classInfo.get())));
} catch (ClassNotFoundException ex) {
- LOG.error("Unable to load class [{}]", ex, classInfo.getName());
+ LOG.error("Unable to load class [{}]", classInfo.getName(), ex);
return false;
}
}
@@ -647,7 +625,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
@SuppressWarnings("unchecked")
protected void buildConfiguration(Set<Class> classes) {
- Map<String, PackageConfig.Builder> packageConfigs = new HashMap<String, PackageConfig.Builder>();
+ Map<String, PackageConfig.Builder> packageConfigs = new HashMap<>();
for (Class<?> actionClass : classes) {
Actions actionsAnnotation = actionClass.getAnnotation(Actions.class);
@@ -664,16 +642,14 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
try {
objectFactory.getClassInstance(actionClass.getName());
} catch (ClassNotFoundException e) {
- LOG.error("Object Factory was unable to load class [{}]", e, actionClass.getName());
+ LOG.error("Object Factory was unable to load class [{}]", actionClass.getName(), e);
throw new StrutsException("Object Factory was unable to load class " + actionClass.getName(), e);
}
}
// Determine the action package
String actionPackage = actionClass.getPackage().getName();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Processing class [{}] in package [{}]", actionClass.getName(), actionPackage);
- }
+ LOG.debug("Processing class [{}] in package [{}]", actionClass.getName(), actionPackage);
// Determine the default namespace and action name
List<String> namespaces = determineActionNamespace(actionClass);
@@ -685,7 +661,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
// Verify that the annotations have no errors and also determine if the default action
// configuration should still be built or not.
Map<String, List<Action>> map = getActionAnnotations(actionClass);
- Set<String> actionNames = new HashSet<String>();
+ Set<String> actionNames = new HashSet<>();
boolean hasDefaultMethod = ReflectionTools.containsMethod(actionClass, DEFAULT_METHOD);
if (!map.containsKey(DEFAULT_METHOD)
&& hasDefaultMethod
@@ -781,7 +757,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
* @return The namespace or an empty string.
*/
protected List<String> determineActionNamespace(Class<?> actionClass) {
- List<String> namespaces = new ArrayList<String>();
+ List<String> namespaces = new ArrayList<>();
// Check if there is a class or package level annotation for the namespace
//single namespace
@@ -803,8 +779,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
LOG.trace("Using non-default action namespaces from Namespaces annotation of [{}]", sb.toString());
}
- for (Namespace namespace : namespacesAnnotation.value())
+ for (Namespace namespace : namespacesAnnotation.value()) {
namespaces.add(namespace.value());
+ }
}
//don't use default if there are annotations
@@ -869,7 +846,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
*/
protected Map<String, List<Action>> getActionAnnotations(Class<?> actionClass) {
Method[] methods = actionClass.getMethods();
- Map<String, List<Action>> map = new HashMap<String, List<Action>>();
+ Map<String, List<Action>> map = new HashMap<>();
for (Method method : methods) {
Actions actionsAnnotation = method.getAnnotation(Actions.class);
if (actionsAnnotation != null) {
@@ -894,13 +871,12 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
protected List<Action> checkActionsAnnotation(Actions actionsAnnotation) {
Action[] actionArray = actionsAnnotation.value();
boolean valuelessSeen = false;
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
for (Action ann : actionArray) {
if (ann.value().equals(Action.DEFAULT_VALUE) && !valuelessSeen) {
valuelessSeen = true;
} else if (ann.value().equals(Action.DEFAULT_VALUE)) {
- throw new ConfigurationException("You may only add a single Action " +
- "annotation that has no value parameter.");
+ throw new ConfigurationException("You may only add a single Action annotation that has no value parameter.");
}
actions.add(ann);
@@ -980,7 +956,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
}
protected List<ExceptionMappingConfig> buildExceptionMappings(ExceptionMapping[] exceptions, String actionName) {
- List<ExceptionMappingConfig> exceptionMappings = new ArrayList<ExceptionMappingConfig>();
+ List<ExceptionMappingConfig> exceptionMappings = new ArrayList<>();
for (ExceptionMapping exceptionMapping : exceptions) {
LOG.trace("Mapping exception [{}] to result [{}] for action [{}]", exceptionMapping.exception(),
@@ -1062,7 +1038,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
* @param packageConfigs Used to store the actions.
*/
protected void buildIndexActions(Map<String, PackageConfig.Builder> packageConfigs) {
- Map<String, PackageConfig.Builder> byNamespace = new HashMap<String, PackageConfig.Builder>();
+ Map<String, PackageConfig.Builder> byNamespace = new HashMap<>();
Collection<PackageConfig.Builder> values = packageConfigs.values();
for (PackageConfig.Builder packageConfig : values) {
byNamespace.put(packageConfig.getNamespace(), packageConfig);
@@ -1095,18 +1071,15 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (parent.build().getAllActionConfigs().get(parentAction) == null) {
parent.addActionConfig(parentAction, indexActionConfig);
}
- } else if (LOG.isTraceEnabled()) {
- LOG.trace("The parent namespace [{}] already contains " +
- "an action [{}]", parentNamespace, parentAction);
+ } else {
+ LOG.trace("The parent namespace [{}] already contains an action [{}]", parentNamespace, parentAction);
}
}
}
// Step #3
if (pkgConfig.build().getAllActionConfigs().get("") == null) {
- LOG.trace("Creating index ActionConfig with an action name of [] for the action " +
- "class [{}]", indexActionConfig.getClassName());
-
+ LOG.trace("Creating index ActionConfig with an action name of [] for the action class [{}]", indexActionConfig.getClassName());
pkgConfig.addActionConfig("", indexActionConfig);
}
}
@@ -1120,15 +1093,15 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
if (devMode && reload) {
for (String url : loadedFileUrls) {
if (fileManager.fileNeedsReloading(url)) {
- if (LOG.isDebugEnabled())
- LOG.debug("File [{}] changed, configuration will be reloaded", url);
+ LOG.debug("File [{}] changed, configuration will be reloaded", url);
return true;
}
}
return false;
- } else
+ } else {
return false;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
index 1128635..7140fe9 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
@@ -22,8 +22,8 @@ package org.apache.struts2.convention;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
/**
* <p>
@@ -34,14 +34,14 @@ public class ReflectionTools {
/**
* Determines if the class given contains the method.
*
- * @param klass The class to check for the method.
+ * @param clazz The class to check for the method.
* @param method The method name.
* @param parameterTypes The parameter types of the method.
* @return True if the method exists, false if not.
*/
- public static boolean containsMethod(Class<?> klass, String method, Class<?>... parameterTypes) {
+ public static boolean containsMethod(Class<?> clazz, String method, Class<?>... parameterTypes) {
try {
- klass.getMethod(method, parameterTypes);
+ clazz.getMethod(method, parameterTypes);
return true;
} catch (NoSuchMethodException e) {
return false;
@@ -51,14 +51,14 @@ public class ReflectionTools {
/**
* Retrieves the annotation from the given method in the given class.
*
- * @param klass The class.
+ * @param clazz The class.
* @param methodName The method.
* @param annotationClass The annotation to get.
* @return The annotation or null if it doesn't exist.
*/
- public static <T extends Annotation> T getAnnotation(Class<?> klass, String methodName, Class<T> annotationClass) {
+ public static <T extends Annotation> T getAnnotation(Class<?> clazz, String methodName, Class<T> annotationClass) {
try {
- Method method = klass.getMethod(methodName);
+ Method method = clazz.getMethod(methodName);
return method.getAnnotation(annotationClass);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
@@ -71,7 +71,7 @@ public class ReflectionTools {
* @return hierarchy of classes
*/
public static List<Class<?>> getClassHierarchy(Class<?> clazz) {
- List<Class<?>> classes = new ArrayList<Class<?>>();
+ List<Class<?>> classes = new ArrayList<>();
while (clazz != null) {
classes.add(0, clazz);
clazz = clazz.getSuperclass();
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/main/java/org/apache/struts2/convention/StringTools.java
----------------------------------------------------------------------
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 651575a..dbe53bb 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
@@ -42,9 +42,9 @@ public class StringTools {
return false;
}
- public static Map<String, String> createParameterMap(String[] parms) {
- Map<String, String> map = new HashMap<String, String>();
- int subtract = parms.length % 2;
+ public static Map<String, String> createParameterMap(String[] params) {
+ Map<String, String> map = new HashMap<>();
+ int subtract = params.length % 2;
if (subtract != 0) {
throw new ConfigurationException(
"'params' is a string array "
@@ -53,9 +53,9 @@ public class StringTools {
+ " (e.g. params = {\"key\", \"value\"})");
}
- for (int i = 0; i < parms.length; i = i + 2) {
- String key = parms[i];
- String value = parms[i + 1];
+ for (int i = 0; i < params.length; i = i + 2) {
+ String key = params[i];
+ String value = params[i + 1];
map.put(key, value);
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/test/java/org/apache/struts2/convention/ConventionUnknownHandlerTest.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/test/java/org/apache/struts2/convention/ConventionUnknownHandlerTest.java b/plugins/convention/src/test/java/org/apache/struts2/convention/ConventionUnknownHandlerTest.java
index e3a51c8..10733af 100644
--- a/plugins/convention/src/test/java/org/apache/struts2/convention/ConventionUnknownHandlerTest.java
+++ b/plugins/convention/src/test/java/org/apache/struts2/convention/ConventionUnknownHandlerTest.java
@@ -38,11 +38,7 @@ import java.util.Map;
import java.util.Set;
import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.createNiceMock;
-import static org.easymock.classextension.EasyMock.createStrictMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
+import static org.easymock.classextension.EasyMock.*;
public class ConventionUnknownHandlerTest extends TestCase {
@@ -161,7 +157,7 @@ public class ConventionUnknownHandlerTest extends TestCase {
ActionConfig actionConfig = null;
expect(service.determineResultPath(actionConfig)).andReturn("");
- Map<String, ResultTypeConfig> results = new HashMap<String, ResultTypeConfig>();
+ Map<String, ResultTypeConfig> results = new HashMap<>();
results.put("jsp", new ResultTypeConfig.Builder("dispatcher", ServletDispatcherResult.class.getName()).build());
expect(service.getResultTypesByExtension(packageConfiguration)).andReturn(results);
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java b/plugins/convention/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java
index de7ab16..502b202 100644
--- a/plugins/convention/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java
+++ b/plugins/convention/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java
@@ -26,16 +26,7 @@ import com.opensymphony.xwork2.config.entities.ResultTypeConfig;
import com.opensymphony.xwork2.inject.Container;
import junit.framework.TestCase;
import org.apache.struts2.convention.actions.NoAnnotationAction;
-import org.apache.struts2.convention.actions.result.ActionLevelResultAction;
-import org.apache.struts2.convention.actions.result.ActionLevelResultsAction;
-import org.apache.struts2.convention.actions.result.ClassLevelResultAction;
-import org.apache.struts2.convention.actions.result.ClassLevelResultsAction;
-import org.apache.struts2.convention.actions.result.GlobalResultAction;
-import org.apache.struts2.convention.actions.result.GlobalResultOverrideAction;
-import org.apache.struts2.convention.actions.result.InheritedResultExtends;
-import org.apache.struts2.convention.actions.result.InheritedResultsExtends;
-import org.apache.struts2.convention.actions.result.OverrideInheritedResultExtends;
-import org.apache.struts2.convention.actions.result.OverrideResultAction;
+import org.apache.struts2.convention.actions.result.*;
import org.apache.struts2.convention.actions.resultpath.ClassLevelResultPathAction;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.dispatcher.ServletDispatcherResult;
@@ -121,7 +112,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
String resultPath = "/WEB-INF/location";
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add(resultPath + "/namespace/action.jsp");
resources.add(resultPath + "/namespace/action-success.jsp");
resources.add(resultPath + "/namespace/action-error.jsp");
@@ -179,7 +170,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add("/WEB-INF/location/namespace/.something");
resources.add("/WEB-INF/location/namespace/.somethingelse/");
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
@@ -199,7 +190,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add("/WEB-INF/location/namespace/no-annotation.ftl");
resources.add("/WEB-INF/location/namespace/no-annotation-success.jsp");
resources.add("/WEB-INF/location/namespace/no-annotation-failure.jsp");
@@ -233,7 +224,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add("/WEB-INF/location/namespace/no-annotation/index.ftl");
resources.add("/WEB-INF/location/namespace/no-annotation/success.jsp");
resources.add("/WEB-INF/location/namespace/no-annotation/failure.jsp");
@@ -269,7 +260,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add("/WEB-INF/location/namespace/no-annotation/.svn");
resources.add("/WEB-INF/location/namespace/no-annotation-success.jsp");
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
@@ -293,7 +284,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -316,7 +307,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -339,7 +330,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -364,7 +355,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -403,7 +394,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -442,7 +433,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -465,7 +456,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
EasyMock.expect(context.getResourcePaths("/WEB-INF/location/namespace/")).andReturn(resources);
EasyMock.replay(context);
@@ -544,7 +535,7 @@ public class DefaultResultMapBuilderTest extends TestCase {
ServletContext context = EasyMock.createStrictMock(ServletContext.class);
// Setup some mock jsps
- Set<String> resources = new HashSet<String>();
+ Set<String> resources = new HashSet<>();
resources.add(resultPath + "/namespace/action.jsp");
resources.add(resultPath + "/namespace/action-success.jsp");
resources.add(resultPath + "/namespace/action-failure.jsp");
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java b/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
index 76d232e..7fbd420 100644
--- a/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
+++ b/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
@@ -20,21 +20,9 @@
*/
package org.apache.struts2.convention;
-import com.opensymphony.xwork2.ActionChainResult;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.FileManager;
-import com.opensymphony.xwork2.FileManagerFactory;
-import com.opensymphony.xwork2.ObjectFactory;
-import com.opensymphony.xwork2.Result;
+import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.Configuration;
-import com.opensymphony.xwork2.config.entities.ActionConfig;
-import com.opensymphony.xwork2.config.entities.ExceptionMappingConfig;
-import com.opensymphony.xwork2.config.entities.InterceptorConfig;
-import com.opensymphony.xwork2.config.entities.InterceptorMapping;
-import com.opensymphony.xwork2.config.entities.InterceptorStackConfig;
-import com.opensymphony.xwork2.config.entities.PackageConfig;
-import com.opensymphony.xwork2.config.entities.ResultConfig;
-import com.opensymphony.xwork2.config.entities.ResultTypeConfig;
+import com.opensymphony.xwork2.config.entities.*;
import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
import com.opensymphony.xwork2.factory.DefaultInterceptorFactory;
import com.opensymphony.xwork2.factory.DefaultResultFactory;
@@ -48,16 +36,7 @@ import junit.framework.TestCase;
import org.apache.struts2.convention.actions.DefaultResultPathAction;
import org.apache.struts2.convention.actions.NoAnnotationAction;
import org.apache.struts2.convention.actions.Skip;
-import org.apache.struts2.convention.actions.action.ActionNameAction;
-import org.apache.struts2.convention.actions.action.ActionNamesAction;
-import org.apache.struts2.convention.actions.action.ClassLevelAnnotationAction;
-import org.apache.struts2.convention.actions.action.ClassLevelAnnotationDefaultMethodAction;
-import org.apache.struts2.convention.actions.action.ClassLevelAnnotationsAction;
-import org.apache.struts2.convention.actions.action.ClassLevelAnnotationsDefaultMethodAction;
-import org.apache.struts2.convention.actions.action.ClassNameAction;
-import org.apache.struts2.convention.actions.action.SingleActionNameAction;
-import org.apache.struts2.convention.actions.action.TestAction;
-import org.apache.struts2.convention.actions.action.TestExtends;
+import org.apache.struts2.convention.actions.action.*;
import org.apache.struts2.convention.actions.chain.ChainedAction;
import org.apache.struts2.convention.actions.defaultinterceptor.SingleActionNameAction2;
import org.apache.struts2.convention.actions.exception.ExceptionsActionLevelAction;
@@ -78,14 +57,7 @@ import org.apache.struts2.convention.actions.parentpackage.ClassLevelParentPacka
import org.apache.struts2.convention.actions.parentpackage.PackageLevelParentPackageAction;
import org.apache.struts2.convention.actions.parentpackage.sub.ClassLevelParentPackageChildAction;
import org.apache.struts2.convention.actions.parentpackage.sub.PackageLevelParentPackageChildAction;
-import org.apache.struts2.convention.actions.result.ActionLevelResultAction;
-import org.apache.struts2.convention.actions.result.ActionLevelResultsAction;
-import org.apache.struts2.convention.actions.result.ClassLevelResultAction;
-import org.apache.struts2.convention.actions.result.ClassLevelResultsAction;
-import org.apache.struts2.convention.actions.result.GlobalResultAction;
-import org.apache.struts2.convention.actions.result.GlobalResultOverrideAction;
-import org.apache.struts2.convention.actions.result.InheritedResultExtends;
-import org.apache.struts2.convention.actions.result.OverrideResultAction;
+import org.apache.struts2.convention.actions.result.*;
import org.apache.struts2.convention.actions.resultpath.ClassLevelResultPathAction;
import org.apache.struts2.convention.actions.resultpath.PackageLevelResultPathAction;
import org.apache.struts2.convention.actions.skip.Index;
@@ -98,18 +70,10 @@ import org.easymock.EasyMock;
import javax.servlet.ServletContext;
import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import static org.apache.struts2.convention.ReflectionTools.getAnnotation;
-import static org.easymock.EasyMock.checkOrder;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.verify;
+import static org.easymock.EasyMock.*;
/**
* <p>
@@ -144,13 +108,13 @@ public class PackageBasedActionConfigBuilderTest extends TestCase {
private void run(String actionPackages, String packageLocators, String excludePackages) throws MalformedURLException {
//setup interceptors
- List<InterceptorConfig> defaultInterceptors = new ArrayList<InterceptorConfig>();
+ List<InterceptorConfig> defaultInterceptors = new ArrayList<>();
defaultInterceptors.add(makeInterceptorConfig("interceptor-1"));
defaultInterceptors.add(makeInterceptorConfig("interceptor-2"));
defaultInterceptors.add(makeInterceptorConfig("interceptor-3"));
//setup interceptor stacks
- List<InterceptorStackConfig> defaultInterceptorStacks = new ArrayList<InterceptorStackConfig>();
+ List<InterceptorStackConfig> defaultInterceptorStacks = new ArrayList<>();
InterceptorMapping interceptor1 = new InterceptorMapping("interceptor-1", new TestInterceptor());
InterceptorMapping interceptor2 = new InterceptorMapping("interceptor-2", new TestInterceptor());
defaultInterceptorStacks.add(makeInterceptorStackConfig("stack-1", interceptor1, interceptor2));
@@ -224,7 +188,7 @@ public class PackageBasedActionConfigBuilderTest extends TestCase {
ResultMapBuilder resultMapBuilder = createStrictMock(ResultMapBuilder.class);
checkOrder(resultMapBuilder, false);
- Map<String, ResultConfig> results = new HashMap<String, ResultConfig>();
+ Map<String, ResultConfig> results = new HashMap<>();
/* org.apache.struts2.convention.actions.action */
expect(resultMapBuilder.build(ActionNameAction.class, getAnnotation(ActionNameAction.class, "run1", Action.class), "action1", actionPkg)).andReturn(results);
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
----------------------------------------------------------------------
diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
index f5794f8..d113a39 100644
--- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
+++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
@@ -23,25 +23,12 @@ package org.apache.struts2.views.jasperreports;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.util.ValueStack;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
-import net.sf.jasperreports.engine.JRException;
-import net.sf.jasperreports.engine.JRExporter;
-import net.sf.jasperreports.engine.JRExporterParameter;
-import net.sf.jasperreports.engine.JRParameter;
-import net.sf.jasperreports.engine.JasperFillManager;
-import net.sf.jasperreports.engine.JasperPrint;
-import net.sf.jasperreports.engine.JasperReport;
-import net.sf.jasperreports.engine.export.JRCsvExporter;
-import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
-import net.sf.jasperreports.engine.export.JRHtmlExporter;
-import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
-import net.sf.jasperreports.engine.export.JRPdfExporter;
-import net.sf.jasperreports.engine.export.JRRtfExporter;
-import net.sf.jasperreports.engine.export.JRXlsExporter;
-import net.sf.jasperreports.engine.export.JRXmlExporter;
+import net.sf.jasperreports.engine.*;
+import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.util.JRLoader;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.StrutsResultSupport;
@@ -249,9 +236,7 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe
// Will throw a runtime exception if no "datasource" property. TODO Best place for that is...?
initializeProperties(invocation);
- if (LOG.isDebugEnabled()) {
- LOG.debug("Creating JasperReport for dataSource = " + dataSource + ", format = " + format);
- }
+ LOG.debug("Creating JasperReport for dataSource = {}, format = {}", dataSource, format);
HttpServletRequest request = (HttpServletRequest) invocation.getInvocationContext().get(ServletActionContext.HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext().get(ServletActionContext.HTTP_RESPONSE);
@@ -311,9 +296,7 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe
// Add any report parameters from action to param map.
Map reportParams = (Map) stack.findValue(reportParameters);
if (reportParams != null) {
- if (LOG.isDebugEnabled()) {
LOG.debug("Found report parameters; adding to parameters...");
- }
parameters.putAll(reportParams);
}
@@ -323,12 +306,14 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe
// Fill the report and produce a print object
try {
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(systemId);
- if (conn == null)
+ if (conn == null) {
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, stackDataSource);
- else
+ }
+ else {
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
+ }
} catch (JRException e) {
- LOG.error("Error building report for uri " + systemId, e);
+ LOG.error("Error building report for uri {}", systemId, e);
throw new ServletException(e.getMessage(), e);
}
@@ -386,16 +371,13 @@ public class JasperReportsResult extends StrutsResultSupport implements JasperRe
Map exportParams = (Map) stack.findValue(exportParameters);
if (exportParams != null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Found export parameters; adding to exporter parameters...");
- }
+ LOG.debug("Found export parameters; adding to exporter parameters...");
exporter.getParameters().putAll(exportParams);
}
output = exportReportToBytes(jasperPrint, exporter);
} catch (JRException e) {
- String message = "Error producing " + format + " report for uri " + systemId;
- LOG.error(message, e);
+ LOG.error("Error producing {} report for uri {}", format, systemId, e);
throw new ServletException(e.getMessage(), e);
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackShadowMap.java
----------------------------------------------------------------------
diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackShadowMap.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackShadowMap.java
index 204f6a6..fa9c35f 100644
--- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackShadowMap.java
+++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackShadowMap.java
@@ -60,7 +60,7 @@ public class ValueStackShadowMap extends HashMap {
* Implementation of containsKey(), overriding HashMap implementation.
*
* @param key - The key to check in HashMap and if not found to check on valueStack.
- * @return <tt>true</tt>, if conatins key, <tt>false</tt> otherwise.
+ * @return <tt>true</tt>, if contains key, <tt>false</tt> otherwise.
* @see java.util.HashMap#containsKey
*/
public boolean containsKey(Object key) {
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
----------------------------------------------------------------------
diff --git a/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java b/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
index 46d2e99..026a4f0 100644
--- a/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
+++ b/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
@@ -21,16 +21,11 @@
package org.apache.struts2;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ActionProxyFactory;
-import com.opensymphony.xwork2.ValidationAware;
-import com.opensymphony.xwork2.XWorkJUnit4TestCase;
+import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.interceptor.annotations.After;
import com.opensymphony.xwork2.interceptor.annotations.Before;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
-import org.apache.logging.log4j.LogManager;
import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.dispatcher.Dispatcher;
@@ -53,11 +48,7 @@ import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Formatter;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
+import java.util.logging.*;
import static org.junit.Assert.assertNotNull;
@@ -242,7 +233,7 @@ public abstract class StrutsJUnit4TestCase<T> extends XWorkJUnit4TestCase {
protected void initDispatcherParams() {
if (StringUtils.isNotBlank(getConfigPath())) {
- dispatcherInitParams = new HashMap<String, String>();
+ dispatcherInitParams = new HashMap<>();
dispatcherInitParams.put("config", "struts-default.xml," + getConfigPath());
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
index b1bcffc..2e3201a 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultContentTypeHandlerManager.java
@@ -42,9 +42,9 @@ import java.util.Set;
public class DefaultContentTypeHandlerManager implements ContentTypeHandlerManager {
/** ContentTypeHandlers keyed by the extension */
- Map<String,ContentTypeHandler> handlersByExtension = new HashMap<String,ContentTypeHandler>();
+ Map<String,ContentTypeHandler> handlersByExtension = new HashMap<>();
/** ContentTypeHandlers keyed by the content-type */
- Map<String,ContentTypeHandler> handlersByContentType = new HashMap<String,ContentTypeHandler>();
+ Map<String,ContentTypeHandler> handlersByContentType = new HashMap<>();
private String defaultExtension;
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java b/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
index 83a928c..4541676 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
@@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
- * Type-safe rest-related informtion to apply to a response
+ * Type-safe rest-related information to apply to a response
*/
public interface HttpHeaders {
http://git-wip-us.apache.org/repos/asf/struts/blob/5a835cf6/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java
index 6574cbe..06f52a8 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java
@@ -21,19 +21,15 @@
package org.apache.struts2.rest;
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.DefaultActionInvocation;
-import com.opensymphony.xwork2.ModelDriven;
-import com.opensymphony.xwork2.Result;
-import com.opensymphony.xwork2.ValidationAware;
+import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.ConfigurationException;
import com.opensymphony.xwork2.config.entities.ActionConfig;
import com.opensymphony.xwork2.config.entities.ResultConfig;
import com.opensymphony.xwork2.inject.Inject;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.HttpHeaderResult;
import org.apache.struts2.rest.handler.ContentTypeHandler;
@@ -71,29 +67,29 @@ public class RestActionInvocation extends DefaultActionInvocation {
}
@Inject("struts.rest.logger")
- public void setLogger(String value) {
- logger = Boolean.valueOf(value);
+ public void setLogger(String logger) {
+ this.logger = BooleanUtils.toBoolean(logger);
}
@Inject("struts.rest.defaultErrorResultName")
- public void setDefaultErrorResultName(String value) {
- defaultErrorResultName = value;
+ public void setDefaultErrorResultName(String defaultErrorResultName) {
+ this.defaultErrorResultName = defaultErrorResultName;
}
/**
* If set to true (by default) blocks returning content from any other methods than GET,
* if set to false, the content can be returned for any kind of method
*
- * @param value true or false
+ * @param restrictToGet true or false
*/
@Inject(value = "struts.rest.content.restrictToGET", required = false)
- public void setRestrictToGet(String value) {
- restrictToGet = "true".equalsIgnoreCase(value);
+ public void setRestrictToGet(String restrictToGet) {
+ this.restrictToGet = BooleanUtils.toBoolean(restrictToGet);
}
@Inject
- public void setMimeTypeHandlerSelector(ContentTypeHandlerManager sel) {
- this.handlerSelector = sel;
+ public void setMimeTypeHandlerSelector(ContentTypeHandlerManager selector) {
+ this.handlerSelector = selector;
}
/**
@@ -149,7 +145,7 @@ public class RestActionInvocation extends DefaultActionInvocation {
} catch (Exception e) {
- // Error proccesing the result
+ // Error processing the result
LOG.error("Exception processing the result.", e);
if (!ServletActionContext.getResponse().isCommitted()) {
@@ -196,9 +192,7 @@ public class RestActionInvocation extends DefaultActionInvocation {
if (httpHeaders.getStatus() != HttpServletResponse.SC_NOT_MODIFIED ) {
executeResult();
} else {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Result not processed because the status code is not modified.");
- }
+ LOG.debug("Result not processed because the status code is not modified.");
}
} finally {
@@ -229,20 +223,15 @@ public class RestActionInvocation extends DefaultActionInvocation {
if (handler != null && !(handler instanceof HtmlHandler)) {
// Specific representation (json, xml...)
- resultCode = handlerSelector.handleResult(
- this.getProxy().getConfig(), httpHeaders, target);
-
+ resultCode = handlerSelector.handleResult(this.getProxy().getConfig(), httpHeaders, target);
} else {
-
// Normal struts execution (html o other struts result)
findResult();
if (result != null) {
this.result.execute(this);
-
} else {
if (LOG.isDebugEnabled()) {
- LOG.debug("No result returned for action " + getAction().getClass().getName()
- + " at " + proxy.getConfig().getLocation());
+ LOG.debug("No result returned for action {} at {}", getAction().getClass().getName(), proxy.getConfig().getLocation());
}
}
}
@@ -289,9 +278,7 @@ public class RestActionInvocation extends DefaultActionInvocation {
ResultConfig resultConfig = this.proxy.getConfig().getResults().get(defaultErrorResultName);
if (resultConfig != null) {
this.result = objectFactory.buildResult(resultConfig, invocationContext.getContextMap());
- if (LOG.isDebugEnabled()) {
- LOG.debug("Found default error result.");
- }
+ LOG.debug("Found default error result.");
}
}