commit f5f4ed66896b123039f355f9ff79dc8f53d98705
Author: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Date: Tue Oct 30 14:56:25 2012 +0100
Fix versionless resolving by adding versions to fragments
When we added full versioned resolving, we omitted versions in depmaps, thinking
that versioned poms & jars will be enough. But when Maven looks at mappings, it
would not find exact version in HashTable and so it would fall back to
unversioned search even though versioned jar/pom was available. Adding these
version fixes things.
macros.fjava | 2 +-
scripts/maven_depmap.py | 22 +++++++++++++++-------
2 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/macros.fjava b/macros.fjava
index 5c71b19..c645f83 100644
--- a/macros.fjava
+++ b/macros.fjava
@@ -72,7 +72,7 @@ elif [ -f %{buildroot}/%{_javajnidir}/$_jarpart ]; then \
elif [ -f %{buildroot}/%{_jnidir}/$_jarpart ]; then \
_jpath="%{buildroot}/%{_jnidir}/$_jarpart" \
fi \
-python -m %{_datadir}/java-utils/maven_depmap %{-a} \\\
+python -m %{_datadir}/java-utils/maven_depmap %{-a} %{-v*:-r %{-v*}} \\\
%{-m:-m %{buildroot}%{_maven_repository}} \\\
%{buildroot}%{_mavendepmapfragdir}/%{name}%{-f*:-%{-f*}} \\\
%{buildroot}%{_mavenpomdir}/$_pompart \\\
diff --git a/scripts/maven_depmap.py b/scripts/maven_depmap.py
index d047cef..9365f33 100644
--- a/scripts/maven_depmap.py
+++ b/scripts/maven_depmap.py
@@ -193,13 +193,16 @@ def create_mappings(fragment, additions = None):
maps.append((g, a))
return maps
-def output_fragment(fragment_path, fragment, mappings):
+def output_fragment(fragment_path, fragment, mappings, versions):
"""Writes fragment into fragment_path in specialised format
compatible with jpp"""
with open(fragment_path, "aw") as ffile:
- for m in mappings:
- gid, aid = m
- ffile.write("""
+ versions = versions.split(',')
+ versions.insert(0, fragment.version)
+ for ver in versions:
+ for m in mappings:
+ gid, aid = m
+ ffile.write("""
<dependency>
<maven>
<groupId>%s</groupId>
@@ -212,8 +215,8 @@ def output_fragment(fragment_path, fragment, mappings):
<version>%s</version>
</jpp>
</dependency>
-""" % (gid, aid, fragment.version, fragment.local_gid,
- fragment.local_aid, fragment.version) )
+""" % (gid, aid, ver, fragment.local_gid,
+ fragment.local_aid, ver) )
def create_maven_repo(repo_path, fragment, mappings):
@@ -264,12 +267,17 @@ if __name__ == "__main__":
help="Additional depmaps to add (gid:aid) [default:
%default]")
parser.add_option('-m', '--maven-repo', type="str",
dest='maven_repo',
help='Where to create Maven repository layout')
+ parser.add_option('-r', '--versions', type="str",
+ help='Additional versions to add for each depmap')
+
+
parser.set_defaults(append=None)
(options, args) = parser.parse_args()
append_deps = options.append
+ add_versions = options.versions
if len(args) < 2:
parser.error("Incorrect number of arguments")
@@ -287,7 +295,7 @@ if __name__ == "__main__":
if fragment:
mappings = create_mappings(fragment, append_deps)
- output_fragment(fragment_path, fragment, mappings)
+ output_fragment(fragment_path, fragment, mappings, add_versions)
if options.maven_repo:
create_maven_repo(options.maven_repo, fragment, mappings)
else: