webwork/src/main/webwork/multipart MultiPartRequestWrapper.java,1.12,1.13
[email protected] Wed, 03 Aug 2005 02:42:48 -0700
| Newsgroups | gmane.comp.java.open-symphony.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/opensymphony/webwork/src/main/webwork/multipart
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15560/main/webwork/multipart
Modified Files:
MultiPartRequestWrapper.java
Log Message:
Allow specification of your own multipart request handling class
(WW-814)
Index: MultiPartRequestWrapper.java
===================================================================
RCS file: /cvsroot/opensymphony/webwork/src/main/webwork/multipart/MultiPartRequestWrapper.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- MultiPartRequestWrapper.java 19 Mar 2005 19:20:21 -0000 1.12
+++ MultiPartRequestWrapper.java 3 Aug 2005 09:42:46 -0000 1.13
@@ -6,19 +6,16 @@
*/
package webwork.multipart;
+import org.apache.commons.logging.LogFactory;
import webwork.config.Configuration;
+import webwork.util.ClassLoaderUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Vector;
-
-import org.apache.commons.logging.LogFactory;
+import java.util.*;
/**
* <code>MultiPartRequestWrapper</code> will parse a multipart request and
@@ -61,6 +58,29 @@
LogFactory.getLog(MultiPartRequestWrapper.class).error(error, ex);
throw new IOException(error);
}
+ } else
+ if("custom".equals(parser)) { // allow specification of your own handler class - WW-814
+ String customHandler = Configuration.getString("webwork.multipart.parser.class");
+ try
+ {
+ Class customHandlerClass = ClassLoaderUtils.loadClass(customHandler, this.getClass());
+ // This is probably better if the dep ever moves to a newer version of common-beanutils
+ // Object customHandlerObject = ConstructorUtils.invokeConstructor(customHandlerClass, new Object[]{request, saveDir, maxSize});
+ Object customHandlerObject = customHandlerClass.getConstructor(new Class[]{HttpServletRequest.class, String.class, Integer.TYPE})
+ .newInstance(new Object[]{request, saveDir, maxSize});
+ if (customHandlerObject instanceof MultiPartRequest)
+ {
+ multi = (MultiPartRequest) customHandlerObject;
+ }
+ else
+ {
+ throw new IOException("The provided custom multipart parser class does not implement MultiPartRequest.");
+ }
+ }
+ catch (Exception e)
+ {
+ throw new IOException("Error instantiating webwork.multipart.parser.class: " + customHandler + "(original message: " + e.getMessage() + ")");
+ }
} else {
throw new IOException("Not multipart parse specified in webwork.properties.");
}
@@ -89,9 +109,9 @@
public Map getParameterMap()
{
Map map = new HashMap();
- Enumeration e = getParameterNames();
- while (e.hasMoreElements()) {
- String name = (String) e.nextElement();
+ Enumeration enum = getParameterNames();
+ while (enum.hasMoreElements()) {
+ String name = (String) enum.nextElement();
map.put(name, this.getParameterValues(name));
}
return map;
@@ -120,12 +140,12 @@
//private
protected Enumeration mergeParams(Enumeration params1, Enumeration params2) {
- Vector temp = new Vector();
- while(params1.hasMoreElements())
- temp.add(params1.nextElement());
- while(params2.hasMoreElements())
- temp.add(params2.nextElement());
- return temp.elements();
+ Vector temp = new Vector();
+ while(params1.hasMoreElements())
+ temp.add(params1.nextElement());
+ while(params2.hasMoreElements())
+ temp.add(params2.nextElement());
+ return temp.elements();
}
public InputStream getMemoryFileContents(String name) {
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click