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());