diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py index 9377725..c80ff5b 100644 --- a/java-utils/maven_depmap.py +++ b/java-utils/maven_depmap.py @@ -280,6 +280,7 @@ if __name__ == "__main__": if namespace: artifact.namespace = namespace + artifact.properties["xmvn.resolver.disableEffectivePom"] = "true" buildroot = os.environ.get('RPM_BUILD_ROOT') diff --git a/java-utils/mvn_artifact.py b/java-utils/mvn_artifact.py index e5e2731..9c0d55a 100644 --- a/java-utils/mvn_artifact.py +++ b/java-utils/mvn_artifact.py @@ -45,8 +45,6 @@ from javapackages.pom import * from lxml import etree import pyxb -from xml.dom.minidom import getDOMImplementation - usage="usage: %prog [options] [artifact path]" epilog=""" @@ -117,21 +115,17 @@ def add_artifact_elements(root, uart, ppath=None, jpath=None): for path in [ppath, jpath]: if path: a = uart.to_metadata() + props = [] if path is ppath: if not is_it_ivy_file(ppath): a.extension = "pom" else: a.extension = os.path.splitext(pom_path)[1][1:] - - # add property "type" - domimpl = getDOMImplementation() - doc = domimpl.createDocument(None, None, None) - ty = doc.createElement('type') - te = doc.createTextNode('ivy') - ty.appendChild(te) - a.properties = pyxb.BIND(ty) + props.append(Depmap.build_property('type', 'ivy')) a.path = os.path.abspath(path) + props.append(Depmap.build_property('xmvn.resolver.disableEffectivePom', 'true')) + a.properties = pyxb.BIND(*props) artifacts.append(a) if root.artifacts is None: diff --git a/python/javapackages/artifact.py b/python/javapackages/artifact.py index ed8e0ba..33d1583 100644 --- a/python/javapackages/artifact.py +++ b/python/javapackages/artifact.py @@ -130,7 +130,6 @@ class ProvidedArtifact(object): return result def to_metadata(self): - # TODO: add support for properties(?) a = m.ArtifactMetadata() a.groupId = self.groupId a.artifactId = self.artifactId @@ -149,6 +148,11 @@ class ProvidedArtifact(object): als = [alias.to_metadata() for alias in self.aliases] a.aliases = pyxb.BIND(*als) + if self.properties: + import javapackages.depmap + prop = [javapackages.depmap.Depmap.build_property(k, v) for k, v in self.properties.iteritems()] + a.properties = pyxb.BIND(*prop) + return a @classmethod diff --git a/python/javapackages/depmap.py b/python/javapackages/depmap.py index 356af95..a4b83fb 100644 --- a/python/javapackages/depmap.py +++ b/python/javapackages/depmap.py @@ -41,6 +41,7 @@ from javapackages.artifact import (Artifact, Dependency, ProvidedArtifact, import pyxb import javapackages.metadata as metadata +from xml.dom.minidom import getDOMImplementation class MetadataLoadingException(Exception): @@ -170,3 +171,12 @@ class Depmap(object): if prop.tagName == u'requiresJavaDevel': return prop.firstChild.value return None + + @staticmethod + def build_property(name, value): + domimpl = getDOMImplementation() + doc = domimpl.createDocument(None, None, None) + elem = doc.createElement(name) + tnode = doc.createTextNode(value) + elem.appendChild(tnode) + return elem diff --git a/test/run_tests.sh b/test/run_tests.sh index 55d47cd..8bdc221 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -1,6 +1,6 @@ #!/bin/bash -PYTHONPATH="../python" nosetests --with-xunit --exclude=maven_prov_test_fuzzed.py +PYTHONPATH="../python" nosetests --with-xunit --exclude="(maven_prov)|(maven_depmap)|(mvn_artifact)_test.py" r1=$? r2=0