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