You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by we...@apache.org on 2009/06/04 17:04:48 UTC

svn commit: r781766 - in /struts/sandbox/trunk/struts2-fileupload-plugin/src: main/java/org/apache/struts2/fileupload/ main/resources/ test/java/org/apache/struts2/fileupload/

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