Author: wesw
Date: Thu Jun 4 15:04:48 2009
New Revision: 781766
URL: http://svn.apache.org/viewvc?rev=781766&view=rev
Log:
moving the tracking to a service to allow users to replace
Added:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusTracker.java
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/BasicProgressListener.java
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/FileUploadConstants.java
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusHolder.java
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/resources/struts-plugin.xml
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/BasicProgressListenerTest.java
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/UploadStatusHolderTest.java
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/BasicProgressListener.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/BasicProgressListener.java?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/BasicProgressListener.java
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/BasicProgressListener.java
Thu Jun 4 15:04:48 2009
@@ -37,10 +37,19 @@
public class BasicProgressListener implements ProgressListener {
private int updateFrequency = 2048; // magic number for a default
- private UploadStatusHolder holder = new UploadStatusHolder();
+ private UploadStatusTracker tracker;
private long lastUpdate = -1L; //
/**
+ *
+ * @param tracker
+ */
+ @Inject(FileUploadConstants.UPLOAD_STATUS_HOLDER)
+ public void setTracker(UploadStatusTracker tracker) {
+ this.tracker = tracker;
+ }
+
+ /**
*
* @param updateFrequency
*/
@@ -74,7 +83,7 @@
status.setBytesRead(bytesRead);
status.setContentLength(contentLength);
status.setItemId(item);
- holder.addUploadStatus(sessionId, status);
+ tracker.addUploadStatus(sessionId, status);
}
}
}
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/FileUploadConstants.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/FileUploadConstants.java?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/FileUploadConstants.java
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/FileUploadConstants.java
Thu Jun 4 15:04:48 2009
@@ -62,4 +62,9 @@
*/
public static final String TIME_TO_KEEP_STATUS =
"struts.fileuploadplugin.timetokeepstatus";
+ /**
+ *
+ */
+ public static final String UPLOAD_STATUS_HOLDER =
"struts.fileuploadplugin.holder";
+
}
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusHolder.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusHolder.java?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusHolder.java
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusHolder.java
Thu Jun 4 15:04:48 2009
@@ -35,7 +35,7 @@
*
* @author Wes W
*/
-public class UploadStatusHolder {
+public class UploadStatusHolder implements UploadStatusTracker {
private int secondsToKeep = 600 ; //default to ten minutes
public static Map<UploadFile,UploadStatus> statuses = new
HashMap<UploadFile,UploadStatus>();
Added:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusTracker.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusTracker.java?rev=781766&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusTracker.java
(added)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/java/org/apache/struts2/fileupload/UploadStatusTracker.java
Thu Jun 4 15:04:48 2009
@@ -0,0 +1,33 @@
+package org.apache.struts2.fileupload;
+
+import java.util.List;
+
+/**
+ * Describe your class here
+ *
+ * @author Your Name
+ * <p/>
+ * $Id$
+ */
+public interface UploadStatusTracker {
+ /**
+ *
+ * @param key
+ * @param status
+ */
+ void addUploadStatus(String key, UploadStatus status );
+
+ /**
+ *
+ * @param key
+ * @return
+ */
+ UploadStatus getUploadStatus(String key, int fileItemId);
+
+ /**
+ *
+ * @param sessionId
+ * @return
+ */
+ List<UploadStatus> getAllStatusesInSession(String sessionId);
+}
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/resources/struts-plugin.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/main/resources/struts-plugin.xml?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/resources/struts-plugin.xml
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/main/resources/struts-plugin.xml
Thu Jun 4 15:04:48 2009
@@ -32,6 +32,8 @@
class="org.apache.struts2.fileupload.DiskFileItemFactoryWrapper"/>
<bean type="org.apache.commons.fileupload.ProgressListener"
name="struts.fileuploadplugin.progressListener"
class="org.apache.struts2.fileupload.BasicProgressListener" />
+ <bean type="org.apache.struts2.fileupload.UploadStatusTracker"
name="struts.fileuploadplugin.holder"
+ class="org.apache.struts2.fileupload.UploadStatusHolder" />
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
name="struts"
class="org.apache.struts2.fileupload.EnhancedJakartaMultiPartRequest"/>
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/BasicProgressListenerTest.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/BasicProgressListenerTest.java?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/BasicProgressListenerTest.java
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/BasicProgressListenerTest.java
Thu Jun 4 15:04:48 2009
@@ -76,14 +76,16 @@
public void testUpdate() {
BasicProgressListener listener = new BasicProgressListener();
listener.setUpdateFrequency("1");
+ UploadStatusTracker tracker = new UploadStatusHolder();
+ listener.setTracker(tracker);
listener.update(10L,10L,1);
- UploadStatusHolder holder = new UploadStatusHolder();
+ UploadStatusTracker tracker2 = new UploadStatusHolder();
String key = request.getSession().getId();
System.err.println("key - " + key);
- UploadStatus status = holder.getUploadStatus(key , 1);
+ UploadStatus status = tracker2.getUploadStatus(key , 1);
assertTrue(status.getBytesRead() == 10L);
assertTrue(status.getContentLength() == 10L);
@@ -97,15 +99,17 @@
public void testDontUpdate() {
BasicProgressListener listener = new BasicProgressListener();
// listener.setUpdateFrequency("1000"); // let default of 2048 take
over
+ UploadStatusTracker tracker = new UploadStatusHolder();
+ listener.setTracker(tracker);
listener.update(10L,10L,1);
listener.update(100L,100L,1);
- UploadStatusHolder holder = new UploadStatusHolder();
+ UploadStatusTracker tracker2 = new UploadStatusHolder();
String key = request.getSession().getId();
System.err.println("key - " + key);
- UploadStatus status = holder.getUploadStatus(key, 1 );
+ UploadStatus status = tracker2.getUploadStatus(key, 1 );
assertTrue(status.getBytesRead() == 10L);
assertTrue(status.getContentLength() == 10L);
Modified:
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/UploadStatusHolderTest.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/UploadStatusHolderTest.java?rev=781766&r1=781765&r2=781766&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/UploadStatusHolderTest.java
(original)
+++
struts/sandbox/trunk/struts2-fileupload-plugin/src/test/java/org/apache/struts2/fileupload/UploadStatusHolderTest.java
Thu Jun 4 15:04:48 2009
@@ -35,14 +35,14 @@
*/
@Test
public void testStatusHolding() {
- UploadStatusHolder holder1 = new UploadStatusHolder();
+ UploadStatusTracker holder1 = new UploadStatusHolder();
UploadStatus status1 = new UploadStatus();
status1.setBytesRead(1L);
status1.setContentLength(1L);
status1.setItemId(1);
holder1.addUploadStatus("status1",status1);
- UploadStatusHolder holder2 = new UploadStatusHolder();
+ UploadStatusTracker holder2 = new UploadStatusHolder();
UploadStatus status2 = holder2.getUploadStatus("status1", 1);
assertTrue(status1.getBytesRead() == status2.getBytesRead());