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/10/12 07:05:15 UTC

svn commit: r463131 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/ src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/ src/it/descriptor-refs/...

Author: jdcasey
Date: Wed Oct 11 22:05:12 2006
New Revision: 463131

URL: http://svn.apache.org/viewvc?view=rev&rev=463131
Log:
Fixing component.xml merging and inclusion into the assembly.

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/verify.bsh
Modified:
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    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/ManifestCreationFinalizer.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilter.java
    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/ManifestCreationFinalizerTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Wed Oct 11 22:05:12 2006
@@ -268,6 +268,11 @@
   </profiles>
   <dependencies>
     <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-archiver</artifactId>
+      <version>1.0-alpha-8-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>file-management</artifactId>
       <version>1.1-SNAPSHOT</version>

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml Wed Oct 11 22:05:12 2006
@@ -0,0 +1,21 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <artifactId>component-descriptors-merged</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/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java Wed Oct 11 22:05:12 2006
@@ -0,0 +1,13 @@
+package test;
+
+/**
+ * Hello world!
+ *
+ */
+public class AppChild1 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/java/test/AppChild1.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml Wed Oct 11 22:05:12 2006
@@ -0,0 +1,9 @@
+<component-set>
+  <components>
+    <component>
+      <role>child</role>
+      <role-hint>one</role-hint>
+      <implementation>test/AppChild1</implementation>
+    </component>
+  </components>
+</component-set>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child1/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml Wed Oct 11 22:05:12 2006
@@ -0,0 +1,47 @@
+<?xml version="1.0"?><project>
+  <parent>
+    <artifactId>component-descriptors-merged</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>
+        <executions>
+          <execution>
+            <id>attach-binary-assembly</id>
+            <phase>package</phase>
+            <configuration>
+              <descriptorRefs>
+                <descriptorRef>jar-with-dependencies</descriptorRef>
+              </descriptorRefs>
+            </configuration>
+            <goals>
+              <goal>attached</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml Wed Oct 11 22:05:12 2006
@@ -0,0 +1,21 @@
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>jar</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <dependencySets>
+    <dependencySet>
+      <includes>
+        <include>test:child1</include>
+      </includes>
+      <unpack>true</unpack>
+      <outputDirectory>/</outputDirectory>
+      <outputFileNameMapping>${artifactId}</outputFileNameMapping>
+      <scope>test</scope>
+      <excludes>
+        <exclude>junit:junit</exclude>
+      </excludes>
+    </dependencySet>
+  </dependencySets>
+</assembly>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java Wed Oct 11 22:05:12 2006
@@ -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/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/java/test/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml Wed Oct 11 22:05:12 2006
@@ -0,0 +1,9 @@
+<component-set>
+  <components>
+    <component>
+      <role>child</role>
+      <role-hint>two</role-hint>
+      <implementation>test/App</implementation>
+    </component>
+  </components>
+</component-set>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java Wed Oct 11 22:05:12 2006
@@ -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/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/child2/src/test/java/test/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt Wed Oct 11 22:05:12 2006
@@ -0,0 +1,2 @@
+clean
+package

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml Wed Oct 11 22:05:12 2006
@@ -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>component-descriptors-merged</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/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/verify.bsh?view=auto&rev=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/descriptor-refs/jar-with-dependencies/component-descriptors-merged/verify.bsh Wed Oct 11 22:05:12 2006
@@ -0,0 +1,59 @@
+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-jar-with-dependencies.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 component descriptor jar entry." );
+    
+    JarEntry je = jf.getEntry( "META-INF/plexus/components.xml" ); 
+
+    if ( je == null )
+    {
+        System.err.println( "component descriptor is missing." );
+        result = false;
+    }
+    else
+    {
+        InputStream instream = jf.getInputStream( je );
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        byte[] buf = new byte[16];
+        int read = -1;
+
+        while( ( read = instream.read( buf ) ) > -1 )
+        {
+            baos.write( buf, 0, read );
+        }
+
+        String test = new String( baos.toByteArray() );
+
+        result = test.indexOf( "one" ) > -1 && test.indexOf( "two" ) > -1;
+    }
+   
+}
+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/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?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- 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 Oct 11 22:05:12 2006
@@ -75,6 +75,7 @@
         try
         {
             Archiver archiver = createArchiver( format, assembly.isIncludeBaseDirectory(), configSource.getFinalName(), configSource.getTarLongFileMode(), componentsXmlFilter );
+            System.out.println( "Archiver is: " + archiver );
 
             for ( Iterator phaseIterator = assemblyPhases.iterator(); phaseIterator.hasNext(); )
             {
@@ -85,6 +86,8 @@
 
             archiver.setDestFile( destFile );
 
+            System.out.println( "Creating archive with: " + archiver );
+            
             archiver.createArchive();
         }
         catch ( ArchiverException e )
@@ -149,6 +152,8 @@
     {
         if ( archiver instanceof FinalizerEnabled )
         {
+            System.out.println( "Adding components.xml merge finalizer." );
+            
             ( ( FinalizerEnabled ) archiver ).setArchiveFinalizers( Collections.singletonList( componentsXmlFilter ) );
         }
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizer.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizer.java?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizer.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizer.java Wed Oct 11 22:05:12 2006
@@ -4,6 +4,8 @@
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.archiver.MavenArchiver;
@@ -23,6 +25,13 @@
     private final MavenProject project;
     private final MavenArchiveConfiguration archiveConfiguration;
 
+    // TODO: I'd really prefer to rewrite MavenArchiver as either a
+    // separate manifest creation utility (and to
+    // create an include pom.properties etc into another archiver), or
+    // an implementation of an archiver
+    // (the first is preferable).
+    private MavenArchiver mavenArchiver = new MavenArchiver();
+
     public ManifestCreationFinalizer( MavenProject project, MavenArchiveConfiguration archiveConfiguration )
     {
         this.project = project;
@@ -32,13 +41,6 @@
     public void finalizeArchiveCreation( Archiver archiver )
         throws ArchiverException
     {
-        // TODO: I'd really prefer to rewrite MavenArchiver as either a
-        // separate manifest creation utility (and to
-        // create an include pom.properties etc into another archiver), or
-        // an implementation of an archiver
-        // (the first is preferable).
-        MavenArchiver mavenArchiver = new MavenArchiver();
-
         if ( archiveConfiguration != null )
         {
             try
@@ -81,6 +83,25 @@
                 throw new ArchiverException( "Dependencies were not resolved: " + e.getMessage(), e );
             }
         }
+    }
+
+    public List getVirtualFiles()
+    {
+        try
+        {
+            if ( mavenArchiver.getManifest( project, archiveConfiguration.getManifest() ) != null )
+            {
+                return Collections.singletonList( "META-INF/MANIFEST.MF" );
+            }
+        }
+        catch ( ManifestException e )
+        {
+        }
+        catch ( DependencyResolutionRequiredException e )
+        {
+        }
+        
+        return null;
     }
 
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilter.java?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilter.java Wed Oct 11 22:05:12 2006
@@ -22,8 +22,10 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.codehaus.plexus.archiver.AbstractArchiveFinalizer;
@@ -49,12 +51,19 @@
     // [jdcasey] Switched visibility to protected to allow testing. Also, because this class isn't final, it should allow
     // some minimal access to the components accumulated for extending classes.
     protected Map components;
+    
+    private boolean excludeOverride = false;
 
     public static final String COMPONENTS_XML_PATH = "META-INF/plexus/components.xml";
     
     public boolean include( InputStream dataStream, String entryName )
         throws ArchiveFilterException
     {
+        if ( excludeOverride )
+        {
+            return true;
+        }
+        
         String entry = entryName;
         
         if ( entry.startsWith( "/" ) )
@@ -87,7 +96,7 @@
         throws XmlPullParserException, IOException
     {
         Xpp3Dom newDom = Xpp3DomBuilder.build( componentsReader );
-
+        
         if ( newDom != null )
         {
             newDom = newDom.getChild( "components" );
@@ -156,7 +165,12 @@
             {
                 IOUtil.close( fileWriter );
             }
+            
+            excludeOverride = true;
+            
             archiver.addFile( f, COMPONENTS_XML_PATH );
+            
+            excludeOverride = false;
         }
     }
 
@@ -171,6 +185,16 @@
         {
             throw new ArchiverException( "Error finalizing component-set for archive. Reason: " + e.getMessage(), e );
         }
+    }
+
+    public List getVirtualFiles()
+    {
+        if ( components != null && !components.isEmpty() )
+        {
+            return Collections.singletonList( COMPONENTS_XML_PATH );
+        }
+        
+        return null;
     }
 
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Wed Oct 11 22:05:12 2006
@@ -469,7 +469,7 @@
 
         TarOptions options;
 
-        public void createArchive()
+        protected void execute()
             throws ArchiverException, IOException
         {
             archiveCreated = true;

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/ManifestCreationFinalizerTest.java Wed Oct 11 22:05:12 2006
@@ -17,6 +17,7 @@
 import java.io.InputStreamReader;
 import java.io.StringWriter;
 import java.net.URL;
+import java.util.Collections;
 
 import junit.framework.TestCase;
 
@@ -66,13 +67,13 @@
         
         config.setManifestFile( manifestFile );
         
-        Archiver archiver = new JarArchiver();
+        JarArchiver archiver = new JarArchiver();
+        
+        archiver.setArchiveFinalizers( Collections.singletonList( new ManifestCreationFinalizer( project, config ) ) );
 
         File file = fileManager.createTempFile();
         
         archiver.setDestFile( file );
-        
-        new ManifestCreationFinalizer( project, config ).finalizeArchiveCreation( archiver );
         
         archiver.createArchive();
         

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java?view=diff&rev=463131&r1=463130&r2=463131
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/filter/ComponentsXmlArchiverFileFilterTest.java Wed Oct 11 22:05:12 2006
@@ -1,6 +1,7 @@
 package org.apache.maven.plugin.assembly.filter;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
@@ -11,11 +12,16 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
 import junit.framework.TestCase;
 
+import org.apache.maven.plugin.assembly.testutils.TestFileManager;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.zip.ZipArchiver;
+import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -29,6 +35,8 @@
     extends TestCase
 {
     private ComponentsXmlArchiverFileFilter filter;
+    
+    private TestFileManager fileManager = new TestFileManager( "componentsXmlArchiverFileFilter.test", ".zip" );
 
     public void setUp()
     {
@@ -39,7 +47,7 @@
         throws IOException, XmlPullParserException
     {
         Reader reader = writeComponentsXml( Collections.singletonList( new ComponentDef( "role", null,
-            "org.apache.maven.Impl" ) ) );
+                                                                                         "org.apache.maven.Impl" ) ) );
 
         filter.addComponentsXml( reader );
 
@@ -56,7 +64,7 @@
         throws IOException, XmlPullParserException
     {
         Reader reader = writeComponentsXml( Collections.singletonList( new ComponentDef( "role", "hint",
-            "org.apache.maven.Impl" ) ) );
+                                                                                         "org.apache.maven.Impl" ) ) );
 
         filter.addComponentsXml( reader );
 
@@ -118,9 +126,9 @@
         XPath hint = XPath.newInstance( "//component[position()=1]/role-hint/text()" );
         XPath implementation = XPath.newInstance( "//component[position()=1]/implementation/text()" );
 
-        assertEquals( "role", ((Text) role.selectSingleNode( doc )).getText() );
+        assertEquals( "role", ( (Text) role.selectSingleNode( doc ) ).getText() );
         assertNull( hint.selectSingleNode( doc ) );
-        assertEquals( "impl", ((Text) implementation.selectSingleNode( doc )).getText() );
+        assertEquals( "impl", ( (Text) implementation.selectSingleNode( doc ) ).getText() );
     }
 
     public void testAddToArchive_ShouldWriteComponentWithHintToFile()
