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();