Author: brianf
Date: Wed Feb  2 04:05:27 2011
New Revision: 1066323

URL: http://svn.apache.org/viewvc?rev=1066323&view=rev
Log:
MDEP-225 applied patch to touch marker file timestamps if they already exist. 
Patch from Phillip Hellewell 

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java
    
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestMarkerFileFilter.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java?rev=1066323&r1=1066322&r2=1066323&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/markers/DefaultFileMarkerHandler.java
 Wed Feb  2 04:05:27 2011
@@ -113,7 +113,25 @@ public class DefaultFileMarkerHandler
         {
             throw new MojoExecutionException( "Unable to create Marker: " + 
marker.getAbsolutePath(), e );
         }
-
+        
+        // update marker file timestamp
+        try
+        {
+            long ts;
+            if ( this.artifact != null && this.artifact.getFile() != null )
+            {
+                ts = this.artifact.getFile().lastModified();
+            }
+            else
+            {
+                ts = System.currentTimeMillis();
+            }
+            marker.setLastModified( ts );
+        }
+        catch ( Exception e )
+        {
+            throw new MojoExecutionException( "Unable to update Marker 
timestamp: " + marker.getAbsolutePath(), e );
+        }
     }
 
     /**

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestMarkerFileFilter.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestMarkerFileFilter.java?rev=1066323&r1=1066322&r2=1066323&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestMarkerFileFilter.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/filters/TestMarkerFileFilter.java
 Wed Feb  2 04:05:27 2011
@@ -123,19 +123,27 @@ public class TestMarkerFileFilter
     public void testMarkerTimestamp()
         throws IOException, MojoExecutionException, ArtifactFilterException
     {
+        // filter includes release artifact because no marker present
+        // filter includes snapshot artifact becaues it is newer than marker
         DependencyArtifactStubFactory fileFact = new 
DependencyArtifactStubFactory( outputFolder, true );
         Artifact snap = fileFact.getSnapshotArtifact();
         Artifact release = fileFact.getReleaseArtifact();
         HashSet tempArtifacts = new HashSet();
         tempArtifacts.add( snap );
         tempArtifacts.add( release );
-        snap.getFile().setLastModified( snap.getFile().lastModified() + 1500 );
         DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( snap, 
outputFolder );
         handler.setMarker();
+        snap.getFile().setLastModified( snap.getFile().lastModified() + 1500 );
         MarkerFileFilter filter = new MarkerFileFilter( false, false, true, 
new DefaultFileMarkerHandler( outputFolder ) );
         Set result = filter.filter( tempArtifacts);
         assertEquals( 2, result.size() );
 
+        // update marker; filter won't include snapshot because timestamps 
equal
+        handler.setMarker();
+        result = filter.filter( tempArtifacts );
+        assertEquals( 1, result.size() );
+        
+        // filter won't include snapshot because it is older than marker
         snap.getFile().setLastModified( snap.getFile().lastModified() - 10000 
);
 
         result = filter.filter( tempArtifacts );


Reply via email to