|
28 | 28 | from packageurl.contrib.route import NoRouteAvailable
|
29 | 29 | from packageurl.contrib.route import Router
|
30 | 30 |
|
31 |
| -default_maven_repository = "https://repo.maven.apache.org/maven2" |
| 31 | +DEFAULT_MAVEN_REPOSITORY = "https://repo.maven.apache.org/maven2" |
| 32 | + |
32 | 33 |
|
33 | 34 | def get_repo_download_url_by_package_type(
|
34 | 35 | type, namespace, name, version, archive_extension="tar.gz"
|
@@ -324,15 +325,13 @@ def build_maven_repo_url(purl):
|
324 | 325 | namespace = purl_data.namespace
|
325 | 326 | name = purl_data.name
|
326 | 327 | version = purl_data.version
|
| 328 | + qualifiers = purl_data.qualifiers |
327 | 329 |
|
328 |
| - base_url = default_maven_repository |
329 |
| - |
330 |
| - if purl_data.qualifiers and "repository_url" in purl_data.qualifiers: |
331 |
| - base_url = purl_data.qualifiers["repository_url"] |
| 330 | + base_url = qualifiers.get("repository_url", DEFAULT_MAVEN_REPOSITORY) |
332 | 331 |
|
333 | 332 | if namespace and name and version:
|
334 |
| - maven_namespace = namespace.replace(".", "/") |
335 |
| - return f"{base_url}/{maven_namespace}/{name}/{version}" |
| 333 | + namespace = namespace.replace(".", "/") |
| 334 | + return f"{base_url}/{namespace}/{name}/{version}" |
336 | 335 |
|
337 | 336 |
|
338 | 337 | # Download URLs:
|
@@ -396,25 +395,16 @@ def build_maven_download_url(purl):
|
396 | 395 | namespace = purl_data.namespace
|
397 | 396 | name = purl_data.name
|
398 | 397 | version = purl_data.version
|
| 398 | + qualifiers = purl_data.qualifiers |
399 | 399 |
|
400 |
| - base_url = default_maven_repository |
401 |
| - |
402 |
| - if purl_data.qualifiers and "repository_url" in purl_data.qualifiers: |
403 |
| - base_url = purl_data.qualifiers["repository_url"] |
404 |
| - |
405 |
| - maven_type = "jar" # default to jar |
406 |
| - if purl_data.qualifiers and "type" in purl_data.qualifiers: |
407 |
| - maven_type = purl_data.qualifiers["type"] |
408 |
| - |
409 |
| - classifier = None |
410 |
| - if purl_data.qualifiers and "classifier" in purl_data.qualifiers: |
411 |
| - classifier = purl_data.qualifiers["classifier"] |
| 400 | + base_url = qualifiers.get("repository_url", DEFAULT_MAVEN_REPOSITORY) |
| 401 | + maven_type = qualifiers.get("type", "jar") # default to "jar" |
| 402 | + classifier = qualifiers.get("classifier") |
412 | 403 |
|
413 | 404 | if namespace and name and version:
|
414 |
| - maven_namespace = namespace.replace(".", "/") |
415 |
| - if classifier: |
416 |
| - return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}-{classifier}.{maven_type}" |
417 |
| - return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}.{maven_type}" |
| 405 | + namespace = namespace.replace(".", "/") |
| 406 | + classifier = f"-{classifier}" if classifier else "" |
| 407 | + return f"{base_url}/{namespace}/{name}/{version}/{name}-{version}{classifier}.{maven_type}" |
418 | 408 |
|
419 | 409 |
|
420 | 410 | @download_router.route("pkg:hackage/.*")
|
|
0 commit comments