You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/11/30 15:48:12 UTC
svn commit: r885439 - in /maven/shared/trunk/maven-filtering/src:
main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
Author: bentmann
Date: Mon Nov 30 14:48:12 2009
New Revision: 885439
URL: http://svn.apache.org/viewvc?rev=885439&view=rev
Log:
[MSHARED-125] Current incremental build implementation failed when resources are removed from target folder
Modified:
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java?rev=885439&r1=885438&r2=885439&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java Mon Nov 30 14:48:12 2009
@@ -33,6 +33,7 @@
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.PathTool;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.Scanner;
import org.codehaus.plexus.util.StringUtils;
@@ -220,9 +221,8 @@
}
boolean ignoreDelta =
- buildContext.hasDelta( mavenResourcesExecution.getFileFilters() )
- || buildContext.hasDelta( mavenResourcesExecution.getOutputDirectory().getPath() )
- || !outputExists;
+ !outputExists || buildContext.hasDelta( mavenResourcesExecution.getFileFilters() )
+ || buildContext.hasDelta( getRelativeOutputDirectory( mavenResourcesExecution ) );
getLogger().debug( "ignoreDelta " + ignoreDelta );
Scanner scanner = buildContext.newScanner( resourceDirectory, ignoreDelta );
@@ -378,4 +378,26 @@
destination.mkdirs();
}
}
+
+ private String getRelativeOutputDirectory( MavenResourcesExecution execution )
+ {
+ String relOutDir = execution.getOutputDirectory().getAbsolutePath();
+
+ if ( execution.getMavenProject() != null && execution.getMavenProject().getBasedir() != null )
+ {
+ String basedir = execution.getMavenProject().getBasedir().getAbsolutePath();
+ relOutDir = PathTool.getRelativeFilePath( basedir, relOutDir );
+ if ( relOutDir == null )
+ {
+ relOutDir = execution.getOutputDirectory().getPath();
+ }
+ else
+ {
+ relOutDir = relOutDir.replace( '\\', '/' );
+ }
+ }
+
+ return relOutDir;
+ }
+
}
Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java?rev=885439&r1=885438&r2=885439&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java (original)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java Mon Nov 30 14:48:12 2009
@@ -73,6 +73,27 @@
}
+ public void testOutputChange()
+ throws Exception
+ {
+ // run full build first
+ filter( "time" );
+
+ // all files are reprocessed after contents of output directory changed (e.g. was deleted)
+ HashSet changedFiles = new HashSet();
+ changedFiles.add( "target/IncrementalResourceFilteringTest" );
+ TestIncrementalBuildContext ctx = new TestIncrementalBuildContext( unitDirectory, changedFiles, new HashMap() );
+ ThreadBuildContext.setThreadBuildContext( ctx );
+
+ filter( "notime" );
+ assertTime( "notime", "file01.txt" );
+ assertTime( "notime", "file02.txt" );
+
+ assertTrue( ctx.getRefreshFiles().contains( new File( outputDirectory, "file01.txt" ) ) );
+ assertTrue( ctx.getRefreshFiles().contains( new File( outputDirectory, "file02.txt" ) ) );
+
+ }
+
public void testFilterChange()
throws Exception
{
@@ -136,7 +157,7 @@
private void filter( String time )
throws Exception, MavenFilteringException
{
- File baseDir = new File( "c:\\foo\\bar" );
+ File baseDir = new File( getBasedir() );
StubMavenProject mavenProject = new StubMavenProject( baseDir );
mavenProject.setVersion( "1.0" );
mavenProject.setGroupId( "org.apache" );