You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by hu...@apache.org on 2006/11/14 14:51:16 UTC
svn commit: r474787 - in
/struts/struts2/trunk/core/src/main/java/org/apache/struts2: ./ config/
dispatcher/mapper/ dispatcher/multipart/
Author: husted
Date: Tue Nov 14 05:51:15 2006
New Revision: 474787
URL: http://svn.apache.org/viewvc?view=rev&rev=474787
Log:
WW-1483 JavaDoc and IDEA refactorings only. No functional changes.
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?view=diff&rev=474787&r1=474786&r2=474787
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java Tue Nov 14 05:51:15 2006
@@ -136,7 +136,7 @@
/** Whether slashes in action names are allowed or not */
public static final String STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES = "struts.enable.SlashesInActionNames";
- /** Prefix used by {@link CompositeActionMapper} to identified its containing {@link ActionMapper} class. */
+ /** Prefix used by {@link CompositeActionMapper} to identify its containing {@link org.apache.struts2.dispatcher.mapper.ActionMapper} class. */
public static final String STRUTS_MAPPER_COMPOSITE = "struts.mapper.composite.";
public static final String STRUTS_ACTIONPROXYFACTORY = "struts.actionProxyFactory";
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java?view=diff&rev=474787&r1=474786&r2=474787
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java Tue Nov 14 05:51:15 2006
@@ -37,10 +37,7 @@
import org.apache.commons.logging.LogFactory;
import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ObjectFactory;
-import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.ConfigurationException;
-import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
import com.opensymphony.xwork2.inject.ContainerBuilder;
import com.opensymphony.xwork2.inject.Context;
@@ -55,7 +52,7 @@
private File baseDir = null;
private String filename;
private String reloadKey;
- private Object servletContext;
+ private ServletContext servletContext;
/**
* Constructs the configuration provider
@@ -71,6 +68,7 @@
*
* @param filename The filename to look for
* @param errorIfMissing If we should throw an exception if the file can't be found
+ * @param ctx Our ServletContext
*/
public StrutsXmlConfigurationProvider(String filename, boolean errorIfMissing, ServletContext ctx) {
super(filename, errorIfMissing);
@@ -116,7 +114,7 @@
* Look for the configuration file on the classpath and in the file system
*
* @param fileName The file name to retrieve
- * @see com.opensymphony.xwork2.config.providers.XmlConfigurationProvider#getInputStream(java.lang.String)
+ * @see com.opensymphony.xwork2.config.providers.XmlConfigurationProvider#getConfigurationUrls
*/
@Override
protected Iterator<URL> getConfigurationUrls(String fileName) throws IOException {
@@ -163,10 +161,7 @@
@Override
public boolean needsReload() {
ActionContext ctx = ActionContext.getContext();
- if (ctx.get(reloadKey) == null) {
- return super.needsReload();
- }
- return false;
+ return ctx.get(reloadKey) == null && super.needsReload();
}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java?view=diff&rev=474787&r1=474786&r2=474787
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/ActionMapper.java Tue Nov 14 05:51:15 2006
@@ -24,36 +24,38 @@
import com.opensymphony.xwork2.config.ConfigurationManager;
-
/**
* <!-- START SNIPPET: javadoc -->
*
- * The ActionMapper is responsible for providing a mapping between HTTP requests and action invocation requests and
- * vice-versa. When given an HttpServletRequest, the ActionMapper may return null if no action invocation request maps,
- * or it may return an {@link ActionMapping} that describes an action invocation that Struts should attempt to try. The
- * ActionMapper is not required to guarantee that the {@link ActionMapping} returned be a real action or otherwise
- * ensure a valid request. This means that most ActionMappers do not need to consult the Struts configuration to
- * determine if a request should be mapped.
- *
- * <p/> Just as requests can be mapped from HTTP to an action invocation, the opposite is true as well. However, because
- * HTTP requests (when shown in HTTP responses) must be in String form, a String is returned rather than an actual
- * request object.
+ * Provide a mapping between HTTP requests and action invocation requests and vice-versa.
+ * <p/>
+ * When given an HttpServletRequest, the ActionMapper may return null if no action invocation request matches,
+ * or it may return an {@link ActionMapping} that describes an action invocation for the framework to try.
+ * <p/>
+ * The ActionMapper is not required to guarantee that the {@link ActionMapping} returned be a real action or otherwise
+ * ensure a valid request.
+ * Accordingly, most ActionMappers do not need to consult the Struts configuration
+ * just to determine if a request should be mapped.
+ * <p/>
+ * Just as requests can be mapped from HTTP to an action invocation, the opposite is true as well.
+ * However, because HTTP requests (when shown in HTTP responses) must be in String form,
+ * a String is returned rather than an actual request object.
*
* <!-- END SNIPPET: javadoc -->
*/
public interface ActionMapper {
/**
- * Gets an action mapping for the current request
+ * Expose the ActionMapping for the current request
*
* @param request The servlet request
- * @param config The current configuration manager
+ * @param configManager The current configuration manager
* @return The appropriate action mapping
*/
ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager);
/**
- * Converts an ActionMapping into a URI string
+ * Convert an ActionMapping into a URI string
*
* @param mapping The action mapping
* @return The URI string that represents this mapping
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java?view=diff&rev=474787&r1=474786&r2=474787
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java Tue Nov 14 05:51:15 2006
@@ -70,7 +70,6 @@
* Creates a new request wrapper to handle multi-part data using methods adapted from Jason Pell's
* multipart classes (see class description).
*
- * @param maxSize maximum size post allowed
* @param saveDir the directory to save off the file
* @param servletRequest the request containing the multipart
* @throws java.io.IOException is thrown if encoding fails.
@@ -88,8 +87,8 @@
ServletFileUpload upload = new ServletFileUpload(fac);
List items = upload.parseRequest(createRequestContext(servletRequest));
- for (int i = 0; i < items.size(); i++) {
- FileItem item = (FileItem) items.get(i);
+ for (Object item1 : items) {
+ FileItem item = (FileItem) item1;
if (log.isDebugEnabled()) log.debug("Found item " + item.getFieldName());
if (item.isFormField()) {
log.debug("Item is a normal form field");
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java?view=diff&rev=474787&r1=474786&r2=474787
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java Tue Nov 14 05:51:15 2006
@@ -22,13 +22,10 @@
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
@@ -36,41 +33,37 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.StrutsConstants;
import org.apache.struts2.dispatcher.StrutsRequestWrapper;
-import org.apache.struts2.util.ClassLoaderUtils;
/**
- * Parses a multipart request and provides a wrapper around the request. The parsing implementation used
+ * Parse a multipart request and provide a wrapper around the request. The parsing implementation used
* depends on the <tt>struts.multipart.parser</tt> setting. It should be set to a class which
- * extends {@link org.apache.struts2.dispatcher.multipart.MultiPartRequest}. <p>
+ * extends {@link org.apache.struts2.dispatcher.multipart.MultiPartRequest}.
* <p/>
- * Struts ships with three implementations,
- * {@link org.apache.struts2.dispatcher.multipart.PellMultiPartRequest}, and
- * {@link org.apache.struts2.dispatcher.multipart.CosMultiPartRequest} and
- * {@link org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest}. The Jakarta implementation
- * is the default. The <tt>struts.multipart.parser</tt> property should be set to <tt>jakarta</tt> for the
+ * The <tt>struts.multipart.parser</tt> property should be set to <tt>jakarta</tt> for the
* Jakarta implementation, <tt>pell</tt> for the Pell implementation and <tt>cos</tt> for the Jason Hunter
- * implementation. <p>
+ * implementation.
* <p/>
* The files are uploaded when the object is instantiated. If there are any errors they are logged using
* {@link #addError(String)}. An action handling a multipart form should first check {@link #hasErrors()}
- * before doing any other processing. <p>
+ * before doing any other processing.
+ * <p/>
+ * An alternate implementation, PellMultiPartRequest, is provided as a plugin.
*
*/
public class MultiPartRequestWrapper extends StrutsRequestWrapper {
protected static final Log log = LogFactory.getLog(MultiPartRequestWrapper.class);
- Collection errors;
+ Collection<String> errors;
MultiPartRequest multi;
/**
- * Instantiates the appropriate MultiPartRequest parser implementation and processes the data.
+ * Process file downloads and log any errors.
*
- * @param request the servlet request object
- * @param saveDir directory to save the file(s) to
- * @param maxSize maximum file size allowed
+ * @param request Our HttpServletRequest object
+ * @param saveDir Target directory for any files that we save
+ * @param multiPartRequest Our MultiPartRequest object
*/
public MultiPartRequestWrapper(MultiPartRequest multiPartRequest, HttpServletRequest request, String saveDir) {
super(request);
@@ -78,8 +71,8 @@
multi = multiPartRequest;
try {
multi.parse(request, saveDir);
- for (Iterator iter = multi.getErrors().iterator(); iter.hasNext();) {
- String error = (String) iter.next();
+ for (Object o : multi.getErrors()) {
+ String error = (String) o;
addError(error);
}
} catch (IOException e) {
@@ -132,6 +125,7 @@
/**
* Get a String array of the file names for uploaded files
*
+ * @param fieldName Field to check for file names.
* @return a String[] of file names for uploaded files
*/
public String[] getFileNames(String fieldName) {
@@ -169,7 +163,7 @@
* @see javax.servlet.http.HttpServletRequest#getParameterMap()
*/
public Map getParameterMap() {
- Map map = new HashMap();
+ Map<String, String[]> map = new HashMap<String, String[]>();
Enumeration enumeration = getParameterNames();
while (enumeration.hasMoreElements()) {
@@ -204,11 +198,7 @@
* @return <tt>true</tt> if any errors occured when parsing the HTTP multipart request, <tt>false</tt> otherwise.
*/
public boolean hasErrors() {
- if ((errors == null) || errors.isEmpty()) {
- return false;
- } else {
- return true;
- }
+ return !((errors == null) || errors.isEmpty());
}
/**
@@ -216,7 +206,7 @@
*
* @return the error Collection.
*/
- public Collection getErrors() {
+ public Collection<String> getErrors() {
return errors;
}
@@ -227,7 +217,7 @@
*/
protected void addError(String anErrorMessage) {
if (errors == null) {
- errors = new ArrayList();
+ errors = new ArrayList<String>();
}
errors.add(anErrorMessage);