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


Reply via email to