Author: tchemit Date: Thu Oct 31 07:14:51 2013 New Revision: 1537390 URL: http://svn.apache.org/r1537390 Log: MRAR-28 - Add Support for Classifier Submitted by: Marvin Addison
Modified: maven/plugins/trunk/maven-rar-plugin/src/main/java/org/apache/maven/plugin/rar/RarMojo.java maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java Modified: maven/plugins/trunk/maven-rar-plugin/src/main/java/org/apache/maven/plugin/rar/RarMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-rar-plugin/src/main/java/org/apache/maven/plugin/rar/RarMojo.java?rev=1537390&r1=1537389&r2=1537390&view=diff ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/main/java/org/apache/maven/plugin/rar/RarMojo.java (original) +++ maven/plugins/trunk/maven-rar-plugin/src/main/java/org/apache/maven/plugin/rar/RarMojo.java Thu Oct 31 07:14:51 2013 @@ -98,7 +98,7 @@ public class RarMojo * The directory for the generated RAR. */ @Parameter( defaultValue = "${project.build.directory}", required = true ) - private String outputDirectory; + private File outputDirectory; /** * The name of the RAR file to generate. @@ -113,6 +113,13 @@ public class RarMojo private MavenProject project; /** + * Classifier to add to the artifact generated. If given, the artifact will be an attachment instead. + * + * @parameter + */ + private String classifier; + + /** * The Jar archiver. */ @Component( role = Archiver.class, hint = "jar" ) @@ -293,6 +300,7 @@ public class RarMojo getLog().debug( "workDirectory[" + workDirectory + "]" ); getLog().debug( "outputDirectory[" + outputDirectory + "]" ); getLog().debug( "finalName[" + finalName + "]" ); + getLog().debug( "classifier[" + classifier + "]" ); // Check if jar file is there and if requested, copy it try @@ -419,7 +427,7 @@ public class RarMojo try { - File rarFile = new File( outputDirectory, finalName + ".rar" ); + File rarFile = getRarFile(outputDirectory, finalName, classifier); MavenArchiver archiver = new MavenArchiver(); archiver.setArchiver( jarArchiver ); archiver.setOutputFile( rarFile ); @@ -447,6 +455,20 @@ public class RarMojo return buildDir; } + protected static File getRarFile( File basedir, String finalName, String classifier ) + { + if ( classifier == null ) + { + classifier = ""; + } + else if ( classifier.trim().length() > 0 && !classifier.startsWith( "-" ) ) + { + classifier = "-" + classifier; + } + + return new File( basedir, finalName + classifier + ".rar" ); + } + private void includeCustomManifestFile() throws IOException { Modified: maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java?rev=1537390&r1=1537389&r2=1537390&view=diff ============================================================================== --- maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java (original) +++ maven/plugins/trunk/maven-rar-plugin/src/test/java/org/apache/maven/plugin/rar/RarMojoTest.java Thu Oct 31 07:14:51 2013 @@ -19,20 +19,19 @@ package org.apache.maven.plugin.rar; * under the License. */ -import org.apache.maven.plugin.testing.AbstractMojoTestCase; -import org.codehaus.plexus.archiver.zip.ZipEntry; -import org.codehaus.plexus.archiver.zip.ZipFile; -import org.codehaus.plexus.util.FileUtils; - import java.io.File; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; +import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.codehaus.plexus.archiver.zip.ZipEntry; +import org.codehaus.plexus.archiver.zip.ZipFile; +import org.codehaus.plexus.util.FileUtils; + /** * @author <a href="mailto:arami...@apache.org">Allan Ramirez</a> */ -@SuppressWarnings("ConstantConditions") public class RarMojoTest extends AbstractMojoTestCase { @@ -59,7 +58,7 @@ public class RarMojoTest String workDir = (String) getVariableValueFromObject( mojo, "workDirectory" ); - String outputDir = (String) getVariableValueFromObject( mojo, "outputDirectory" ); + File outputDir = ( File ) getVariableValueFromObject( mojo, "outputDirectory" ); Boolean includeJar = (Boolean) getVariableValueFromObject( mojo, "includeJar" ); @@ -68,7 +67,7 @@ public class RarMojoTest //include the project jar to the rar File projectJar = new File( getBasedir(), "src/test/resources/unit/basic-rar-test/target/test-rar.jar" ); - FileUtils.copyFileToDirectory( projectJar, new File( outputDir ) ); + FileUtils.copyFileToDirectory( projectJar, outputDir ); mojo.execute(); @@ -105,7 +104,7 @@ public class RarMojoTest assertEquals( 0, expectedFiles.size() ); //check the generated rar file - File rarFile = new File( outputDir, finalName + ".rar" ); + File rarFile = new File( outputDir.getPath(), finalName + ".rar" ); assertTrue( rarFile.exists() ); @@ -135,17 +134,18 @@ public class RarMojoTest public void testBasicRarWithDescriptor() throws Exception { - File testPom = new File( getBasedir(), "target/test-classes/unit/basic-rar-with-descriptor/plugin-config.xml" ); + File testPom = new File( getBasedir(), + "target/test-classes/unit/basic-rar-with-descriptor/plugin-config.xml" ); - RarMojo mojo = (RarMojo) lookupMojo( "rar", testPom ); + RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); assertNotNull( mojo ); - String finalName = (String) getVariableValueFromObject( mojo, "finalName" ); + String finalName = ( String ) getVariableValueFromObject( mojo, "finalName" ); - String workDir = (String) getVariableValueFromObject( mojo, "workDirectory" ); + String workDir = ( String ) getVariableValueFromObject( mojo, "workDirectory" ); - String outputDir = (String) getVariableValueFromObject( mojo, "outputDirectory" ); + File outputDir = ( File ) getVariableValueFromObject( mojo, "outputDirectory" ); mojo.execute(); @@ -175,7 +175,7 @@ public class RarMojoTest assertEquals( 0, getSizeOfExpectedFiles( fileList, expectedFiles ) ); //check the generated rar file - File rarFile = new File( outputDir, finalName + ".rar" ); + File rarFile = new File( outputDir.getPath(), finalName + ".rar" ); assertTrue( rarFile.exists() ); @@ -205,17 +205,18 @@ public class RarMojoTest public void testBasicRarWithManifest() throws Exception { - File testPom = new File( getBasedir(), "target/test-classes/unit/basic-rar-with-manifest/plugin-config.xml" ); + File testPom = new File( getBasedir(), + "target/test-classes/unit/basic-rar-with-manifest/plugin-config.xml" ); - RarMojo mojo = (RarMojo) lookupMojo( "rar", testPom ); + RarMojo mojo = ( RarMojo ) lookupMojo( "rar", testPom ); assertNotNull( mojo ); - String finalName = (String) getVariableValueFromObject( mojo, "finalName" ); + String finalName = ( String ) getVariableValueFromObject( mojo, "finalName" ); - String workDir = (String) getVariableValueFromObject( mojo, "workDirectory" ); + String workDir = ( String ) getVariableValueFromObject( mojo, "workDirectory" ); - String outputDir = (String) getVariableValueFromObject( mojo, "outputDirectory" ); + File outputDir = ( File ) getVariableValueFromObject( mojo, "outputDirectory" ); mojo.execute(); @@ -247,7 +248,7 @@ public class RarMojoTest assertEquals( 0, getSizeOfExpectedFiles( fileList, expectedFiles ) ); //check the generated rar file - File rarFile = new File( outputDir, finalName + ".rar" ); + File rarFile = new File( outputDir.getPath(), finalName + ".rar" ); assertTrue( rarFile.exists() );