]> source.dussan.org Git - archiva.git/commitdiff
MRM-858 - last-modified header is missing
authorJames William Dumay <jdumay@apache.org>
Thu, 3 Jul 2008 04:07:35 +0000 (04:07 +0000)
committerJames William Dumay <jdumay@apache.org>
Thu, 3 Jul 2008 04:07:35 +0000 (04:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@673578 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletNoProxyTest.java

index ff34eee1cacecad01a7954e0cb87cc4ef6c95898..5e926ceed9a7864d40f2696de62e5e66a5ad99bb 100644 (file)
@@ -242,7 +242,7 @@ public class ArchivaDavResourceFactory
                     }
                     else
                     {
-                        setHeaders( locator, response );
+                        setHeaders(response, locator, resource );
 
                         // compatibility with MRM-440 to ensure browsing the repository works ok
                         if ( resource.isCollection() && !request.getRequestURI().endsWith("/" ) )
@@ -556,7 +556,7 @@ public class ArchivaDavResourceFactory
         this.auditListeners.remove( listener );
     }
 
-    private void setHeaders( DavResourceLocator locator, DavServletResponse response )
+    private void setHeaders( DavServletResponse response, DavResourceLocator locator, DavResource resource )
     {
         // [MRM-503] - Metadata file need Pragma:no-cache response
         // header.
@@ -566,6 +566,9 @@ public class ArchivaDavResourceFactory
             response.addHeader( "Cache-Control", "no-cache" );
         }
 
+        //We need to specify this so connecting wagons can work correctly
+        response.addDateHeader("last-modified", resource.getModificationTime());
+        
         // TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots)
     }
 
index 2a6d2e40f27b35339a365d875b7d6912ea3b4705..b6b0094b349f5736cb79e23c66513d31d7607c39 100644 (file)
@@ -35,6 +35,22 @@ import java.io.File;
 public class RepositoryServletNoProxyTest
     extends AbstractRepositoryServletTestCase
 {
+    public void testLastModifiedHeaderExists()
+        throws Exception
+    {
+        String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
+
+        File checksumFile = new File( repoRootInternal, commonsLangSha1 );
+        checksumFile.getParentFile().mkdirs();
+
+        FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
+
+        WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 );
+        WebResponse response = sc.getResponse( request );
+        
+        assertNotNull(response.getHeaderField("last-modified"));
+    }
+    
     public void testGetNoProxyChecksumDefaultLayout()
         throws Exception
     {