diff --git a/src/analysis.js b/src/analysis.js index 826fc34..5159c87 100644 --- a/src/analysis.js +++ b/src/analysis.js @@ -74,7 +74,13 @@ async function requestStack(provider, manifest, url, html = false, opts = {}) { * @returns {Promise} */ async function requestComponent(provider, data, url, opts = {}, path = '') { - opts["source-manifest"]= Buffer.from(data).toString('base64') + if(data.trim() !== "") { + opts["source-manifest"]= Buffer.from(data).toString('base64') + // for gradle component analysis is an exception and requires only path exclusively, and not data content. + }else { + opts["source-manifest"]= Buffer.from(fs.readFileSync(path).toString()).toString('base64') + } + let provided = provider.provideComponent(data, opts,path) // throws error if content providing failed opts["source-manifest"]= "" opts[rhdaOperationTypeHeader.toUpperCase().replaceAll("-","_")] = "component-analysis" diff --git a/src/providers/java_gradle.js b/src/providers/java_gradle.js index bc64fda..1ec753d 100644 --- a/src/providers/java_gradle.js +++ b/src/providers/java_gradle.js @@ -81,6 +81,7 @@ function removeDuplicateIfExists(arrayForSbom,theContent) { }; } +const componentAnalysisConfigs = ["api", "implementation", "compileOnly","runtimeOnly"]; export default class Java_gradle extends Base_java { /** @@ -141,7 +142,7 @@ export default class Java_gradle extends Base_java { if (process.env["EXHORT_DEBUG"] === "true") { console.log("Dependency tree that will be used as input for creating the BOM =>" + EOL + EOL + content) } - let sbom = this.#buildSbomFileFromTextFormat(content, properties, "runtimeClasspath", manifest,opts) + let sbom = this.#buildSbomFileFromTextFormat(content, properties, ["runtimeClasspath"], manifest,opts) return sbom } @@ -192,19 +193,19 @@ export default class Java_gradle extends Base_java { #getSbomForComponentAnalysis(opts = {}, manifestPath) { let content = this.#getDependencies(manifestPath) let properties = this.#extractProperties(manifestPath, opts) - let configurationNames = new Array() - configurationNames.push("api", "implementation", "compile") - let configName - for (let config of configurationNames) { - let directDeps = this.#extractLines(content, config); - if (directDeps.length > 0) { - configName = config - break - - } - } - - let sbom = this.#buildSbomFileFromTextFormat(content, properties, configName, manifestPath, opts) + let configurationNames = componentAnalysisConfigs + + // let configName + // for (let config of configurationNames) { + // let directDeps = this.#extractLines(content, config); + // if (directDeps.length > 0) { + // configName = config + // break + // + // } + // } + + let sbom = this.#buildSbomFileFromTextFormat(content, properties, configurationNames, manifestPath, opts) return sbom } @@ -248,15 +249,19 @@ export default class Java_gradle extends Base_java { * * @param content {string} - content of the dependency tree received from gradle dependencies command * @param properties {Object} - properties of the gradle project. - * @param configName {string} - the configuration name of dependencies to include in sbom. + * @param configNames {string[]} - the configuration name of dependencies to include in sbom. * @return {string} return sbom json string of the build.gradle manifest file */ - #buildSbomFileFromTextFormat(content, properties, configName, manifestPath, opts = {}) { + #buildSbomFileFromTextFormat(content, properties, configNames, manifestPath, opts = {}) { let sbom = new Sbom(); let root = `${properties.group}:${properties[ROOT_PROJECT_KEY_NAME].match(/Root project '(.+)'/)[1]}:jar:${properties.version}` let rootPurl = this.parseDep(root) sbom.addRoot(rootPurl) - let lines = this.#extractLines(content, configName) + let lines = new Array() + configNames.forEach(configName => { + let deps = this.#extractLines(content, configName) + lines = lines.concat(deps) + }) // transform gradle dependency tree to the form of maven dependency tree to use common sbom build algorithm in Base_java parent */ let arrayForSbom = lines.filter(dep => dep.trim() !== "").map(dependency => dependency.replaceAll("---", "-").replaceAll(" ", " ")) .map(dependency => dependency.replaceAll(/:(.*):(.*) -> (.*)$/g, ":$1:$3")) @@ -267,7 +272,7 @@ export default class Java_gradle extends Base_java { if(arrayForSbom.length > 0 && !containsVersion(arrayForSbom[0])) { arrayForSbom = arrayForSbom.slice(1) } - if( ["api", "implementation", "compile"].includes(configName) ) { + if( configNames === componentAnalysisConfigs ) { arrayForSbom.forEach( removeDuplicateIfExists.call(this, arrayForSbom,content)) } this.parseDependencyTree(root + ":compile", 0, arrayForSbom, sbom) diff --git a/test/providers/tst_manifests/gradle/deps_with_ignore_notations/expected_component_sbom.json b/test/providers/tst_manifests/gradle/deps_with_ignore_notations/expected_component_sbom.json index 46811ef..7ac14c0 100644 --- a/test/providers/tst_manifests/gradle/deps_with_ignore_notations/expected_component_sbom.json +++ b/test/providers/tst_manifests/gradle/deps_with_ignore_notations/expected_component_sbom.json @@ -1,150 +1,163 @@ { - "bomFormat" : "CycloneDX", - "specVersion" : "1.4", - "version" : 1, - "metadata" : { - "timestamp" : "2023-08-07T00:00:00.000Z", - "component" : { - "group" : "org.acme.dbaas", - "name" : "postgresql-orm-quarkus", - "version" : "1.0.0-SNAPSHOT", - "purl" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "type" : "application", - "bom-ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" - } - }, - "components" : [ - { - "group" : "org.acme.dbaas", - "name" : "postgresql-orm-quarkus", - "version" : "1.0.0-SNAPSHOT", - "purl" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "type" : "application", - "bom-ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-hibernate-orm", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-agroal", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-resteasy", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-resteasy-jackson", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-jdbc-postgresql", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-kubernetes-service-binding", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-container-image-docker", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final" - }, - { - "group" : "jakarta.validation", - "name" : "jakarta.validation-api", - "version" : "2.0.2", - "purl" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "type" : "library", - "bom-ref" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-vertx-http", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" - } - ], - "dependencies" : [ - { - "ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "dependsOn" : [ - "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" - ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", - "dependsOn" : [ ] - } - ] + "bomFormat": "CycloneDX", + "specVersion": "1.4", + "version": 1, + "metadata": { + "timestamp": "2023-08-07T00:00:00.000Z", + "component": { + "group": "org.acme.dbaas", + "name": "postgresql-orm-quarkus", + "version": "1.0.0-SNAPSHOT", + "purl": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" + } + }, + "components": [ + { + "group": "org.acme.dbaas", + "name": "postgresql-orm-quarkus", + "version": "1.0.0-SNAPSHOT", + "purl": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" + }, + { + "group": "io.quarkus", + "name": "quarkus-hibernate-orm", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-agroal", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-resteasy", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-resteasy-jackson", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-jdbc-postgresql", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-kubernetes-service-binding", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-container-image-docker", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final" + }, + { + "group": "jakarta.validation", + "name": "jakarta.validation-api", + "version": "2.0.2", + "purl": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "type": "library", + "bom-ref": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2" + }, + { + "group": "io.quarkus", + "name": "quarkus-vertx-http", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-hibernate-orm-deployment", + "version": "2.0.2.Final", + "purl": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final" + } + ], + "dependencies": [ + { + "ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "dependsOn": [ + "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final" + ] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final", + "dependsOn": [] + } + ] } diff --git a/test/providers/tst_manifests/gradle/deps_with_no_ignore_common_paths/expected_component_sbom.json b/test/providers/tst_manifests/gradle/deps_with_no_ignore_common_paths/expected_component_sbom.json index 46811ef..7ac14c0 100644 --- a/test/providers/tst_manifests/gradle/deps_with_no_ignore_common_paths/expected_component_sbom.json +++ b/test/providers/tst_manifests/gradle/deps_with_no_ignore_common_paths/expected_component_sbom.json @@ -1,150 +1,163 @@ { - "bomFormat" : "CycloneDX", - "specVersion" : "1.4", - "version" : 1, - "metadata" : { - "timestamp" : "2023-08-07T00:00:00.000Z", - "component" : { - "group" : "org.acme.dbaas", - "name" : "postgresql-orm-quarkus", - "version" : "1.0.0-SNAPSHOT", - "purl" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "type" : "application", - "bom-ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" - } - }, - "components" : [ - { - "group" : "org.acme.dbaas", - "name" : "postgresql-orm-quarkus", - "version" : "1.0.0-SNAPSHOT", - "purl" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "type" : "application", - "bom-ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-hibernate-orm", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-agroal", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-resteasy", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-resteasy-jackson", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-jdbc-postgresql", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-kubernetes-service-binding", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-container-image-docker", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final" - }, - { - "group" : "jakarta.validation", - "name" : "jakarta.validation-api", - "version" : "2.0.2", - "purl" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "type" : "library", - "bom-ref" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2" - }, - { - "group" : "io.quarkus", - "name" : "quarkus-vertx-http", - "version" : "2.13.5.Final", - "purl" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", - "type" : "library", - "bom-ref" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" - } - ], - "dependencies" : [ - { - "ref" : "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", - "dependsOn" : [ - "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" - ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", - "dependsOn" : [ ] - }, - { - "ref" : "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", - "dependsOn" : [ ] - } - ] + "bomFormat": "CycloneDX", + "specVersion": "1.4", + "version": 1, + "metadata": { + "timestamp": "2023-08-07T00:00:00.000Z", + "component": { + "group": "org.acme.dbaas", + "name": "postgresql-orm-quarkus", + "version": "1.0.0-SNAPSHOT", + "purl": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" + } + }, + "components": [ + { + "group": "org.acme.dbaas", + "name": "postgresql-orm-quarkus", + "version": "1.0.0-SNAPSHOT", + "purl": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT" + }, + { + "group": "io.quarkus", + "name": "quarkus-hibernate-orm", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-agroal", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-resteasy", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-resteasy-jackson", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-jdbc-postgresql", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-kubernetes-service-binding", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-container-image-docker", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final" + }, + { + "group": "jakarta.validation", + "name": "jakarta.validation-api", + "version": "2.0.2", + "purl": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "type": "library", + "bom-ref": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2" + }, + { + "group": "io.quarkus", + "name": "quarkus-vertx-http", + "version": "2.13.5.Final", + "purl": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final" + }, + { + "group": "io.quarkus", + "name": "quarkus-hibernate-orm-deployment", + "version": "2.0.2.Final", + "purl": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final", + "type": "library", + "bom-ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final" + } + ], + "dependencies": [ + { + "ref": "pkg:maven/org.acme.dbaas/postgresql-orm-quarkus@1.0.0-SNAPSHOT", + "dependsOn": [ + "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final" + ] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-agroal@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-resteasy@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-resteasy-jackson@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-jdbc-postgresql@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-kubernetes-service-binding@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-container-image-docker@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/jakarta.validation/jakarta.validation-api@2.0.2", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-vertx-http@2.13.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/io.quarkus/quarkus-hibernate-orm-deployment@2.0.2.Final", + "dependsOn": [] + } + ] }