You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2008/09/16 00:14:52 UTC
svn commit: r695670 - in /maven/shared/trunk/maven-filtering: ./
src/main/java/org/apache/maven/shared/filtering/
src/test/java/org/apache/maven/shared/filtering/
src/test/units-files/includeEmptyDirs/
src/test/units-files/includeEmptyDirs/dir1/ src/te...
Author: olamy
Date: Mon Sep 15 15:14:51 2008
New Revision: 695670
URL: http://svn.apache.org/viewvc?rev=695670&view=rev
Log:
[MSHARED-68] Paramater to copy empty directory.
Added:
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/empty-directory/ (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/empty-directory-child/ (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/empty-directory-child/empty-child/
Modified:
maven/shared/trunk/maven-filtering/pom.xml
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
Modified: maven/shared/trunk/maven-filtering/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/pom.xml?rev=695670&r1=695669&r2=695670&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/pom.xml (original)
+++ maven/shared/trunk/maven-filtering/pom.xml Mon Sep 15 15:14:51 2008
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>1.5.5</version>
+ <version>1.5.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -105,4 +105,18 @@
</dependency>
</dependencies>
+ <!-- remove when plexus-utils 1.5.7 released -->
+ <repositories>
+ <repository>
+ <id>snapshots.codehaus</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
</project>
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=695670&r1=695669&r2=695670&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 Sep 15 15:14:51 2008
@@ -20,6 +20,7 @@
*/
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -220,22 +221,42 @@
DirectoryScanner scanner = new DirectoryScanner();
scanner.setBasedir( resourceDirectory );
+ String[] includes = null;
if ( resource.getIncludes() != null && !resource.getIncludes().isEmpty() )
{
- scanner.setIncludes( (String[]) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
+ includes = (String[]) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) ;
}
else
{
- scanner.setIncludes( DEFAULT_INCLUDES );
+ includes = DEFAULT_INCLUDES;
}
-
+ scanner.setIncludes( includes );
+
+ String[] excludes = null;
if ( resource.getExcludes() != null && !resource.getExcludes().isEmpty() )
{
- scanner.setExcludes( (String[]) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
+ excludes = (String[]) resource.getExcludes().toArray( EMPTY_STRING_ARRAY );
+ scanner.setExcludes( excludes );
}
scanner.addDefaultExcludes();
scanner.scan();
+
+ if (mavenResourcesExecution.isIncludeEmptyDirs())
+ {
+ try
+ {
+ FileUtils.copyDirectoryStructure( resourceDirectory, targetPath == null ? outputDirectory
+ : new File( outputDirectory,
+ targetPath ),
+ includes, excludes );
+ }
+ catch ( IOException e )
+ {
+ throw new MavenFilteringException( "Cannot copy directory structure from "
+ + resourceDirectory.getPath() + " to " + outputDirectory.getPath() );
+ }
+ }
List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java?rev=695670&r1=695669&r2=695670&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java Mon Sep 15 15:14:51 2008
@@ -83,6 +83,12 @@
*/
private boolean overwrite = false;
+ /**
+ * Copy any empty directories included in the Ressources
+ * @since 1.0-beta-2
+ */
+ private boolean includeEmptyDirs = false;
+
public MavenResourcesExecution()
{
projectStartExpressions.add( "pom" );
@@ -385,5 +391,23 @@
{
this.overwrite = overwrite;
}
+
+ /**
+ * @return
+ * @since 1.0-beta-2
+ */
+ public boolean isIncludeEmptyDirs()
+ {
+ return includeEmptyDirs;
+ }
+
+ /**
+ * @param includeEmptyDirs
+ * @since 1.0-beta-2
+ */
+ public void setIncludeEmptyDirs( boolean includeEmptyDirs )
+ {
+ this.includeEmptyDirs = includeEmptyDirs;
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=695670&r1=695669&r2=695670&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java (original)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java Mon Sep 15 15:14:51 2008
@@ -502,5 +502,65 @@
assertEquals( 1, files.length );
assertEquals( "includefile.txt", files[0].getName() );
}
+
+ public void testEmptyDirectories()
+ throws Exception
+ {
+ File baseDir = new File( "c:\\foo\\bar" );
+ StubMavenProject mavenProject = new StubMavenProject( baseDir );
+ mavenProject.setVersion( "1.0" );
+ mavenProject.setGroupId( "org.apache" );
+ mavenProject.setName( "test project" );
+
+ MavenResourcesFiltering mavenResourcesFiltering = (MavenResourcesFiltering) lookup( MavenResourcesFiltering.class
+ .getName() );
+
+
+ List resources = new ArrayList();
+ resources.add( new Resource()
+ {
+ {
+ setDirectory( getBasedir() + "/src/test/units-files/includeEmptyDirs" );
+ }
+ } );
+ MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution( resources, outputDirectory,
+ mavenProject, null, Collections.EMPTY_LIST,
+ Collections.EMPTY_LIST,
+ new StubMavenSession() );
+ mavenResourcesExecution.setIncludeEmptyDirs( true );
+ mavenResourcesFiltering.filterResources( mavenResourcesExecution );
+
+ File[] childs = outputDirectory.listFiles();
+ assertEquals( 3, childs.length );
+
+ for ( int i = 0, size = childs.length; i < size; i++ )
+ {
+ File file = childs[i];
+ if ( file.getName().endsWith( "dir1" ) || file.getName().endsWith( "empty-directory" )
+ || file.getName().endsWith( "empty-directory-child" ) )
+ {
+ if ( file.getName().endsWith( "dir1" ) )
+ {
+ assertEquals( 1, file.list().length );
+ assertTrue( file.listFiles()[0].getName().endsWith( "foo.txt" ) );
+ }
+ if ( file.getName().endsWith( "empty-directory" ) )
+ {
+ assertEquals( 0, file.list().length );
+ }
+ if ( file.getName().endsWith( "empty-directory-child" ) )
+ {
+ assertEquals( 1, file.list().length );
+ assertTrue( file.listFiles()[0].isDirectory() );
+ assertEquals( 0, file.listFiles()[0].listFiles().length );
+ }
+ }
+ else
+ {
+ fail( "unknow child file found " + file.getName() );
+ }
+ }
+ }
+
}
Added: maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt?rev=695670&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt (added)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt Mon Sep 15 15:14:51 2008
@@ -0,0 +1 @@
+foo.
\ No newline at end of file
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/dir1/foo.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/empty-directory/
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/includeEmptyDirs/empty-directory-child/
------------------------------------------------------------------------------
svn:mergeinfo =