[java-sig-commits] [javapackages] add_maven_depmap: make JARs and POMs versioned in maven_depmap.py, not in macros.fjava
Michal Srb
msrb at fedoraproject.org
Thu Sep 26 15:07:50 UTC 2013
commit 7e62e2ed926f297cb4a7f369481dfd9c36bdeab1
Author: Michal Srb <msrb at redhat.com>
Date: Thu Sep 26 11:20:02 2013 +0200
add_maven_depmap: make JARs and POMs versioned in maven_depmap.py,
not in macros.fjava
etc/macros.fjava | 26 -------------------
java-utils/maven_depmap.py | 59 ++++++++++++++++++++++++++++++++++++++++---
2 files changed, 54 insertions(+), 31 deletions(-)
---
diff --git a/etc/macros.fjava b/etc/macros.fjava
index dfe0845..0b4914a 100644
--- a/etc/macros.fjava
+++ b/etc/macros.fjava
@@ -76,33 +76,7 @@ python -m %{_javadir}-utils/maven_depmap %{-a} %{-v*:-r %{-v*}} \\\
"${_jpath}" \\\
%endif \
>> ${_filelist} \
-# this part only works for jars for now (now war/other compat support) \
-if [[ -n "%{-v}" ]]; then \
-mv %{buildroot}%{_mavenpomdir}/$_pompart \\\
- %{buildroot}%{_mavenpomdir}/${_pompart/.pom/-%{version}.pom} \
-if [ -f "${_jpath}" ]; then \
- mv ${_jpath} ${_jpath/.jar/-%{version}.jar} \
-fi \
-for ver in $(echo %{-v*} | tr ',' '\\n');do \
- ln -s ${_pompart/.pom/-%{version}.pom} \\\
- %{buildroot}%{_mavenpomdir}/${_pompart/.pom/-$ver.pom} \
- echo %{_mavenpomdir}/${_pompart/.pom/-$ver.pom} >>${_filelist} \
- # we can have pom-only artifacts \
- if [ -f "${_jpath/.jar/-%{version}.jar}" ];then \
- ln -s $(basename ${_jpath/.jar/-%{version}.jar}) \\\
- ${_jpath/.jar/-$ver.jar} \
- echo ${_jpath/.jar/-$ver.jar} >>${_filelist} \
- fi \
-done \
-# remove unversioned jar and pom from .mfiles \
-if [[ -n "${_jpath}" ]]; then \
- _jpath="${_jpath#%{buildroot}}" \
- sed -i "s:${_jpath/-%{version}.jar/.jar}::" ${_filelist} \
-fi \
-sed -i "s:%{_mavenpomdir}/${_pompart/-$ver.pom/.pom}::" ${_filelist} \
-fi \
sed -i 's:%{buildroot}::' ${_filelist} \
-sed -i '/^$/d' ${_filelist} \
sort -u -o ${_filelist} ${_filelist} \
\
%{nil}
diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py
index 1549f80..bb8c32c 100644
--- a/java-utils/maven_depmap.py
+++ b/java-utils/maven_depmap.py
@@ -39,6 +39,7 @@ from optparse import OptionParser
import sys
import os
import re
+import shutil
from StringIO import StringIO
import xml.dom.minidom
import codecs
@@ -143,6 +144,47 @@ def _get_file_extension(jar_path, artifactId):
else:
raise UnknownFileExtension(jar_path)
+def _make_files_versioned(versions, pom_path, jar_path):
+ """Make pom and jar file versioned"""
+ versions = set(versions.split(','))
+
+ vpom_path = pom_path
+ vjar_path = jar_path
+
+ # pom
+ if ':' not in vpom_path:
+ root, ext = os.path.splitext(vpom_path)
+ symlink = False
+ for ver in versions:
+ dest = "%s-%s%s" % (root, ver, ext)
+ if not symlink:
+ shutil.copy(os.path.realpath(vpom_path), dest)
+ symlink = True
+ vpom_path = dest
+ else:
+ os.symlink(basename(vpom_path), dest)
+ # output file path for file lists
+ print dest
+ # remove unversioned pom
+ os.remove(pom_path)
+
+ # jar
+ if vjar_path:
+ root, ext = os.path.splitext(vjar_path)
+ symlink = False
+ for ver in versions:
+ dest = "%s-%s%s" % (root, ver, ext)
+ if not symlink:
+ shutil.copy(os.path.realpath(vjar_path), dest)
+ symlink = True
+ vjar_path = dest
+ else:
+ os.symlink(basename(vjar_path), dest)
+ # output file path for file lists
+ print dest
+ # remove unversioned jar
+ os.remove(jar_path)
+
def get_local_artifact(upstream_artifact, prefix, jar_path=None):
if not jar_path:
# does this even make sense? There is no pom, no dependencies...
@@ -330,16 +372,23 @@ if __name__ == "__main__":
else:
fragment = parse_pom(pom_path, prefix)
- # output file paths for file lists
+ # output file path for file lists
print fragment_path
- if ':' not in pom_path:
- print pom_path
- if jar_path:
- print jar_path
if fragment:
mappings = create_mappings(fragment, append_deps, namespace)
output_fragment(fragment_path, fragment, mappings, add_versions)
+
+ if add_versions:
+ add_versions = "%s,%s" % (fragment.upstream_artifact.version, add_versions)
+ _make_files_versioned(add_versions, pom_path, jar_path)
+ else:
+ # output file paths for file lists
+ if ':' not in pom_path:
+ print pom_path
+ if jar_path:
+ print jar_path
+
else:
parser.error("Problem parsing POM file. Is it valid maven POM? Send bugreport \
to https://fedorahosted.org/javapackages/ and attach %s to \
More information about the java-sig-commits
mailing list