You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/02/18 21:06:31 UTC

svn commit: r628856 - in /maven/plugins/trunk/maven-assembly-plugin/src: it/projects/basic-features/descriptorDirectoryScan/ it/projects/basic-features/descriptorDirectoryScan/src/ it/projects/basic-features/descriptorDirectoryScan/src/assemble/ main/j...

Author: jdcasey
Date: Mon Feb 18 12:06:17 2008
New Revision: 628856

URL: http://svn.apache.org/viewvc?rev=628856&view=rev
Log:
[MASSEMBLY-274] Modifying the directory scanner logic used to scan an assembly descriptor directory to use default excludes, and only search for **/*.xml. Adding an integration test and unit test to cover this.
Patches submitted by: Paul Gier and Benjamin Bentmann
NOTE: I added the unit test method myself.

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt   (with props)
Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt?rev=628856&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt Mon Feb 18 12:06:17 2008
@@ -0,0 +1 @@
+clean org.apache.maven.plugins:maven-assembly-plugin:testing:directory

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml?rev=628856&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml Mon Feb 18 12:06:17 2008
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.plugin.assembly.test</groupId>
+    <artifactId>it-project-parent</artifactId>
+    <version>1</version>
+  </parent>
+  
+  <groupId>org.test</groupId>
+  <artifactId>parent</artifactId>
+  <version>1.0</version>
+  
+  <name>Parent</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId><version>testing</version>
+        <configuration>
+          <descriptorSourceDirectory>src/assemble</descriptorSourceDirectory>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml?rev=628856&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml Mon Feb 18 12:06:17 2008
@@ -0,0 +1,16 @@
+
+<assembly>
+  <id>bindir</id>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <dependencySets>
+    <dependencySet>
+      <includes>
+        <include>commons-logging:commons-logging</include>
+      </includes>
+      <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
+    </dependencySet>
+  </dependencySets>
+</assembly>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt?rev=628856&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt Mon Feb 18 12:06:17 2008
@@ -0,0 +1 @@
+This file is junk and should not be picked up as a descriptor.

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/basic-features/descriptorDirectoryScan/src/assemble/readme.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java?rev=628856&r1=628855&r2=628856&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java Mon Feb 18 12:06:17 2008
@@ -156,7 +156,8 @@
 
             DirectoryScanner scanner = new DirectoryScanner();
             scanner.setBasedir( descriptorSourceDirectory );
-            scanner.setIncludes( new String[]{ "**/*" } );
+            scanner.setIncludes( new String[]{ "**/*.xml" } );
+            scanner.addDefaultExcludes();
 
             try
             {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java?rev=628856&r1=628855&r2=628856&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java Mon Feb 18 12:06:17 2008
@@ -328,9 +328,9 @@
         assertNotNull( depSets );
         assertEquals( 3, depSets.size() );
 
-        assertEquals( Artifact.SCOPE_RUNTIME, ((DependencySet) depSets.get( 0 )).getScope() );
-        assertEquals( Artifact.SCOPE_COMPILE, ((DependencySet) depSets.get( 1 )).getScope() );
-        assertEquals( Artifact.SCOPE_SYSTEM, ((DependencySet) depSets.get( 2 )).getScope() );
+        assertEquals( Artifact.SCOPE_RUNTIME, ( (DependencySet) depSets.get( 0 ) ).getScope() );
+        assertEquals( Artifact.SCOPE_COMPILE, ( (DependencySet) depSets.get( 1 ) ).getScope() );
+        assertEquals( Artifact.SCOPE_SYSTEM, ( (DependencySet) depSets.get( 2 ) ).getScope() );
     }
 
     public void testMergeComponentWithAssembly_ShouldAddOneRepositoryToExistingListOfTwo()
@@ -361,9 +361,9 @@
         assertNotNull( depSets );
         assertEquals( 3, depSets.size() );
 
