Author: jdcasey Date: Wed Mar 28 11:49:37 2007 New Revision: 523436 URL: http://svn.apache.org/viewvc?view=rev&rev=523436 Log: [MASSEMBLY-155] Fixed using supplied patch, also adding an integration test to verify the fix.
Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml (with props) maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/verify.bsh Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml Wed Mar 28 11:49:37 2007 @@ -0,0 +1,21 @@ +<?xml version="1.0"?><project> + <parent> + <artifactId>dependencySet-unpackedExcludingMetaInf</artifactId> + <groupId>test</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>child1</artifactId> + <name>Maven Quick Start Archetype</name> + <version>1.0-SNAPSHOT</version> + <url>http://maven.apache.org</url> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java Wed Mar 28 11:49:37 2007 @@ -0,0 +1,13 @@ +package test; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/main/java/test/App.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java Wed Mar 28 11:49:37 2007 @@ -0,0 +1,38 @@ +package test; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child1/src/test/java/test/AppTest.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml Wed Mar 28 11:49:37 2007 @@ -0,0 +1,47 @@ +<?xml version="1.0"?><project> + <parent> + <artifactId>dependencySet-unpackedExcludingMetaInf</artifactId> + <groupId>test</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>child2</artifactId> + <version>1.0-SNAPSHOT</version> + + <dependencies> + <dependency> + <groupId>test</groupId> + <artifactId>child1</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId><version>testing</version> + <executions> + <execution> + <id>attach-binary-assembly</id> + <phase>package</phase> + <configuration> + <descriptors> + <descriptor>src/assemble/bin.xml</descriptor> + </descriptors> + </configuration> + <goals> + <goal>attached</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml Wed Mar 28 11:49:37 2007 @@ -0,0 +1,26 @@ +<assembly> + <id>bin</id> + <formats> + <format>jar</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <dependencySets> + <dependencySet> + <includes> + <include>test:child1</include> + </includes> + <unpack>true</unpack> + <unpackOptions> + <excludes> + <exclude>META-INF/**</exclude> + </excludes> + </unpackOptions> + <outputDirectory>/</outputDirectory> + <outputFileNameMapping>${artifactId}</outputFileNameMapping> + <scope>test</scope> + <excludes> + <exclude>junit:junit</exclude> + </excludes> + </dependencySet> + </dependencySets> +</assembly> Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/assemble/bin.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java Wed Mar 28 11:49:37 2007 @@ -0,0 +1,13 @@ +package test; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/main/java/test/App.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java Wed Mar 28 11:49:37 2007 @@ -0,0 +1,38 @@ +package test; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/child2/src/test/java/test/AppTest.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt Wed Mar 28 11:49:37 2007 @@ -0,0 +1 @@ +package \ No newline at end of file Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/goals.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml Wed Mar 28 11:49:37 2007 @@ -0,0 +1,13 @@ +<?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> + <groupId>test</groupId> + <artifactId>dependencySet-unpackedExcludingMetaInf</artifactId> + <packaging>pom</packaging> + <version>1.0-SNAPSHOT</version> + + <modules> + <module>child1</module> + <module>child2</module> + </modules> +</project> Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/pom.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/verify.bsh URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/verify.bsh?view=auto&rev=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/verify.bsh (added) +++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/dependencySet-unpackedExcludingMetaInf/verify.bsh Wed Mar 28 11:49:37 2007 @@ -0,0 +1,56 @@ +import java.io.*; +import java.net.*; +import java.util.jar.*; + +boolean result = true; + +try +{ + System.out.println( "Creating JarFile java.io.File." ); + + File jarFile = new File( basedir, "child2/target/child2-1.0-SNAPSHOT-bin.jar" ); + + System.out.println( "Checking for existence and file-ishness of: " + jarFile ); + + if ( !jarFile.exists() || jarFile.isDirectory() ) + { + System.err.println( "jar file is missing or a directory." ); + return false; + } + + System.out.println( "Creating JarFile instance." ); + + JarFile jf = new JarFile( jarFile ); + + System.out.println( "Looking for 'child1/' jar entry." ); + + if ( jf.getEntry( "child1/" ) == null ) + { + System.err.println( "child1 entry is missing." ); + result = false; + } + + System.out.println( "Looking for 'child1/META-INF' jar entry (should not exist)." ); + + if ( jf.getEntry( "child1/META-INF" ) != null ) + { + System.err.println( "child1/META-INF entry should not be present." ); + result = false; + } + + System.out.println( "Looking for absence of 'junit/' jar entry." ); + + if ( jf.getEntry( "junit" ) != null ) + { + System.err.println( "junit jar should not be present." ); + result = false; + } + +} +catch( IOException e ) +{ + e.printStackTrace(); + result = false; +} + +return result; Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?view=diff&rev=523436&r1=523435&r2=523436 ============================================================================== --- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java (original) +++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Wed Mar 28 11:49:37 2007 @@ -10,6 +10,7 @@ import org.apache.maven.plugin.assembly.artifact.DependencyResolver; import org.apache.maven.plugin.assembly.format.AssemblyFormattingException; import org.apache.maven.plugin.assembly.model.DependencySet; +import org.apache.maven.plugin.assembly.model.UnpackOptions; import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils; import org.apache.maven.plugin.assembly.utils.FilterUtils; import org.apache.maven.project.MavenProject; @@ -127,6 +128,13 @@ task.setDirectoryMode( dependencySet.getDirectoryMode() ); task.setFileMode( dependencySet.getFileMode() ); task.setUnpack( dependencySet.isUnpack() ); + + UnpackOptions opts = dependencySet.getUnpackOptions(); + if ( dependencySet.isUnpack() && opts != null ) + { + task.setIncludes( opts.getIncludes() ); + task.setExcludes( opts.getExcludes() ); + } task.execute( archiver, configSource ); }