[java-sig-commits] [javapackages] Fix add_maven_depmap all over the place

Stanislav Ochotnicky sochotni at fedoraproject.org
Thu Jun 2 14:22:05 UTC 2011


commit 493bf1bf652b5f07996d63310c7776fa3d377c3b
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date:   Thu Jun 2 16:18:29 2011 +0200

    Fix add_maven_depmap all over the place
    
    script can now really run without jar_path and handling of filenames
    changed so it's more descriptive (assert error could easily confuse packagers)

 macros.fjava            |    7 +++++--
 scripts/maven_depmap.py |   24 ++++++++++++++++--------
 2 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/macros.fjava b/macros.fjava
index 27695d8..191e461 100644
--- a/macros.fjava
+++ b/macros.fjava
@@ -38,8 +38,11 @@
 %add_maven_depmap(f:a:) \
 install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
 python -m %{_datadir}/java-utils/maven_depmap \\\
-          $RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}%{-f*:-%{-f*}} \\\
-          %{_mavenpomdir}/%1 $RPM_BUILD_ROOT/%{_javadir}/%2 %{-a} \
+          %{buildroot}%{_mavendepmapfragdir}/%{name}%{-f*:-%{-f*}} \\\
+          %{buildroot}%{_mavenpomdir}/%1 \\\
+          %if %# == 2 \
+              %{buildroot}/%{_javadir}/%2 %{-a} \
+          %endif \
 %{nil}
 
 #==============================================================================
diff --git a/scripts/maven_depmap.py b/scripts/maven_depmap.py
index 81af5ff..26decd6 100644
--- a/scripts/maven_depmap.py
+++ b/scripts/maven_depmap.py
@@ -42,6 +42,9 @@ class Fragment:
         self.local_gid = local_gid
         self.local_aid = local_aid
 
+class IncompatibleFilenames(Exception):
+    def __init__(self):
+        self.args=("Filenames of pom and jar does not match properly. Check that jar subdirectories match '.' in pom name.",)
 
 def _get_tag_under_parent(dom, parent, tag):
     """get first xml tag under parent tag within dom"""
@@ -65,12 +68,14 @@ def _get_jpp_from_filename(pom_path, jar_path = None):
             jpp_gid = "JPP/%s" % basename(dirname(jar_path))
             jpp_aid = basename(jar_path)[:-4]
             # we assert that jar and pom parts match
-            assert pomname == "JPP.%s-%s.pom" % (jpp_gid[4:], jpp_aid)
+            if not pomname == "JPP.%s-%s.pom" % (jpp_gid[4:], jpp_aid):
+                raise IncompatibleFilenames()
         else:
             jpp_gid = "JPP"
             jpp_aid = basename(jar_path)[:-4]
             # we assert that jar and pom parts match
-            assert pomname == "JPP-%s-%s.pom" % (jpp_gid[4:], jpp_aid)
+            if not pomname == "JPP-%s.pom" % jpp_aid:
+                raise IncompatibleFilenames()
     else:
         if pomname[3] == ".":
             match = re.match('JPP\.([^-]*?)-.*', pomname)
@@ -170,17 +175,20 @@ if __name__ == "__main__":
     (options, args) = parser.parse_args()
     append_deps = options.append
 
-    if len(sys.argv) < 3:
+    if len(args) < 2:
         parser.error("Incorrect number of arguments")
     # these will fail when incorrect number of arguments is given
-    fragment_path = sys.argv[1].strip()
-    pom_path = sys.argv[2].strip()
-    jar_path = sys.argv[3].strip()
-    if jar_path[-4:] == ".jar":
+    fragment_path = args[0].strip()
+    pom_path = args[1].strip()
+    if len(args) == 3:
+        jar_path = args[2].strip()
         fragment = parse_pom(pom_path, jar_path)
     else:
         fragment = parse_pom(pom_path)
 
     if fragment:
         output_fragment(fragment_path, fragment, append_deps)
-
+    else:
+        print "Unknown error while generating fragment. Send bugreport \
+        to https://fedorahosted.org/javapackages/"
+        sys.exit(1)


More information about the java-sig-commits mailing list