@@ -145,9 +153,9 @@
         XPath hint = XPath.newInstance( "//component[position()=1]/role-hint/text()" );
         XPath implementation = XPath.newInstance( "//component[position()=1]/implementation/text()" );
 
-        assertEquals( "role", ((Text) role.selectSingleNode( doc )).getText() );
-        assertEquals( "hint", ((Text) hint.selectSingleNode( doc )).getText() );
-        assertEquals( "impl", ((Text) implementation.selectSingleNode( doc )).getText() );
+        assertEquals( "role", ( (Text) role.selectSingleNode( doc ) ).getText() );
+        assertEquals( "hint", ( (Text) hint.selectSingleNode( doc ) ).getText() );
+        assertEquals( "impl", ( (Text) implementation.selectSingleNode( doc ) ).getText() );
     }
 
     public void testAddToArchive_ShouldWriteTwoComponentToFile()
@@ -177,17 +185,75 @@
         XPath hint = XPath.newInstance( "//component[position()=1]/role-hint/text()" );
         XPath implementation = XPath.newInstance( "//component[position()=1]/implementation/text()" );
 
-        assertEquals( "role", ((Text) role.selectSingleNode( doc )).getText() );
-        assertEquals( "hint", ((Text) hint.selectSingleNode( doc )).getText() );
-        assertEquals( "impl", ((Text) implementation.selectSingleNode( doc )).getText() );
+        assertEquals( "role", ( (Text) role.selectSingleNode( doc ) ).getText() );
+        assertEquals( "hint", ( (Text) hint.selectSingleNode( doc ) ).getText() );
+        assertEquals( "impl", ( (Text) implementation.selectSingleNode( doc ) ).getText() );
 
         XPath role2 = XPath.newInstance( "//component[position()=2]/role/text()" );
         XPath hint2 = XPath.newInstance( "//component[position()=2]/role-hint/text()" );
         XPath implementation2 = XPath.newInstance( "//component[position()=2]/implementation/text()" );
 
