You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2006/09/30 15:51:38 UTC

svn commit: r451600 - in /maven/archiva/trunk/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/ProxyAction.java resources/xwork.xml

Author: brett
Date: Sat Sep 30 06:51:38 2006
New Revision: 451600

URL: http://svn.apache.org/viewvc?view=rev&rev=451600
Log:
[MRM-165] add HTTP headers

Modified:
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ProxyAction.java
    maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ProxyAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ProxyAction.java?view=diff&rev=451600&r1=451599&r2=451600
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ProxyAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ProxyAction.java Sat Sep 30 06:51:38 2006
@@ -26,6 +26,10 @@
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 
+import com.opensymphony.webwork.interceptor.ServletResponseAware;
+
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * Proxy functionality.
  *
@@ -33,6 +37,7 @@
  */
 public class ProxyAction
     extends PlexusActionSupport
+    implements ServletResponseAware
 {
     /**
      * @plexus.requirement
@@ -49,6 +54,10 @@
 
     private InputStream artifactStream;
 
+    private long contentLength;
+
+    private HttpServletResponse httpServletResponse;
+
     public String execute()
         throws ProxyException
     {
@@ -62,6 +71,10 @@
             contentType = "application/octet-stream";
 
             filename = file.getName();
+
+            contentLength = file.length();
+
+            httpServletResponse.addDateHeader( "Last-Modified", file.lastModified() );
         }
         catch ( ResourceDoesNotExistException e )
         {
@@ -99,8 +112,18 @@
         return contentType;
     }
 
+    public long getContentLength()
+    {
+        return contentLength;
+    }
+
     public InputStream getArtifactStream()
     {
         return artifactStream;
+    }
+
+    public void setServletResponse( HttpServletResponse httpServletResponse )
+    {
+        this.httpServletResponse = httpServletResponse;
     }
 }

Modified: maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=451600&r1=451599&r2=451600
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml Sat Sep 30 06:51:38 2006
@@ -176,6 +176,7 @@
         <param name="contentDisposition">filename="${filename}"</param>
         <param name="inputName">artifactStream</param>
         <param name="bufferSize">1024</param>
+        <param name="contentLength">${contentLength}</param>
       </result>
       <result name="notFound" type="httpheader">404</result>
     </action>