Author: bentmann Date: Wed Sep 10 14:06:44 2008 New Revision: 693981 URL: http://svn.apache.org/viewvc?rev=693981&view=rev Log: [MSHARED-62] Excludes are ignored for deletion if followSymlinks=false
Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt (with props) maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt (with props) maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt (with props) maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt (with props) maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt (with props) maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt (with props) Modified: maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java maven/shared/trunk/file-management/src/test/java/org/apache/maven/shared/model/fileset/util/FileSetUtilsTest.java Modified: maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java?rev=693981&r1=693980&r2=693981&view=diff ============================================================================== --- maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java (original) +++ maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java Wed Sep 10 14:06:44 2008 @@ -427,7 +427,7 @@ .addInfoMessage( "Adding symbolic link dirs which were previously excluded to the list being deleted." ).flush(); } - // we need to see which entries were excluded because they're symlinks... + // we need to see which entries were only excluded because they're symlinks... scanner.setFollowSymlinks( true ); scanner.scan(); @@ -437,17 +437,17 @@ messages.addDebugMessage( "Marked for preserve (with followSymlinks == false): " + excludes ).flush(); } - List notSymlinks = Arrays.asList( scanner.getIncludedDirectories() ); + List includedDirsAndSymlinks = Arrays.asList( scanner.getIncludedDirectories() ); linksForDeletion.addAll( excludes ); - linksForDeletion.retainAll( notSymlinks ); + linksForDeletion.retainAll( includedDirsAndSymlinks ); if ( messages != null && messages.isDebugEnabled() ) { messages.addDebugMessage( "Symlinks marked for deletion (originally mismarked): " + linksForDeletion ).flush(); } - excludes.removeAll( notSymlinks ); + excludes.removeAll( includedDirsAndSymlinks ); } excludeParentDirectoriesOfExcludedPaths( excludedDirs, includes ); @@ -487,7 +487,7 @@ .addInfoMessage( "Adding symbolic link files which were previously excluded to the list being deleted." ).flush(); } - // we need to see which entries were excluded because they're symlinks... + // we need to see which entries were only excluded because they're symlinks... scanner.setFollowSymlinks( true ); scanner.scan(); @@ -497,17 +497,17 @@ messages.addDebugMessage( "Marked for preserve (with followSymlinks == false): " + excludes ).flush(); } - List notSymlinks = Arrays.asList( scanner.getExcludedFiles() ); + List includedFilesAndSymlinks = Arrays.asList( scanner.getIncludedFiles() ); linksForDeletion.addAll( excludes ); - linksForDeletion.retainAll( notSymlinks ); + linksForDeletion.retainAll( includedFilesAndSymlinks ); if ( messages != null && messages.isDebugEnabled() ) { messages.addDebugMessage( "Symlinks marked for deletion (originally mismarked): " + linksForDeletion ).flush(); } - excludes.removeAll( notSymlinks ); + excludes.removeAll( includedFilesAndSymlinks ); } excludeParentDirectoriesOfExcludedPaths( excludedFiles, includes ); Modified: maven/shared/trunk/file-management/src/test/java/org/apache/maven/shared/model/fileset/util/FileSetUtilsTest.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/java/org/apache/maven/shared/model/fileset/util/FileSetUtilsTest.java?rev=693981&r1=693980&r2=693981&view=diff ============================================================================== --- maven/shared/trunk/file-management/src/test/java/org/apache/maven/shared/model/fileset/util/FileSetUtilsTest.java (original) +++ maven/shared/trunk/file-management/src/test/java/org/apache/maven/shared/model/fileset/util/FileSetUtilsTest.java Wed Sep 10 14:06:44 2008 @@ -236,6 +236,50 @@ } /** + * @throws Exception if any + */ + public void testDeleteExcludeFollowSymlinks() + throws Exception + { + File directory = setupTestDirectory( "testDeleteExcludeFollowSymlinks" ); + + FileSet set = new FileSet(); + set.setDirectory( directory.getPath() ); + set.addExclude( "*excluded*" ); + set.setFollowSymlinks( true ); + + FileSetManager fileSetManager = new FileSetManager(); + + fileSetManager.delete( set ); + + Assert.assertTrue( "excluded file has been deleted", new File( directory, "excluded.txt" ).exists() ); + Assert.assertTrue( "excluded directory has been deleted", new File( directory, "excluded" ).exists() ); + Assert.assertFalse( "included file has not been deleted", new File( directory, "included.txt" ).exists() ); + } + + /** + * @throws Exception if any + */ + public void testDeleteExcludeDontFollowSymlinks() + throws Exception + { + File directory = setupTestDirectory( "testDeleteExcludeDontFollowSymlinks" ); + + FileSet set = new FileSet(); + set.setDirectory( directory.getPath() ); + set.addExclude( "*excluded*" ); + set.setFollowSymlinks( false ); + + FileSetManager fileSetManager = new FileSetManager(); + + fileSetManager.delete( set ); + + Assert.assertTrue( "excluded file has been deleted", new File( directory, "excluded.txt" ).exists() ); + Assert.assertTrue( "excluded directory has been deleted", new File( directory, "excluded" ).exists() ); + Assert.assertFalse( "included file has not been deleted", new File( directory, "included.txt" ).exists() ); + } + + /** * @param from * @param to * @return Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +Should not be deleted. \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +The Resources Plugin won't copy empty directories... \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/excluded/dummy.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +Should be deleted. \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeDontFollowSymlinks/included.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +Should not be deleted. \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +The Resources Plugin won't copy empty directories... \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/excluded/dummy.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt?rev=693981&view=auto ============================================================================== --- maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt (added) +++ maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt Wed Sep 10 14:06:44 2008 @@ -0,0 +1 @@ +Should be deleted. \ No newline at end of file Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/file-management/src/test/resources/testDeleteExcludeFollowSymlinks/included.txt ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision