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 2006/08/23 22:58:08 UTC

svn commit: r434175 [1/2] - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/it/dependency-sets/including-pom-dependency/ src/it/dependency-sets/including-pom-dependency/src/ src/it/dependency-sets/including-pom-dependency/src/assemble/ src/it/dep...

Author: jdcasey
Date: Wed Aug 23 13:58:02 2006
New Revision: 434175

URL: http://svn.apache.org/viewvc?rev=434175&view=rev
Log:
Adding ability to specify <dependencySets/> within a <moduleSet/> to satisfy MASSEMBLY-99, and also enabling skipping of pom dependencies when adding binaries to the assembly.

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java   (with props)
Modified:
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/testutils/MockAndControlForAddArtifactTask.java

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Aug 23 13:58:02 2006
@@ -229,7 +229,9 @@
               </pomIncludes>
               <pomExcludes>
                 <pomExclude>**/child*/pom.xml</pomExclude>
+                <pomExclude>**/module*/pom.xml</pomExclude>
               </pomExcludes>
+              <postBuildHookScript>verify.bsh</postBuildHookScript>
             </configuration>
             <executions>
               <execution>

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt Wed Aug 23 13:58:02 2006
@@ -0,0 +1,2 @@
+clean
+assembly:directory

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,31 @@
+<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>including-pom-dependency</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Maven Quick Start Archetype</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-9</version>
+      <type>pom</type>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/assemble/bin.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,14 @@
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <dependencySets>
+    <dependencySet>
+      <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
+      <outputDirectory>lib</outputDirectory>
+      <unpack>false</unpack>
+    </dependencySet>
+  </dependencySets>
+</assembly>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * 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/including-pom-dependency/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh Wed Aug 23 13:58:02 2006
@@ -0,0 +1,16 @@
+import java.io.*;
+
+boolean result = true;
+
+// verify that transitive deps of the POM dep were included.
+result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-utils.jar" ).exists();
+result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/classworlds.jar" ).exists();
+result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/junit.jar" ).exists();
+
+// verify that the POM dep wasn't included.
+result = result && !new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-container-default.pom" ).exists();
+
+// verify that the jar associated with the POM dep wasn't included either.
+result = result && !new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-container-default.jar" ).exists();
+
+return result;

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt Wed Aug 23 13:58:02 2006
@@ -0,0 +1,3 @@
+clean
+package
+assembly:directory-inline

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,25 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <groupId>test</groupId>
+    <artifactId>massembly-99</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>module-a</artifactId>
+  <name>Assembly Spike Module A</name>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>jdom</groupId>
+      <artifactId>jdom</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * 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/massembly-99/module-a/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,38 @@
+package com.nf.ass;
+
+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/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-a/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,25 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <groupId>test</groupId>
+    <artifactId>massembly-99</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>module-b</artifactId>
+  <name>Assembly Spike Module B</name>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>velocity</groupId>
+      <artifactId>velocity</artifactId>
+      <version>1.4</version>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * 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/massembly-99/module-b/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,38 @@
+package com.nf.ass;
+
+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/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/module-b/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,38 @@
+<?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>massembly-99</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Assembly Spike</name>
+  <modules>
+    <module>module-a</module>
+    <module>module-b</module>
+  </modules>
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assemblies/bin.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>  
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache.snapshots</id>
+      <url>http://people.apache.org/maven-snapshot-repository/</url>
+    </pluginRepository>
+  </pluginRepositories>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,29 @@
+<assembly>
+  <id>bin</id>
+  
+  <formats>
+    <format>dir</format>
+  </formats>
+  
+  <includeBaseDirectory>false</includeBaseDirectory>
+  
+  <moduleSets>
+    <moduleSet>
+      <binaries>
+        <outputDirectory>modules</outputDirectory>
+        <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
+        <unpack>false</unpack>
+
+        <dependencySets>
+          <dependencySet>
+            <outputDirectory>lib</outputDirectory>
+            <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
+            <unpack>false</unpack>
+            <scope>runtime</scope>
+          </dependencySet>
+        </dependencySets>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+ 
+</assembly>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/src/main/assemblies/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/verify.bsh?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/verify.bsh Wed Aug 23 13:58:02 2006
@@ -0,0 +1,12 @@
+import java.io.*;
+
+boolean result = true;
+
+result = result && new File( basedir, "target/massembly-99-1.0-SNAPSHOT-bin.dir/lib/jdom.jar" ).exists();
+result = result && new File( basedir, "target/massembly-99-1.0-SNAPSHOT-bin.dir/lib/velocity.jar" ).exists();
+
+result = result && new File( basedir, "target/massembly-99-1.0-SNAPSHOT-bin.dir/modules/module-a.jar" ).exists();
+result = result && new File( basedir, "target/massembly-99-1.0-SNAPSHOT-bin.dir/modules/module-b.jar" ).exists();
+
+
+return result;

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt Wed Aug 23 13:58:02 2006
@@ -0,0 +1,3 @@
+clean
+package
+assembly:directory-inline

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,25 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <groupId>test</groupId>
+    <artifactId>using-moduleSet-implied-depSet</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>module-a</artifactId>
+  <name>Assembly Spike Module A</name>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>jdom</groupId>
+      <artifactId>jdom</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * 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/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,38 @@
+package com.nf.ass;
+
+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/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-a/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,25 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <groupId>test</groupId>
+    <artifactId>using-moduleSet-implied-depSet</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>module-b</artifactId>
+  <name>Assembly Spike Module B</name>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>velocity</groupId>
+      <artifactId>velocity</artifactId>
+      <version>1.4</version>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * 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/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,38 @@
+package com.nf.ass;
+
+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/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/module-b/src/test/java/com/nf/ass/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,37 @@
+<?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>using-moduleSet-implied-depSet</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <modules>
+    <module>module-a</module>
+    <module>module-b</module>
+  </modules>
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assemblies/bin.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>  
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache.snapshots</id>
+      <url>http://people.apache.org/maven-snapshot-repository/</url>
+    </pluginRepository>
+  </pluginRepositories>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml Wed Aug 23 13:58:02 2006
@@ -0,0 +1,21 @@
+<assembly>
+  <id>bin</id>
+  
+  <formats>
+    <format>dir</format>
+  </formats>
+  
+  <includeBaseDirectory>false</includeBaseDirectory>
+  
+  <moduleSets>
+    <moduleSet>
+      <binaries>
+        <outputDirectory>modules</outputDirectory>
+        <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
+        <unpack>false</unpack>
+        <includeDependencies>true</includeDependencies>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+ 
+</assembly>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/src/main/assemblies/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/verify.bsh?rev=434175&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/verify.bsh Wed Aug 23 13:58:02 2006
@@ -0,0 +1,12 @@
+import java.io.*;
+
+boolean result = true;
+
+result = result && new File( basedir, "target/using-moduleSet-implied-depSet-1.0-SNAPSHOT-bin.dir/modules/jdom.jar" ).exists();
+result = result && new File( basedir, "target/using-moduleSet-implied-depSet-1.0-SNAPSHOT-bin.dir/modules/velocity.jar" ).exists();
+
+result = result && new File( basedir, "target/using-moduleSet-implied-depSet-1.0-SNAPSHOT-bin.dir/modules/module-a.jar" ).exists();
+result = result && new File( basedir, "target/using-moduleSet-implied-depSet-1.0-SNAPSHOT-bin.dir/modules/module-b.jar" ).exists();
+
+
+return result;

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/AssemblyArchiver.java Wed Aug 23 13:58:02 2006
@@ -1,6 +1,7 @@
 package org.apache.maven.plugin.assembly.archive;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugins.assembly.model.Assembly;
 
@@ -12,6 +13,6 @@
     String ROLE = AssemblyArchiver.class.getName();
 
     File createArchive( Assembly assembly, String fullName, String format, AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException;
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Wed Aug 23 13:58:02 2006
@@ -8,6 +8,7 @@
 import java.util.List;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
 import org.apache.maven.plugin.assembly.filter.ComponentsXmlArchiverFileFilter;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
@@ -60,7 +61,7 @@
 
     public File createArchive( Assembly assembly, String fullName, String format,
                                AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         String filename = fullName + "." + format;
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/AssemblyArchiverPhase.java Wed Aug 23 13:58:02 2006
@@ -1,6 +1,7 @@
 package org.apache.maven.plugin.assembly.archive.phase;
 
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugins.assembly.model.Assembly;
@@ -11,6 +12,6 @@
     String ROLE = AssemblyArchiverPhase.class.getName();
 
     void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException;
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException;
 
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhase.java Wed Aug 23 13:58:02 2006
@@ -1,24 +1,15 @@
 package org.apache.maven.plugin.assembly.archive.phase;
 
-import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
-import org.apache.maven.plugin.assembly.archive.task.AddArtifactTask;
-import org.apache.maven.plugin.assembly.filter.AssemblyScopeArtifactFilter;
+import org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugin.assembly.utils.FilterUtils;
 import org.apache.maven.plugins.assembly.model.Assembly;
-import org.apache.maven.plugins.assembly.model.DependencySet;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
 /**
  * @plexus.component role="org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase"
  *                   role-hint="dependency-sets"
@@ -28,64 +19,30 @@
     implements AssemblyArchiverPhase
 {
 
-    public void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException
+    /**
+     * @plexus.requirement
+     */
+    private MavenProjectBuilder projectBuilder;
+    
+    public DependencySetAssemblyPhase()
     {
-        List dependencySets = assembly.getDependencySets();
-        boolean includeBaseDirectory = assembly.isIncludeBaseDirectory();
-
-        for ( Iterator i = dependencySets.iterator(); i.hasNext(); )
-        {
-            DependencySet dependencySet = (DependencySet) i.next();
-
-            addDependencySet( dependencySet, archiver, configSource, includeBaseDirectory );
-        }
+        // used for plexus init
     }
-
-    protected void addDependencySet( DependencySet dependencySet, Archiver archiver,
-                                     AssemblerConfigurationSource configSource, boolean includeBaseDirectory )
-        throws AssemblyFormattingException, ArchiveCreationException
+    
+    public DependencySetAssemblyPhase( MavenProjectBuilder projectBuilder )
     {
-        MavenProject project = configSource.getProject();
-
-        getLogger().info( "Processing DependencySet" );
-
-        Set dependencyArtifacts = getDependencyArtifacts( project, dependencySet );
-
-        for ( Iterator j = dependencyArtifacts.iterator(); j.hasNext(); )
-        {
-            Artifact artifact = (Artifact) j.next();
-
-            AddArtifactTask task = new AddArtifactTask( artifact );
-
-            task.setProject( project );
-            task.setOutputDirectory( dependencySet.getOutputDirectory() );
-            task.setFileNameMapping( dependencySet.getOutputFileNameMapping() );
-            task.setIncludeBaseDirectory( includeBaseDirectory );
-            task.setDirectoryMode( dependencySet.getDirectoryMode() );
-            task.setFileMode( dependencySet.getFileMode() );
-            task.setUnpack( dependencySet.isUnpack() );
-
-            task.execute( archiver, configSource );
-        }
+        this.projectBuilder = projectBuilder;
     }
 
-    protected Set getDependencyArtifacts( MavenProject project, DependencySet dependencySet )
+    public void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
-        Set dependencyArtifacts = new HashSet();
+        AddDependencySetsTask task =
+            new AddDependencySetsTask( assembly.getDependencySets(), configSource.getProject(), projectBuilder,
+                                       getLogger() );
+        
+        task.setIncludeBaseDirectory( assembly.isIncludeBaseDirectory() );
 
-        Set projectArtifacts = project.getArtifacts();
-        if ( projectArtifacts != null )
-        {
-            dependencyArtifacts.addAll( projectArtifacts );
-        }
-
-        AssemblyScopeArtifactFilter scopeFilter = new AssemblyScopeArtifactFilter( dependencySet.getScope() );
-
-        FilterUtils.filterArtifacts( dependencyArtifacts, dependencySet.getIncludes(), dependencySet.getExcludes(),
-                                     true, Collections.singletonList( scopeFilter ), getLogger() );
-
-        return dependencyArtifacts;
+        task.execute( archiver, configSource );
     }
-
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhase.java Wed Aug 23 13:58:02 2006
@@ -3,19 +3,21 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
 import org.apache.maven.plugin.assembly.archive.task.AddArtifactTask;
+import org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask;
 import org.apache.maven.plugin.assembly.archive.task.AddFileSetsTask;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.utils.FilterUtils;
 import org.apache.maven.plugin.assembly.utils.ProjectUtils;
 import org.apache.maven.plugins.assembly.model.Assembly;
+import org.apache.maven.plugins.assembly.model.DependencySet;
 import org.apache.maven.plugins.assembly.model.ModuleBinaries;
 import org.apache.maven.plugins.assembly.model.ModuleSet;
 import org.apache.maven.plugins.assembly.model.ModuleSources;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
-import org.apache.maven.project.ProjectBuildingException;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
@@ -40,19 +42,19 @@
      * @plexus.requirement
      */
     private MavenProjectBuilder projectBuilder;
-    
+
     public ModuleSetAssemblyPhase()
     {
         // needed for plexus
     }
-    
+
     public ModuleSetAssemblyPhase( MavenProjectBuilder projectBuilder )
     {
         this.projectBuilder = projectBuilder;
     }
 
     public void execute( Assembly assembly, Archiver archiver, AssemblerConfigurationSource configSource )
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         List moduleSets = assembly.getModuleSets();
 
@@ -63,16 +65,16 @@
             ModuleSet moduleSet = ( ModuleSet ) i.next();
 
             Set moduleProjects = getModuleProjects( moduleSet, configSource );
-            
+
             ModuleSources sources = moduleSet.getSources();
             ModuleBinaries binaries = moduleSet.getBinaries();
-            
+
             if ( sources == null && binaries == null )
             {
                 getLogger().warn( "Encountered ModuleSet with no sources or binaries specified. Skipping." );
                 continue;
             }
-            
+
             addModuleSourceFileSets( moduleSet.getSources(), moduleProjects, archiver, configSource,
                                      includeBaseDirectory );
 
@@ -82,84 +84,78 @@
 
     protected void addModuleBinaries( ModuleBinaries binaries, Set projects, Archiver archiver,
                                       AssemblerConfigurationSource configSource, boolean includeBaseDirectory )
-        throws ArchiveCreationException, AssemblyFormattingException
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
     {
         if ( binaries == null )
         {
             return;
         }
-        
+
         Set moduleProjects = new HashSet( projects );
-        
+
         for ( Iterator it = moduleProjects.iterator(); it.hasNext(); )
         {
             MavenProject project = ( MavenProject ) it.next();
-            
+
             if ( "pom".equals( project.getPackaging() ) )
             {
                 String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
-                
+
                 getLogger().debug( "Excluding POM-packaging module: " + projectId );
-                
+
                 it.remove();
             }
         }
 
-        Set visitedArtifacts = new HashSet();
-        
         for ( Iterator j = moduleProjects.iterator(); j.hasNext(); )
         {
             MavenProject project = ( MavenProject ) j.next();
-            
+
             getLogger().debug( "Processing binary artifact for module project: " + project.getId() );
-            
+
             Artifact artifact = project.getArtifact();
 
             addArtifact( artifact, project, archiver, configSource, binaries, includeBaseDirectory );
+        }
+
+        List depSets = binaries.getDependencySets();
+        
+        if ( ( depSets == null || depSets.isEmpty() ) && binaries.isIncludeDependencies() )
+        {
+            DependencySet impliedDependencySet = new DependencySet();
+            
+            impliedDependencySet.setOutputDirectory( binaries.getOutputDirectory() );
+            impliedDependencySet.setOutputFileNameMapping( binaries.getOutputFileNameMapping() );
+            impliedDependencySet.setFileMode( binaries.getFileMode() );
+            impliedDependencySet.setDirectoryMode( binaries.getDirectoryMode() );
+            impliedDependencySet.setExcludes( binaries.getExcludes() );
+            impliedDependencySet.setIncludes( binaries.getIncludes() );
+            impliedDependencySet.setUnpack( binaries.isUnpack() );
             
-            visitedArtifacts.add( artifact.getDependencyConflictId() );
+            depSets = Collections.singletonList( impliedDependencySet );
         }
         
-        if ( binaries.isIncludeDependencies() )
+        if ( depSets != null )
         {
             // FIXME: This will produce unpredictable results when module dependencies have a version conflict.
-            getLogger().warn( "NOTE: Currently, inclusion of module dependencies may produce unpredictable " +
-                    "results if a version conflict occurs." );
-            
+            getLogger().warn(
+                              "NOTE: Currently, inclusion of module dependencies may produce unpredictable "
+                                              + "results if a version conflict occurs." );
+
             for ( Iterator it = moduleProjects.iterator(); it.hasNext(); )
             {
                 MavenProject moduleProject = ( MavenProject ) it.next();
 
                 getLogger().debug( "Processing binary dependencies for module project: " + moduleProject.getId() );
-                
-                Set binaryDependencies = moduleProject.getArtifacts();
 
-                List includes = binaries.getIncludes();
+                AddDependencySetsTask task =
+                    new AddDependencySetsTask( depSets, moduleProject, projectBuilder, getLogger() );
                 
-                List excludes = binaries.getExcludes();
-                
-                FilterUtils.filterArtifacts( binaryDependencies, includes, excludes, true, Collections.EMPTY_LIST,
-                                             getLogger() );
+                task.setIncludeBaseDirectory( includeBaseDirectory );
+                task.setDefaultOutputDirectory( binaries.getOutputDirectory() );
+                task.setDefaultOutputFileNameMapping( binaries.getOutputFileNameMapping() );
 
-                for ( Iterator binDepIterator = binaryDependencies.iterator(); binDepIterator.hasNext(); )
-                {
-                    Artifact artifact = ( Artifact ) binDepIterator.next();
-                    MavenProject project;
-                    try
-                    {
-                        project = projectBuilder.buildFromRepository( artifact, configSource.getRemoteRepositories(),
-                                                            configSource.getLocalRepository() );
-                    }
-                    catch ( ProjectBuildingException e )
-                    {
-                        throw new ArchiveCreationException( "Error retrieving POM of module-dependency: " + artifact.getId()
-                                        + "; Reason: " + e.getMessage(), e );
-                    }
-                    
-                    addArtifact( artifact, project, archiver, configSource, binaries, includeBaseDirectory );
-                    
-                    visitedArtifacts.add( artifact.getDependencyConflictId() );
-                }
+                task.execute( archiver, configSource );
             }
         }
     }
@@ -167,7 +163,7 @@
     protected List collectExcludesFromQueuedArtifacts( Set visitedArtifacts, List binaryExcludes )
     {
         List excludes = binaryExcludes;
-        
+
         if ( excludes == null )
         {
             excludes = new ArrayList();
@@ -176,17 +172,18 @@
         {
             excludes = new ArrayList( excludes );
         }
-        
+
         for ( Iterator it = visitedArtifacts.iterator(); it.hasNext(); )
         {
             excludes.add( it.next() );
         }
-        
+
         return excludes;
     }
 
     protected void addArtifact( Artifact artifact, MavenProject project, Archiver archiver,
-                              AssemblerConfigurationSource configSource, ModuleBinaries binaries, boolean includeBaseDirectory )
+                                AssemblerConfigurationSource configSource, ModuleBinaries binaries,
+                                boolean includeBaseDirectory )
         throws ArchiveCreationException, AssemblyFormattingException
     {
         if ( artifact.getFile() == null )
@@ -223,15 +220,15 @@
             MavenProject moduleProject = ( MavenProject ) j.next();
 
             getLogger().info( "Processing sources for module project: " + moduleProject.getId() );
-            
+
             String sourcePath = sources.getDirectory();
-            
+
             File moduleBasedir = moduleProject.getBasedir();
-            
+
             if ( sourcePath != null )
             {
                 File sourceDir = new File( sourcePath );
-                
+
                 if ( !sourceDir.isAbsolute() )
                 {
                     sourcePath = new File( moduleBasedir, sourcePath ).getAbsolutePath();
@@ -243,7 +240,7 @@
                 sourcePath = moduleBasedir.getAbsolutePath();
                 sources.setDirectory( sourcePath );
             }
-            
+
             getLogger().info( "module-sources source directory is: " + sourcePath );
 
             AddFileSetsTask task = new AddFileSetsTask( Collections.singletonList( sources ) );
@@ -272,8 +269,7 @@
                             + e.getMessage(), e );
         }
 
-        FilterUtils.filterProjects( moduleProjects, moduleSet.getIncludes(), moduleSet.getExcludes(), true,
-                                    getLogger() );
+        FilterUtils.filterProjects( moduleProjects, moduleSet.getIncludes(), moduleSet.getExcludes(), true, getLogger() );
         return moduleProjects;
     }
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java Wed Aug 23 13:58:02 2006
@@ -120,14 +120,14 @@
         this.directoryMode = Integer.parseInt( rawDirectoryMode, 8 );
     }
 
-    public void setExcludes( List excludes )
+    public void setFileMode( String rawFileMode )
     {
-        this.excludes = excludes;
+        this.fileMode = Integer.parseInt( rawFileMode, 8 );
     }
 
-    public void setFileMode( String rawFileMode )
+    public void setExcludes( List excludes )
     {
-        this.fileMode = Integer.parseInt( rawFileMode, 8 );
+        this.excludes = excludes;
     }
 
     public void setIncludes( List includes )
@@ -158,6 +158,16 @@
     public void setIncludeBaseDirectory( boolean includeBaseDirectory )
     {
         this.includeBaseDirectory = includeBaseDirectory;
+    }
+
+    public void setOutputDirectory( String outputDirectory, String defaultOutputDirectory )
+    {
+        setOutputDirectory( outputDirectory == null ? defaultOutputDirectory : outputDirectory );
+    }
+
+    public void setFileNameMapping( String outputFileNameMapping, String defaultOutputFileNameMapping )
+    {
+        setFileNameMapping( outputFileNameMapping == null ? defaultOutputFileNameMapping : outputFileNameMapping );
     }
 
 }

Added: 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?rev=434175&view=auto
==============================================================================
--- 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/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Wed Aug 23 13:58:02 2006
@@ -0,0 +1,167 @@
+package org.apache.maven.plugin.assembly.archive.task;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.InvalidAssemblerConfigurationException;
+import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
+import org.apache.maven.plugin.assembly.filter.AssemblyScopeArtifactFilter;
+import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.utils.FilterUtils;
+import org.apache.maven.plugins.assembly.model.DependencySet;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.logging.Logger;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+public class AddDependencySetsTask
+    implements ArchiverTask
+{
+
+    private final List dependencySets;
+
+    private boolean includeBaseDirectory = true;
+
+    private final Logger logger;
+
+    private final MavenProject project;
+
+    private final MavenProjectBuilder projectBuilder;
+
+    private String defaultOutputDirectory;
+
+    private String defaultOutputFileNameMapping;
+
+    public AddDependencySetsTask( List dependencySets, MavenProject project, MavenProjectBuilder projectBuilder, Logger logger )
+    {
+        this.dependencySets = dependencySets;
+        this.project = project;
+        this.projectBuilder = projectBuilder;
+        this.logger = logger;
+    }
+
+    public void execute( Archiver archiver, AssemblerConfigurationSource configSource )
+        throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
+    {
+        if ( dependencySets == null || dependencySets.isEmpty() )
+        {
+            logger.debug( "No dependency sets specified." );
+            return;
+        }
+        
+        for ( Iterator i = dependencySets.iterator(); i.hasNext(); )
+        {
+            DependencySet dependencySet = ( DependencySet ) i.next();
+
+            addDependencySet( dependencySet, archiver, configSource, includeBaseDirectory );
+        }
+    }
+
+    protected void addDependencySet( DependencySet dependencySet, Archiver archiver,
+                                     AssemblerConfigurationSource configSource, boolean includeBaseDirectory )
+        throws AssemblyFormattingException, ArchiveCreationException
+    {
+        logger.info( "Processing DependencySet" );
+
+        Set dependencyArtifacts = getDependencyArtifacts( project, dependencySet );
+
+        for ( Iterator j = dependencyArtifacts.iterator(); j.hasNext(); )
+        {
+            Artifact depArtifact = ( Artifact ) j.next();
+            
+            if ( "pom".equals( depArtifact.getType() ) )
+            {
+                logger.info( "Skipping POM artifact (found among dependencies for " + project.getId() + "): " + depArtifact.getId() );
+                continue;
+            }
+
+            MavenProject depProject;
+            try
+            {
+                depProject = projectBuilder.buildFromRepository( depArtifact, configSource.getRemoteRepositories(),
+                                                    configSource.getLocalRepository() );
+            }
+            catch ( ProjectBuildingException e )
+            {
+                throw new ArchiveCreationException( "Error retrieving POM of module-dependency: " + depArtifact.getId()
+                                + "; Reason: " + e.getMessage(), e );
+            }
+            
+            AddArtifactTask task = new AddArtifactTask( depArtifact );
+            
+            task.setProject( depProject );
+            task.setOutputDirectory( dependencySet.getOutputDirectory(), defaultOutputDirectory );
+            task.setFileNameMapping( dependencySet.getOutputFileNameMapping(), defaultOutputFileNameMapping );
+            task.setIncludeBaseDirectory( includeBaseDirectory );
+            task.setDirectoryMode( dependencySet.getDirectoryMode() );
+            task.setFileMode( dependencySet.getFileMode() );
+            task.setUnpack( dependencySet.isUnpack() );
+
+            task.execute( archiver, configSource );
+        }
+    }
+
+    protected Set getDependencyArtifacts( MavenProject project, DependencySet dependencySet )
+    {
+        Set dependencyArtifacts = new HashSet();
+
+        Set projectArtifacts = project.getArtifacts();
+        if ( projectArtifacts != null )
+        {
+            dependencyArtifacts.addAll( projectArtifacts );
+        }
+
+        AssemblyScopeArtifactFilter scopeFilter = new AssemblyScopeArtifactFilter( dependencySet.getScope() );
+
+        FilterUtils.filterArtifacts( dependencyArtifacts, dependencySet.getIncludes(), dependencySet.getExcludes(),
+                                     true, Collections.singletonList( scopeFilter ), logger );
+
+        return dependencyArtifacts;
+    }
+
+    public boolean isIncludeBaseDirectory()
+    {
+        return includeBaseDirectory;
+    }
+
+    public void setIncludeBaseDirectory( boolean includeBaseDirectory )
+    {
+        this.includeBaseDirectory = includeBaseDirectory;
+    }
+
+    public List getDependencySets()
+    {
+        return dependencySets;
+    }
+
+    public Logger getLogger()
+    {
+        return logger;
+    }
+
+    public String getDefaultOutputDirectory()
+    {
+        return defaultOutputDirectory;
+    }
+
+    public void setDefaultOutputDirectory( String defaultOutputDirectory )
+    {
+        this.defaultOutputDirectory = defaultOutputDirectory;
+    }
+
+    public String getDefaultOutputFileNameMapping()
+    {
+        return defaultOutputFileNameMapping;
+    }
+
+    public void setDefaultOutputFileNameMapping( String defaultOutputFileNameMapping )
+    {
+        this.defaultOutputFileNameMapping = defaultOutputFileNameMapping;
+    }
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractAssemblyMojo.java Wed Aug 23 13:58:02 2006
@@ -34,7 +34,6 @@
 import org.apache.maven.project.MavenProjectHelper;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 
@@ -293,6 +292,11 @@
             catch ( AssemblyFormattingException e )
             {
                 throw new MojoExecutionException( "Failed to create assembly: " + e.getMessage(), e );
+            }
+            catch ( InvalidAssemblerConfigurationException e )
+            {
+                throw new MojoFailureException( assembly, "Assembly is incorrectly configured: " + assembly.getId(), "Assembly: "
+                                + assembly.getId() + " is not configured correctly: " + e.getMessage() );
             }
         }
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java?rev=434175&r1=434174&r2=434175&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/mojos/AbstractDirectoryMojo.java Wed Aug 23 13:58:02 2006
@@ -36,7 +36,7 @@
         throws MojoExecutionException, MojoFailureException
     {
         AssemblyReader reader = getAssemblyReader();
-        
+
         List assemblies;
         try
         {
@@ -50,10 +50,10 @@
         {
             throw new MojoFailureException( reader, e.getMessage(), "Mojo configuration is invalid: " + e.getMessage() );
         }
-        
+
         for ( Iterator i = assemblies.iterator(); i.hasNext(); )
         {
-            Assembly assembly = (Assembly) i.next();
+            Assembly assembly = ( Assembly ) i.next();
             createDirectory( assembly );
         }
     }
@@ -62,7 +62,7 @@
         throws MojoExecutionException, MojoFailureException
     {
         AssemblyArchiver archiver = getAssemblyArchiver();
-        
+
         String fullName = getFinalName();
 
         if ( appendAssemblyId )
@@ -85,6 +85,11 @@
         catch ( AssemblyFormattingException e )
         {
             throw new MojoExecutionException( "Error creating assembly: " + e.getMessage(), e );
+        }
+        catch ( InvalidAssemblerConfigurationException e )
+        {
+            throw new MojoFailureException( assembly, "Assembly is incorrectly configured: " + assembly.getId(), "Assembly: "
+                            + assembly.getId() + " is not configured correctly: " + e.getMessage() );
         }
     }