diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java index f3c04fb21..a701c9e49 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java @@ -36,7 +36,20 @@ import javax.servlet.http.HttpServletRequest; * */ public interface ActionMapper { + + /** + * Gets an action mapping for the current request + * + * @param request The servlet request + * @return The appropriate action mapping + */ ActionMapping getMapping(HttpServletRequest request); + /** + * Converts an ActionMapping into a URI string + * + * @param mapping The action mapping + * @return The URI string that represents this mapping + */ String getUriFromActionMapping(ActionMapping mapping); } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapperFactory.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapperFactory.java index ea4c3a9a9..dc039b4fb 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapperFactory.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapperFactory.java @@ -39,8 +39,13 @@ import java.util.HashMap; public class ActionMapperFactory { protected static final Log LOG = LogFactory.getLog(ActionMapperFactory.class); - private static final HashMap classMap = new HashMap(); + private static final HashMap classMap = new HashMap(); + /** + * Gets an instance of the ActionMapper + * + * @return The action mapper + */ public static ActionMapper getMapper() { synchronized (classMap) { String clazz = (String) Configuration.get(StrutsConstants.STRUTS_MAPPER_CLASS); diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapping.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapping.java index 0f5e1ead5..ddfec6017 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapping.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapping.java @@ -36,12 +36,28 @@ public class ActionMapping { private Map params; private Result result; + /** + * Constructs an ActionMapping + */ public ActionMapping() {} + /** + * Constructs an ActionMapping with a default result + * + * @param result The default result + */ public ActionMapping(Result result) { this.result = result; } + /** + * Constructs an ActionMapping with its values + * + * @param name The action name + * @param namespace The action namespace + * @param method The method + * @param params The extra parameters + */ public ActionMapping(String name, String namespace, String method, Map params) { this.name = name; this.namespace = namespace; @@ -49,18 +65,30 @@ public class ActionMapping { this.params = params; } + /** + * @return The action name + */ public String getName() { return name; } + /** + * @return The action namespace + */ public String getNamespace() { return namespace; } + /** + * @return The extra parameters + */ public Map getParams() { return params; } + /** + * @return The method + */ public String getMethod() { if (null != method && "".equals(method)) { return null; @@ -69,26 +97,44 @@ public class ActionMapping { } } + /** + * @return The default result + */ public Result getResult() { return result; } + /** + * @param result The result + */ public void setResult(Result result) { this.result = result; } + /** + * @param name The action name + */ public void setName(String name) { this.name = name; } + /** + * @param namespace The action namespace + */ public void setNamespace(String namespace) { this.namespace = namespace; } + /** + * @param method The method name to call on the action + */ public void setMethod(String method) { this.method = method; } + /** + * @param params The extra parameters for this mapping + */ public void setParams(Map params) { this.params = params; } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java index 847022029..8597d8778 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java @@ -191,6 +191,9 @@ public class DefaultActionMapper implements ActionMapper { } }; + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.mapper.ActionMapper#getMapping(javax.servlet.http.HttpServletRequest) + */ public ActionMapping getMapping(HttpServletRequest request) { ActionMapping mapping = new ActionMapping(); String uri = getUri(request); @@ -213,6 +216,13 @@ public class DefaultActionMapper implements ActionMapper { return mapping; } + /** + * Special parameters, as described in the class-level comment, are searched for + * and handled. + * + * @param request The request + * @param mapping The action mapping + */ public static void handleSpecialParameters(HttpServletRequest request, ActionMapping mapping) { // handle special parameter prefixes. Map parameterMap = request.getParameterMap(); @@ -226,6 +236,12 @@ public class DefaultActionMapper implements ActionMapper { } } + /** + * Parses the name and namespace from the uri + * + * @param uri The uri + * @param mapping The action mapping to populate + */ void parseNameAndNamespace(String uri, ActionMapping mapping) { String namespace, name; int lastSlash = uri.lastIndexOf("/"); @@ -245,6 +261,12 @@ public class DefaultActionMapper implements ActionMapper { mapping.setName(dropExtension(name)); } + /** + * Drops the extension from the action name + * + * @param name The action name + * @return The action name without its extension + */ String dropExtension(String name) { List extensions = getExtensions(); if (extensions == null) { @@ -286,6 +308,12 @@ public class DefaultActionMapper implements ActionMapper { } } + /** + * Gets the uri from the request + * + * @param request The request + * @return The uri + */ String getUri(HttpServletRequest request) { // handle http dispatcher includes. String uri = (String) request.getAttribute("javax.servlet.include.servlet_path"); @@ -302,6 +330,9 @@ public class DefaultActionMapper implements ActionMapper { return uri.substring(request.getContextPath().length()); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.mapper.ActionMapper#getUriFromActionMapping(org.apache.struts2.dispatcher.mapper.ActionMapping) + */ public String getUriFromActionMapping(ActionMapping mapping) { StringBuffer uri = new StringBuffer(); @@ -332,6 +363,9 @@ public class DefaultActionMapper implements ActionMapper { return uri.toString(); } + /** + * Defines a parameter action prefix + */ interface ParameterAction { void execute(String key, ActionMapping mapping); } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java index 1156fa9f0..266f5e782 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java @@ -55,6 +55,9 @@ import java.util.StringTokenizer; public class RestfulActionMapper implements ActionMapper { protected static final Log LOG = LogFactory.getLog(RestfulActionMapper.class); + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.mapper.ActionMapper#getMapping(javax.servlet.http.HttpServletRequest) + */ public ActionMapping getMapping(HttpServletRequest request) { String uri = RequestUtils.getServletPath(request); @@ -64,7 +67,7 @@ public class RestfulActionMapper implements ActionMapper { } String actionName = uri.substring(1, nextSlash); - HashMap parameters = new HashMap(); + HashMap parameters = new HashMap(); try { StringTokenizer st = new StringTokenizer(uri.substring(nextSlash), "/"); boolean isNameTok = true; @@ -98,6 +101,9 @@ public class RestfulActionMapper implements ActionMapper { return new ActionMapping(actionName, "", "", parameters); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.mapper.ActionMapper#getUriFromActionMapping(org.apache.struts2.dispatcher.mapper.ActionMapping) + */ public String getUriFromActionMapping(ActionMapping mapping) { String base = mapping.getNamespace() + mapping.getName(); for (Iterator iterator = mapping.getParams().entrySet().iterator(); iterator.hasNext();) { diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java index c08e53371..12af2232c 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java @@ -29,16 +29,16 @@ import java.io.InputStream; import java.util.*; /** - * Multipart form data request adapter for Jakarta's file upload package. + * Multipart form data request adapter for Jakarta Commons Fileupload package. * */ public class JakartaMultiPartRequest extends MultiPartRequest { // maps parameter name -> List of FileItem objects - private Map files = new HashMap(); + private Map> files = new HashMap>(); // maps parameter name -> List of param values - private Map params = new HashMap(); + private Map> params = new HashMap>(); // any errors while processing this request - private List errors = new ArrayList(); + private List errors = new ArrayList(); /** * Creates a new request wrapper to handle multi-part data using methods adapted from Jason Pell's @@ -67,11 +67,11 @@ public class JakartaMultiPartRequest extends MultiPartRequest { if (log.isDebugEnabled()) log.debug("Found item " + item.getFieldName()); if (item.isFormField()) { log.debug("Item is a normal form field"); - List values; + List values; if (params.get(item.getFieldName()) != null) { - values = (List) params.get(item.getFieldName()); + values = params.get(item.getFieldName()); } else { - values = new ArrayList(); + values = new ArrayList(); } // note: see http://jira.opensymphony.com/browse/WW-633 @@ -88,11 +88,11 @@ public class JakartaMultiPartRequest extends MultiPartRequest { } else { log.debug("Item is a file upload"); - List values; + List values; if (files.get(item.getFieldName()) != null) { - values = (List) files.get(item.getFieldName()); + values = files.get(item.getFieldName()); } else { - values = new ArrayList(); + values = new ArrayList(); } values.add(item); @@ -105,10 +105,16 @@ public class JakartaMultiPartRequest extends MultiPartRequest { } } - public Enumeration getFileParameterNames() { + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFileParameterNames() + */ + public Enumeration getFileParameterNames() { return Collections.enumeration(files.keySet()); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getContentType(java.lang.String) + */ public String[] getContentType(String fieldName) { List items = (List) files.get(fieldName); @@ -116,7 +122,7 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return null; } - List contentTypes = new ArrayList(items.size()); + List contentTypes = new ArrayList(items.size()); for (int i = 0; i < items.size(); i++) { FileItem fileItem = (FileItem) items.get(i); contentTypes.add(fileItem.getContentType()); @@ -125,6 +131,9 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return (String[]) contentTypes.toArray(new String[contentTypes.size()]); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFile(java.lang.String) + */ public File[] getFile(String fieldName) { List items = (List) files.get(fieldName); @@ -132,7 +141,7 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return null; } - List fileList = new ArrayList(items.size()); + List fileList = new ArrayList(items.size()); for (int i = 0; i < items.size(); i++) { DiskFileItem fileItem = (DiskFileItem) items.get(i); fileList.add(fileItem.getStoreLocation()); @@ -141,14 +150,17 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return (File[]) fileList.toArray(new File[fileList.size()]); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFileNames(java.lang.String) + */ public String[] getFileNames(String fieldName) { - List items = (List) files.get(fieldName); + List items = files.get(fieldName); if (items == null) { return null; } - List fileNames = new ArrayList(items.size()); + List fileNames = new ArrayList(items.size()); for (int i = 0; i < items.size(); i++) { DiskFileItem fileItem = (DiskFileItem) items.get(i); fileNames.add(getCanonicalName(fileItem.getName())); @@ -157,6 +169,9 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return (String[]) fileNames.toArray(new String[fileNames.size()]); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFilesystemName(java.lang.String) + */ public String[] getFilesystemName(String fieldName) { List items = (List) files.get(fieldName); @@ -164,7 +179,7 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return null; } - List fileNames = new ArrayList(items.size()); + List fileNames = new ArrayList(items.size()); for (int i = 0; i < items.size(); i++) { DiskFileItem fileItem = (DiskFileItem) items.get(i); fileNames.add(fileItem.getStoreLocation().getName()); @@ -173,6 +188,9 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return (String[]) fileNames.toArray(new String[fileNames.size()]); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameter(java.lang.String) + */ public String getParameter(String name) { List v = (List) params.get(name); if (v != null && v.size() > 0) { @@ -182,12 +200,18 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return null; } - public Enumeration getParameterNames() { + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameterNames() + */ + public Enumeration getParameterNames() { return Collections.enumeration(params.keySet()); } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameterValues(java.lang.String) + */ public String[] getParameterValues(String name) { - List v = (List) params.get(name); + List v = params.get(name); if (v != null && v.size() > 0) { return (String[]) v.toArray(new String[v.size()]); } @@ -195,6 +219,9 @@ public class JakartaMultiPartRequest extends MultiPartRequest { return null; } + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getErrors() + */ public List getErrors() { return errors; } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java index 8d9b8b08b..35fc41da0 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java @@ -17,14 +17,15 @@ */ package org.apache.struts2.dispatcher.multipart; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.servlet.http.HttpServletRequest; import java.io.File; import java.util.Enumeration; import java.util.List; +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Abstract wrapper class HTTP requests to handle multi-part data.

@@ -51,7 +52,7 @@ public abstract class MultiPartRequest { * * @return an enumeration of the parameter names for uploaded files */ - public abstract Enumeration getFileParameterNames(); + public abstract Enumeration getFileParameterNames(); /** * Returns the content type(s) of the file(s) associated with the specified field name @@ -103,7 +104,7 @@ public abstract class MultiPartRequest { * * @return an enumeration of String parameter names. */ - public abstract Enumeration getParameterNames(); + public abstract Enumeration getParameterNames(); /** * Returns a list of all parameter values associated with a parameter name. If there is only diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java index d40f8426e..0997f18e3 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java @@ -129,19 +129,12 @@ public class MultiPartRequestWrapper extends StrutsRequestWrapper { } } - /** - * @deprecated use {@link #getFileParameterNames()} instead - */ - public Enumeration getFileNames() { - return getFileParameterNames(); - } - /** * Get an enumeration of the parameter names for uploaded files * * @return enumeration of parameter names for uploaded files */ - public Enumeration getFileParameterNames() { + public Enumeration getFileParameterNames() { if (multi == null) { return null; } @@ -149,19 +142,6 @@ public class MultiPartRequestWrapper extends StrutsRequestWrapper { return multi.getFileParameterNames(); } - /** - * @deprecated use {@link #getContentTypes(String)} instead - */ - public String getContentType(String fieldName) { - String[] contentTypes = getContentTypes(fieldName); - if (contentTypes != null && contentTypes.length > 0) { - return contentTypes[0]; - } - - return null; - } - - /** * Get an array of content encoding for the specified input field name or null if * no content type was specified. @@ -177,18 +157,6 @@ public class MultiPartRequestWrapper extends StrutsRequestWrapper { return multi.getContentType(name); } - /** - * @deprecated use {@link #getFiles(String)} instead - */ - public File getFile(String fieldName) { - File[] files = getFiles(fieldName); - if (files != null && files.length > 0) { - return files[0]; - } - - return null; - } - /** * Get a {@link java.io.File[]} for the given input field name. * @@ -216,18 +184,6 @@ public class MultiPartRequestWrapper extends StrutsRequestWrapper { return multi.getFileNames(fieldName); } - /** - * @deprecated use {@link #getFileSystemNames(String)} instead - */ - public String getFilesystemName(String fieldName) { - String[] names = getFileSystemNames(fieldName); - if (names != null && names.length > 0) { - return names[0]; - } - - return null; - } - /** * Get the filename(s) of the file(s) uploaded for the given input field name. * Returns null if the file is not found. diff --git a/core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java b/core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java index 1eb53311c..a64f5753f 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java +++ b/core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java @@ -35,6 +35,13 @@ public class BackgroundProcess implements Serializable { protected Exception exception; protected boolean done; + /** + * Constructs a background process + * + * @param threadName The thread name + * @param invocation The action invocation + * @param threadPriority The thread priority + */ public BackgroundProcess(String threadName, final ActionInvocation invocation, int threadPriority) { this.invocation = invocation; this.action = invocation.getAction(); @@ -61,7 +68,7 @@ public class BackgroundProcess implements Serializable { } /** - * called before the background thread determines the result code + * Called before the background thread determines the result code * from the ActionInvocation. * * @throws Exception any exception thrown will be thrown, in turn, by the ExecuteAndWaitInterceptor @@ -70,7 +77,7 @@ public class BackgroundProcess implements Serializable { } /** - * called after the background thread determines the result code + * Called after the background thread determines the result code * from the ActionInvocation, but before the background thread is * marked as done. * diff --git a/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java index daa2916f1..8bef41e44 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java @@ -80,6 +80,9 @@ public class CreateSessionInterceptor extends AbstractInterceptor { private static final Log _log = LogFactory.getLog(CreateSessionInterceptor.class); + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.Interceptor#intercept(com.opensymphony.xwork2.ActionInvocation) + */ public String intercept(ActionInvocation invocation) throws Exception { _log.debug("Creating HttpSession"); ServletActionContext.getRequest().getSession(true); diff --git a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java index 3524f99d7..692ab4ebb 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java @@ -17,17 +17,17 @@ */ package org.apache.struts2.interceptor; +import java.util.Collections; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.config.entities.ResultConfig; -import com.opensymphony.xwork2.interceptor.Interceptor; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.Collections; -import java.util.Map; /** @@ -171,13 +171,27 @@ public class ExecuteAndWaitInterceptor extends MethodFilterInterceptor { private int threadPriority = Thread.NORM_PRIORITY; + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.Interceptor#init() + */ public void init() { } + /** + * Creates a new background process + * + * @param name The process name + * @param actionInvocation The action invocation + * @param threadPriority The thread priority + * @return The new process + */ protected BackgroundProcess getNewBackgroundProcess(String name, ActionInvocation actionInvocation, int threadPriority) { return new BackgroundProcess(name + "BackgroundThread", actionInvocation, threadPriority); } + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.MethodFilterInterceptor#doIntercept(com.opensymphony.xwork2.ActionInvocation) + */ protected String doIntercept(ActionInvocation actionInvocation) throws Exception { ActionProxy proxy = actionInvocation.getProxy(); String name = proxy.getActionName(); @@ -238,6 +252,9 @@ public class ExecuteAndWaitInterceptor extends MethodFilterInterceptor { } + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.Interceptor#destroy() + */ public void destroy() { } diff --git a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java index 5ec2a98de..11c2a4abc 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java @@ -17,21 +17,30 @@ */ package org.apache.struts2.interceptor; +import java.io.File; +import java.util.Collection; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper; + import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ValidationAware; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; -import com.opensymphony.xwork2.interceptor.Interceptor; import com.opensymphony.xwork2.util.LocalizedTextUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.util.*; /** * @@ -158,6 +167,11 @@ public class FileUploadInterceptor extends AbstractInterceptor { protected String allowedTypes; protected Set allowedTypesSet = Collections.EMPTY_SET; + /** + * Sets the allowed mimetypes + * + * @param allowedTypes A comma-delimited list of types + */ public void setAllowedTypes(String allowedTypes) { this.allowedTypes = allowedTypes; @@ -165,10 +179,18 @@ public class FileUploadInterceptor extends AbstractInterceptor { allowedTypesSet = getDelimitedValues(allowedTypes); } + /** + * Sets the maximum size of an uploaded file + * + * @param maximumSize The maximum size in bytes + */ public void setMaximumSize(Long maximumSize) { this.maximumSize = maximumSize; } + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.Interceptor#intercept(com.opensymphony.xwork2.ActionInvocation) + */ public String intercept(ActionInvocation invocation) throws Exception { ActionContext ac = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); @@ -314,7 +336,7 @@ public class FileUploadInterceptor extends AbstractInterceptor { } private static Set getDelimitedValues(String delimitedString) { - Set delimitedValues = new HashSet(); + Set delimitedValues = new HashSet(); if (delimitedString != null) { StringTokenizer stringTokenizer = new StringTokenizer(delimitedString, DEFAULT_DELIMITER); while (stringTokenizer.hasMoreTokens()) { diff --git a/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java b/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java index c5ff690e1..a43b65ed0 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java +++ b/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java @@ -28,26 +28,57 @@ import java.security.Principal; public class PrincipalProxy { private HttpServletRequest request; + /** + * Constructs a proxy + * + * @param request The underlying request + */ public PrincipalProxy(HttpServletRequest request) { this.request = request; } + /** + * True if the user is in the given role + * + * @param role The role + * @return True if the user is in that role + */ public boolean isUserInRole(String role) { return request.isUserInRole(role); } + /** + * Gets the user principal + * + * @return The principal + */ public Principal getUserPrincipal() { return request.getUserPrincipal(); } + /** + * Gets the user id + * + * @return The user id + */ public String getRemoteUser() { return request.getRemoteUser(); } + /** + * Is the request using https? + * + * @return True if using https + */ public boolean isRequestSecure() { return request.isSecure(); } + /** + * Gets the request + * + * @return The request + */ public HttpServletRequest getRequest() { return request; } diff --git a/core/src/main/java/org/apache/struts2/interceptor/RequestAware.java b/core/src/main/java/org/apache/struts2/interceptor/RequestAware.java index ba14ebb15..6a678afb6 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/RequestAware.java +++ b/core/src/main/java/org/apache/struts2/interceptor/RequestAware.java @@ -32,7 +32,7 @@ public interface RequestAware { /** * Sets the Map of request attributes in the implementing class. * - * @param session a Map of HTTP request attribute name/value pairs. + * @param request a Map of HTTP request attribute name/value pairs. */ public void setRequest(Map request); } diff --git a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java index 920cbb747..5adc49f77 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java @@ -138,28 +138,41 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi private static final Log LOG = LogFactory.getLog(ScopeInterceptor.class); - String[] application = null; - String[] session = null; - String key; - String type = null; - boolean autoCreateSession = true; - String sessionReset = "session.reset"; - boolean reset = false; + private String[] application = null; + private String[] session = null; + private String key; + private String type = null; + private boolean autoCreateSession = true; + private String sessionReset = "session.reset"; + private boolean reset = false; - //list of application scoped properties + /** + * Sets a list of application scoped properties + * + * @param s A comma-delimited list + */ public void setApplication(String s) { if (s != null) { application = s.split(" *, *"); } } - //list of session scoped properties + /** + * Sets a list of session scoped properties + * + * @param s A comma-delimited list + */ public void setSession(String s) { if (s != null) { session = s.split(" *, *"); } } + /** + * Sets if the session should be automatically created + * + * @param value True if it should be created + */ public void setAutoCreateSession(String value) { if (value != null && value.length() > 0) { this.autoCreateSession = new Boolean(value).booleanValue(); @@ -176,6 +189,9 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi return key; } + /** + * The constructor + */ public ScopeInterceptor() { super(); } @@ -302,6 +318,9 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi this.key = key; } + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.PreResultListener#beforeResult(com.opensymphony.xwork2.ActionInvocation, java.lang.String) + */ public void beforeResult(ActionInvocation invocation, String resultCode) { String key = getKey(invocation); Map app = ActionContext.getContext().getApplication(); @@ -351,10 +370,18 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi } } + /** + * @return The type of scope operation, "start" or "end" + */ public String getType() { return type; } + /** + * Sets the type of scope operation + * + * @param type Either "start" or "end" + */ public void setType(String type) { type = type.toLowerCase(); if ("start".equals(type) || "end".equals(type)) { @@ -364,14 +391,23 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi } } + /** + * @return Gets the session reset parameter name + */ public String getSessionReset() { return sessionReset; } + /** + * @param sessionReset The session reset parameter name + */ public void setSessionReset(String sessionReset) { this.sessionReset = sessionReset; } + /* (non-Javadoc) + * @see com.opensymphony.xwork2.interceptor.Interceptor#intercept(com.opensymphony.xwork2.ActionInvocation) + */ public String intercept(ActionInvocation invocation) throws Exception { String result = null; Map ses = ActionContext.getContext().getSession(); @@ -388,10 +424,16 @@ public class ScopeInterceptor extends AbstractInterceptor implements PreResultLi return result; } + /** + * @return True if the scope is reset + */ public boolean isReset() { return reset; } + /** + * @param reset True if the scope should be reset + */ public void setReset(boolean reset) { this.reset = reset; } diff --git a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java index 84ebeee73..c10c84224 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java @@ -98,6 +98,9 @@ public class TokenSessionStoreInterceptor extends TokenInterceptor { private static final long serialVersionUID = -9032347965469098195L; + /* (non-Javadoc) + * @see org.apache.struts2.interceptor.TokenInterceptor#handleInvalidToken(com.opensymphony.xwork2.ActionInvocation) + */ protected String handleInvalidToken(ActionInvocation invocation) throws Exception { ActionContext ac = invocation.getInvocationContext(); @@ -133,6 +136,9 @@ public class TokenSessionStoreInterceptor extends TokenInterceptor { return INVALID_TOKEN_CODE; } + /* (non-Javadoc) + * @see org.apache.struts2.interceptor.TokenInterceptor#handleValidToken(com.opensymphony.xwork2.ActionInvocation) + */ protected String handleValidToken(ActionInvocation invocation) throws Exception { // we know the token name and token must be there String key = TokenHelper.getTokenName();