You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/03/21 19:49:37 UTC
svn commit: r387601 - in /jakarta/tapestry/branches/4.0: ./
framework/src/documentation/content/xdocs/tapestry/ComponentReference/
framework/src/java/org/apache/tapestry/form/
framework/src/java/org/apache/tapestry/multipart/
framework/src/java/org/apa...
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 {@link 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;
}
-
+
+ /**
+ * {@inheritDoc}
+ */
+ 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 user@hostname.
+
+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 usuario@provedor.
+invalid-email-format=Email inv\u00e1lido para o campo '{0}'. O email deve estar no formato usuario@provedor.
-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;
}
+ /**
+ * {@inheritDoc}
+ */
+ 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org