-        assertEquals( Artifact.SCOPE_RUNTIME, ((Repository) depSets.get( 0 )).getScope() );
-        assertEquals( Artifact.SCOPE_COMPILE, ((Repository) depSets.get( 1 )).getScope() );
-        assertEquals( Artifact.SCOPE_SYSTEM, ((Repository) depSets.get( 2 )).getScope() );
+        assertEquals( Artifact.SCOPE_RUNTIME, ( (Repository) depSets.get( 0 ) ).getScope() );
+        assertEquals( Artifact.SCOPE_COMPILE, ( (Repository) depSets.get( 1 ) ).getScope() );
+        assertEquals( Artifact.SCOPE_SYSTEM, ( (Repository) depSets.get( 2 ) ).getScope() );
     }
 
     public void testMergeComponentWithAssembly_ShouldAddOneContainerDescriptorHandlerToExistingListOfTwo()
@@ -395,9 +395,9 @@
         assertEquals( 3, result.size() );
 
         Iterator it = result.iterator();
-        assertEquals( "one", ((ContainerDescriptorHandlerConfig) it.next()).getHandlerName() );
-        assertEquals( "two", ((ContainerDescriptorHandlerConfig) it.next()).getHandlerName() );
-        assertEquals( "three", ((ContainerDescriptorHandlerConfig) it.next()).getHandlerName() );
+        assertEquals( "one", ( (ContainerDescriptorHandlerConfig) it.next() ).getHandlerName() );
+        assertEquals( "two", ( (ContainerDescriptorHandlerConfig) it.next() ).getHandlerName() );
+        assertEquals( "three", ( (ContainerDescriptorHandlerConfig) it.next() ).getHandlerName() );
     }
 
     // FIXME: Deep merging should take place...
@@ -534,7 +534,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -581,7 +583,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -589,7 +593,7 @@
 
         assertEquals( 1, fileSets.size() );
 
-        assertEquals( "/site", ((FileSet) fileSets.get( 0 )).getOutputDirectory() );
+        assertEquals( "/site", ( (FileSet) fileSets.get( 0 ) ).getOutputDirectory() );
 
         mockManager.verifyAll();
     }
@@ -632,7 +636,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -640,7 +646,7 @@
 
         assertEquals( 1, fileSets.size() );
 
-        assertEquals( "/site", ((FileSet) fileSets.get( 0 )).getOutputDirectory() );
+        assertEquals( "/site", ( (FileSet) fileSets.get( 0 ) ).getOutputDirectory() );
 
         mockManager.verifyAll();
     }
@@ -702,7 +708,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -710,7 +718,7 @@
 
         assertEquals( 1, fileSets.size() );
 
-        assertEquals( "/dir", ((FileSet) fileSets.get( 0 )).getDirectory() );
+        assertEquals( "/dir", ( (FileSet) fileSets.get( 0 ) ).getDirectory() );
 
         mockManager.verifyAll();
     }
@@ -772,7 +780,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -818,7 +828,9 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().readAssembly( sr, "testLocation", configSource );
+        Assembly result = new DefaultAssemblyReader().readAssembly( sr,
+                                                                    "testLocation",
+                                                                    configSource );
 
         assertEquals( "group-assembly", result.getId() );
 
@@ -844,7 +856,8 @@
         configSourceControl.setReturnValue( basedir, MockControl.ZERO_OR_MORE );
 
         configSource.getProject();
-        configSourceControl.setReturnValue( new MavenProject( new Model() ), MockControl.ZERO_OR_MORE );
+        configSourceControl.setReturnValue( new MavenProject( new Model() ),
+                                            MockControl.ZERO_OR_MORE );
 
         configSource.isSiteIncluded();
         configSourceControl.setReturnValue( false, MockControl.ZERO_OR_MORE );
@@ -862,7 +875,8 @@
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().getAssemblyFromDescriptorFile( assemblyFile, configSource );
+        Assembly result = new DefaultAssemblyReader().getAssemblyFromDescriptorFile( assemblyFile,
+                                                                                     configSource );
 
         assertEquals( assembly.getId(), result.getId() );
 
@@ -878,14 +892,16 @@
         configSourceControl.setReturnValue( basedir, MockControl.ZERO_OR_MORE );
 
         configSource.getProject();
-        configSourceControl.setReturnValue( new MavenProject( new Model() ), MockControl.ZERO_OR_MORE );
+        configSourceControl.setReturnValue( new MavenProject( new Model() ),
+                                            MockControl.ZERO_OR_MORE );
 
         configSource.isSiteIncluded();
         configSourceControl.setReturnValue( false, MockControl.ZERO_OR_MORE );
 
         mockManager.replayAll();
 
