Author: brett
Date: Thu Jan 25 05:34:17 2007
New Revision: 499784

URL: http://svn.apache.org/viewvc?view=rev&rev=499784
Log:
update test so that it works with future releases on Maven APIs. Test was 
passing by a side effect of file timestamps that should not have been 
considered.

Modified:
    
maven/archiva/trunk/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultProxyRequestHandler.java
    
maven/archiva/trunk/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ProxyRequestHandlerTest.java

Modified: 
maven/archiva/trunk/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultProxyRequestHandler.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultProxyRequestHandler.java?view=diff&rev=499784&r1=499783&r2=499784
==============================================================================
--- 
maven/archiva/trunk/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultProxyRequestHandler.java
 (original)
+++ 
maven/archiva/trunk/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultProxyRequestHandler.java
 Thu Jan 25 05:34:17 2007
@@ -28,6 +28,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
 import org.apache.maven.model.DistributionManagement;
@@ -54,11 +55,15 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.security.NoSuchAlgorithmException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
+import java.util.TimeZone;
 
 /**
  * An implementation of the proxy handler. This class is not thread safe (the 
class itself is, but the wagons it uses
@@ -97,6 +102,8 @@
      */
     private Map/*<String,Wagon>*/ wagons;
 
+    private static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone( "UTC" );
+
     public File get( String path, List proxiedRepositories, ArtifactRepository 
managedRepository )
         throws ProxyException, ResourceDoesNotExistException
     {
@@ -423,6 +430,9 @@
 
                 if ( metadata != null )
                 {
+                    setLastUpdatedIfEmpty( newMetadata, metadataFile );
+                    setLastUpdatedIfEmpty( metadata, target );
+
                     changed = metadata.merge( newMetadata );
                 }
                 else
@@ -463,6 +473,20 @@
                     IOUtils.closeQuietly( fileWriter );
                 }
             }
+        }
+    }
+
+    private void setLastUpdatedIfEmpty( Metadata metadata, File metadataFile )
+    {
+        if ( metadata.getVersioning() == null )
+        {
+            metadata.setVersioning( new Versioning() );
+        }
+        if ( metadata.getVersioning().getLastUpdated() == null )
+        {
+            DateFormat fmt = new SimpleDateFormat( "yyyyMMddHHmmss", Locale.US 
);
+            fmt.setTimeZone( UTC_TIMEZONE );
+            metadata.getVersioning().setLastUpdated( fmt.format( new Date( 
metadataFile.lastModified() ) ) );
         }
     }
 

Modified: 
maven/archiva/trunk/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ProxyRequestHandlerTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ProxyRequestHandlerTest.java?view=diff&rev=499784&r1=499783&r2=499784
==============================================================================
--- 
maven/archiva/trunk/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ProxyRequestHandlerTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ProxyRequestHandlerTest.java
 Thu Jan 25 05:34:17 2007
