You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gc...@apache.org on 2012/04/25 01:40:26 UTC
svn commit: r1330065 - in /myfaces/trinidad/trunk:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/
trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/
trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/ trinidad-i...
Author: gcrawford
Date: Tue Apr 24 23:40:26 2012
New Revision: 1330065
URL: http://svn.apache.org/viewvc?rev=1330065&view=rev
Log:
TRINIDAD-2258 Add Chunked File Upload support to the Trinidad Upload Framwork
Thanks to Kentaro
Modified:
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/UploadedFileProcessor.java
myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/CompositeUploadedFileProcessorImpl.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java Tue Apr 24 23:40:26 2012
@@ -698,6 +698,10 @@ abstract public class RequestContext
public abstract Long getUploadedFileMaxMemory();
public abstract Long getUploadedFileMaxDiskSpace();
+
+ public abstract Long getUploadedFileMaxFileSize();
+
+ public abstract Long getUploadedFileMaxChunkSize();
public abstract String getUploadedFileTempDir();
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/UploadedFileProcessor.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/UploadedFileProcessor.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/UploadedFileProcessor.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/UploadedFileProcessor.java Tue Apr 24 23:40:26 2012
@@ -41,8 +41,12 @@ import org.apache.myfaces.trinidad.model
* <li>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE: the maximum amount of
* disk space that can be used in a single request to store
* uploaded files. (Default of 2000K)
+ * <li>org.apache.myfaces.trinidad.UPLOAD_MAX_FILE_SIZE: the maximum
+ * file size that can be uploaded. (Default of 2000K)
* <li>org.apache.myfaces.trinidad.UPLOAD_TEMP_DIR: the name of a directory
* to store temporary files. (Defaults to the user's temporary directory)
+ * <li>org.apache.myfaces.trinidad.UPLOAD_MAX_CHUNK_SIZE: the maximum
+ * chunk size that large files will be split into during upload. (Default of 2000M)
* </ul>
*
* @see org.apache.myfaces.trinidad.model.UploadedFile
@@ -89,6 +93,38 @@ public interface UploadedFileProcessor
public static final String MAX_FILE_SIZE_PARAM_NAME = "org.apache.myfaces.trinidad.UPLOAD_MAX_FILE_SIZE";
/**
+ * Initialization parameter for the default
+ * <code>UploadedFileProcessor</code> that configures the maximum
+ * chunk size that large files will be split into during upload.
+ * The default is 2000M and is also the maximum allowed value.
+ */
+ public static final String MAX_CHUNK_SIZE_PARAM_NAME = "org.apache.myfaces.trinidad.UPLOAD_MAX_CHUNK_SIZE";
+
+ /**
+ * Initialization parameter default value of 100 kilobytes for the default
+ * <code>UploadedFileProcessor</code> parameter MAX_MEMORY_PARAM_NAME.
+ */
+ public static final long DEFAULT_MAX_MEMORY = 102400L;
+
+ /**
+ * Initialization parameter default value of 2000 kilobytes for the default
+ * <code>UploadedFileProcessor</code> parameter MAX_DISK_SPACE_PARAM_NAME.
+ */
+ public static final long DEFAULT_MAX_DISK_SPACE = 2048000L;
+
+ /**
+ * Initialization parameter default value of 2000 kilobytes for the default
+ * <code>UploadedFileProcessor</code> parameter MAX_FILE_SIZE_PARAM_NAME.
+ */
+ public static final long DEFAULT_MAX_FILE_SIZE = 2048000L;
+
+ /**
+ * Initialization parameter default value of 2000 megabytes for the default
+ * <code>UploadedFileProcessor</code> parameter MAX_CHUNK_PARAM_NAME.
+ */
+ public static final long DEFAULT_MAX_CHUNK_SIZE = 2000000000L;
+
+ /**
* Initialize the UploadedFileProcessor with access to the current
* web application context.
*
Modified: myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java Tue Apr 24 23:40:26 2012
@@ -295,6 +295,28 @@ public class MockRequestContext extends
return _maxDiskSpace;
}
+ public void setUploadedFileMaxFileSize(Long maxFileSize)
+ {
+ _maxFileSize = maxFileSize;
+ }
+
+ @Override
+ public Long getUploadedFileMaxFileSize()
+ {
+ return _maxFileSize;
+ }
+
+ public void setUploadedFileMaxChunkSize(Long maxChunkSize)
+ {
+ _maxChunkSize = maxChunkSize;
+ }
+
+ @Override
+ public Long getUploadedFileMaxChunkSize()
+ {
+ return _maxChunkSize;
+ }
+
public void setUploadedFileTempDir(String tempDir)
{
_tempDir= tempDir;
@@ -445,5 +467,7 @@ public class MockRequestContext extends
private Locale _formattingLocale;
private Long _maxMemory;
private Long _maxDiskSpace;
+ private Long _maxFileSize;
+ private Long _maxChunkSize;
private String _tempDir;
}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/CompositeUploadedFileProcessorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/CompositeUploadedFileProcessorImpl.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/CompositeUploadedFileProcessorImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/CompositeUploadedFileProcessorImpl.java Tue Apr 24 23:40:26 2012
@@ -229,12 +229,12 @@ public class CompositeUploadedFileProces
}
catch (NumberFormatException nfe)
{
- _maxMemory = _DEFAULT_MAX_MEMORY;
+ _maxMemory = DEFAULT_MAX_MEMORY;
}
}
else
{
- _maxMemory = _DEFAULT_MAX_MEMORY;
+ _maxMemory = DEFAULT_MAX_MEMORY;
}
}
@@ -249,12 +249,12 @@ public class CompositeUploadedFileProces
}
catch (NumberFormatException nfe)
{
- _maxDiskSpace = _DEFAULT_MAX_DISK_SPACE;
+ _maxDiskSpace = DEFAULT_MAX_DISK_SPACE;
}
}
else
{
- _maxDiskSpace = _DEFAULT_MAX_DISK_SPACE;
+ _maxDiskSpace = DEFAULT_MAX_DISK_SPACE;
}
}
@@ -283,12 +283,12 @@ public class CompositeUploadedFileProces
}
catch (NumberFormatException nfe)
{
- _maxFileSize = _DEFAULT_MAX_FILE_SIZE;
+ _maxFileSize = DEFAULT_MAX_FILE_SIZE;
}
}
else
{
- _maxFileSize = _DEFAULT_MAX_FILE_SIZE;
+ _maxFileSize = DEFAULT_MAX_FILE_SIZE;
}
}
}
@@ -483,10 +483,6 @@ public class CompositeUploadedFileProces
private long _maxFileSize = -1;
private String _tempDir = null;
- private static final long _DEFAULT_MAX_MEMORY = 102400;
- private static final long _DEFAULT_MAX_DISK_SPACE = 2048000;
- private static final long _DEFAULT_MAX_FILE_SIZE = 2048000;
-
private static final String _REQUEST_INFO_KEY = CompositeUploadedFileProcessorImpl.class.getName()+
".UploadedFilesInfo";
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java Tue Apr 24 23:40:26 2012
@@ -18,11 +18,18 @@
*/
package org.apache.myfaces.trinidadinternal.config.upload;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.SequenceInputStream;
+
import java.lang.reflect.Proxy;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -34,8 +41,6 @@ import javax.portlet.faces.annotation.Ex
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.myfaces.trinidad.config.Configurator;
import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
@@ -191,6 +196,28 @@ public class FileUploadConfiguratorImpl
}
}
}
+ else if (uploadType.equals("multipleAddChunk"))
+ {
+ String itemName = parameters.get("itemName")[0];
+ String fileName = externalContext.getRequestHeaderMap().get(_MULTIPLE_UPLOAD_CHUNK_FILENAME_PARAM);
+ Long chunkNum = Long.parseLong(externalContext.getRequestHeaderMap().get(_MULTIPLE_UPLOAD_CHUNK_NUM_PARAM));
+ Long chunkCount = Long.parseLong(externalContext.getRequestHeaderMap().get(_MULTIPLE_UPLOAD_CHUNK_COUNT_PARAM));
+ UploadedFile file = files.getUploadedFile(itemName);
+ List<UploadedFile> chunkList = (List<UploadedFile>) externalContext.getSessionMap().get(_UPLOADED_CHUNK_FILES_LIST_KEY);
+ if (chunkList == null)
+ {
+ chunkList = new ArrayList<UploadedFile>();
+ externalContext.getSessionMap().put(_UPLOADED_CHUNK_FILES_LIST_KEY, chunkList);
+ }
+ chunkList.add(file);
+ if (chunkNum == chunkCount - 1)
+ {
+ UploadedFile combinedFile = new ChunkedUploadedFile(fileName, file.getContentType(), chunkList);
+ sessionFiles.__put(itemName, combinedFile);
+ externalContext.getSessionMap().remove(_UPLOADED_CHUNK_FILES_LIST_KEY);
+ }
+ files.getUploadedFileMap().clear();
+ }
}
}
externalContext.getRequestMap().put(_PARAMS, parameters);
@@ -253,7 +280,18 @@ public class FileUploadConfiguratorImpl
final UploadedFiles files,
final MultipartFormItem item) throws IOException
{
- final UploadedFile temp = new TempUploadedFile(item);
+ String filename = item.getFilename();
+ String chunkFilename = externalContext.getRequestHeaderMap().get(_MULTIPLE_UPLOAD_CHUNK_FILENAME_PARAM);
+ if (chunkFilename != null)
+ {
+ // We store the filename in a special header when sending chunked data. The reason is that
+ // browsers do not have an API for setting the filename on Blob objects. Also, append the chunk num
+ // so it's easier to keep track of.
+ String chunkNum = externalContext.getRequestHeaderMap().get(_MULTIPLE_UPLOAD_CHUNK_NUM_PARAM);
+ chunkFilename = chunkFilename + ".part" + chunkNum;
+ filename = chunkFilename;
+ }
+ final UploadedFile temp = new TempUploadedFile(filename, item);
Map<String, Object> sessionMap = externalContext.getSessionMap();
Map<String, Object> requestMap = externalContext.getRequestMap();
@@ -261,7 +299,8 @@ public class FileUploadConfiguratorImpl
UploadedFileProcessor.MAX_MEMORY_PARAM_NAME,
UploadedFileProcessor.MAX_DISK_SPACE_PARAM_NAME,
UploadedFileProcessor.TEMP_DIR_PARAM_NAME,
- UploadedFileProcessor.MAX_FILE_SIZE_PARAM_NAME);
+ UploadedFileProcessor.MAX_FILE_SIZE_PARAM_NAME,
+ UploadedFileProcessor.MAX_CHUNK_SIZE_PARAM_NAME);
final UploadedFile file =
context.getUploadedFileProcessor().processFile(externalContext.getRequest(), temp);
@@ -364,15 +403,16 @@ public class FileUploadConfiguratorImpl
static private class TempUploadedFile implements UploadedFile
{
- public TempUploadedFile(MultipartFormItem item)
+ public TempUploadedFile(String filename, MultipartFormItem item)
{
+ _filename = filename;
_item = item;
assert(item.getValue() == null);
}
public String getFilename()
{
- return _item.getFilename();
+ return _filename != null ? _filename : _item.getFilename();
}
public String getContentType()
@@ -402,12 +442,92 @@ public class FileUploadConfiguratorImpl
}
private MultipartFormItem _item;
+ private String _filename = null;
+ }
+ static private class ChunkedUploadedFile implements UploadedFile
+ {
+ private List<UploadedFile> _uploadedFileChunkList = null;
+ private String _filename = null;
+ private String _contentType = null;
+
+ public ChunkedUploadedFile(String filename, String contentType, List<UploadedFile> uploadedFileChunkList)
+ {
+ _filename = filename;
+ _contentType = contentType;
+ _uploadedFileChunkList = uploadedFileChunkList;
+ }
+
+ public String getFilename()
+ {
+ return _filename;
+ }
+
+ public String getContentType()
+ {
+ return _contentType;
+ }
+
+ public long getLength()
+ {
+ Long totalLength = 0L;
+ for (UploadedFile file : _uploadedFileChunkList)
+ {
+ if (file.getLength() == -1L)
+ {
+ // there was an error so return -1
+ return -1L;
+ }
+ totalLength = totalLength + file.getLength();
+ }
+ return totalLength;
+ }
+
+ public Object getOpaqueData()
+ {
+ for (UploadedFile file : _uploadedFileChunkList)
+ {
+ if (file.getLength() == -1L)
+ {
+ // there was an error so return the data
+ return file.getOpaqueData();
+ }
+ }
+ return null;
+ }
+
+ public InputStream getInputStream() throws IOException
+ {
+ List<InputStream> inputSteamList = new ArrayList<InputStream>(_uploadedFileChunkList.size());
+ for (UploadedFile uploadedFileChunk : _uploadedFileChunkList)
+ inputSteamList.add(uploadedFileChunk.getInputStream());
+
+ return new SequenceInputStream(Collections.enumeration(inputSteamList));
+ }
+
+ public void dispose()
+ {
+ for (UploadedFile uploadedFileChunk : _uploadedFileChunkList)
+ {
+ try
+ {
+ uploadedFileChunk.dispose();
+ }
+ catch (Exception e)
+ {
+ // Just keep trying to dispose of the rest of the chunks
+ }
+ }
+ }
}
static private final String _APPLIED = FileUploadConfiguratorImpl.class.getName()+".APPLIED";
static private final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(FileUploadConfiguratorImpl.class);
static private final String _PARAMS = FileUploadConfiguratorImpl.class.getName()+".PARAMS";
static private final boolean _ENHANCED_PORTLET_SUPPORTED = ExternalContextUtils.isRequestTypeSupported(RequestType.RESOURCE);
static private final String _MULTIPLE_UPLOAD_PARAM = "org.apache.myfaces.trinidad.UploadedFiles";
+ static private final String _MULTIPLE_UPLOAD_CHUNK_NUM_PARAM = "X-Trinidad-chunkNum";
+ static private final String _MULTIPLE_UPLOAD_CHUNK_COUNT_PARAM = "X-Trinidad-chunkCount";
+ static private final String _MULTIPLE_UPLOAD_CHUNK_FILENAME_PARAM = "X-Trinidad-chunkFilename";
+ static private final String _UPLOADED_CHUNK_FILES_LIST_KEY = "org.apache.myfaces.trinidadinternal.webapp.UploadedFiles.ChunkList";
private long _maxAllowedBytes = 1L << 27;
}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java Tue Apr 24 23:40:26 2012
@@ -78,12 +78,12 @@ public class UploadedFileProcessorImpl i
}
catch (NumberFormatException nfe)
{
- _maxMemory = _DEFAULT_MAX_MEMORY;
+ _maxMemory = DEFAULT_MAX_MEMORY;
}
}
else
{
- _maxMemory = _DEFAULT_MAX_MEMORY;
+ _maxMemory = DEFAULT_MAX_MEMORY;
}
}
@@ -98,12 +98,12 @@ public class UploadedFileProcessorImpl i
}
catch (NumberFormatException nfe)
{
- _maxDiskSpace = _DEFAULT_MAX_DISK_SPACE;
+ _maxDiskSpace = DEFAULT_MAX_DISK_SPACE;
}
}
else
{
- _maxDiskSpace = _DEFAULT_MAX_DISK_SPACE;
+ _maxDiskSpace = DEFAULT_MAX_DISK_SPACE;
}
}
@@ -132,12 +132,12 @@ public class UploadedFileProcessorImpl i
}
catch (NumberFormatException nfe)
{
- _maxFileSize = _DEFAULT_MAX_FILE_SIZE;
+ _maxFileSize = DEFAULT_MAX_FILE_SIZE;
}
}
else
{
- _maxFileSize = _DEFAULT_MAX_FILE_SIZE;
+ _maxFileSize = DEFAULT_MAX_FILE_SIZE;
}
}
}
@@ -326,10 +326,6 @@ public class UploadedFileProcessorImpl i
private long _maxFileSize = -1;
private String _tempDir = null;
- private static final long _DEFAULT_MAX_MEMORY = 102400;
- private static final long _DEFAULT_MAX_DISK_SPACE = 2048000;
- private static final long _DEFAULT_MAX_FILE_SIZE = 2048000;
-
private static final String _REQUEST_INFO_KEY = UploadedFileProcessorImpl.class.getName()+
".UploadedFilesInfo";
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java Tue Apr 24 23:40:26 2012
@@ -78,6 +78,10 @@ public class RequestContextBean extends
TYPE.registerKey("uploaded-file-max-memory", Long.class);
static public final PropertyKey UPLOADED_FILE_MAX_DISK_SPACE_KEY =
TYPE.registerKey("uploaded-file-max-disk-space", Long.class);
+ static public final PropertyKey UPLOADED_FILE_MAX_FILE_SIZE_KEY =
+ TYPE.registerKey("uploaded-file-max-file-size", Long.class);
+ static public final PropertyKey UPLOADED_FILE_MAX_CHUNK_SIZE_KEY =
+ TYPE.registerKey("uploaded-file-max-chunk-size", Long.class);
static public final PropertyKey UPLOADED_FILE_TEMP_DIR_KEY =
TYPE.registerKey("uploaded-file-temp-dir");
static public final PropertyKey REMOTE_DEVICE_REPOSITORY_URI =
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java Tue Apr 24 23:40:26 2012
@@ -175,6 +175,18 @@ public class RequestContextImpl extends
{
return (Long) _bean.getProperty(RequestContextBean.UPLOADED_FILE_MAX_DISK_SPACE_KEY);
}
+
+ @Override
+ public Long getUploadedFileMaxFileSize()
+ {
+ return (Long) _bean.getProperty(RequestContextBean.UPLOADED_FILE_MAX_FILE_SIZE_KEY);
+ }
+
+ @Override
+ public Long getUploadedFileMaxChunkSize()
+ {
+ return (Long) _bean.getProperty(RequestContextBean.UPLOADED_FILE_MAX_CHUNK_SIZE_KEY);
+ }
@Override
public String getUploadedFileTempDir()
Modified: myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java?rev=1330065&r1=1330064&r2=1330065&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java Tue Apr 24 23:40:26 2012
@@ -280,6 +280,28 @@ public class MRequestContext extends Req
{
return _maxDiskSpace;
}
+
+ public void setUploadedFileMaxFileSize(Long maxFileSize)
+ {
+ _maxFileSize = maxFileSize;
+ }
+
+ @Override
+ public Long getUploadedFileMaxFileSize()
+ {
+ return _maxFileSize;
+ }
+
+ public void setUploadedFileMaxChunkSize(Long maxChunkSize)
+ {
+ _maxChunkSize = maxChunkSize;
+ }
+
+ @Override
+ public Long getUploadedFileMaxChunkSize()
+ {
+ return _maxChunkSize;
+ }
public void setUploadedFileTempDir(String tempDir)
{
@@ -413,6 +435,8 @@ public class MRequestContext extends Req
private String _skin;
private Long _maxMemory;
private Long _maxDiskSpace;
+ private Long _maxFileSize;
+ private Long _maxChunkSize;
private String _tempDir;
private Accessibility _accMode;
private AccessibilityProfile _accProfile;