Author: jkuhnert
Date: Tue Mar 21 10:49:35 2006
New Revision: 387601

URL: http://svn.apache.org/viewcvs?rev=387601&view=rev
Log:
Applied patches, refactored MultipartDecoder to allow specifying the max file 
upload size

Modified:
    
jakarta/tapestry/branches/4.0/framework/src/documentation/content/xdocs/tapestry/ComponentReference/Upload.xml
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.java
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.jwc
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoder.java
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_de.properties
    
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_pt_BR.properties
    
jakarta/tapestry/branches/4.0/portlet/src/java/org/apache/tapestry/portlet/multipart/PortletMultipartDecoderImpl.java
    jakarta/tapestry/branches/4.0/status.xml

Modified: 
jakarta/tapestry/branches/4.0/framework/src/documentation/content/xdocs/tapestry/ComponentReference/Upload.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/documentation/content/xdocs/tapestry/ComponentReference/Upload.xml?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/documentation/content/xdocs/tapestry/ComponentReference/Upload.xml
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/documentation/content/xdocs/tapestry/ComponentReference/Upload.xml
 Tue Mar 21 10:49:35 2006
@@ -110,7 +110,18 @@
     </td>
 
   </tr>
+  <tr>
 
+    <td>maxSize</td>
+    <td>long</td>
+    <td>in</td>
+    <td>no</td>
+    <td>10000000</td>
+    <td>
+      The default maximum file upload size, in bytes. Default is 10kb.
+    </td>
+
+  </tr>
 </table>
 
 <p>

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.java
 Tue Mar 21 10:49:35 2006
@@ -46,11 +46,11 @@
     {
         // Force the form to use the correct encoding type for file uploads.
         IForm form = getForm();
-
+        
         form.setEncodingType("multipart/form-data");
-
+        
         renderDelegatePrefix(writer, cycle);
-
+        
         writer.beginEmpty("input");
         writer.attribute("type", "file");
         writer.attribute("name", getName());
@@ -79,6 +79,9 @@
      */
     protected void rewindFormComponent(IMarkupWriter writer, IRequestCycle 
cycle)
     {
+       // set the max file upload size first
+       getDecoder().setSizeMax(getMaxSize());
+       
         IUploadFile file = getDecoder().getFileUpload(getName());
         
         if (HiveMind.isBlank(file.getFileName()))
@@ -97,6 +100,12 @@
             getForm().getDelegate().record(e);
         }
     }
+    
+    /**
+     * Max size parameter, in bytes. 
+     * @return The maximum file size that may be uploaded.
+     */
+    public abstract long getMaxSize();
     
     /**
      * Injected.

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.jwc
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.jwc?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.jwc
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/form/Upload.jwc
 Tue Mar 21 10:49:35 2006
@@ -38,7 +38,9 @@
   <parameter name="displayName"/>
   <parameter name="validators"/>
   <parameter name="id" property="idParameter" default-value="id"/>
-
+  
+  <parameter name="maxSize" default-value="10000000" />
+  
   <reserved-parameter name="type"/>
   <reserved-parameter name="name"/>
   

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
 Tue Mar 21 10:49:35 2006
@@ -40,8 +40,6 @@
         */
        private Map _valueParts = new HashMap();
 
-       protected int _maxSize = 10000000;
-
        protected int _thresholdSize = 1024;
 
        protected String _repositoryPath = System.getProperty("java.io.tmpdir");

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoder.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoder.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoder.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoder.java
 Tue Mar 21 10:49:35 2006
@@ -33,6 +33,16 @@
 
        public IUploadFile getFileUpload(String parameterName);
 
+    /**
+     * Sets the maximum upload file size on the resulting [EMAIL PROTECTED] 
FileUpload} 
+     * object.
+     * 
+     * @see <a 
href="http://jakarta.apache.org/commons/fileupload/apidocs/org/apache/commons/fileupload/FileUploadBase.html#setSizeMax(long)">FileUpload</a>
+     * @param sizeMax The maximum file size allowed for uploads, default is 
10kb
+     */
+    
+    public void setSizeMax(long sizeMax);
+    
        /**
         * Cleans up any temporary resources created during the request 
processing.
         * This typically includes temporary files used to contain uploaded file

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
 Tue Mar 21 10:49:35 2006
@@ -35,7 +35,10 @@
  * @since 4.0
  */
 public class MultipartDecoderImpl extends AbstractMultipartDecoder implements 
