Skip to content

Commit d5e811b

Browse files
Fix parsing of MANIFEST.MF files
Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent a15174f commit d5e811b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1175
-140
lines changed

src/packagedcode/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
haxe.HaxelibJsonHandler,
103103

104104
jar_manifest.JavaJarManifestHandler,
105+
jar_manifest.JavaOSGiManifestHandler,
105106

106107
maven.MavenPomXmlHandler,
107108
maven.MavenPomPropertiesHandler,

src/packagedcode/jar_manifest.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ def assign_package_to_resources(cls, package, resource, codebase, package_adder)
5656
)
5757

5858

59+
class JavaOSGiManifestHandler(JavaJarManifestHandler):
60+
datasource_id = 'java_osgi_manifest'
61+
# This is an empty tuple to avoid getting back two packages
62+
# essentially this is the same as JavaJarManifestHandler
63+
path_patterns = ()
64+
default_primary_language = 'Java'
65+
description = 'Java OSGi MANIFEST.MF'
66+
default_package_type = 'osgi'
67+
68+
5969
def parse_manifest(location):
6070
"""
6171
Return a Manifest parsed from the file at `location` or None if this
@@ -248,6 +258,13 @@ def dget(s):
248258
else:
249259
name = i_title or am_nm or ext_nm or nm
250260
descriptions = [s_title, i_title, nm]
261+
262+
if package_type == 'maven':
263+
datasource_id = JavaJarManifestHandler.datasource_id
264+
elif package_type == 'jar':
265+
datasource_id = JavaJarManifestHandler.datasource_id
266+
elif package_type == 'osgi':
267+
datasource_id = JavaOSGiManifestHandler.datasource_id
251268

252269
descriptions = unique(descriptions)
253270
descriptions = [d for d in descriptions if d and d.strip() and d != name]
@@ -258,6 +275,7 @@ def dget(s):
258275
# create the mapping we will return
259276
package = {}
260277
package['type'] = package_type
278+
package['datasource_id'] = datasource_id
261279
package['namespace'] = namespace
262280
package['name'] = name
263281
package['version'] = version
@@ -278,7 +296,7 @@ def dget(s):
278296
package['homepage_url'] = dget('Implementation-URL') or dget('Implementation-Url')
279297

280298
# Bundle-DocURL: http://logging.apache.org/log4j/1.2
281-
package['documentation_url'] = dget('Bundle-DocURL')
299+
#package['documentation_url'] = dget('Bundle-DocURL')
282300

283301
# vendor/owner/contact
284302
#########################
@@ -369,7 +387,7 @@ def dget(s):
369387
# Deps:
370388
# Require-Bundle
371389

372-
package['notes'] = dget('Comment')
390+
#package['notes'] = dget('Comment')
373391
return package
374392

375393

tests/packagedcode/data/maven_misc/extracted-jar-expected.json renamed to tests/packagedcode/data/maven_misc/extracted-jar/activiti-image-generator-expected.json

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"api_data_url": "https://repo1.maven.org/maven2/org/activiti/activiti-image-generator/7-201802-EA/activiti-image-generator-7-201802-EA.pom",
4242
"package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
4343
"datafile_paths": [
44-
"extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml"
44+
"activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml"
4545
],
4646
"datasource_ids": [
4747
"maven_pom"
@@ -61,7 +61,7 @@
6161
"extra_data": {},
6262
"dependency_uid": "pkg:maven/org.activiti/activiti-bpmn-model?uuid=fixed-uid-done-for-testing-5642512d1758",
6363
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
64-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
64+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
6565
"datasource_id": "maven_pom"
6666
},
6767
{
@@ -75,7 +75,7 @@
7575
"extra_data": {},
7676
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-awt-util?uuid=fixed-uid-done-for-testing-5642512d1758",
7777
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
78-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
78+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
7979
"datasource_id": "maven_pom"
8080
},
8181
{
@@ -89,7 +89,7 @@
8989
"extra_data": {},
9090
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-dom?uuid=fixed-uid-done-for-testing-5642512d1758",
9191
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
92-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
92+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
9393
"datasource_id": "maven_pom"
9494
},
9595
{
@@ -103,7 +103,7 @@
103103
"extra_data": {},
104104
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-svggen?uuid=fixed-uid-done-for-testing-5642512d1758",
105105
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
106-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
106+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
107107
"datasource_id": "maven_pom"
108108
},
109109
{
@@ -117,7 +117,7 @@
117117
"extra_data": {},
118118
"dependency_uid": "pkg:maven/org.slf4j/slf4j-api?uuid=fixed-uid-done-for-testing-5642512d1758",
119119
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
120-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
120+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
121121
"datasource_id": "maven_pom"
122122
},
123123
{
@@ -131,7 +131,7 @@
131131
"extra_data": {},
132132
"dependency_uid": "pkg:maven/org.springframework/spring-context?uuid=fixed-uid-done-for-testing-5642512d1758",
133133
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
134-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
134+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
135135
"datasource_id": "maven_pom"
136136
},
137137
{
@@ -145,7 +145,7 @@
145145
"extra_data": {},
146146
"dependency_uid": "pkg:maven/org.activiti/activiti-engine?uuid=fixed-uid-done-for-testing-5642512d1758",
147147
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
148-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
148+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
149149
"datasource_id": "maven_pom"
150150
},
151151
{
@@ -159,7 +159,7 @@
159159
"extra_data": {},
160160
"dependency_uid": "pkg:maven/junit/junit?uuid=fixed-uid-done-for-testing-5642512d1758",
161161
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
162-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
162+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
163163
"datasource_id": "maven_pom"
164164
},
165165
{
@@ -173,7 +173,7 @@
173173
"extra_data": {},
174174
"dependency_uid": "pkg:maven/com.h2database/h2?uuid=fixed-uid-done-for-testing-5642512d1758",
175175
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
176-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
176+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
177177
"datasource_id": "maven_pom"
178178
},
179179
{
@@ -187,7 +187,7 @@
187187
"extra_data": {},
188188
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-svg-dom?uuid=fixed-uid-done-for-testing-5642512d1758",
189189
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
190-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
190+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
191191
"datasource_id": "maven_pom"
192192
},
193193
{
@@ -201,7 +201,7 @@
201201
"extra_data": {},
202202
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-anim?uuid=fixed-uid-done-for-testing-5642512d1758",
203203
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
204-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
204+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
205205
"datasource_id": "maven_pom"
206206
},
207207
{
@@ -215,20 +215,13 @@
215215
"extra_data": {},
216216
"dependency_uid": "pkg:maven/org.apache.xmlgraphics/batik-parser?uuid=fixed-uid-done-for-testing-5642512d1758",
217217
"for_package_uid": "pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758",
218-
"datafile_path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
218+
"datafile_path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
219219
"datasource_id": "maven_pom"
220220
}
221221
],
222222
"files": [
223223
{
224-
"path": "extracted-jar",
225-
"type": "directory",
226-
"package_data": [],
227-
"for_packages": [],
228-
"scan_errors": []
229-
},
230-
{
231-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract",
224+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract",
232225
"type": "directory",
233226
"package_data": [],
234227
"for_packages": [
@@ -237,7 +230,7 @@
237230
"scan_errors": []
238231
},
239232
{
240-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF",
233+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF",
241234
"type": "directory",
242235
"package_data": [],
243236
"for_packages": [
@@ -246,16 +239,59 @@
246239
"scan_errors": []
247240
},
248241
{
249-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/MANIFEST.MF",
242+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/MANIFEST.MF",
250243
"type": "file",
251-
"package_data": [],
244+
"package_data": [
245+
{
246+
"type": "jar",
247+
"namespace": null,
248+
"name": null,
249+
"version": null,
250+
"qualifiers": {},
251+
"subpath": null,
252+
"primary_language": null,
253+
"description": "",
254+
"release_date": null,
255+
"parties": [],
256+
"keywords": [],
257+
"homepage_url": null,
258+
"download_url": null,
259+
"size": null,
260+
"sha1": null,
261+
"md5": null,
262+
"sha256": null,
263+
"sha512": null,
264+
"bug_tracking_url": null,
265+
"code_view_url": null,
266+
"vcs_url": null,
267+
"copyright": null,
268+
"holder": null,
269+
"declared_license_expression": null,
270+
"declared_license_expression_spdx": null,
271+
"license_detections": [],
272+
"other_license_expression": null,
273+
"other_license_expression_spdx": null,
274+
"other_license_detections": [],
275+
"extracted_license_statement": null,
276+
"notice_text": null,
277+
"source_packages": [],
278+
"file_references": [],
279+
"extra_data": {},
280+
"dependencies": [],
281+
"repository_homepage_url": null,
282+
"repository_download_url": null,
283+
"api_data_url": null,
284+
"datasource_id": "java_jar_manifest",
285+
"purl": null
286+
}
287+
],
252288
"for_packages": [
253289
"pkg:maven/org.activiti/activiti-image-generator@7-201802-EA?uuid=fixed-uid-done-for-testing-5642512d1758"
254290
],
255291
"scan_errors": []
256292
},
257293
{
258-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven",
294+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven",
259295
"type": "directory",
260296
"package_data": [],
261297
"for_packages": [
@@ -264,7 +300,7 @@
264300
"scan_errors": []
265301
},
266302
{
267-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti",
303+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti",
268304
"type": "directory",
269305
"package_data": [],
270306
"for_packages": [
@@ -273,7 +309,7 @@
273309
"scan_errors": []
274310
},
275311
{
276-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator",
312+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator",
277313
"type": "directory",
278314
"package_data": [],
279315
"for_packages": [
@@ -282,7 +318,7 @@
282318
"scan_errors": []
283319
},
284320
{
285-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.properties",
321+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.properties",
286322
"type": "file",
287323
"package_data": [],
288324
"for_packages": [
@@ -291,7 +327,7 @@
291327
"scan_errors": []
292328
},
293329
{
294-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
330+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/META-INF/maven/org.activiti/activiti-image-generator/pom.xml",
295331
"type": "file",
296332
"package_data": [
297333
{
@@ -466,7 +502,7 @@
466502
"scan_errors": []
467503
},
468504
{
469-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/org",
505+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/org",
470506
"type": "directory",
471507
"package_data": [],
472508
"for_packages": [
@@ -475,7 +511,7 @@
475511
"scan_errors": []
476512
},
477513
{
478-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti",
514+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti",
479515
"type": "directory",
480516
"package_data": [],
481517
"for_packages": [
@@ -484,7 +520,7 @@
484520
"scan_errors": []
485521
},
486522
{
487-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image",
523+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image",
488524
"type": "directory",
489525
"package_data": [],
490526
"for_packages": [
@@ -493,7 +529,7 @@
493529
"scan_errors": []
494530
},
495531
{
496-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image/exception",
532+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image/exception",
497533
"type": "directory",
498534
"package_data": [],
499535
"for_packages": [
@@ -502,7 +538,7 @@
502538
"scan_errors": []
503539
},
504540
{
505-
"path": "extracted-jar/activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image/exception/ActivitiImageException.java",
541+
"path": "activiti-image-generator-7-201802-EA-sources.jar-extract/org/activiti/image/exception/ActivitiImageException.java",
506542
"type": "file",
507543
"package_data": [],
508544
"for_packages": [

0 commit comments

Comments
 (0)