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


Reply via email to