ServletMultipartDecoder
-{
+{      
+       /* maximum size of file allowed to be uploaded */
+       protected long _sizeMax = 10000000;
+       
     public HttpServletRequest decode(HttpServletRequest request)
     {
         _encoding = request.getCharacterEncoding();
@@ -57,15 +60,25 @@
 
         return new UploadFormParametersWrapper(request, parameterMap);
     }
-
+    
        private ServletFileUpload createFileUpload() {
        FileItemFactory factory = new DiskFileItemFactory(_thresholdSize, new 
File(_repositoryPath));
        ServletFileUpload upload = new ServletFileUpload(factory);
-
+       
+       //set maximum file upload size
+       upload.setSizeMax(_sizeMax);
+       
         if (_encoding != null)
             upload.setHeaderEncoding(_encoding);
 
         return upload;
        }
-
+       
+       /**
+        * [EMAIL PROTECTED]
+        */
+       public void setSizeMax(long sizeMax)
+       {
+               _sizeMax = sizeMax;
+       }
 }

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java
 Tue Mar 21 10:49:35 2006
@@ -28,5 +28,4 @@
      */
 
     public HttpServletRequest decode(HttpServletRequest request);
-
 }

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_de.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_de.properties?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_de.properties
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_de.properties
 Tue Mar 21 10:49:35 2006
@@ -1,28 +1,29 @@
-# Copyright 2005 The Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
 field-is-required=Eingabefeld {0} ist ein Pflichtfeld.
-field-too-short=Sie m\u00c3\u00bcssen min. {0} Zeichen in das Eingabefeld {1} 
eingeben.
+field-too-short=Sie müssen min. {0} Zeichen in das Eingabefeld {1} eingeben.
 invalid-date-format=Das Eingabefeld ''{0}'' hat ein falsches Datumsformat 
(Eingabeformat ist {1}).
 invalid-int-format=Eingabefeld {0} erwartet einen numerischen Wert.
 invalid-format=Das Eingabefeld ''{0}'' hat nicht das gew\u00fcnschte Format.
 invalid-numeric-format=Eingabefeld {0} erwartet einen numerischen Wert.
 
-date-too-early=Das Datum f\u00fcr das Eingabefeld ''{0}'' kann nur der {1} 
oder sp\u00e4ter sein.
-date-too-late=Das Datum f\u00fcr das Eingabefeld ''{0}'' kann nur der {1} oder 
fr\u00fcher sein.
+date-too-early=Das Datum für das Eingabefeld ''{0}'' kann nur der {1} oder 
später sein.
+date-too-late=Das Datum für das Eingabefeld ''{0}'' kann nur der {1} oder 
früher sein.
 
-number-too-small=Der Wert f\u00fcr das Eingabefeld ''{0}'' darf nicht kleiner 
als {1} sein.
-number-too-large=Der Wert f\u00fcr das Eingabefeld ''{0}'' darf nicht 
gr\u00f6\u00dfer als {1} sein.
+number-too-small=Der Wert für das Eingabefeld ''{0}'' darf nicht kleiner als 
{1} sein.
+number-too-large=Der Wert für das Eingabefeld ''{0}'' darf nicht grösser als 
{1} sein.
 
 number-range=Der Wert f\u00fcr das Eingabefeld ''{0}'' darf nur zwischen {1} 
und {2} liegen.
+
+invalid-email-format=Feld {0} enthält keine gültige Email-Adresse.  Das Format 
ist [EMAIL PROTECTED]
+
+pattern-not-matched={0} genügt nicht dem geforderten Pattern {1}.
+
+invalid-url-format = Ungültige URL.
+disallowed-protocol = Unerlaubtes Protokoll - Das Protokoll muss {0} sein.
+
+### 4.0 ###
+
+field-too-long=Sie dürfen höchstens {0} Zeichen für {1} eingeben.
+
+regex-mismatch={0} ist ungültig.
+
+invalid-field-equality={0} muss {1,choice,0#einen anderen|1#den gleichen} Wert 
wie {2} haben.

Modified: 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_pt_BR.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_pt_BR.properties?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_pt_BR.properties
 (original)
+++ 
jakarta/tapestry/branches/4.0/framework/src/java/org/apache/tapestry/valid/ValidationStrings_pt_BR.properties
 Tue Mar 21 10:49:35 2006
@@ -12,33 +12,33 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-field-is-required=Por favor, digite um valor para o campo "{0}".
-field-too-short=O campo "{0}" deve ter pelo menos {1} caracteres.
+field-is-required=Por favor, digite um valor para o campo '{0}'.
+field-too-short=O campo '{0}' deve ter pelo menos {1} caracteres.
 
-invalid-date-format=Formato de data inv\u00e1lido para o campo "{0}". A data 
deve estar no formato "{1}".
-invalid-int-format=O campo "{0}" deve conter um n\u00famero inteiro.
-invalid-format="{0}" n\u00e3o \u00e9 um formato reconhecido.
-invalid-numeric-format=O campo "{0}" deve conter um valor num\u00e9rico.
+invalid-date-format=Formato de data inv\u00e1lido para o campo '{0}'. A data 
deve estar no formato '{1}'.
+invalid-int-format=O campo '{0}' deve conter um n\u00famero inteiro.
+invalid-format='{0}' n\u00e3o \u00e9 um formato reconhecido.
+invalid-numeric-format=O campo '{0}' deve conter um valor num\u00e9rico.
 
-date-too-early=O campo "{0}" deve conter uma data posterior ou igual a {1}.
-date-too-late=O campo "{0}" deve conter uma data anterior ou igual a {1}.
+date-too-early=O campo '{0}' deve conter uma data posterior ou igual a {1}.
+date-too-late=O campo '{0}' deve conter uma data anterior ou igual a {1}.
 
-number-too-small=O campo "{0}" n\u00e3o pode ser menor que {1}.
-number-too-large=O campo "{0}" n\u00e3o pode ser maior que {1}.
+number-too-small=O campo '{0}' n\u00e3o pode ser menor que {1}.
+number-too-large=O campo '{0}' n\u00e3o pode ser maior que {1}.
 
-number-range=O campo "{0}" deve conter um valor entre {1} e {2}.
+number-range=O campo '{0}' deve conter um valor entre {1} e {2}.
 
-invalid-email-format=Email inv\u00e1lido para o campo "{0}". O email deve 
estar no formato [EMAIL PROTECTED]
+invalid-email-format=Email inv\u00e1lido para o campo '{0}'. O email deve 
estar no formato [EMAIL PROTECTED]
 
-pattern-not-matched=O campo "{0}" n\u00e3o satisfaz o padr\u00e3o "{1}".
+pattern-not-matched=O campo '{0}' n\u00e3o satisfaz o padr\u00e3o '{1}'.
 
 invalid-url-format = URL inv\u00e1lida.
 disallowed-protocol = Protocolo n\u00e3o permitido. O protocolo deve ser {0}.
 
 ### 4.0 ###
 
-field-too-long=O campo "{0}" deve ter no m\u00e1ximo {1} caracteres.
+field-too-long=O campo '{0}' deve ter no m\u00e1ximo {1} caracteres.
 
-regex-mismatch=O valor do campo "{0}" \u00e9 inv\u00e1lido.
+regex-mismatch=O valor do campo '{0}' \u00e9 inv\u00e1lido.
 
-invalid-field-equality=O campo "{0}" deve ser {1,choice,0#diferente do|1#igual 
ao} campo "{2}".
+invalid-field-equality=O campo '{0}' deve ser {1,choice,0#diferente do|1#igual 
ao} campo '{2}'.

Modified: 
jakarta/tapestry/branches/4.0/portlet/src/java/org/apache/tapestry/portlet/multipart/PortletMultipartDecoderImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/portlet/src/java/org/apache/tapestry/portlet/multipart/PortletMultipartDecoderImpl.java?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- 
jakarta/tapestry/branches/4.0/portlet/src/java/org/apache/tapestry/portlet/multipart/PortletMultipartDecoderImpl.java
 (original)
+++ 
jakarta/tapestry/branches/4.0/portlet/src/java/org/apache/tapestry/portlet/multipart/PortletMultipartDecoderImpl.java
 Tue Mar 21 10:49:35 2006
@@ -33,6 +33,9 @@
  */
 public class PortletMultipartDecoderImpl extends AbstractMultipartDecoder 
implements PortletMultipartDecoder {
 
+       /* maximum size of file allowed to be uploaded */
+       protected long _sizeMax = 10000000;
+       
        public ActionRequest decode(ActionRequest request) {
         _encoding = request.getCharacterEncoding();
 
@@ -53,15 +56,25 @@
 
         return new UploadFormPortletParametersWrapper(request, parameterMap);
        }
-
+       
        private PortletFileUpload createFileUpload() {
        FileItemFactory factory = new DiskFileItemFactory(_thresholdSize, new 
File(_repositoryPath));
        PortletFileUpload upload = new PortletFileUpload(factory);
-
+       
+       //set maximum file upload size
+       upload.setSizeMax(_sizeMax);
+       
         if (_encoding != null)
             upload.setHeaderEncoding(_encoding);
 
         return upload;
        }
 
+       /**
+        * [EMAIL PROTECTED]
+        */
+       public void setSizeMax(long sizeMax)
+       {
+               _sizeMax = sizeMax;
+       }
 }

Modified: jakarta/tapestry/branches/4.0/status.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/branches/4.0/status.xml?rev=387601&r1=387600&r2=387601&view=diff
==============================================================================
--- jakarta/tapestry/branches/4.0/status.xml (original)
+++ jakarta/tapestry/branches/4.0/status.xml Tue Mar 21 10:49:35 2006
@@ -131,6 +131,18 @@
       <action type="fix" dev="PF" fixes-bug="TAPESTRY-830">
         RadioGroup component now rewinds its body appropriately when disabled.
       </action>
+      <action type="fix" dev="JK" fixes-bug="TAPESTRY-368" >
+       Added maxSize parameter to Upload component, allowing the default 
maximum
+       file upload size to be changed.
+      </action>
+      <action type="update" dev="JK" fixes-bug="TAPESTRY-890" due-to="Marcus 
Shulte">
+       Updated german validation strings properties.
+      </action>
+      <action type="update" dev="JK" due-to="Pedro Garcia">
+       The validation strings in ValidationStrings_pt_BR.properties were using 
double quotes
+       around characters, which were causing problems for JS parsing. Changed 
these to use 
+       single quotes.
+      </action>
     </release>
     <release version="4.0" date="Jan 6 2006">
       <action type="update" dev="HLS">Add link to DeveloperWorks Tapestry 
article</action>



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

Reply via email to