-        assertEquals( "role", ((Text) role2.selectSingleNode( doc )).getText() );
-        assertEquals( "hint2", ((Text) hint2.selectSingleNode( doc )).getText() );
-        assertEquals( "impl", ((Text) implementation2.selectSingleNode( doc )).getText() );
+        assertEquals( "role", ( (Text) role2.selectSingleNode( doc ) ).getText() );
+        assertEquals( "hint2", ( (Text) hint2.selectSingleNode( doc ) ).getText() );
+        assertEquals( "impl", ( (Text) implementation2.selectSingleNode( doc ) ).getText() );
+
+    }
+
+    public void testAddToArchive_ShouldWriteTwoComponentToArchivedFile()
+        throws IOException, ArchiverException, JDOMException
+    {
+        filter.components = new LinkedHashMap();
+
+        Xpp3Dom dom = createComponentDom( new ComponentDef( "role", "hint", "impl" ) );
+
+        filter.components.put( "rolehint", dom );
+
+        Xpp3Dom dom2 = createComponentDom( new ComponentDef( "role", "hint2", "impl" ) );
+
+        filter.components.put( "rolehint2", dom2 );
+
+        ZipArchiver archiver = new ZipArchiver();
+        
+        File archiveFile = fileManager.createTempFile();
+        
+        archiver.setDestFile( archiveFile );
+        
+        File descriptorFile = fileManager.createTempFile();
+        
+        archiver.setArchiveFinalizers( Collections.singletonList( filter ) );
+        
+        archiver.createArchive();
+        
+        ZipFile zf = new ZipFile( archiveFile );
+        
+        ZipEntry ze = zf.getEntry( ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH );
+        
+        assertNotNull( ze );
+        
+        FileOutputStream fileStream = new FileOutputStream( descriptorFile );
+        
+        IOUtil.copy( zf.getInputStream( ze ), fileStream );
+        IOUtil.close( fileStream );
+
+        SAXBuilder builder = new SAXBuilder( false );
+
+        Document doc = builder.build( descriptorFile );
+
+        XPath role = XPath.newInstance( "//component[position()=1]/role/text()" );
+        XPath hint = XPath.newInstance( "//component[position()=1]/role-hint/text()" );
+        XPath implementation = XPath.newInstance( "//component[position()=1]/implementation/text()" );
+
+        assertEquals( "role", ( (Text) role.selectSingleNode( doc ) ).getText() );
+        assertEquals( "hint", ( (Text) hint.selectSingleNode( doc ) ).getText() );
+        assertEquals( "impl", ( (Text) implementation.selectSingleNode( doc ) ).getText() );
+
+        XPath role2 = XPath.newInstance( "//component[position()=2]/role/text()" );
+        XPath hint2 = XPath.newInstance( "//component[position()=2]/role-hint/text()" );
+        XPath implementation2 = XPath.newInstance( "//component[position()=2]/implementation/text()" );
+
+        assertEquals( "role", ( (Text) role2.selectSingleNode( doc ) ).getText() );
+        assertEquals( "hint2", ( (Text) hint2.selectSingleNode( doc ) ).getText() );
+        assertEquals( "impl", ( (Text) implementation2.selectSingleNode( doc ) ).getText() );
 
     }
 
@@ -401,20 +467,20 @@
         {
             throw new UnsupportedOperationException( "not supported" );
         }
-        
+
         public void setForced( boolean forced )
         {
-            throw new UnsupportedOperationException( "not supported" );            
+            throw new UnsupportedOperationException( "not supported" );
         }
 
         public boolean isForced()
         {
-            throw new UnsupportedOperationException( "not supported" );            
+            throw new UnsupportedOperationException( "not supported" );
         }
 
         public boolean isSupportingForced()
         {
-            throw new UnsupportedOperationException( "not supported" );            
+            throw new UnsupportedOperationException( "not supported" );
         }
     }