diff --git a/add-support-for-xmvn.resolver.disableEffectivePom-property.patch b/add-support-for-xmvn.resolver.disableEffectivePom-property.patch new file mode 100644 index 0000000..63a6561 --- /dev/null +++ b/add-support-for-xmvn.resolver.disableEffectivePom-property.patch @@ -0,0 +1,112 @@ +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 + diff --git a/javapackages-tools.spec b/javapackages-tools.spec index 9ccd59b..2db0104 100644 --- a/javapackages-tools.spec +++ b/javapackages-tools.spec @@ -1,6 +1,6 @@ Name: javapackages-tools Version: 4.0.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Macros and scripts for Java packaging support @@ -14,7 +14,7 @@ Patch2: 0004-maven.req-Generate-versioned-deps-on-subpackages.patch Patch3: 0006-maven.req-Fix-self-dependency-detection-code.patch Patch4: 0008-Fix-javapackages-metadata.xml.patch Patch5: 0010-maven.req-When-generating-req-from-POM-file-do-not-b.patch - +Patch6: add-support-for-xmvn.resolver.disableEffectivePom-property.patch BuildArch: noarch @@ -144,6 +144,7 @@ This package provides non-essential macros and scripts to support Java packaging %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %build %configure @@ -184,6 +185,9 @@ popd %doc LICENSE %changelog +* Fri May 30 2014 Michal Srb - 4.0.0-4 +- Backport patch which adds support for "disableEffectivePom" property + * Thu May 29 2014 Michal Srb - 4.0.0-3 - Add BR: javapackages-tools