-        Assembly result = new DefaultAssemblyReader().getAssemblyForDescriptorReference( "bin", configSource );
+        Assembly result = new DefaultAssemblyReader().getAssemblyForDescriptorReference( "bin",
+                                                                                         configSource );
 
         assertEquals( "bin", result.getId() );
 
@@ -907,7 +923,7 @@
 
         List files = writeAssembliesToFile( Collections.singletonList( assembly ), basedir );
 
-        String assemblyFile = ( String ) files.get( 0 );
+        String assemblyFile = (String) files.get( 0 );
 
         List assemblies = performReadAssemblies( basedir, assemblyFile, null, null, null, null );
 
@@ -951,7 +967,12 @@
 
         List files = writeAssembliesToFile( assemblies, basedir );
 
-        List results = performReadAssemblies( basedir, null, null, (String[]) files.toArray( new String[0] ), null, null );
+        List results = performReadAssemblies( basedir,
+                                              null,
+                                              null,
+                                              (String[]) files.toArray( new String[0] ),
+                                              null,
+                                              null );
 
         assertNotNull( results );
         assertEquals( 2, results.size() );
@@ -970,7 +991,10 @@
     {
         File basedir = fileManager.createTempDir();
 
-        List assemblies = performReadAssemblies( basedir, null, null, null, new String[] { "bin", "src" }, null );
+        List assemblies = performReadAssemblies( basedir, null, null, null, new String[] {
+            "bin",
+            "src"
+        }, null );
 
         assertNotNull( assemblies );
         assertEquals( 2, assemblies.size() );
@@ -1015,7 +1039,41 @@
         assertEquals( assembly2.getId(), result2.getId() );
     }
 
-    private List writeAssembliesToFile( List assemblies, File dir )
+    public void testReadAssemblies_ShouldGetTwoAssemblyDescriptorsFromDirectoryWithThreeFiles()
+        throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+    {
+        Assembly assembly1 = new Assembly();
+        assembly1.setId( "test" );
+
+        Assembly assembly2 = new Assembly();
+        assembly2.setId( "test2" );
+
+        List assemblies = new ArrayList();
+        assemblies.add( assembly1 );
+        assemblies.add( assembly2 );
+
+        File basedir = fileManager.createTempDir();
+
+        writeAssembliesToFile( assemblies, basedir );
+
+        fileManager.createFile( basedir, "readme.txt", "This is just a readme file, not a descriptor." );
+
+        List results = performReadAssemblies( basedir, null, null, null, null, basedir );
+
+        assertNotNull( results );
+        assertEquals( 2, results.size() );
+
+        Assembly result1 = (Assembly) assemblies.get( 0 );
+
+        assertEquals( assembly1.getId(), result1.getId() );
+
+        Assembly result2 = (Assembly) assemblies.get( 1 );
+
+        assertEquals( assembly2.getId(), result2.getId() );
+    }
+
+    private List writeAssembliesToFile( List assemblies,
+                                        File dir )
         throws IOException
     {
         List files = new ArrayList();
@@ -1043,8 +1101,12 @@
         return files;
     }
 
-    private List performReadAssemblies( File basedir, String descriptor, String descriptorRef, String[] descriptors,
-                                        String[] descriptorRefs, File descriptorDir )
+    private List performReadAssemblies( File basedir,
+                                        String descriptor,
+                                        String descriptorRef,
+                                        String[] descriptors,
+                                        String[] descriptorRefs,
+                                        File descriptorDir )
         throws AssemblyReadException, InvalidAssemblerConfigurationException
     {
         configSource.getDescriptor();
@@ -1066,7 +1128,8 @@
         configSourceControl.setReturnValue( basedir, MockControl.ZERO_OR_MORE );
 
         configSource.getProject();
-        configSourceControl.setReturnValue( new MavenProject( new Model() ), MockControl.ZERO_OR_MORE );
+        configSourceControl.setReturnValue( new MavenProject( new Model() ),
+                                            MockControl.ZERO_OR_MORE );
 
         configSource.isSiteIncluded();
         configSourceControl.setReturnValue( false, MockControl.ZERO_OR_MORE );