commit a2d8aa66edfbe8b1bc10d4c5425dcd7e1b6af794
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon May 19 16:47:09 2014 +0200
[maven_dependency] Improve namespace handling
python/javapackages/maven_dependency.py | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
---
diff --git a/python/javapackages/maven_dependency.py
b/python/javapackages/maven_dependency.py
index a330f00..2bc7905 100644
--- a/python/javapackages/maven_dependency.py
+++ b/python/javapackages/maven_dependency.py
@@ -42,6 +42,28 @@ class MavenDependency(object):
self.classifier = classifier
self.exclusions = exclusions or set()
+ # TODO: these methods should be shared with with pom.py
+ # maybe create something like pom_commons.py,
+ # or move MavenDependency to pom.py?
+ @classmethod
+ def __findall(cls, xpath, xmlnode):
+ ret = xmlnode.xpath(xpath,
namespaces=dict(pom='http://maven.apache.org/POM/4.0.0'))
+ # perhaps there is no namespace?
+ if len(ret) == 0:
+ ret = xmlnode.xpath(xpath.replace('pom:',''))
+ return ret
+
+ @classmethod
+ def __find(cls, xpath, xmlnode):
+ ret = cls.__findall(xpath, xmlnode)
+ if len(ret) > 0:
+ ret = ret[0]
+ else:
+ ret = None
+
+ return ret
+
+
def __eq__(self, other):
if type(other) is type(self):
return self.__dict__ == other.__dict__
@@ -78,7 +100,8 @@ class MavenDependency(object):
'version': ''}
for key in parts:
- node = xmlnode.find("./{*}" + key, namespaces=dict(pom=namespace))
+ #node = xmlnode.find("./{*}" + key,
namespaces=dict(pom=namespace))
+ node = MavenDependency.__find("./" + key, xmlnode)
if node is not None and node.text is not None:
parts[key] = node.text.strip()