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/12/10 20:29:42 UTC

svn commit: r725394 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/it/projects/bugs/massembly-285/ src/it/projects/bugs/massembly-285/massembly-285-assembly/ src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/ src/main...

Author: jdcasey
Date: Wed Dec 10 11:29:42 2008
New Revision: 725394

URL: http://svn.apache.org/viewvc?rev=725394&view=rev
Log:
[MASSEMBLY-75][MASSEMBLY-285][MASSEMBLY-238] fixing and adding integration tests. The only potentially outstanding issue of these might be MASSEMBLY-75, which will have a test added to plexus-archiver to check it.

Modified:
    maven/plugins/trunk/maven-assembly-plugin/   (props changed)
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/bin.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiverTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTaskTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java

Propchange: maven/plugins/trunk/maven-assembly-plugin/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Dec 10 11:29:42 2008
@@ -1,3 +1,4 @@
+MAVEN_ENV
 target
 cobertura.ser
 *~

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Dec 10 11:29:42 2008
@@ -60,9 +60,9 @@
       <version>1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-interpolation</artifactId>
-      <version>1.6</version>
+    	<groupId>org.codehaus.plexus</groupId>
+    	<artifactId>plexus-interpolation</artifactId>
+    	<version>1.7</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/pom.xml?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/pom.xml Wed Dec 10 11:29:42 2008
@@ -28,9 +28,6 @@
       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <configuration>
-          <archiverConfig>
-            <duplicateBehavior>skip</duplicateBehavior>
-          </archiverConfig>
           <descriptors>
             <descriptor>src/main/assembly/bin.xml</descriptor>
           </descriptors>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/bin.xml?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/bin.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/massembly-285-assembly/src/main/assembly/bin.xml Wed Dec 10 11:29:42 2008
@@ -2,6 +2,7 @@
   <id>bin</id>
   <formats>
     <format>jar</format>
+    <format>zip</format>
   </formats>
   <includeBaseDirectory>false</includeBaseDirectory>
   <dependencySets>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/pom.xml?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/pom.xml Wed Dec 10 11:29:42 2008
@@ -15,4 +15,19 @@
     <module>massembly-285-mod2</module>
     <module>massembly-285-assembly</module>
   </modules>
+  
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <configuration>
+            <archiverConfig>
+              <duplicateBehavior>skip</duplicateBehavior>
+            </archiverConfig>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
 </project>
\ No newline at end of file

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/verify.bsh?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/bugs/massembly-285/verify.bsh Wed Dec 10 11:29:42 2008
@@ -1,26 +1,48 @@
 import java.io.*;
 import java.util.*;
 import java.util.jar.*;
+import java.util.zip.*;
 
 File f = new File( basedir, "massembly-285-assembly/target/massembly-285-assembly-1-bin.jar" );
 JarFile jf = new JarFile( f );
 
 String testPath = "tests/App.class";
 
-int count = 0;
+int jarCount = 0;
 
 Enumeration e = jf.entries();
 while( e.hasMoreElements() )
 {
 	if ( testPath.equals( String.valueOf( e.nextElement() ) ) )
 	{
-		count++;
+		jarCount++;
 	}
 }
 
-if ( count != 1 )
+if ( jarCount != 1 )
 {
-	System.out.println( "ERROR! Test path: " + testPath + " was found " + count + " times (should have been 1)." );
+	System.out.println( "ERROR! Test path: " + testPath + " was found " + jarCount + " times (should have been 1).\nArchive: " + f );
 }
 
