martinc     2002/07/05 21:44:08

  Modified:    src/share/org/apache/struts/upload
                        BufferedMultipartInputStream.java
                        ContentLengthExceededException.java DiskFile.java
                        DiskMultipartRequestHandler.java FormFile.java
                        MaxLengthExceededException.java
                        MultipartBoundaryInputStream.java
                        MultipartElement.java MultipartIterator.java
                        MultipartRequestHandler.java
                        MultipartRequestWrapper.java
                        MultipartValueStream.java
  Log:
  Added Apache license text and fixed line ends.
  
  Revision  Changes    Path
  1.7       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/BufferedMultipartInputStream.java
  
  Index: BufferedMultipartInputStream.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/BufferedMultipartInputStream.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- BufferedMultipartInputStream.java 11 Oct 2001 16:28:17 -0000      1.6
  +++ BufferedMultipartInputStream.java 6 Jul 2002 04:44:07 -0000       1.7
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.IOException;
  
  
  
  1.2       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/ContentLengthExceededException.java
  
  Index: ContentLengthExceededException.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/ContentLengthExceededException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContentLengthExceededException.java       18 Apr 2001 14:21:20 -0000      1.1
  +++ ContentLengthExceededException.java       6 Jul 2002 04:44:07 -0000       1.2
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.IOException;
  
  
  
  1.3       +226 -165  jakarta-struts/src/share/org/apache/struts/upload/DiskFile.java
  
  Index: DiskFile.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/DiskFile.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DiskFile.java     14 Feb 2001 21:43:05 -0000      1.2
  +++ DiskFile.java     6 Jul 2002 04:44:07 -0000       1.3
  @@ -1,165 +1,226 @@
  -package org.apache.struts.upload;
  -
  -import java.io.File;
  -import java.io.InputStream;
  -import java.io.IOException;
  -import java.io.FileInputStream;
  -import java.io.ByteArrayOutputStream;
  -import java.io.FileNotFoundException;
  -
  -public class DiskFile implements FormFile {
  -    
  -    /**
  -     * The filepath to the temporary file
  -     */
  -    protected String filePath;
  -    
  -    /**
  -     * The content type of the file
  -     */
  -    protected String contentType;
  -    
  -    /**
  -     * The size in bytes of the file
  -     */
  -    protected int fileSize;
  -    
  -    /**
  -     * The name of the file
  -     */
  -    protected String fileName;   
  -    
  -    public DiskFile(String filePath) {
  -        this.filePath = filePath;
  -    }
  -    
  -    /**
  -     * Attempt to read the temporary file and get it's data in byte
  -     * array form.  Tries to read the entire file (using a byte array
  -     * the size of getFileSize()) at once, in one call to 
FileInputStream.read(byte[]).
  -     * For buffered reading, see {@link #getFileData(int) getFileData(int)}.
  -     * Note that this method can be dangerous, and that the size of a file
  -     * can cause an OutOfMemoryError quite easily.  You should use 
  -     * {@link #getInputStream() getInputStream} and do your own thing.
  -     *
  -     * @exception ServletException If the temp file no longer exists, or if there 
is
  -     *                    some sort of IOException
  -     * @see #getFileData(int)
  -     */    
  -    public byte[] getFileData() throws FileNotFoundException, IOException {
  -        
  -        byte[] bytes = new byte[getFileSize()];
  -        
  -        FileInputStream fis = new FileInputStream(filePath);
  -        fis.read(bytes);
  -        fis.close();
  -        return bytes;
  -    }
  -    
  -    /**
  -     * Attempts to read a file n bytes at a time, n being equal to "bufferSize".
  -     * Note that this method can be dangerous, and that the size of a file
  -     * can cause an OutOfMemoryError quite easily.  You should use 
  -     * {@link #getInputStream() getInputStream} and do your own thing.
  -     *
  -     * @param bufferSize The size in bytes that are read from the file at a time
  -     * @exception FileNotFoundException If the temp file no longer exists
  -     */    
  -    public byte[] getFileData(int bufferSize) throws FileNotFoundException, 
IOException {
  -        
  -        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
  -        FileInputStream fis = new FileInputStream(filePath);
  -        
  -        int readLength  = 0;
  -        int totalLength = 0;
  -        int offset      = 0;
  -        
  -        byte[] bytes = new byte[bufferSize];
  -        
  -        while ((readLength = fis.read(bytes, offset, bufferSize)) != -1) {
  -            
  -            byteStream.write(bytes, offset, bufferSize);            
  -            totalLength += readLength;
  -            offset += readLength;
  -        }
  -        
  -        bytes = byteStream.toByteArray();
  -        
  -        fis.close();
  -        byteStream.close();
  -        
  -        return bytes;      
  -    }
  -    
  -    
  -    /**
  -     * Delete the temporary file.
  -     */
  -    public void destroy() {
  -        
  -        File tempFile = new File(filePath);
  -        
  -        if (tempFile.exists()) {
  -            tempFile.delete();
  -        }    
  -    }
  -    
  -    /**
  -     * Get the temporary file path for this form file
  -     * @return A filepath to the temporary file
  -     */
  -    public String getFilePath() {
  -        return filePath;
  -    }
  -    
  -    /**
  -     * Set the file name
  -     */
  -    public void setFileName(String filename) {
  -        this.fileName = filename;
  -    }
  -    
  -    /**
  -     * Set the content type
  -     */
  -    public void setContentType(String contentType) {
  -        this.contentType = contentType;
  -    }
  -    
  -    /**
  -     * Set the file size
  -     * @param fileSize The size of the file in bytes
  -     */
  -    public void setFileSize(int fileSize) {
  -        this.fileSize = fileSize;
  -    }
  -    
  -    /**
  -     * Get the file name
  -     */
  -    public String getFileName() {
  -        return fileName;
  -    }
  -    
  -    /**
  -     * Get the content type
  -     */
  -    public String getContentType() {
  -        return contentType;
  -    }
  -    
  -    /**
  -     * Get the file size
  -     * @return The size of this file in bytes
  -     */
  -    public int getFileSize() {
  -        return fileSize;
  -    }
  -    
  -    /**
  -     * Returns a FileInputStream to the file
  -     */
  -    public InputStream getInputStream() throws FileNotFoundException, IOException {
  -        return new FileInputStream(filePath);
  -    }
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
  +package org.apache.struts.upload;
  +
  +import java.io.File;
  +import java.io.InputStream;
  +import java.io.IOException;
  +import java.io.FileInputStream;
  +import java.io.ByteArrayOutputStream;
  +import java.io.FileNotFoundException;
  +
  +public class DiskFile implements FormFile {
  +    
  +    /**
  +     * The filepath to the temporary file
  +     */
  +    protected String filePath;
  +    
  +    /**
  +     * The content type of the file
  +     */
  +    protected String contentType;
  +    
  +    /**
  +     * The size in bytes of the file
  +     */
  +    protected int fileSize;
  +    
  +    /**
  +     * The name of the file
  +     */
  +    protected String fileName;   
  +    
  +    public DiskFile(String filePath) {
  +        this.filePath = filePath;
  +    }
  +    
  +    /**
  +     * Attempt to read the temporary file and get it's data in byte
  +     * array form.  Tries to read the entire file (using a byte array
  +     * the size of getFileSize()) at once, in one call to 
FileInputStream.read(byte[]).
  +     * For buffered reading, see {@link #getFileData(int) getFileData(int)}.
  +     * Note that this method can be dangerous, and that the size of a file
  +     * can cause an OutOfMemoryError quite easily.  You should use 
  +     * {@link #getInputStream() getInputStream} and do your own thing.
  +     *
  +     * @exception ServletException If the temp file no longer exists, or if there is
  +     *                    some sort of IOException
  +     * @see #getFileData(int)
  +     */    
  +    public byte[] getFileData() throws FileNotFoundException, IOException {
  +        
  +        byte[] bytes = new byte[getFileSize()];
  +        
  +        FileInputStream fis = new FileInputStream(filePath);
  +        fis.read(bytes);
  +        fis.close();
  +        return bytes;
  +    }
  +    
  +    /**
  +     * Attempts to read a file n bytes at a time, n being equal to "bufferSize".
  +     * Note that this method can be dangerous, and that the size of a file
  +     * can cause an OutOfMemoryError quite easily.  You should use 
  +     * {@link #getInputStream() getInputStream} and do your own thing.
  +     *
  +     * @param bufferSize The size in bytes that are read from the file at a time
  +     * @exception FileNotFoundException If the temp file no longer exists
  +     */    
  +    public byte[] getFileData(int bufferSize) throws FileNotFoundException, 
IOException {
  +        
  +        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
  +        FileInputStream fis = new FileInputStream(filePath);
  +        
  +        int readLength  = 0;
  +        int totalLength = 0;
  +        int offset      = 0;
  +        
  +        byte[] bytes = new byte[bufferSize];
  +        
  +        while ((readLength = fis.read(bytes, offset, bufferSize)) != -1) {
  +            
  +            byteStream.write(bytes, offset, bufferSize);            
  +            totalLength += readLength;
  +            offset += readLength;
  +        }
  +        
  +        bytes = byteStream.toByteArray();
  +        
  +        fis.close();
  +        byteStream.close();
  +        
  +        return bytes;      
  +    }
  +    
  +    
  +    /**
  +     * Delete the temporary file.
  +     */
  +    public void destroy() {
  +        
  +        File tempFile = new File(filePath);
  +        
  +        if (tempFile.exists()) {
  +            tempFile.delete();
  +        }    
  +    }
  +    
  +    /**
  +     * Get the temporary file path for this form file
  +     * @return A filepath to the temporary file
  +     */
  +    public String getFilePath() {
  +        return filePath;
  +    }
  +    
  +    /**
  +     * Set the file name
  +     */
  +    public void setFileName(String filename) {
  +        this.fileName = filename;
  +    }
  +    
  +    /**
  +     * Set the content type
  +     */
  +    public void setContentType(String contentType) {
  +        this.contentType = contentType;
  +    }
  +    
  +    /**
  +     * Set the file size
  +     * @param fileSize The size of the file in bytes
  +     */
  +    public void setFileSize(int fileSize) {
  +        this.fileSize = fileSize;
  +    }
  +    
  +    /**
  +     * Get the file name
  +     */
  +    public String getFileName() {
  +        return fileName;
  +    }
  +    
  +    /**
  +     * Get the content type
  +     */
  +    public String getContentType() {
  +        return contentType;
  +    }
  +    
  +    /**
  +     * Get the file size
  +     * @return The size of this file in bytes
  +     */
  +    public int getFileSize() {
  +        return fileSize;
  +    }
  +    
  +    /**
  +     * Returns a FileInputStream to the file
  +     */
  +    public InputStream getInputStream() throws FileNotFoundException, IOException {
  +        return new FileInputStream(filePath);
  +    }
  +}
  
  
  
  1.19      +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java
  
  Index: DiskMultipartRequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- DiskMultipartRequestHandler.java  30 Jun 2002 03:38:30 -0000      1.18
  +++ DiskMultipartRequestHandler.java  6 Jul 2002 04:44:07 -0000       1.19
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.File;
  
  
  
  1.3       +138 -77   jakarta-struts/src/share/org/apache/struts/upload/FormFile.java
  
  Index: FormFile.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/FormFile.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FormFile.java     14 Feb 2001 21:43:05 -0000      1.2
  +++ FormFile.java     6 Jul 2002 04:44:07 -0000       1.3
  @@ -1,78 +1,139 @@
  -package org.apache.struts.upload;
  -
  -import java.io.InputStream;
  -import java.io.IOException;
  -import java.io.FileNotFoundException;
  -
  -/**
  - * This interface is used to define a file uploaded by a client.
  - */
  -public interface FormFile
  -{
  -    /**
  -     * Get the content type for this file.
  -     * @return A String representing content type
  -     */
  -    public String getContentType();
  -    
  -    /**
  -     * Set the content type for this file
  -     * @param contentType The content type
  -     */
  -    public void setContentType(String contentType);
  -    
  -    /**
  -     * Get the size of this file
  -     * @return An int representing the size of the file in bytes
  -     */
  -    public int getFileSize();
  -    
  -    /**
  -     * Set the file size
  -     * @param filesize An int reprsenting the size of the file in bytes
  -     */
  -    public void setFileSize(int filesize);    
  -    
  -    /**
  -     * Get the file name of this file.
  -     * @return A String reprsenting a file name
  -     */
  -    public String getFileName();
  -    
  -    /**
  -     * Set the filename of this file
  -     * @param fileName The name of the file
  -     */
  -    public void setFileName(String fileName);
  -    
  -    /**
  -     * Get the data in byte array for for this file.  Note that this can be
  -     * a very hazardous method, files can be large enough to cause 
  -     * OutOfMemoryErrors.  Short of being deprecated, it's strongly recommended
  -     * that you use {@link #getInputStream() getInputStream} to get the file
  -     * data.
  -     *
  -     * @exception FileNotFoundException If some sort of file representation
  -     *                                  cannot be found for the FormFile
  -     * @exception IOException If there is some sort of IOException
  -     * @return An array of bytes representing the data contained
  -     *         in the form file
  -     */
  -    public byte[] getFileData() throws FileNotFoundException, IOException;
  -    
  -    /**
  -     * Get an InputStream that represents this file.  This is the preferred
  -     * method of getting file data.
  -     * @exception FileNotFoundException If some sort of file representation
  -     *                                  cannot be found for the FormFile
  -     * @exception IOException If there is some sort of IOException
  -     */
  -    public InputStream getInputStream() throws FileNotFoundException, IOException;
  -    
  -    /**
  -     * Destroy all content for this form file.
  -     * Implementations should remove any temporary
  -     * files or any temporary file data stored somewhere
  -     */
  -    public void destroy();    
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
  +package org.apache.struts.upload;
  +
  +import java.io.InputStream;
  +import java.io.IOException;
  +import java.io.FileNotFoundException;
  +
  +/**
  + * This interface is used to define a file uploaded by a client.
  + */
  +public interface FormFile
  +{
  +    /**
  +     * Get the content type for this file.
  +     * @return A String representing content type
  +     */
  +    public String getContentType();
  +    
  +    /**
  +     * Set the content type for this file
  +     * @param contentType The content type
  +     */
  +    public void setContentType(String contentType);
  +    
  +    /**
  +     * Get the size of this file
  +     * @return An int representing the size of the file in bytes
  +     */
  +    public int getFileSize();
  +    
  +    /**
  +     * Set the file size
  +     * @param filesize An int reprsenting the size of the file in bytes
  +     */
  +    public void setFileSize(int filesize);    
  +    
  +    /**
  +     * Get the file name of this file.
  +     * @return A String reprsenting a file name
  +     */
  +    public String getFileName();
  +    
  +    /**
  +     * Set the filename of this file
  +     * @param fileName The name of the file
  +     */
  +    public void setFileName(String fileName);
  +    
  +    /**
  +     * Get the data in byte array for for this file.  Note that this can be
  +     * a very hazardous method, files can be large enough to cause 
  +     * OutOfMemoryErrors.  Short of being deprecated, it's strongly recommended
  +     * that you use {@link #getInputStream() getInputStream} to get the file
  +     * data.
  +     *
  +     * @exception FileNotFoundException If some sort of file representation
  +     *                                  cannot be found for the FormFile
  +     * @exception IOException If there is some sort of IOException
  +     * @return An array of bytes representing the data contained
  +     *         in the form file
  +     */
  +    public byte[] getFileData() throws FileNotFoundException, IOException;
  +    
  +    /**
  +     * Get an InputStream that represents this file.  This is the preferred
  +     * method of getting file data.
  +     * @exception FileNotFoundException If some sort of file representation
  +     *                                  cannot be found for the FormFile
  +     * @exception IOException If there is some sort of IOException
  +     */
  +    public InputStream getInputStream() throws FileNotFoundException, IOException;
  +    
  +    /**
  +     * Destroy all content for this form file.
  +     * Implementations should remove any temporary
  +     * files or any temporary file data stored somewhere
  +     */
  +    public void destroy();    
   }
  
  
  
  1.2       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MaxLengthExceededException.java
  
  Index: MaxLengthExceededException.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MaxLengthExceededException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MaxLengthExceededException.java   18 Apr 2001 14:21:20 -0000      1.1
  +++ MaxLengthExceededException.java   6 Jul 2002 04:44:07 -0000       1.2
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.IOException;
  
  
  
  1.2       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MultipartBoundaryInputStream.java
  
  Index: MultipartBoundaryInputStream.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartBoundaryInputStream.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MultipartBoundaryInputStream.java 6 Mar 2002 19:44:07 -0000       1.1
  +++ MultipartBoundaryInputStream.java 6 Jul 2002 04:44:07 -0000       1.2
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.InputStream;
  
  
  
  1.5       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MultipartElement.java
  
  Index: MultipartElement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartElement.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MultipartElement.java     25 Jun 2002 01:30:41 -0000      1.4
  +++ MultipartElement.java     6 Jul 2002 04:44:07 -0000       1.5
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.File;
  
  
  
  1.20      +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java
  
  Index: MultipartIterator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- MultipartIterator.java    6 Mar 2002 19:39:08 -0000       1.19
  +++ MultipartIterator.java    6 Jul 2002 04:44:07 -0000       1.20
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.*;
  
  
  
  1.4       +167 -100  
jakarta-struts/src/share/org/apache/struts/upload/MultipartRequestHandler.java
  
  Index: MultipartRequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartRequestHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MultipartRequestHandler.java      25 Jun 2002 01:30:41 -0000      1.3
  +++ MultipartRequestHandler.java      6 Jul 2002 04:44:07 -0000       1.4
  @@ -1,100 +1,167 @@
  -package org.apache.struts.upload;
  -import java.util.Hashtable;
  -import javax.servlet.ServletException;
  -import javax.servlet.http.HttpServletRequest;
  -import org.apache.struts.upload.FormFile;
  -import org.apache.struts.action.ActionServlet;
  -import org.apache.struts.action.ActionMapping;
  -/**
  -  * MultipartRequestHandler provides an standard interface for struts to
  -  * deal with file uploads from forms with enctypes of "multipart/form-data".
  -  * Providers must provide a no-argument constructor for initialization.
  -  *
  -  * @author Mike Schachter
  -  */
  -public interface MultipartRequestHandler
  -{
  -    /**
  -     * This is the ServletRequest attribute that should be set when a multipart 
request is being read
  -     * and the maximum length is exceeded. The value is a Boolean. If the maximum 
length isn't exceeded,
  -     * this attribute shouldn't be put in the ServletRequest. It's the job of the 
implementation to put this
  -     * attribute in the request if the maximum length is exceeded; in the 
handleRequest(HttpServletRequest) method.
  -     */
  -    public static final String ATTRIBUTE_MAX_LENGTH_EXCEEDED = 
"org.apache.struts.upload.MaxLengthExceeded";
  -    /**
  -     * Convienience method to set a reference to a working
  -     * ActionServlet instance.
  -     */
  -    public void setServlet(ActionServlet servlet);
  -    /**
  -     * Convienience method to set a reference to a working
  -     * ActionMapping instance.
  -     */
  -    public void setMapping(ActionMapping mapping);
  -    /**
  -     * Get the ActionServlet instance
  -     */
  -    public ActionServlet getServlet();
  -    /**
  -     * Get the ActionMapping instance for this request
  -     */
  -    public ActionMapping getMapping();
  -
  -    /**
  -      * After constructed, this is the first method called on
  -      * by ActionServlet.  Use this method for all your
  -      * data-parsing of the ServletInputStream in the request
  -      *
  -      * @exception ServletException thrown if something goes wrong
  -      */
  -    public void handleRequest(HttpServletRequest request)
  -        throws ServletException;
  -
  -    /**
  -     * This method is called on to retrieve all the text
  -     * input elements of the request.
  -     *
  -     * @return A Hashtable where the keys and values are the names and
  -     *  values of the request input parameters
  -     */
  -    public Hashtable getTextElements();
  -    
  -    /**
  -     * This method is called on to retrieve all the FormFile
  -     * input elements of the request.
  -     * @see org.apache.struts.upload.FormFile
  -     * @return A Hashtable where the keys are the input names of the
  -     *  files and the values are FormFile objects
  -     */
  -    public Hashtable getFileElements();
  -
  -    /**
  -     * This method returns all elements of a multipart request.
  -     * @return A Hashtable where the keys are input names and values
  -     *   are either Strings or FormFiles
  -     */
  -    public Hashtable getAllElements();
  -
  -    /**
  -     * This method is called on when there's some sort of problem
  -     * and the form post needs to be rolled back.  Providers
  -     * should remove any FormFiles used to hold information
  -     * by setting them to null and also physically delete
  -     * them if the implementation calls for writing directly
  -     * to disk.
  -     * NOTE: Currently implemented but not automatically
  -     * supported, ActionForm implementors must call rollback()
  -     * manually for rolling back file uploads.
  -     */
  -    public void rollback();
  -
  -    /**
  -     * This method is called on when a successful form post
  -     * has been made.  Some implementations will use this
  -     * to destroy temporary files or write to a database
  -     * or something of that nature.
  -     */
  -    public void finish();
  -
  -}
  -
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
  +package org.apache.struts.upload;
  +
  +import java.util.Hashtable;
  +import javax.servlet.ServletException;
  +import javax.servlet.http.HttpServletRequest;
  +import org.apache.struts.upload.FormFile;
  +import org.apache.struts.action.ActionServlet;
  +import org.apache.struts.action.ActionMapping;
  +
  +/**
  +  * MultipartRequestHandler provides an standard interface for struts to
  +  * deal with file uploads from forms with enctypes of "multipart/form-data".
  +  * Providers must provide a no-argument constructor for initialization.
  +  *
  +  * @author Mike Schachter
  +  */
  +public interface MultipartRequestHandler
  +{
  +    /**
  +     * This is the ServletRequest attribute that should be set when a multipart 
request is being read
  +     * and the maximum length is exceeded. The value is a Boolean. If the maximum 
length isn't exceeded,
  +     * this attribute shouldn't be put in the ServletRequest. It's the job of the 
implementation to put this
  +     * attribute in the request if the maximum length is exceeded; in the 
handleRequest(HttpServletRequest) method.
  +     */
  +    public static final String ATTRIBUTE_MAX_LENGTH_EXCEEDED = 
"org.apache.struts.upload.MaxLengthExceeded";
  +
  +    /**
  +     * Convienience method to set a reference to a working
  +     * ActionServlet instance.
  +     */
  +    public void setServlet(ActionServlet servlet);
  +
  +    /**
  +     * Convienience method to set a reference to a working
  +     * ActionMapping instance.
  +     */
  +    public void setMapping(ActionMapping mapping);
  +
  +    /**
  +     * Get the ActionServlet instance
  +     */
  +    public ActionServlet getServlet();
  +
  +    /**
  +     * Get the ActionMapping instance for this request
  +     */
  +    public ActionMapping getMapping();
  +
  +    /**
  +      * After constructed, this is the first method called on
  +      * by ActionServlet.  Use this method for all your
  +      * data-parsing of the ServletInputStream in the request
  +      *
  +      * @exception ServletException thrown if something goes wrong
  +      */
  +    public void handleRequest(HttpServletRequest request)
  +        throws ServletException;
  +
  +    /**
  +     * This method is called on to retrieve all the text
  +     * input elements of the request.
  +     *
  +     * @return A Hashtable where the keys and values are the names and
  +     *  values of the request input parameters
  +     */
  +    public Hashtable getTextElements();
  +    
  +    /**
  +     * This method is called on to retrieve all the FormFile
  +     * input elements of the request.
  +     * @see org.apache.struts.upload.FormFile
  +     * @return A Hashtable where the keys are the input names of the
  +     *  files and the values are FormFile objects
  +     */
  +    public Hashtable getFileElements();
  +
  +    /**
  +     * This method returns all elements of a multipart request.
  +     * @return A Hashtable where the keys are input names and values
  +     *   are either Strings or FormFiles
  +     */
  +    public Hashtable getAllElements();
  +
  +    /**
  +     * This method is called on when there's some sort of problem
  +     * and the form post needs to be rolled back.  Providers
  +     * should remove any FormFiles used to hold information
  +     * by setting them to null and also physically delete
  +     * them if the implementation calls for writing directly
  +     * to disk.
  +     * NOTE: Currently implemented but not automatically
  +     * supported, ActionForm implementors must call rollback()
  +     * manually for rolling back file uploads.
  +     */
  +    public void rollback();
  +
  +    /**
  +     * This method is called on when a successful form post
  +     * has been made.  Some implementations will use this
  +     * to destroy temporary files or write to a database
  +     * or something of that nature.
  +     */
  +    public void finish();
  +
  +}
  +
  
  
  
  1.2       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MultipartRequestWrapper.java
  
  Index: MultipartRequestWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartRequestWrapper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MultipartRequestWrapper.java      11 May 2001 22:33:36 -0000      1.1
  +++ MultipartRequestWrapper.java      6 Jul 2002 04:44:07 -0000       1.2
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.util.Map;
  
  
  
  1.2       +61 -0     
jakarta-struts/src/share/org/apache/struts/upload/MultipartValueStream.java
  
  Index: MultipartValueStream.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartValueStream.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MultipartValueStream.java 14 Feb 2001 21:43:07 -0000      1.1
  +++ MultipartValueStream.java 6 Jul 2002 04:44:07 -0000       1.2
  @@ -1,3 +1,64 @@
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
   package org.apache.struts.upload;
   
   import java.io.*;
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to