diff --git a/src/packagedcode/build_gradle.py b/src/packagedcode/build_gradle.py index fc0c0681cb3..352c25d4c26 100644 --- a/src/packagedcode/build_gradle.py +++ b/src/packagedcode/build_gradle.py @@ -14,6 +14,11 @@ from pygmars.parse import Parser from pygments import lex +try: + import tomllib +except ImportError: + import tomli as tomllib + from packagedcode import groovy_lexer from packagedcode import models @@ -86,7 +91,7 @@ def assign_package_to_resources(cls, package, resource, codebase, package_adder) DEPENDENCY-4: { ? } - DEPENDENCY-5: { } + DEPENDENCY-VERSION-CATALOG: { ( )*} NESTED-DEPENDENCY-1: { + } """ @@ -312,20 +317,116 @@ def get_dependencies_from_parse_tree(parse_tree): dependency[last_key] = remove_quotes(child_node.value) yield dependency - if tree_node.label == 'DEPENDENCY-5': + if tree_node.label == 'DEPENDENCY-VERSION-CATALOG': dependency = {} + scope = None + name_parts = [] for child_node in tree_node.leaves(): if child_node.label == 'NAME': - dependency['scope'] = child_node.value - if child_node.label == 'NAME-ATTRIBUTE': - dependency['name'] = child_node.value - yield dependency + if not scope: + scope = child_node.value + else: + name_parts.append(child_node.value) + elif child_node.label == 'NAME-ATTRIBUTE': + name_parts.append(child_node.value) + if scope and name_parts: + full_name = '.'.join(name_parts) + dependency['scope'] = scope + dependency['name'] = full_name + dependency['namespace'] = '' + dependency['version'] = '' + yield dependency + + +def parse_version_catalog(build_gradle_location): + """ + Parse gradle/libs.versions.toml and return a mapping of alias -> {group, name, version}. + Returns empty dict if file not found. + """ + gradle_dir = os.path.dirname(build_gradle_location) + catalog_locations = [ + os.path.join(gradle_dir, 'gradle', 'libs.versions.toml'), + os.path.join(os.path.dirname(gradle_dir), 'gradle', 'libs.versions.toml'), + ] + + catalog_path = None + for loc in catalog_locations: + if os.path.exists(loc): + catalog_path = loc + break + + if not catalog_path: + return {} + + with open(catalog_path, 'rb') as f: + catalog = tomllib.load(f) + + libraries = catalog.get('libraries', {}) + versions = catalog.get('versions', {}) + alias_map = {} + + for alias, lib_spec in libraries.items(): + normalized_alias = alias.replace('-', '.') + + if isinstance(lib_spec, str): + parts = lib_spec.split(':') + if len(parts) >= 2: + alias_map[normalized_alias] = { + 'namespace': parts[0], + 'name': parts[1], + 'version': parts[2] if len(parts) > 2 else '', + } + + elif isinstance(lib_spec, dict): + module = lib_spec.get('module', '') + if module: + module_parts = module.split(':') + group = module_parts[0] if len(module_parts) >= 1 else '' + name = module_parts[1] if len(module_parts) >= 2 else '' + else: + group = lib_spec.get('group', '') + name = lib_spec.get('name', '') + + version = lib_spec.get('version', '') + if isinstance(version, dict) and 'ref' in version: + version = versions.get(version['ref'], '') + + alias_map[normalized_alias] = { + 'namespace': group, + 'name': name, + 'version': version, + } + + return alias_map def get_dependencies(build_gradle_location): + """ + Parse dependencies from build.gradle, resolving version catalog references. + """ parse_tree = get_parse_tree(build_gradle_location) - # Parse `parse_tree` for dependencies and print them - return list(get_dependencies_from_parse_tree(parse_tree)) + raw_dependencies = list(get_dependencies_from_parse_tree(parse_tree)) + catalog = parse_version_catalog(build_gradle_location) + + resolved_dependencies = [] + for dep in raw_dependencies: + name = dep.get('name', '') + + if name.startswith('libs.'): + alias = name[5:] + if alias in catalog: + catalog_entry = catalog[alias] + resolved_dependencies.append({ + 'namespace': catalog_entry['namespace'], + 'name': catalog_entry['name'], + 'version': catalog_entry['version'], + 'scope': dep.get('scope', ''), + }) + continue + + resolved_dependencies.append(dep) + + return resolved_dependencies def build_package(cls, dependencies, package_only=False): @@ -334,7 +435,6 @@ def build_package(cls, dependencies, package_only=False): """ package_dependencies = [] for dependency in dependencies: - # Ignore collected dependencies that do not have a name name = dependency.get('name', '') if not name: continue @@ -342,25 +442,43 @@ def build_package(cls, dependencies, package_only=False): namespace = dependency.get('namespace', '') version = dependency.get('version', '') scope = dependency.get('scope', '') + is_runtime = True is_optional = False if 'test' in scope.lower(): is_runtime = False is_optional = True + is_pinned = bool(version) + + resolved_package_data = {} + if is_pinned: + resolved_package = models.PackageData.from_data( + dict( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + namespace=namespace, + name=name, + version=version, + ), + package_only, + ) + resolved_package_data = resolved_package.to_dict() + package_dependencies.append( models.DependentPackage( purl=PackageURL( type=cls.default_package_type, namespace=namespace, name=name, - version=version + version=version, ).to_string(), scope=scope, extracted_requirement=version, is_runtime=is_runtime, is_optional=is_optional, - is_pinned=bool(version), + is_pinned=is_pinned, + resolved_package=resolved_package_data, ) ) diff --git a/tests/packagedcode/data/build_gradle/end2end/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/end2end/build.gradle-expected.json index edb0584c9c8..6e06f11e75a 100644 --- a/tests/packagedcode/data/build_gradle/end2end/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/end2end/build.gradle-expected.json @@ -9,7 +9,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.google", + "name": "guava", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google/guava@1.0" + }, "extra_data": {}, "dependency_uid": "pkg:maven/com.google/guava@1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -24,7 +67,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache", + "name": "commons", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache/commons@1.0" + }, "extra_data": {}, "dependency_uid": "pkg:maven/org.apache/commons@1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -39,7 +125,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.ant", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.ant@0.7.4.201502262128" + }, "extra_data": {}, "dependency_uid": "pkg:maven/org.jacoco.ant@0.7.4.201502262128?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -54,7 +183,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.agent", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.agent@0.7.4.201502262128" + }, "extra_data": {}, "dependency_uid": "pkg:maven/org.jacoco.agent@0.7.4.201502262128?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -113,7 +285,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.google", + "name": "guava", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google/guava@1.0" + }, "extra_data": {} }, { @@ -124,7 +339,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache", + "name": "commons", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache/commons@1.0" + }, "extra_data": {} }, { @@ -135,7 +393,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.ant", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.ant@0.7.4.201502262128" + }, "extra_data": {} }, { @@ -146,7 +447,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.agent", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.agent@0.7.4.201502262128" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/end2end/build.gradle-package-only-expected.json b/tests/packagedcode/data/build_gradle/end2end/build.gradle-package-only-expected.json index 4d9ae2fc80d..ae388646ae9 100644 --- a/tests/packagedcode/data/build_gradle/end2end/build.gradle-package-only-expected.json +++ b/tests/packagedcode/data/build_gradle/end2end/build.gradle-package-only-expected.json @@ -52,7 +52,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.google", + "name": "guava", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google/guava@1.0" + }, "extra_data": {} }, { @@ -63,7 +106,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache", + "name": "commons", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache/commons@1.0" + }, "extra_data": {} }, { @@ -74,7 +160,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.ant", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.ant@0.7.4.201502262128" + }, "extra_data": {} }, { @@ -85,7 +214,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.agent", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.agent@0.7.4.201502262128" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle new file mode 100644 index 00000000000..ce607f3cef0 --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle @@ -0,0 +1,10 @@ +// Adapted from https://gitlab.com/fdroid/fdroidclient/-/blob/02100d9218352323140c016b9839da2afe95c41b/app/build.gradle.kts +dependencies { + implementation project(":libs:download") + implementation libs.androidx.appcompat + implementation libs.androidx.preference.ktx + implementation libs.material + implementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } + implementation libs.acra.mail + implementation libs.acra.dialog +} diff --git a/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle-expected.json new file mode 100644 index 00000000000..01dd333caf6 --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/build.gradle-expected.json @@ -0,0 +1,425 @@ +[ + { + "type": "maven", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:maven/libs@download", + "extracted_requirement": "download", + "scope": "project", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "libs", + "version": "download", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/libs@download" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/androidx.appcompat/appcompat@1.6.1", + "extracted_requirement": "1.6.1", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "androidx.appcompat", + "name": "appcompat", + "version": "1.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/androidx.appcompat/appcompat@1.6.1" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/androidx.preference/preference-ktx@1.2.1", + "extracted_requirement": "1.2.1", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "androidx.preference", + "name": "preference-ktx", + "version": "1.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/androidx.preference/preference-ktx@1.2.1" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/com.google.android.material/material@1.9.0", + "extracted_requirement": "1.9.0", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "com.google.android.material", + "name": "material", + "version": "1.9.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google.android.material/material@1.9.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/com.journeyapps/zxing-android-embedded@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "com.journeyapps", + "name": "zxing-android-embedded", + "version": "4.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.journeyapps/zxing-android-embedded@4.3.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/ch.acra/acra-mail@5.11.3", + "extracted_requirement": "5.11.3", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "ch.acra", + "name": "acra-mail", + "version": "5.11.3", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/ch.acra/acra-mail@5.11.3" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/ch.acra/acra-dialog@5.11.3", + "extracted_requirement": "5.11.3", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "ch.acra", + "name": "acra-dialog", + "version": "5.11.3", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/ch.acra/acra-dialog@5.11.3" + }, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": null + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/gradle/libs.versions.toml b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/gradle/libs.versions.toml new file mode 100644 index 00000000000..210c46f9c4d --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/fdroid-version-catalog/gradle/libs.versions.toml @@ -0,0 +1,13 @@ +# From https://gitlab.com/fdroid/fdroidclient/-/blob/02100d9218352323140c016b9839da2afe95c41b/gradle/libs.versions.toml +[versions] +androidx-appcompat = "1.6.1" +androidx-preference = "1.2.1" +material = "1.9.0" +acra = "5.11.3" + +[libraries] +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } +androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "androidx-preference" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +acra-mail = { group = "ch.acra", name = "acra-mail", version.ref = "acra" } +acra-dialog = { group = "ch.acra", name = "acra-dialog", version.ref = "acra" } diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy-and-kotlin1/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy-and-kotlin1/build.gradle-expected.json index c53b3213587..3bed72069c9 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy-and-kotlin1/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy-and-kotlin1/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.scala-lang", + "name": "scala-library", + "version": "2.11.12", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.scala-lang/scala-library@2.11.12" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy-basic/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy-basic/build.gradle-expected.json index 29589ae7d55..b5e9ae21dfb 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy-basic/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy-basic/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.google", + "name": "guava", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google/guava@1.0" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache", + "name": "commons", + "version": "1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache/commons@1.0" + }, "extra_data": {} }, { @@ -67,7 +153,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.ant", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.ant@0.7.4.201502262128" + }, "extra_data": {} }, { @@ -78,7 +207,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "", + "name": "org.jacoco.agent", + "version": "0.7.4.201502262128", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jacoco.agent@0.7.4.201502262128" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy-no-parens/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy-no-parens/build.gradle-expected.json index 1dd8453d3ed..0510408d838 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy-no-parens/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy-no-parens/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.fasterxml.jackson", + "name": "jackson-bom", + "version": "2.12.2'", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.fasterxml.jackson/jackson-bom@2.12.2%27" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy1/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy1/build.gradle-expected.json index 4b940d7614c..903e2bfa22a 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy1/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy1/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.commons", + "name": "commons-text", + "version": "1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.commons/commons-text@1.1" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": true, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "4.12", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@4.12" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy2/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy2/build.gradle-expected.json index c4f6475fcc9..eea5fab517e 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy2/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy2/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.commons", + "name": "commons-text", + "version": "1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.commons/commons-text@1.1" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.struts", + "name": "struts2-assembly", + "version": "2.5.14.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.struts/struts2-assembly@2.5.14.1" + }, "extra_data": {} }, { @@ -67,7 +153,50 @@ "is_optional": true, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "4.12", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@4.12" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy3/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy3/build.gradle-expected.json index ed71a005cee..37524fed3f4 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy3/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy3/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.fasterxml.jackson", + "name": "jackson-bom", + "version": "2.12.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.fasterxml.jackson/jackson-bom@2.12.2" + }, "extra_data": {} }, { @@ -67,7 +110,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.junit", + "name": "junit-bom", + "version": "5.7.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.junit/junit-bom@5.7.2" + }, "extra_data": {} }, { diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy4-singlequotes/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy4-singlequotes/build.gradle-expected.json index 1d74f7ee88a..7678d542b21 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy4-singlequotes/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy4-singlequotes/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.fasterxml.jackson", + "name": "jackson-bom", + "version": "2.12.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.fasterxml.jackson/jackson-bom@2.12.2" + }, "extra_data": {} }, { @@ -67,7 +110,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.junit", + "name": "junit-bom", + "version": "5.7.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.junit/junit-bom@5.7.2" + }, "extra_data": {} }, { diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy4/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy4/build.gradle-expected.json index 0ce20f10866..0fbfd561e4b 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy4/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy4/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.springframework", + "name": "spring-core", + "version": "2.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.springframework/spring-core@2.5" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.springframework", + "name": "spring-core", + "version": "2.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.springframework/spring-core@2.5" + }, "extra_data": {} }, { @@ -67,7 +153,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.springframework", + "name": "spring-aop", + "version": "2.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.springframework/spring-aop@2.5" + }, "extra_data": {} }, { @@ -78,7 +207,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.hibernate", + "name": "hibernate", + "version": "3.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.hibernate/hibernate@3.0.5" + }, "extra_data": {} }, { @@ -89,7 +261,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.hibernate", + "name": "hibernate", + "version": "3.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.hibernate/hibernate@3.0.5" + }, "extra_data": {} }, { @@ -100,7 +315,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.hibernate", + "name": "hibernate", + "version": "3.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.hibernate/hibernate@3.0.5" + }, "extra_data": {} }, { @@ -111,7 +369,50 @@ "is_optional": true, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "4.13", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@4.13" + }, "extra_data": {} }, { @@ -122,7 +423,50 @@ "is_optional": true, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.httpcomponents", + "name": "httpclient", + "version": "4.5.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.httpcomponents/httpclient@4.5.5" + }, "extra_data": {} }, { @@ -133,7 +477,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.tomcat.embed", + "name": "tomcat-embed-jasper", + "version": "9.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.tomcat.embed/tomcat-embed-jasper@9.0.2" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy5-parens+singlequotes/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy5-parens+singlequotes/build.gradle-expected.json index f21521817f6..66802517ba3 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy5-parens+singlequotes/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy5-parens+singlequotes/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.fasterxml.jackson", + "name": "jackson-bom", + "version": "2.12.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.fasterxml.jackson/jackson-bom@2.12.2" + }, "extra_data": {} }, { diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy5/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy5/build.gradle-expected.json index 50a62f29875..e5d833d5a65 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy5/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy5/build.gradle-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "jquery", + "name": "jquery", + "version": "3.2.1@js", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/jquery/jquery@3.2.1%40js" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/groovy6-with-props/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/groovy6-with-props/build.gradle-expected.json index f95031eca6f..0a3ab202261 100644 --- a/tests/packagedcode/data/build_gradle/groovy/groovy6-with-props/build.gradle-expected.json +++ b/tests/packagedcode/data/build_gradle/groovy/groovy6-with-props/build.gradle-expected.json @@ -56,7 +56,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.google.guava", + "name": "guava", + "version": "18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google.guava/guava@18.0" + }, "extra_data": {} }, { @@ -67,7 +110,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.cassandra", + "name": "cassandra-all", + "version": "3.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.cassandra/cassandra-all@3.0.9" + }, "extra_data": {} }, { @@ -78,7 +164,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.apache.commons", + "name": "commons-compress", + "version": "1.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.apache.commons/commons-compress@1.5" + }, "extra_data": {} }, { @@ -89,7 +218,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.amazonaws", + "name": "aws-java-sdk-core", + "version": "${awsVer}", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.amazonaws/aws-java-sdk-core@%24%7BawsVer%7D" + }, "extra_data": {} }, { @@ -100,7 +272,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.amazonaws", + "name": "aws-java-sdk", + "version": "${awsVer}", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.amazonaws/aws-java-sdk@%24%7BawsVer%7D" + }, "extra_data": {} }, { @@ -111,7 +326,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.microsoft.azure", + "name": "azure-storage", + "version": "4.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.microsoft.azure/azure-storage@4.2.0" + }, "extra_data": {} }, { @@ -122,7 +380,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "commons-io", + "name": "commons-io", + "version": "2.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/commons-io/commons-io@2.5" + }, "extra_data": {} }, { @@ -133,7 +434,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.datastax.cassandra", + "name": "cassandra-driver-core", + "version": "${datastaxVer}", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.datastax.cassandra/cassandra-driver-core@%24%7BdatastaxVer%7D" + }, "extra_data": {} }, { @@ -144,7 +488,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.xerial.snappy", + "name": "snappy-java", + "version": "1.1.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.xerial.snappy/snappy-java@1.1.2.1" + }, "extra_data": {} }, { @@ -155,7 +542,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "${junitVer}", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@%24%7BjunitVer%7D" + }, "extra_data": {} }, { @@ -166,7 +596,50 @@ "is_optional": true, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "${junitVer}", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@%24%7BjunitVer%7D" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle new file mode 100644 index 00000000000..938d03d3593 --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle @@ -0,0 +1,7 @@ +// From https://github.com/nicbell/material-lists/blob/4f66caf491fc001640e4472d091455a48e156dc0/listitem/build.gradle +dependencies { + implementation libs.material + implementation libs.androidx.constraintlayout + + testImplementation libs.junit +} diff --git a/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle-expected.json b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle-expected.json new file mode 100644 index 00000000000..de62b1ac2fe --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/build.gradle-expected.json @@ -0,0 +1,209 @@ +[ + { + "type": "maven", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:maven/com.google.android.material/material@1.13.0", + "extracted_requirement": "1.13.0", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "com.google.android.material", + "name": "material", + "version": "1.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.google.android.material/material@1.13.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/androidx.constraintlayout/constraintlayout@2.2.1", + "extracted_requirement": "2.2.1", + "scope": "implementation", + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "androidx.constraintlayout", + "name": "constraintlayout", + "version": "2.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/androidx.constraintlayout/constraintlayout@2.2.1" + }, + "extra_data": {} + }, + { + "purl": "pkg:maven/junit/junit@4.13.2", + "extracted_requirement": "4.13.2", + "scope": "testImplementation", + "is_runtime": false, + "is_optional": true, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "maven", + "namespace": "junit", + "name": "junit", + "version": "4.13.2", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/junit/junit@4.13.2" + }, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": null + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/gradle/libs.versions.toml b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/gradle/libs.versions.toml new file mode 100644 index 00000000000..6d80ffa1973 --- /dev/null +++ b/tests/packagedcode/data/build_gradle/groovy/material-lists-version-catalog/gradle/libs.versions.toml @@ -0,0 +1,7 @@ +# From https://github.com/nicbell/material-lists/blob/4f66caf491fc001640e4472d091455a48e156dc0/gradle/libs.versions.toml +[versions] + +[libraries] +androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.1" } +junit = { module = "junit:junit", version = "4.13.2" } +material = { module = "com.google.android.material:material", version = "1.13.0" } diff --git a/tests/packagedcode/data/build_gradle/kotlin/groovy-and-kotlin2/build.gradle.kts-expected.json b/tests/packagedcode/data/build_gradle/kotlin/groovy-and-kotlin2/build.gradle.kts-expected.json index c53b3213587..3bed72069c9 100644 --- a/tests/packagedcode/data/build_gradle/kotlin/groovy-and-kotlin2/build.gradle.kts-expected.json +++ b/tests/packagedcode/data/build_gradle/kotlin/groovy-and-kotlin2/build.gradle.kts-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.scala-lang", + "name": "scala-library", + "version": "2.11.12", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.scala-lang/scala-library@2.11.12" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/kotlin/kotlin1/build.gradle.kts-expected.json b/tests/packagedcode/data/build_gradle/kotlin/kotlin1/build.gradle.kts-expected.json index 84eb0bc976e..26300c5c105 100644 --- a/tests/packagedcode/data/build_gradle/kotlin/kotlin1/build.gradle.kts-expected.json +++ b/tests/packagedcode/data/build_gradle/kotlin/kotlin1/build.gradle.kts-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "com.android.tools.build", + "name": "gradle", + "version": "3.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/com.android.tools.build/gradle@3.3.0" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin", + "version": "1.3.11", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.jetbrains.kotlin/kotlin-gradle-plugin@1.3.11" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/kotlin/kotlin2/build.gradle.kts-expected.json b/tests/packagedcode/data/build_gradle/kotlin/kotlin2/build.gradle.kts-expected.json index e2dcf0fecff..f457cbffe4f 100644 --- a/tests/packagedcode/data/build_gradle/kotlin/kotlin2/build.gradle.kts-expected.json +++ b/tests/packagedcode/data/build_gradle/kotlin/kotlin2/build.gradle.kts-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.eclipse.jgit", + "name": "org.eclipse.jgit", + "version": "$jgitVersion", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.eclipse.jgit/org.eclipse.jgit@%24jgitVersion" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/build_gradle/kotlin/kotlin4/build.gradle.kts-expected.json b/tests/packagedcode/data/build_gradle/kotlin/kotlin4/build.gradle.kts-expected.json index f1245ea6b86..6cbd4588d59 100644 --- a/tests/packagedcode/data/build_gradle/kotlin/kotlin4/build.gradle.kts-expected.json +++ b/tests/packagedcode/data/build_gradle/kotlin/kotlin4/build.gradle.kts-expected.json @@ -45,7 +45,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.springframework", + "name": "spring-aop", + "version": "2.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.springframework/spring-aop@2.5" + }, "extra_data": {} }, { @@ -56,7 +99,50 @@ "is_optional": false, "is_pinned": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "maven", + "namespace": "org.hibernate", + "name": "hibernate", + "version": "3.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "build_gradle", + "purl": "pkg:maven/org.hibernate/hibernate@3.0.5" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/test_build_gradle.py b/tests/packagedcode/test_build_gradle.py index 90f0fa750c9..75aa205d7c5 100644 --- a/tests/packagedcode/test_build_gradle.py +++ b/tests/packagedcode/test_build_gradle.py @@ -50,6 +50,18 @@ def check_gradle_parse(location): class TestBuildGradleGroovy(PackageTester): test_data_dir = test_data_dir + def test_build_gradle_version_catalog_fdroid(self): + test_file = self.get_test_loc('build_gradle/groovy/fdroid-version-catalog/build.gradle') + expected_file = self.get_test_loc('build_gradle/groovy/fdroid-version-catalog/build.gradle-expected.json') + packages = build_gradle.BuildGradleHandler.parse(test_file) + self.check_packages_data(packages, expected_file, regen=REGEN_TEST_FIXTURES) + + def test_build_gradle_version_catalog_material_lists(self): + test_file = self.get_test_loc('build_gradle/groovy/material-lists-version-catalog/build.gradle') + expected_file = self.get_test_loc('build_gradle/groovy/material-lists-version-catalog/build.gradle-expected.json') + packages = build_gradle.BuildGradleHandler.parse(test_file) + self.check_packages_data(packages, expected_file, regen=REGEN_TEST_FIXTURES) + build_tests( test_dir=os.path.join(test_data_dir, 'build_gradle/groovy'), @@ -60,7 +72,6 @@ class TestBuildGradleGroovy(PackageTester): regen=REGEN_TEST_FIXTURES, ) - class TestBuildGradleKotlin(PackageTester): test_data_dir = test_data_dir