-return count == 1;
\ No newline at end of file
+f = new File( basedir, "massembly-285-assembly/target/massembly-285-assembly-1-bin.zip" );
+ZipFile zf = new ZipFile( f );
+
+String testPath = "tests/App.class";
+
+int zipCount = 0;
+
+e = zf.entries();
+while( e.hasMoreElements() )
+{
+	if ( testPath.equals( String.valueOf( e.nextElement() ) ) )
+	{
+		zipCount++;
+	}
+}
+
+if ( zipCount != 1 )
+{
+	System.out.println( "ERROR! Test path: " + testPath + " was found " + zipCount + " times (should have been 1).\nArchive: " + f );
+}
+
+return jarCount == 1;
\ No newline at end of file

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java Wed Dec 10 11:29:42 2008
@@ -27,7 +27,7 @@
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
-import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.archiver.util.DefaultFileSet;
 
 /**
  * @version $Id$
@@ -67,7 +67,7 @@
             throw new ArchiveCreationException( "Cannot add source directory: " + directory + " to archive-path: "
                 + outputDirectory + ". All paths must be within the archive root directory." );
         }
-
+        
         int oldDirMode = archiver.getDefaultDirectoryMode();
         int oldFileMode = archiver.getDefaultFileMode();
 
@@ -95,11 +95,6 @@
                     directoryExcludes = new ArrayList();
                 }
 
-                if ( useDefaultExcludes )
-                {
-                    directoryExcludes.addAll( FileUtils.getDefaultExcludesAsList() );
-                }
-
                 try
                 {
                     String[] includesArray = null;
@@ -111,7 +106,14 @@
                     // this one is guaranteed to be non-null by code above.
                     String[] excludesArray = (String[]) directoryExcludes.toArray( new String[0] );
 
-                    archiver.addDirectory( directory, outputDirectory, includesArray, excludesArray );
+                    DefaultFileSet fs = new DefaultFileSet();
+                    fs.setUsingDefaultExcludes( useDefaultExcludes );
+                    fs.setPrefix( outputDirectory );
+                    fs.setDirectory( directory );
+                    fs.setIncludes( includesArray );
+                    fs.setExcludes( excludesArray );
+
+                    archiver.addFileSet( fs );
                 }
                 catch ( ArchiverException e )
                 {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiverTest.java?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/AssemblyProxyArchiverTest.java Wed Dec 10 11:29:42 2008
@@ -83,7 +83,7 @@
         File output = fileManager.createTempFile();
         delegate.setDestFile( output );
 
-        CounterSelector counter = new CounterSelector( false );
+        CounterSelector counter = new CounterSelector( true );
         List selectors = Collections.singletonList( counter );
 
         AssemblyProxyArchiver archiver = new AssemblyProxyArchiver( "", delegate, Collections.EMPTY_LIST, selectors,
@@ -93,6 +93,8 @@
         fileManager.createFile( dir, "file.txt", "This is a test." );
 
         archiver.addDirectory( dir );
+        
+        archiver.createArchive();
 
         assertEquals( 1, counter.getCount() );
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/RepositoryAssemblyPhaseTest.java Wed Dec 10 11:29:42 2008
@@ -19,6 +19,16 @@
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@@ -42,20 +52,14 @@
 import org.apache.maven.shared.repository.RepositoryAssemblyException;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.FileSet;
+import org.codehaus.plexus.archiver.util.DefaultFileSet;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
-import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+import org.easymock.AbstractMatcher;
 import org.easymock.MockControl;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
 public class RepositoryAssemblyPhaseTest
     extends TestCase
 {
@@ -131,7 +135,7 @@
         File outDir = new File( tempRoot, "out" );
 
         macArchiver.expectModeChange( -1, -1, mode, mode, true );
-        macArchiver.expectAddDirectory( outDir, "out/", null, FileUtils.getDefaultExcludes() );
+        macArchiver.expectAddDirectory( outDir, "out/", null, null );
 
         macRepo.expectAssemble( outDir, repo, macCS.configSource );
 
@@ -174,14 +178,117 @@
         {
             try
             {
-                archiver.addDirectory( outDir, location, includes, excludes );
+                DefaultFileSet fs = new DefaultFileSet();
+                fs.setDirectory( outDir );
+                fs.setPrefix( location );
+                fs.setIncludes( includes );
+                fs.setExcludes( excludes );
+                
+                archiver.addFileSet( fs );
             }
             catch ( ArchiverException e )
             {
                 Assert.fail( "Should never happen." );
             }
 
-            control.setMatcher( MockControl.ARRAY_MATCHER );
+            control.setMatcher( new AbstractMatcher()
+            {
+
+                protected boolean argumentMatches( Object expected, Object actual )
+                {
+                    FileSet e = (FileSet) expected;
+                    FileSet a = (FileSet) actual;
+                    
+                    if ( !eq( e.getDirectory(), a.getDirectory() ) )
+                    {
+                        System.out.println( "FileSet directory expected: " + e.getDirectory() + "\nActual: "
+                            + a.getDirectory() );
+                        
+                        return false;
+                    }
+                    
+                    if ( !eq( e.getPrefix(), a.getPrefix() ) )
+                    {
+                        System.out.println( "FileSet prefix expected: " + e.getPrefix() + "\nActual: " + a.getPrefix() );
+                        
+                        return false;
+                    }
+                    
+                    if ( !areq( e.getIncludes(), a.getIncludes() ) )
+                    {
+                        System.out.println( "FileSet includes expected: " + arToStr( e.getIncludes() ) + "\nActual: "
+                            + arToStr( a.getIncludes() ) );
+                        
+                        return false;
+                    }
+                    
+                    if ( !areq( e.getExcludes(), a.getExcludes() ) )
+                    {
+                        System.out.println( "FileSet excludes expected: " + arToStr( e.getExcludes() ) + "\nActual: "
+                                            + arToStr( a.getExcludes() ) );
+                                        
+                                        return false;
+                    }
+                    
+                    return true;
+                }
+
+                protected String argumentToString( Object argument )
+                {
+                    FileSet a = (FileSet) argument;
+                    
+                    return argument == null ? "Null FileSet" : "FileSet:[dir=" + a.getDirectory() + ", prefix: "
+                        + a.getPrefix() + "\nincludes:\n" + arToStr( a.getIncludes() ) + "\nexcludes:\n"
+                        + arToStr( a.getExcludes() ) + "]";
+                }
+                
+                private String arToStr( String[] array )
+                {
+                    return array == null ? "-EMPTY-" : StringUtils.join( array, "\n\t" );
+                }
+
+                private boolean areq( String[] first, String[] second )
+                {
+                    if ( ( first == null || first.length == 0 ) && ( second == null || second.length == 0 ) )
+                    {
+                        return true;
+                    }
+                    else if ( first == null && second != null )
+                    {
+                        return false;
+                    }
+                    else if ( first != null && second == null )
+                    {
+                        return false;
+                    }
+                    else
+                    {
+                        return Arrays.equals( first, second );
+                    }
+                }
+
+                private boolean eq( Object first, Object second )
+                {
+                    if ( first == null && second == null )
+                    {
+                        return true;
+                    }
+                    else if ( first == null && second != null )
+                    {
+                        return false;
+                    }
+                    else if ( first != null && second == null )
+                    {
+                        return false;
+                    }
+                    else
+                    {
+                        return first.equals( second );
+                    }
+                }
+                
+            });
+            
             control.setVoidCallable( MockControl.ONE_OR_MORE );
         }
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTaskTest.java?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTaskTest.java Wed Dec 10 11:29:42 2008
@@ -85,7 +85,7 @@
 
         try
         {
-            archiver.addDirectory( null, null, null, null );
+            archiver.addFileSet( null );
             archiverControl.setMatcher( MockControl.ALWAYS_MATCHER );
         }
         catch ( ArchiverException e )
@@ -113,7 +113,7 @@
 
         try
         {
-            archiver.addDirectory( null, null, null, null );
+            archiver.addFileSet( null );
             archiverControl.setMatcher( MockControl.ALWAYS_MATCHER );
         }
         catch ( ArchiverException e )
@@ -146,7 +146,7 @@
 
         try
         {
-            archiver.addDirectory( null, null, null, null );
+            archiver.addFileSet( null );
             archiverControl.setMatcher( MockControl.ALWAYS_MATCHER );
         }
         catch ( ArchiverException e )

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java?rev=725394&r1=725393&r2=725394&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddFileSetsTask.java Wed Dec 10 11:29:42 2008
@@ -138,7 +138,7 @@
 
             try
             {
-                archiver.addDirectory( null, null, null, null );
+                archiver.addFileSet( null );
                 archiverCtl.setMatcher( MockControl.ALWAYS_MATCHER );
                 archiverCtl.setVoidCallable( MockControl.ONE_OR_MORE );
             }