From 5a9a2cc550597fe045f72127cd208d4971e1c0d7 Mon Sep 17 00:00:00 2001 From: tnaroska Date: Thu, 7 Mar 2013 02:08:41 +0100 Subject: [PATCH] [KARAF-2224] generate-features-xml Mojo ignores classifier of maven dependencies --- .../tooling/features/GenerateFeaturesXmlMojo.java | 17 ++++++---- .../features/GenerateFeaturesXmlMojoTest.java | 34 +++++++++++++++++++- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo.java b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo.java index 1891884..dd53ddb 100644 --- a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo.java +++ b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo.java @@ -531,10 +531,17 @@ public class GenerateFeaturesXmlMojo extends MojoSupport { } public static String toString(Artifact artifact) { + return toString(artifact, artifact.getVersion()); + } + + private static String toString(Artifact artifact, String version) { + if (artifact.hasClassifier()) { + return String.format("%s/%s/%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), version, artifact.getType(), artifact.getClassifier()); + } if (artifact.getType().equals("jar")) { - return String.format("%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()); + return String.format("%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), version); } - return String.format("%s/%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType()); + return String.format("%s/%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), version, artifact.getType()); } /*package*/ class Feature { @@ -596,11 +603,7 @@ public class GenerateFeaturesXmlMojo extends MojoSupport { out.println(" " + String.format("%s", next.getArtifactId())); } else { - if (next.getType().equals("jar")) { - out.println(String.format(" mvn:%s/%s/%s", next.getGroupId(), next.getArtifactId(), next.getBaseVersion())); - } else { - out.println(String.format(" mvn:%s/%s/%s/%s", next.getGroupId(), next.getArtifactId(), next.getBaseVersion(), next.getType())); - } + out.println(String.format(" mvn:%s", GenerateFeaturesXmlMojo.toString(next, next.getBaseVersion()))); } } diff --git a/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojoTest.java b/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojoTest.java index 21846d5..86bdab7 100644 --- a/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojoTest.java +++ b/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojoTest.java @@ -50,10 +50,41 @@ public class GenerateFeaturesXmlMojoTest extends TestCase { expect(artifact.getArtifactId()).andReturn("test-artifact"); expect(artifact.getVersion()).andReturn("1.2.3"); expect(artifact.getType()).andReturn("jar"); + expect(artifact.hasClassifier()).andReturn(false); replay(artifact); assertEquals("org.apache.karaf.test/test-artifact/1.2.3", GenerateFeaturesXmlMojo.toString(artifact)); + } + + public void testToStringWithClassifier() throws Exception { + Artifact artifact = EasyMock.createMock(Artifact.class); + + expect(artifact.getGroupId()).andReturn("org.apache.karaf.test"); + expect(artifact.getArtifactId()).andReturn("test-artifact"); + expect(artifact.getVersion()).andReturn("1.2.3"); + expect(artifact.getType()).andReturn("jar"); + expect(artifact.hasClassifier()).andReturn(true); + expect(artifact.getClassifier()).andReturn("linux"); + + replay(artifact); + + assertEquals("org.apache.karaf.test/test-artifact/1.2.3/jar/linux", GenerateFeaturesXmlMojo.toString(artifact)); + } + + public void testToStringWithClassifierAndType() throws Exception { + Artifact artifact = EasyMock.createMock(Artifact.class); + + expect(artifact.getGroupId()).andReturn("org.apache.karaf.test"); + expect(artifact.getArtifactId()).andReturn("test-artifact"); + expect(artifact.getVersion()).andReturn("1.2.3"); + expect(artifact.getType()).andReturn("zip").times(2); + expect(artifact.hasClassifier()).andReturn(true); + expect(artifact.getClassifier()).andReturn("linux"); + + replay(artifact); + + assertEquals("org.apache.karaf.test/test-artifact/1.2.3/zip/linux", GenerateFeaturesXmlMojo.toString(artifact)); } public void testInstallMode() throws Exception { @@ -65,7 +96,8 @@ public class GenerateFeaturesXmlMojoTest extends TestCase { expect(artifact.getBaseVersion()).andReturn("1.2.3").anyTimes(); expect(artifact.getVersion()).andReturn("1.2.3").anyTimes(); expect(artifact.getType()).andReturn("jar").anyTimes(); - + expect(artifact.hasClassifier()).andReturn(false).anyTimes(); + replay(artifact); mojo.installMode="auto"; -- 1.7.10.2 (Apple Git-33)