Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util
In directory james.mmbase.org:/tmp/cvs-serv21776/util

Modified Files:
        ContextContainer.java MultiPart.java 
Log Message:
Migrated MultiPart object to mmbase jar itself


See also: 
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util


Index: ContextContainer.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/ContextContainer.java,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- ContextContainer.java       10 Mar 2009 14:04:55 -0000      1.65
+++ ContextContainer.java       17 Apr 2009 17:38:51 -0000      1.66
@@ -25,7 +25,7 @@
  * there is searched for HashMaps in the HashMap.
  *
  * @author Michiel Meeuwissen
- * @version $Id: ContextContainer.java,v 1.65 2009/03/10 14:04:55 michiel Exp $
+ * @version $Id: ContextContainer.java,v 1.66 2009/04/17 17:38:51 michiel Exp $
  **/
 
 public abstract class ContextContainer extends AbstractMap<String, Object> 
implements Map<String, Object> {
@@ -582,7 +582,11 @@
                 if (mp.isFile(referId)) {
                     result = mp.getFileItem(referId);
                 } else {
+                    try {
                     result = fixEncoding(mp.getParameterValues(referId), 
pageContext);
+                    }  catch (java.io.UnsupportedEncodingException uee) {
+                        throw new JspTagException(uee);
+                    }
                 }
                 //result = 
MultiPart.getMultipartRequest(pageContext).getParameterValues(referId);
             } else {


Index: MultiPart.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/util/MultiPart.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- MultiPart.java      4 Sep 2008 14:31:08 -0000       1.20
+++ MultiPart.java      17 Apr 2009 17:38:51 -0000      1.21
@@ -21,48 +21,18 @@
 /**
  * Taglib needs to read Multipart request sometimes. Functionallity is 
centralized here.
  * @author Michiel Meeuwissen
- * @version $Id: MultiPart.java,v 1.20 2008/09/04 14:31:08 michiel Exp $
+ * @version $Id: MultiPart.java,v 1.21 2009/04/17 17:38:51 michiel Exp $
+ * @deprecated
  **/
 
-public class MultiPart {
+public class MultiPart extends org.mmbase.datatypes.handlers.html.MultiPart {
+
     private static final Logger log = 
Logging.getLoggerInstance(MultiPart.class);
 
     static String MULTIPARTREQUEST_KEY = "__multipart";
 
     public static boolean isMultipart(PageContext pageContext) {
-        String ct = 
((HttpServletRequest)pageContext.getRequest()).getContentType();
-        if (ct == null) {
-            return false;
-        }
-        return (ct.startsWith("multipart/"));
-    }
-
-    /**
-     * @since MMBase-1.8.7
-     */
-    public static MMultipartRequest getMultipartRequest(HttpServletRequest 
request, String encoding) {
-        MMultipartRequest multipartRequest = (MMultipartRequest) 
request.getAttribute(MULTIPARTREQUEST_KEY);
-        if (multipartRequest == null) {
-            log.debug("Creating new MultipartRequest");
-            multipartRequest = new MMultipartRequest(request, encoding);
-            log.debug("have it");
-
-            if (log.isDebugEnabled()) {
-                if (multipartRequest != null) {
-                    StringBuilder params = new StringBuilder();
-                    for (String paramName : (Collection<String>) 
multipartRequest.getParameterNames()) {
-                        params.append(paramName).append(",");
-                    }
-                    log.debug("multipart parameters: " + params);
-                } else {
-                    log.debug("not a multipart request");
-                }
-            }
-            request.setAttribute(MULTIPARTREQUEST_KEY, multipartRequest);
-        } else {
-            log.debug("Found multipart request on pageContext" + 
multipartRequest);
-        }
-        return multipartRequest;
+        return isMultipart((HttpServletRequest)pageContext.getRequest());
     }
 
     public static MMultipartRequest getMultipartRequest(PageContext 
pageContext) {
@@ -70,154 +40,6 @@
 
     }
 
-    static public class MMultipartRequest {
-
-        private Map<String, Object> parametersMap = new HashMap<String, 
Object>();
-        private String coding = null;
-
-        MMultipartRequest(HttpServletRequest req, String c) {
-            try {
-                DiskFileUpload fu =  new DiskFileUpload();
-                fu.setHeaderEncoding("ISO-8859-1"); // if incorrect, it will 
be fixed later.
-                List fileItems = fu.parseRequest(req);
-                for (Iterator i = fileItems.iterator(); i.hasNext(); ) {
-                    FileItem fi = (FileItem)i.next();
-                    if (fi.isFormField()) {
-                        String value;
-                        try {
-                            value = fi.getString("ISO-8859-1");
-                        } catch(java.io.UnsupportedEncodingException uee) {
-                            log.error("could not happen, ISO-8859-1 is 
supported");
-                            value = fi.getString();
-                        }
-                        Object oldValue = parametersMap.get(fi.getFieldName());
-                        if (oldValue == null ) {
-                            parametersMap.put(fi.getFieldName(), value);
-                        } else if (!(oldValue instanceof FileItem)) {
-                            List<Object> values;
-                            if (oldValue instanceof String) {
-                                values = new ArrayList<Object>();
-                                values.add(oldValue);
-                            } else {
-                                values = (List<Object>)oldValue;
-                            }
-                            values.add(value);
-                            parametersMap.put(fi.getFieldName(), values);
-                        }
-                    } else {
-                        parametersMap.put(fi.getFieldName(), fi);
-                    }
-                }
-            } catch (FileUploadException e) {
-                log.error(e.getMessage(), e);
-                throw new RuntimeException(e);
-            }
-            coding = c;
-            log.debug("Created with encoding: " + coding);
-        }
-
-        /**
-         * Method to retrieve the bytes of an uploaded file.
-         * @param param The name of the parameter
-         * @return <code>null</code> if parameter not found, otherwise the 
bytes from the parameter
-         */
-        public byte[] getBytes(String param) throws JspTagException {
-            log.debug("Getting bytes for " + param);
-            Object value = parametersMap.get(param);
-            if (value instanceof FileItem) {
-                try {
-                    return ((FileItem)value).get();
-                } catch (Exception e) {
-                    throw new TaglibException(e);
-                }
-            } else {
-                return null;
-            }
-        }
-        public FileItem getFileItem(String param) throws JspTagException {
-            log.debug("Getting outputstream for " + param);
-            Object value = parametersMap.get(param);
-            if (value instanceof FileItem) {
-                try {
-                    return (FileItem)value;
-                } catch (Exception e) {
-                    throw new TaglibException(e);
-                }
-            } else {
-                return null;
-            }
-        }
-
-        /**
-         * Method to retrieve the bytes of an uploaded file as a string using 
eitehr the encoding specified in the file or
-         * the default encoding.
-         * @return <code>null</code> if parameter not found, otherwise the 
bytes from the parameter
-         */
-        protected String encodeBytesAsString(byte[] data) throws 
JspTagException {
-            String encoding = coding;
-            // get first 60 bytes to determine if this is a xml type
-            byte[] xmlbytes = new byte[60];
-            int sz = data.length;
-            if (sz > 60) sz = 60;
-            System.arraycopy(data, 0, xmlbytes, 0, sz);
-            String xmltext = new String(xmlbytes);
-            if (xmltext.startsWith("<?xml")) {
-                int i = xmltext.indexOf("encoding");
-                log.debug("i=*" + i + "*");
-                if (i > 0) {
-                    int j = xmltext.indexOf("?>", i);
-                    log.debug("j=*" + j + "*");
-                    if (j > i) {
-                        // get trimmed attribute value
-                        encoding = xmltext.substring(i + 8, j).trim();
-                        // trim '='
-                        encoding = encoding.substring(1).trim();
-                        // trim quotes
-                        encoding = encoding.substring(1, encoding.length() - 
1).trim();
-                    }
-                }
-            }
-            try {
-                return new String(data, encoding);
-            } catch (java.io.UnsupportedEncodingException e) {
-                throw new TaglibException(e);
-            }
-        }
-
-        /**
-         * @since MMBase-1.8
-         */
-        public boolean isFile(String param) {
-            Object value = parametersMap.get(param);
-            return value instanceof FileItem;
-        }
 
-        /**
-         * Method to retrieve the parameter.
-         * @param param The name of the parameter
-         * @return <code>null</code> if parameter not found, when a single 
occurence of the parameter
-         * the result as a <code>String</code> using the encoding specified. 
When if was a MultiParameter parameter, it will return
-         * a <code>List</code> of <code>String</code>'s
-         */
-        public Object getParameterValues(String param) throws JspTagException {
-            // this method will return null, if the parameter is not set...
-            Object value = parametersMap.get(param);
-            //log.debug("Got param " + param + " " + (value == null ? "NULL" : 
value.getClass().getName()) + " " + value);
-
-            if (value instanceof FileItem) {
-                try {
-                    return encodeBytesAsString(((FileItem)value).get());
-                } catch (Exception e) {
-                    throw new TaglibException(e);
-                }
-            } else {
-                return value;
-            }
-        }
-
-        public Collection<String> getParameterNames() {
-            return parametersMap.keySet();
-        }
-    }
 
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to