commit a749fe89a16d46cd926d82e848451397d94bbcc9
Author: Michael Simacek <msimacek(a)redhat.com>
Date: Wed May 13 14:34:49 2015 +0200
Deal with classifiers in pom_editor
java-utils/pom_editor.py | 2 +-
test/data/pom_editor/classifier.xml | 33 +++++++++++++++++++++
test/data/pom_editor/want/keep_classifier.xml | 33 +++++++++++++++++++++
test/data/pom_editor/want/minimal_pom_add_cls.xml | 22 ++++++++++++++
test/pom_editor_artifact_test.py | 14 +++++++++
5 files changed, 103 insertions(+), 1 deletions(-)
---
diff --git a/java-utils/pom_editor.py b/java-utils/pom_editor.py
index 3f8db58..0e7bdcd 100644
--- a/java-utils/pom_editor.py
+++ b/java-utils/pom_editor.py
@@ -392,7 +392,7 @@ class Pom(XmlFile):
version='any',
groupId='org.apache.maven.plugins')
else:
- pom_dependency_spec = 'groupId:artifactId:version:scope'
+ pom_dependency_spec = 'groupId:artifactId:version:scope:classifier'
ArtifactClass = MetaArtifact(pom_dependency_spec,
namespace=cls.NSMAP['pom'],
version='any')
diff --git a/test/data/pom_editor/classifier.xml b/test/data/pom_editor/classifier.xml
new file mode 100644
index 0000000..3e8c6fd
--- /dev/null
+++ b/test/data/pom_editor/classifier.xml
@@ -0,0 +1,33 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>17</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.6</version>
+ <name>Commons Lang</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ <classifier>foo</classifier>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-ioX</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/test/data/pom_editor/want/keep_classifier.xml
b/test/data/pom_editor/want/keep_classifier.xml
new file mode 100644
index 0000000..5d29b50
--- /dev/null
+++ b/test/data/pom_editor/want/keep_classifier.xml
@@ -0,0 +1,33 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>17</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.6</version>
+ <name>Commons Lang</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.commons.commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ <classifier>foo</classifier>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-ioX</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/test/data/pom_editor/want/minimal_pom_add_cls.xml
b/test/data/pom_editor/want/minimal_pom_add_cls.xml
new file mode 100644
index 0000000..a5c6234
--- /dev/null
+++ b/test/data/pom_editor/want/minimal_pom_add_cls.xml
@@ -0,0 +1,22 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-parent</artifactId>
+ <version>any</version>
+ <classifier>cls</classifier>
+ </dependency>
+ </dependencies>
+
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>17</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.6</version>
+ <name>Commons Lang</name>
+
+</project>
diff --git a/test/pom_editor_artifact_test.py b/test/pom_editor_artifact_test.py
index a85db81..5bf9d8a 100644
--- a/test/pom_editor_artifact_test.py
+++ b/test/pom_editor_artifact_test.py
@@ -44,6 +44,13 @@ class TestPomArtifact(WorkdirTestCase):
self.assertEqual(0, return_value, stderr)
self.assertEqual('', report, report)
+ def test_classifier(self):
+ return_value, stderr, report = exec_pom_macro_simple(\
+ "%pom_add_dep org.apache.ant:ant-parent:::cls",
+ 'minimal_pom.xml', 'minimal_pom_add_cls.xml')
+ self.assertEqual(0, return_value, stderr)
+ self.assertEqual('', report, report)
+
class TestPomChange(WorkdirTestCase):
def test_change_simple(self):
return_value, stderr, report = exec_pom_macro_simple(\
@@ -80,5 +87,12 @@ class TestPomChange(WorkdirTestCase):
self.assertEqual(0, return_value, stderr)
self.assertEqual('', report, report)
+ def test_keep_classifier(self):
+ return_value, stderr, report = exec_pom_macro_simple(\
+ "%pom_change_dep commons-io org.apache.commons.commons-io:",
+ 'classifier.xml', 'keep_classifier.xml')
+ self.assertEqual(0, return_value, stderr)
+ self.assertEqual('', report, report)
+
if __name__ == '__main__':
unittest.main()