You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/01/19 20:48:40 UTC

svn commit: r370584 - in /maven/plugins/branches/maven-assembly-plugin-2.0.x: pom.xml src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java

Author: carlos
Date: Thu Jan 19 11:48:39 2006
New Revision: 370584

URL: http://svn.apache.org/viewcvs?rev=370584&view=rev
Log:
Applied patches from 2.1
PR: MASSEMBLY-1

Modified:
    maven/plugins/branches/maven-assembly-plugin-2.0.x/pom.xml
    maven/plugins/branches/maven-assembly-plugin-2.0.x/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java

Modified: maven/plugins/branches/maven-assembly-plugin-2.0.x/pom.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/branches/maven-assembly-plugin-2.0.x/pom.xml?rev=370584&r1=370583&r2=370584&view=diff
==============================================================================
--- maven/plugins/branches/maven-assembly-plugin-2.0.x/pom.xml (original)
+++ maven/plugins/branches/maven-assembly-plugin-2.0.x/pom.xml Thu Jan 19 11:48:39 2006
@@ -8,7 +8,7 @@
   <artifactId>maven-assembly-plugin</artifactId>
   <packaging>maven-plugin</packaging>
   <name>Maven Assembly Plugin</name>
-  <version>2.0</version>
+  <version>2.0.1-SNAPSHOT</version>
   <developers>
     <developer>
       <id>vsiveton</id>
@@ -45,6 +45,11 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-archiver</artifactId>
+      <version>2.0</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>

Modified: maven/plugins/branches/maven-assembly-plugin-2.0.x/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/branches/maven-assembly-plugin-2.0.x/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java?rev=370584&r1=370583&r2=370584&view=diff
==============================================================================
--- maven/plugins/branches/maven-assembly-plugin-2.0.x/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java (original)
+++ maven/plugins/branches/maven-assembly-plugin-2.0.x/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java Thu Jan 19 11:48:39 2006
@@ -16,7 +16,25 @@
  * limitations under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.maven.archiver.MavenArchiveConfiguration;
+import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
@@ -32,6 +50,9 @@
 import org.apache.maven.project.MavenProjectHelper;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.jar.JarArchiver;
+import org.codehaus.plexus.archiver.jar.Manifest;
+import org.codehaus.plexus.archiver.jar.ManifestException;
 import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
 import org.codehaus.plexus.archiver.tar.TarArchiver;
 import org.codehaus.plexus.util.DirectoryScanner;
@@ -40,21 +61,6 @@
 import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 /**
  * Assemble an application bundle or distribution from an assembly descriptor.
  *
@@ -134,6 +140,11 @@
     private boolean includeSite;
 
     /**
+     * @parameter
+     */
+    private MavenArchiveConfiguration archive;
+
+    /**
      * Create the binary distribution.
      *
      * @throws MojoExecutionException
@@ -187,6 +198,34 @@
         processFileSets( archiver, assembly.getFileSets(), assembly.isIncludeBaseDirectory() );
 
         destFile = new File( outputDirectory, filename );
+
+        if ( archiver instanceof JarArchiver )
+        {
+            // 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 ( archive != null && archive.getManifest() != null )
+            {
+                try
+                {
+                    Manifest manifest = mavenArchiver.getManifest( project, archive.getManifest() );
+
+                    JarArchiver jarArchiver = (JarArchiver) archiver;
+                    jarArchiver.addConfiguredManifest( manifest );
+                }
+                catch ( ManifestException e )
+                {
+                    throw new MojoExecutionException( "Error creating manifest: " + e.getMessage(), e );
+                }
+                catch ( DependencyResolutionRequiredException e )
+                {
+                    throw new MojoExecutionException( "Dependencies were not resolved: " + e.getMessage(), e );
+                }
+            }
+        }
+
         archiver.setDestFile( destFile );
         archiver.createArchive();