Author: aadamchik Date: Sun Dec 24 13:33:02 2006 New Revision: 490073 URL: http://svn.apache.org/viewvc?view=rev&rev=490073 Log: CAY-719:Finalize Maven assembly scripts for the upcoming 3.0 milestone releases (implemented main artifact file packaging)
Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/AbstractAggregatorMojo.java incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/BinAggregatorMojo.java incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/JavadocsAggregatorMojo.java incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/SourcesAggregatorMojo.java Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/AbstractAggregatorMojo.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/AbstractAggregatorMojo.java?view=diff&rev=490073&r1=490072&r2=490073 ============================================================================== --- incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/AbstractAggregatorMojo.java (original) +++ incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/AbstractAggregatorMojo.java Sun Dec 24 13:33:02 2006 @@ -107,7 +107,7 @@ */ protected MavenProject project; - protected abstract File getOutputDirectory(); + protected abstract File getUnpackDirectory(); /** * Preprocesses the list of ArtifactItems. This method defaults the outputDirectory if @@ -125,7 +125,7 @@ this.getLog().info("Configured Artifact: " + artifactItem.toString()); if (artifactItem.getOutputDirectory() == null) { - artifactItem.setOutputDirectory(getOutputDirectory()); + artifactItem.setOutputDirectory(getUnpackDirectory()); } artifactItem.getOutputDirectory().mkdirs(); Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/BinAggregatorMojo.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/BinAggregatorMojo.java?view=diff&rev=490073&r1=490072&r2=490073 ============================================================================== --- incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/BinAggregatorMojo.java (original) +++ incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/BinAggregatorMojo.java Sun Dec 24 13:33:02 2006 @@ -1,10 +1,14 @@ package org.apache.cayenne.maven.plugin.aggregator; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import org.apache.maven.plugin.MojoExecutionException; +import org.codehaus.plexus.archiver.Archiver; +import org.codehaus.plexus.archiver.ArchiverException; +import org.codehaus.plexus.archiver.manager.NoSuchArchiverException; /** * A goal to build aggregated jar artifacts from multiple "standard" artifacts. @@ -14,17 +18,33 @@ */ public class BinAggregatorMojo extends AbstractAggregatorMojo { + static final String[] DEFAULT_EXCLUDES = new String[] { + "META-INF/maven/**" + }; + + static final String[] DEFAULT_INCLUDES = new String[] { + "**/**" + }; + /** * Default location used for mojo unless overridden in ArtifactItem * - * @parameter expression="${outputDirectory}" + * @parameter expression="${unpackDirectory}" * default-value="${project.build.directory}/aggregate/unpack-bin" * @required */ - private File outputDirectory; + private File unpackDirectory; - protected File getOutputDirectory() { - return outputDirectory; + /** + * Name of the generated JAR. + * + * @parameter expression="${project.build.finalName}" + * @required + */ + private String finalName; + + protected File getUnpackDirectory() { + return unpackDirectory; } public void execute() throws MojoExecutionException { @@ -34,5 +54,39 @@ ArtifactItem artifactItem = (ArtifactItem) iter.next(); unpackArtifact(artifactItem); } + + packArtifact(); + } + + private void packArtifact() throws MojoExecutionException { + // pack... + File outputDirectory = new File(project.getBuild().getDirectory()); + File destinationFile = new File(outputDirectory, finalName + ".jar"); + + Archiver archiver; + try { + archiver = archiverManager.getArchiver("jar"); + } + catch (NoSuchArchiverException e) { + throw new MojoExecutionException("Unknown archiver type", e); + } + + try { + archiver.setDestFile(destinationFile); + archiver.addDirectory( + getUnpackDirectory(), + DEFAULT_INCLUDES, + DEFAULT_EXCLUDES); + archiver.createArchive(); + } + catch (ArchiverException e) { + throw new MojoExecutionException("Error creating archive", e); + } + catch (IOException e) { + throw new MojoExecutionException("IO Error creating archive", e); + } + + // make it a project artifact + project.getArtifact().setFile(destinationFile); } -} +} \ No newline at end of file Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/JavadocsAggregatorMojo.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/JavadocsAggregatorMojo.java?view=diff&rev=490073&r1=490072&r2=490073 ============================================================================== --- incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/JavadocsAggregatorMojo.java (original) +++ incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/JavadocsAggregatorMojo.java Sun Dec 24 13:33:02 2006 @@ -34,14 +34,14 @@ /** * Default location used for mojo unless overridden in ArtifactItem * - * @parameter expression="${outputDirectory}" + * @parameter expression="${unpackDirectory}" * default-value="${project.build.directory}/aggregate/unpack-sources" * @required */ - private File outputDirectory; + private File unpackDirectory; - protected File getOutputDirectory() { - return outputDirectory; + protected File getUnpackDirectory() { + return unpackDirectory; } public void execute() throws MojoExecutionException, MojoFailureException { Modified: incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/SourcesAggregatorMojo.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/SourcesAggregatorMojo.java?view=diff&rev=490073&r1=490072&r2=490073 ============================================================================== --- incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/SourcesAggregatorMojo.java (original) +++ incubator/cayenne/main/trunk/other/build-maven-plugin/src/main/java/org/apache/cayenne/maven/plugin/aggregator/SourcesAggregatorMojo.java Sun Dec 24 13:33:02 2006 @@ -34,14 +34,14 @@ /** * Default location used for mojo unless overridden in ArtifactItem * - * @parameter expression="${outputDirectory}" + * @parameter expression="${unpackDirectory}" * default-value="${project.build.directory}/aggregate/unpack-sources" * @required */ - private File outputDirectory; + private File unpackDirectory; - protected File getOutputDirectory() { - return outputDirectory; + protected File getUnpackDirectory() { + return unpackDirectory; } public void execute() throws MojoExecutionException, MojoFailureException {