@@ -39,6 +39,7 @@
 import java.io.IOException;
 import java.io.StringWriter;
 import java.net.MalformedURLException;
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -49,6 +50,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
+import java.util.TimeZone;
 
 /**
  * Test the proxy handler.
@@ -88,6 +90,8 @@
     private static final ArtifactRepositoryPolicy ALWAYS_UPDATE_POLICY =
         new ArtifactRepositoryPolicy( true, 
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, null );
 
+    private static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone( "UTC" );
+
     protected void setUp()
         throws Exception
     {
@@ -1010,7 +1014,7 @@
         assertTrue( "Check file created", file.exists() );
 
         String expectedContents = getExpectedMetadata( "get-merged-metadata", 
getVersioning(
-            Arrays.asList( new String[]{"0.9", "1.0", "2.0", "3.0", "5.0", 
"4.0"} ) ) );
+            Arrays.asList( new String[]{"0.9", "1.0", "2.0", "3.0", "5.0", 
"4.0"} ), file ) );
 
         assertEquals( "Check content matches", expectedContents, 
FileUtils.readFileToString( file, null ) );
     }
@@ -1099,8 +1103,8 @@
         assertEquals( "Check file matches", expectedFile, file );
         assertTrue( "Check file created", file.exists() );
 
-        String expectedContents =
-            getExpectedMetadata( "get-updated-metadata", getVersioning( 
Arrays.asList( new String[]{"1.0", "2.0"} ) ) );
+        String expectedContents = getExpectedMetadata( "get-updated-metadata", 
getVersioning(
+            Arrays.asList( new String[]{"1.0", "2.0"} ), file ) );
 
         assertEquals( "Check content matches", expectedContents, 
FileUtils.readFileToString( file, null ) );
         assertFalse( "Check content doesn't match proxy version",
@@ -1126,7 +1130,7 @@
         assertTrue( "Check file created", file.exists() );
 
         String expectedContents =
-            getExpectedMetadata( "get-updated-metadata", "1.0-SNAPSHOT", 
getVersioning( "20050831.111213", 2 ) );
+            getExpectedMetadata( "get-updated-metadata", "1.0-SNAPSHOT", 
getVersioning( "20050831.111213", 2, file ) );
 
         assertEquals( "Check content matches", expectedContents, 
FileUtils.readFileToString( file, null ) );
         assertFalse( "Check content doesn't match proxy version",
@@ -1173,8 +1177,8 @@
         assertEquals( "Check file matches", expectedFile, file );
         assertTrue( "Check file created", file.exists() );
 
-        String expectedContents =
-            getExpectedMetadata( "get-updated-metadata", getVersioning( 
Arrays.asList( new String[]{"1.0", "2.0"} ) ) );
+        String expectedContents = getExpectedMetadata( "get-updated-metadata", 
getVersioning(
+            Arrays.asList( new String[]{"1.0", "2.0"} ), file ) );
         assertEquals( "Check content matches", expectedContents, 
FileUtils.readFileToString( file, null ) );
         assertFalse( "Check content doesn't match old version",
                      unexpectedContents.equals( FileUtils.readFileToString( 
file, null ) ) );
@@ -1194,8 +1198,8 @@
         assertEquals( "Check file matches", expectedFile, file );
         assertTrue( "Check file created", file.exists() );
 
-        String expectedContents =
-            getExpectedMetadata( "get-updated-metadata", getVersioning( 
Arrays.asList( new String[]{"1.0", "2.0"} ) ) );
+        String expectedContents = getExpectedMetadata( "get-updated-metadata", 
getVersioning(
+            Arrays.asList( new String[]{"1.0", "2.0"} ), file ) );
 
         assertEquals( "Check content matches", expectedContents, 
FileUtils.readFileToString( file, null ) );
         assertFalse( "Check content doesn't match old version",
@@ -1767,7 +1771,7 @@
         assertEquals( "Check file matches", expectedFile, file );
     }
 
-    private static Versioning getVersioning( List versions )
+    private static Versioning getVersioning( List versions, File file )
     {
         Versioning versioning = new Versioning();
         for ( Iterator i = versions.iterator(); i.hasNext(); )
@@ -1775,6 +1779,7 @@
             String v = (String) i.next();
             versioning.addVersion( v );
         }
+        setLastUpdatedTimestamp( versioning, file );
         return versioning;
     }
 
@@ -1806,13 +1811,21 @@
         return getExpectedMetadata( artifactId, version, null );
     }
 
-    private static Versioning getVersioning( String timestamp, int buildNumber 
)
+    private static Versioning getVersioning( String timestamp, int 
buildNumber, File file )
     {
         Versioning versioning = new Versioning();
         versioning.setSnapshot( new Snapshot() );
         versioning.getSnapshot().setTimestamp( timestamp );
         versioning.getSnapshot().setBuildNumber( buildNumber );
+        setLastUpdatedTimestamp( versioning, file );
         return versioning;
+    }
+
+    private static void setLastUpdatedTimestamp( Versioning versioning, File 
file )
+    {
+        DateFormat fmt = new SimpleDateFormat( "yyyyMMddHHmmss", Locale.US );
+        fmt.setTimeZone( UTC_TIMEZONE );
+        versioning.setLastUpdated( fmt.format( new Date( file.lastModified() ) 
) );
     }
 
     private static Date getPastDate()


Reply via email to