From 0165bdf45372cbe3e409406c8afb7424983fea02 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 11 Jul 2023 21:18:25 +0530 Subject: [PATCH] Refactor and address feedback Signed-off-by: Ayan Sinha Mahapatra --- src/packagedcode/jar_manifest.py | 22 ++++++++++++++----- src/packagedcode/maven.py | 6 ++--- .../johnzon-jsonb-1.2.11-expected.json | 4 +++- .../manifest/10/MANIFEST.MF.package-data.json | 5 ++++- .../manifest/24/MANIFEST.MF.package-data.json | 5 ++++- .../manifest/4/MANIFEST.MF.package-data.json | 5 ++++- .../manifest/5/MANIFEST.MF.package-data.json | 5 ++++- .../manifest/7/MANIFEST.MF.package-data.json | 5 ++++- .../manifest/8/MANIFEST.MF.package-data.json | 5 ++++- 9 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/packagedcode/jar_manifest.py b/src/packagedcode/jar_manifest.py index b94061ab54b..adc2a6882f7 100644 --- a/src/packagedcode/jar_manifest.py +++ b/src/packagedcode/jar_manifest.py @@ -248,7 +248,7 @@ def dget(s): package['homepage_url'] = dget('Implementation-URL') or dget('Implementation-Url') # Bundle-DocURL: http://logging.apache.org/log4j/1.2 - #package['documentation_url'] = dget('Bundle-DocURL') + doc_url = dget('Bundle-DocURL') # vendor/owner/contact ######################### @@ -339,7 +339,15 @@ def dget(s): # Deps: # Require-Bundle - #package['notes'] = dget('Comment') + comment = dget('Comment') + + if comment or doc_url: + package["extra_data"] = {} + if comment: + package["extra_data"]['notes'] = comment + if doc_url: + package["extra_data"]['documentation_url'] = doc_url + return package @@ -378,16 +386,20 @@ def parse_scm_connection(scm_connection): def get_datasource_id(package_type): + """ + Get the corresponding `datasource_id` for the given + `package_type`. This is a seperate function to avoid + cyclic imports. + """ from packagedcode.maven import JavaJarManifestHandler from packagedcode.maven import JavaOSGiManifestHandler - if package_type == 'maven': - return JavaJarManifestHandler.datasource_id - elif package_type == 'jar': + if package_type in ['maven', 'jar']: return JavaJarManifestHandler.datasource_id elif package_type == 'osgi': return JavaOSGiManifestHandler.datasource_id + def is_id(s): """ Return True if `s` is some kind of id. diff --git a/src/packagedcode/maven.py b/src/packagedcode/maven.py index 01dcc47a028..c06d1dfe349 100644 --- a/src/packagedcode/maven.py +++ b/src/packagedcode/maven.py @@ -1308,11 +1308,11 @@ def get_license_detections_for_extracted_license_statement( for license_entry in new_extracted_license: license_entry.pop("distribution") - if not license_entry.get("name", None): + if not license_entry.get("name"): license_entry.pop("name") - if not license_entry.get("url", None): + if not license_entry.get("url"): license_entry.pop("url") - if not license_entry.get("comments", None): + if not license_entry.get("comments"): license_entry.pop("comments") extracted_license_statement = saneyaml.dump(new_extracted_license) diff --git a/tests/packagedcode/data/maven_misc/assemble/johnzon-jsonb-1.2.11-expected.json b/tests/packagedcode/data/maven_misc/assemble/johnzon-jsonb-1.2.11-expected.json index 05ae92f6d09..9117d46dd76 100644 --- a/tests/packagedcode/data/maven_misc/assemble/johnzon-jsonb-1.2.11-expected.json +++ b/tests/packagedcode/data/maven_misc/assemble/johnzon-jsonb-1.2.11-expected.json @@ -427,7 +427,9 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, + "extra_data": { + "documentation_url": "http://johnzon.apache.org/" + }, "dependencies": [], "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/maven_misc/manifest/10/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/10/MANIFEST.MF.package-data.json index f5250218377..4a0f92d8a7e 100644 --- a/tests/packagedcode/data/maven_misc/manifest/10/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/10/MANIFEST.MF.package-data.json @@ -15,5 +15,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://www.hibernate.org/orm/5.3" + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven_misc/manifest/24/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/24/MANIFEST.MF.package-data.json index 29ce58d9152..953d19acd66 100644 --- a/tests/packagedcode/data/maven_misc/manifest/24/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/24/MANIFEST.MF.package-data.json @@ -15,5 +15,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://www.oracle.com" + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven_misc/manifest/4/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/4/MANIFEST.MF.package-data.json index 8c1ce3761b3..3b285fbfb08 100644 --- a/tests/packagedcode/data/maven_misc/manifest/4/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/4/MANIFEST.MF.package-data.json @@ -15,5 +15,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://logging.apache.org/log4j/1.2" + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven_misc/manifest/5/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/5/MANIFEST.MF.package-data.json index 531ed713318..1ca7b6e1c01 100644 --- a/tests/packagedcode/data/maven_misc/manifest/5/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/5/MANIFEST.MF.package-data.json @@ -15,5 +15,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://www.oracle.com" + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven_misc/manifest/7/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/7/MANIFEST.MF.package-data.json index e98f8e7fc6b..0edf7f12934 100644 --- a/tests/packagedcode/data/maven_misc/manifest/7/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/7/MANIFEST.MF.package-data.json @@ -15,5 +15,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://fusesource.com/" + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven_misc/manifest/8/MANIFEST.MF.package-data.json b/tests/packagedcode/data/maven_misc/manifest/8/MANIFEST.MF.package-data.json index 37ed9f42fc7..d07a4e536fb 100644 --- a/tests/packagedcode/data/maven_misc/manifest/8/MANIFEST.MF.package-data.json +++ b/tests/packagedcode/data/maven_misc/manifest/8/MANIFEST.MF.package-data.json @@ -19,5 +19,8 @@ } ], "vcs_url": null, - "code_view_url": null + "code_view_url": null, + "extra_data": { + "documentation_url": "http://jodd.org" + } } \ No newline at end of file