commit a2d8aa66edfbe8b1bc10d4c5425dcd7e1b6af794 Author: Michal Srb msrb@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()
java-sig-commits@lists.fedoraproject.org