diff --git a/src/analysis.js b/src/analysis.js index 45ec660..c5eb42d 100644 --- a/src/analysis.js +++ b/src/analysis.js @@ -60,13 +60,13 @@ async function requestStack(provider, manifest, url, html = false, opts = {}) { /** * Send a component analysis request and get the report as 'application/json'. * @param {import('./provider').Provider} provider - the provided data for constructing the request - * @param {string} data - the content of the manifest + * @param {string} data - the content or the path of the manifest * @param {string} url - the backend url to send the request to * @param {{}} [opts={}] - optional various options to pass along the application * @returns {Promise} */ -async function requestComponent(provider, data, url, opts = {}) { - let provided = provider.provideComponent(data, opts) // throws error if content providing failed +async function requestComponent(provider, data, url, opts = {}, path = '') { + let provided = provider.provideComponent(data, opts,path) // throws error if content providing failed opts[rhdaOperationTypeHeader.toUpperCase().replaceAll("-","_")] = "component-analysis" if (process.env["EXHORT_DEBUG"] === "true") { console.log("Starting time of sending component analysis request to exhort server= " + new Date()) @@ -119,7 +119,13 @@ async function validateToken(url, opts = {}) { return resp.status } - +/** + * + * @param {string} headerName - the header name to populate in request + * @param headers + * @param {{}} [opts={}] - optional various options to pass along the application + * @private + */ function setRhdaHeader(headerName,headers,opts) { let rhdaHeaderValue = getCustom(headerName.toUpperCase().replaceAll("-", "_"), null, opts); if (rhdaHeaderValue) { diff --git a/src/cli.js b/src/cli.js index 6b95435..7724245 100644 --- a/src/cli.js +++ b/src/cli.js @@ -13,7 +13,7 @@ const component = { { desc: 'manifest name and type', type: 'string', - choices: ['pom.xml'] + choices: ['pom.xml','package.json', 'go.mo', 'requirements.txt'] } ).positional( 'manifest-content', diff --git a/src/index.js b/src/index.js index c2cb4e1..04288bf 100644 --- a/src/index.js +++ b/src/index.js @@ -92,10 +92,10 @@ async function stackAnalysis(manifest, html = false, opts = {}) { * @returns {Promise} * @throws {Error} if no matching provider, failed to get create content, or backend request failed */ -async function componentAnalysis(manifestType, data, opts = {}) { +async function componentAnalysis(manifestType, data, opts = {}, path = '') { url = selectExhortBackend(opts) let provider = match(manifestType, availableProviders) // throws error if no matching provider - return await analysis.requestComponent(provider, data, url, opts) // throws error request sending failed + return await analysis.requestComponent(provider, data, url, opts,path) // throws error request sending failed } async function validateToken(opts = {}) { diff --git a/src/providers/java_maven.js b/src/providers/java_maven.js index 938f402..c7060ac 100644 --- a/src/providers/java_maven.js +++ b/src/providers/java_maven.js @@ -52,10 +52,10 @@ function provideStack(manifest, opts = {}) { * @param {{}} [opts={}] - optional various options to pass along the application * @returns {Provided} */ -function provideComponent(data, opts = {}) { +function provideComponent(data, opts = {},path = '') { return { ecosystem, - content: getSbomForComponentAnalysis(data, opts), + content: getSbomForComponentAnalysis(data, opts,path), contentType: 'application/vnd.cyclonedx+json' } } @@ -218,7 +218,7 @@ function createSbomStackAnalysis(manifest, opts = {}) { * @returns {[Dependency]} the Dot Graph content * @private */ -function getSbomForComponentAnalysis(data, opts = {}) { +function getSbomForComponentAnalysis(data, opts = {}, manifestPath) { // get custom maven path let mvn = getCustomPath('mvn', opts) // verify maven is accessible @@ -228,25 +228,38 @@ function getSbomForComponentAnalysis(data, opts = {}) { } }) // create temp files for pom and effective pom - let tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'exhort_')) - let tmpEffectivePom = path.join(tmpDir, 'effective-pom.xml') - let tmpTargetPom = path.join(tmpDir, 'target-pom.xml') - // write target pom content to temp file - fs.writeFileSync(tmpTargetPom, data) + let tmpDir + let tmpEffectivePom + let targetPom + + if (manifestPath.trim() === '') { + tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'exhort_')) + tmpEffectivePom = path.join(tmpDir, 'effective-pom.xml') + targetPom = path.join(tmpDir, 'target-pom.xml') + // write target pom content to temp file + fs.writeFileSync(targetPom, data) + } + else + { + tmpEffectivePom = path.join(path.dirname(manifestPath), 'effective-pom.xml') + targetPom = manifestPath + } + + // create effective pom and save to temp file - execSync(`${mvn} -q help:effective-pom -Doutput=${tmpEffectivePom} -f ${tmpTargetPom}`, err => { + execSync(`${mvn} -q help:effective-pom -Doutput=${tmpEffectivePom} -f ${targetPom}`, err => { if (err) { throw new Error('failed creating maven effective pom') } }) // iterate over all dependencies in original pom and collect all ignored ones - let ignored = getDependencies(tmpTargetPom).filter(d => d.ignore) + let ignored = getDependencies(targetPom).filter(d => d.ignore) // iterate over all dependencies and create a package for every non-ignored one /** @type [Dependency] */ let dependencies = getDependencies(tmpEffectivePom) .filter(d => !(dependencyIn(d, ignored)) && !(dependencyInExcludingVersion(d, ignored))) let sbom = new Sbom(); - let rootDependency = getRootFromPom(tmpTargetPom); + let rootDependency = getRootFromPom(targetPom); let purlRoot = toPurl(rootDependency.groupId, rootDependency.artifactId, rootDependency.version) sbom.addRoot(purlRoot) let rootComponent = sbom.getRoot(); @@ -254,8 +267,14 @@ function getSbomForComponentAnalysis(data, opts = {}) { let currentPurl = toPurl(dep.groupId, dep.artifactId, dep.version) sbom.addDependency(rootComponent, currentPurl) }) - // delete temp files and directory - fs.rmSync(tmpDir, {recursive: true, force: true}) + if (manifestPath.trim() === '') { + // delete temp files and directory + fs.rmSync(tmpDir, {recursive: true, force: true}) + } + else { + fs.rmSync(path.join(path.dirname(manifestPath), 'effective-pom.xml')) + } + // return dependencies list return sbom.getAsJsonString() } @@ -317,7 +336,22 @@ function getDependencies(manifest) { // parse manifest pom.xml to json let pomJson = parser.parse(buf.toString()) // iterate over all dependencies and chery pick dependencies with a exhortignore comment - pomJson['project']['dependencies']['dependency'].forEach(dep => { + let pomXml; + // project without modules + if(pomJson['project']) + { + if(pomJson['project']['dependencies'] !== undefined ) { + pomXml = pomJson['project']['dependencies']['dependency'] + } + else + pomXml = [] + } + // project with modules + else { + pomXml = pomJson['projects']['project'].filter(project => project.dependencies !== undefined).flatMap(project => project.dependencies.dependency) + } + + pomXml.forEach(dep => { let ignore = false if (dep['#comment'] && dep['#comment'].includes('exhortignore')) { // #comment is an array or a string ignore = true diff --git a/test/providers/java_maven.test.js b/test/providers/java_maven.test.js index 3a06a17..6858de8 100644 --- a/test/providers/java_maven.test.js +++ b/test/providers/java_maven.test.js @@ -118,3 +118,42 @@ suite('testing the java-maven data provider', () => { }) }).beforeAll(() => clock = sinon.useFakeTimers(new Date('2023-08-07T00:00:00.000Z'))).afterAll(()=> {clock.restore()}); + +suite('testing the java-maven data provider with modules', () => { + [ + "pom_with_one_module", + "pom_with_multiple_modules" + + ].forEach(testCase => { + let scenario = testCase.replaceAll('_', ' ') + test(`verify maven data provided for component analysis using path for scenario ${scenario}`, async () => { + // load the expected list for the scenario + let expectedSbom = fs.readFileSync(`test/providers/tst_manifests/maven/${testCase}/component_analysis_expected_sbom.json`,).toString().trim() + // read target manifest file + expectedSbom = JSON.stringify(JSON.parse(expectedSbom)) + let effectivePomContent = fs.readFileSync(`test/providers/tst_manifests/maven/${testCase}/effectivePom.xml`,).toString() + let mockedExecFunction = function(command){ + if(command.includes(":effective-pom")){ + interceptAndOverwriteDataWithMock(command, effectivePomContent,"Doutput="); + } + } + javaMvnProviderRewire.__set__('execSync',mockedExecFunction) + // invoke sut component analysis for scenario manifest + let provideDataForComponent = await javaMvnProviderRewire.__get__("provideComponent")("",{},`test/providers/tst_manifests/maven/${testCase}/pom.xml`) + // verify returned data matches expectation + expect(provideDataForComponent).to.deep.equal({ + ecosystem: 'maven', + contentType: 'application/vnd.cyclonedx+json', + content: expectedSbom + }) + javaMvnProviderRewire.__ResetDependency__() + // expect(beautifiedOutput).to.deep.equal(expectedSbom) + + // these test cases takes ~2500-2700 ms each pr >10000 in CI (for the first test-case) + }).timeout(process.env.GITHUB_ACTIONS ? 40000 : 10000) + + + // these test cases takes ~1400-2000 ms each pr >10000 in CI (for the first test-case) + + }) +}).beforeAll(() => clock = sinon.useFakeTimers(new Date('2023-08-07T00:00:00.000Z'))).afterAll(()=> {clock.restore()}); diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/component_analysis_expected_sbom.json b/test/providers/tst_manifests/maven/pom_with_multiple_modules/component_analysis_expected_sbom.json new file mode 100644 index 0000000..bdcc06d --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/component_analysis_expected_sbom.json @@ -0,0 +1,319 @@ +{ + "bomFormat": "CycloneDX", + "specVersion": "1.4", + "version": 1, + "metadata": { + "timestamp": "2023-08-07T00:00:00.000Z", + "component": { + "group": "org.example", + "name": "root-example", + "version": "1.0-SNAPSHOT", + "purl": "pkg:maven/org.example/root-example@1.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.example/root-example@1.0-SNAPSHOT" + } + }, + "components": [ + { + "group": "org.example", + "name": "root-example", + "version": "1.0-SNAPSHOT", + "purl": "pkg:maven/org.example/root-example@1.0-SNAPSHOT", + "type": "application", + "bom-ref": "pkg:maven/org.example/root-example@1.0-SNAPSHOT" + }, + { + "group": "commons-io", + "name": "commons-io", + "version": "2.15.1", + "purl": "pkg:maven/commons-io/commons-io@2.15.1", + "type": "library", + "bom-ref": "pkg:maven/commons-io/commons-io@2.15.1" + }, + { + "group": "org.slf4j", + "name": "slf4j-api", + "version": "2.0.11", + "purl": "pkg:maven/org.slf4j/slf4j-api@2.0.11", + "type": "library", + "bom-ref": "pkg:maven/org.slf4j/slf4j-api@2.0.11" + }, + { + "group": "com.google.guava", + "name": "guava", + "version": "33.0.0-jre", + "purl": "pkg:maven/com.google.guava/guava@33.0.0-jre", + "type": "library", + "bom-ref": "pkg:maven/com.google.guava/guava@33.0.0-jre" + }, + { + "group": "org.apache.kafka", + "name": "kafka-clients", + "version": "3.6.1", + "purl": "pkg:maven/org.apache.kafka/kafka-clients@3.6.1", + "type": "library", + "bom-ref": "pkg:maven/org.apache.kafka/kafka-clients@3.6.1" + }, + { + "group": "org.apache.httpcomponents", + "name": "httpclient", + "version": "4.5.14", + "purl": "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14", + "type": "library", + "bom-ref": "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14" + }, + { + "group": "jakarta.xml.bind", + "name": "jakarta.xml.bind-api", + "version": "4.0.1", + "purl": "pkg:maven/jakarta.xml.bind/jakarta.xml.bind-api@4.0.1", + "type": "library", + "bom-ref": "pkg:maven/jakarta.xml.bind/jakarta.xml.bind-api@4.0.1" + }, + { + "group": "com.fasterxml.jackson.core", + "name": "jackson-databind", + "version": "2.16.1", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.1", + "type": "library", + "bom-ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.1" + }, + { + "group": "javax.servlet", + "name": "javax.servlet-api", + "version": "4.0.1", + "purl": "pkg:maven/javax.servlet/javax.servlet-api@4.0.1", + "type": "library", + "bom-ref": "pkg:maven/javax.servlet/javax.servlet-api@4.0.1" + }, + { + "group": "jakarta.inject", + "name": "jakarta.inject-api", + "version": "2.0.1", + "purl": "pkg:maven/jakarta.inject/jakarta.inject-api@2.0.1", + "type": "library", + "bom-ref": "pkg:maven/jakarta.inject/jakarta.inject-api@2.0.1" + }, + { + "group": "com.google.code.gson", + "name": "gson", + "version": "2.9.1", + "purl": "pkg:maven/com.google.code.gson/gson@2.9.1", + "type": "library", + "bom-ref": "pkg:maven/com.google.code.gson/gson@2.9.1" + }, + { + "group": "mysql", + "name": "mysql-connector-java", + "version": "8.0.33", + "purl": "pkg:maven/mysql/mysql-connector-java@8.0.33", + "type": "library", + "bom-ref": "pkg:maven/mysql/mysql-connector-java@8.0.33" + }, + { + "group": "org.postgresql", + "name": "postgresql", + "version": "42.7.1", + "purl": "pkg:maven/org.postgresql/postgresql@42.7.1", + "type": "library", + "bom-ref": "pkg:maven/org.postgresql/postgresql@42.7.1" + }, + { + "group": "org.aspectj", + "name": "aspectjrt", + "version": "1.9.21", + "purl": "pkg:maven/org.aspectj/aspectjrt@1.9.21", + "type": "library", + "bom-ref": "pkg:maven/org.aspectj/aspectjrt@1.9.21" + }, + { + "group": "com.google.inject", + "name": "guice", + "version": "7.0.0", + "purl": "pkg:maven/com.google.inject/guice@7.0.0", + "type": "library", + "bom-ref": "pkg:maven/com.google.inject/guice@7.0.0" + }, + { + "group": "org.mapstruct", + "name": "mapstruct", + "version": "1.5.5.Final", + "purl": "pkg:maven/org.mapstruct/mapstruct@1.5.5.Final", + "type": "library", + "bom-ref": "pkg:maven/org.mapstruct/mapstruct@1.5.5.Final" + }, + { + "group": "com.fasterxml.jackson.core", + "name": "jackson-databind", + "version": "2.16.0", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.0", + "type": "library", + "bom-ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.0" + }, + { + "group": "com.google.code.findbugs", + "name": "jsr305", + "version": "3.0.2", + "purl": "pkg:maven/com.google.code.findbugs/jsr305@3.0.2", + "type": "library", + "bom-ref": "pkg:maven/com.google.code.findbugs/jsr305@3.0.2" + }, + { + "group": "com.github.spotbugs", + "name": "spotbugs-annotations", + "version": "4.8.3", + "purl": "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.8.3", + "type": "library", + "bom-ref": "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.8.3" + }, + { + "group": "javax.enterprise", + "name": "cdi-api", + "version": "2", + "purl": "pkg:maven/javax.enterprise/cdi-api@2", + "type": "library", + "bom-ref": "pkg:maven/javax.enterprise/cdi-api@2" + }, + { + "group": "commons-configuration", + "name": "commons-configuration", + "version": "1.1", + "purl": "pkg:maven/commons-configuration/commons-configuration@1.1", + "type": "library", + "bom-ref": "pkg:maven/commons-configuration/commons-configuration@1.1" + }, + { + "group": "com.squareup.okhttp3", + "name": "okhttp", + "version": "4.12.0", + "purl": "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0", + "type": "library", + "bom-ref": "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0" + }, + { + "group": "org.projectlombok", + "name": "lombok", + "version": "1.18.30", + "purl": "pkg:maven/org.projectlombok/lombok@1.18.30", + "type": "library", + "bom-ref": "pkg:maven/org.projectlombok/lombok@1.18.30" + } + ], + "dependencies": [ + { + "ref": "pkg:maven/org.example/root-example@1.0-SNAPSHOT", + "dependsOn": [ + "pkg:maven/commons-io/commons-io@2.15.1", + "pkg:maven/org.slf4j/slf4j-api@2.0.11", + "pkg:maven/com.google.guava/guava@33.0.0-jre", + "pkg:maven/org.apache.kafka/kafka-clients@3.6.1", + "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14", + "pkg:maven/jakarta.xml.bind/jakarta.xml.bind-api@4.0.1", + "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.1", + "pkg:maven/javax.servlet/javax.servlet-api@4.0.1", + "pkg:maven/jakarta.inject/jakarta.inject-api@2.0.1", + "pkg:maven/com.google.code.gson/gson@2.9.1", + "pkg:maven/mysql/mysql-connector-java@8.0.33", + "pkg:maven/org.postgresql/postgresql@42.7.1", + "pkg:maven/org.aspectj/aspectjrt@1.9.21", + "pkg:maven/com.google.inject/guice@7.0.0", + "pkg:maven/org.mapstruct/mapstruct@1.5.5.Final", + "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.0", + "pkg:maven/com.google.code.findbugs/jsr305@3.0.2", + "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.8.3", + "pkg:maven/javax.enterprise/cdi-api@2", + "pkg:maven/commons-configuration/commons-configuration@1.1", + "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0", + "pkg:maven/org.projectlombok/lombok@1.18.30" + ] + }, + { + "ref": "pkg:maven/commons-io/commons-io@2.15.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.slf4j/slf4j-api@2.0.11", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.google.guava/guava@33.0.0-jre", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.apache.kafka/kafka-clients@3.6.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.apache.httpcomponents/httpclient@4.5.14", + "dependsOn": [] + }, + { + "ref": "pkg:maven/jakarta.xml.bind/jakarta.xml.bind-api@4.0.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/javax.servlet/javax.servlet-api@4.0.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/jakarta.inject/jakarta.inject-api@2.0.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.google.code.gson/gson@2.9.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/mysql/mysql-connector-java@8.0.33", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.postgresql/postgresql@42.7.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.aspectj/aspectjrt@1.9.21", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.google.inject/guice@7.0.0", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.mapstruct/mapstruct@1.5.5.Final", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.16.0", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.google.code.findbugs/jsr305@3.0.2", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.github.spotbugs/spotbugs-annotations@4.8.3", + "dependsOn": [] + }, + { + "ref": "pkg:maven/javax.enterprise/cdi-api@2", + "dependsOn": [] + }, + { + "ref": "pkg:maven/commons-configuration/commons-configuration@1.1", + "dependsOn": [] + }, + { + "ref": "pkg:maven/com.squareup.okhttp3/okhttp@4.12.0", + "dependsOn": [] + }, + { + "ref": "pkg:maven/org.projectlombok/lombok@1.18.30", + "dependsOn": [] + } + ] +} diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/effectivePom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/effectivePom.xml new file mode 100644 index 0000000..20e82cb --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/effectivePom.xml @@ -0,0 +1,1756 @@ + + + + + + + + + + + + + + + 4.0.0 + org.example + module1 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + commons-io + commons-io + 2.15.1 + compile + + + org.slf4j + slf4j-api + 2.0.11 + compile + + + com.google.guava + guava + 33.0.0-jre + compile + + + org.apache.kafka + kafka-clients + 3.6.1 + compile + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target + module1-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/target/site + + + + + + + + + 4.0.0 + org.example + module2 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + org.apache.httpcomponents + httpclient + 4.5.14 + compile + + + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.1 + compile + + + com.fasterxml.jackson.core + jackson-databind + 2.16.1 + compile + + + org.mockito + mockito-core + 5.9.0 + test + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target + module2-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/target/site + + + + + + + + + 4.0.0 + org.example + module3 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + org.assertj + assertj-core + 3.25.1 + test + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + jakarta.inject + jakarta.inject-api + 2.0.1 + compile + + + com.google.code.gson + gson + 2.9.1 + compile + + + mysql + mysql-connector-java + 8.0.33 + compile + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target + module3-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/target/site + + + + + + + + + 4.0.0 + org.example + module4 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + org.postgresql + postgresql + 42.7.1 + compile + + + org.aspectj + aspectjrt + 1.9.21 + runtime + + + com.google.inject + guice + 7.0.0 + compile + + + org.mapstruct + mapstruct + 1.5.5.Final + compile + + + com.fasterxml.jackson.core + jackson-databind + 2.16.0 + compile + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target + module4-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/target/site + + + + + + + + + 4.0.0 + org.example + module5 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target + module5-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/target/site + + + + + + + + + 4.0.0 + org.example + module6 + 1.0-SNAPSHOT + + 20 + 20 + UTF-8 + + + + com.google.code.findbugs + jsr305 + 3.0.2 + compile + + + com.github.spotbugs + spotbugs-annotations + 4.8.3 + compile + + + javax.enterprise + cdi-api + 2.0 + provided + + + commons-configuration + commons-configuration + 1.10 + compile + + + com.squareup.okhttp3 + okhttp + 4.12.0 + compile + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target + module6-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/target/site + + + + + + + + + 4.0.0 + org.example + root-example + 1.0-SNAPSHOT + pom + root-example + http://maven.apache.org + + module1 + module2 + module3 + module4 + module5 + module6 + + + + junit + junit + 3.8.1 + test + + + org.projectlombok + lombok + 1.18.30 + provided + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target + root-example-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_multiple_modules/target/site + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/pom.xml new file mode 100644 index 0000000..8bc5944 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module1/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + org.example + module1 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + + commons-io + commons-io + 2.15.1 + + + + + org.slf4j + slf4j-api + 2.0.11 + + + + + com.google.guava + guava + 33.0.0-jre + + + + org.apache.kafka + kafka-clients + 3.6.1 + + + + + + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/pom.xml new file mode 100644 index 0000000..45d8486 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module2/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + org.example + module2 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + org.apache.httpcomponents + httpclient + 4.5.14 + + + + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.1 + + + + com.fasterxml.jackson.core + jackson-databind + 2.16.1 + + + + org.mockito + mockito-core + 5.9.0 + test + + + + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/pom.xml new file mode 100644 index 0000000..2d48d54 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module3/pom.xml @@ -0,0 +1,57 @@ + + + 4.0.0 + + org.example + module3 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + org.assertj + assertj-core + 3.25.1 + test + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + + + jakarta.inject + jakarta.inject-api + 2.0.1 + + + + com.google.code.gson + gson + 2.9.1 + + + + mysql + mysql-connector-java + 8.0.33 + + + + + + + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/pom.xml new file mode 100644 index 0000000..e41af5f --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module4/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + org.example + module4 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + org.postgresql + postgresql + 42.7.1 + + + + org.aspectj + aspectjrt + 1.9.21 + runtime + + + + com.google.inject + guice + 7.0.0 + + + + org.mapstruct + mapstruct + 1.5.5.Final + + + + com.fasterxml.jackson.core + jackson-databind + 2.16.0 + + + + + + + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/pom.xml new file mode 100644 index 0000000..85ed711 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module5/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + org.example + module5 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/pom.xml new file mode 100644 index 0000000..a010f49 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/module6/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + org.example + module6 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + + com.google.code.findbugs + jsr305 + 3.0.2 + + + + com.github.spotbugs + spotbugs-annotations + 4.8.3 + + + + javax.enterprise + cdi-api + 2.0 + provided + + + + commons-configuration + commons-configuration + 1.10 + + + + com.squareup.okhttp3 + okhttp + 4.12.0 + + + + + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/pom.xml b/test/providers/tst_manifests/maven/pom_with_multiple_modules/pom.xml new file mode 100644 index 0000000..afe0839 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/pom.xml @@ -0,0 +1,33 @@ + + 4.0.0 + org.example + root-example + pom + 1.0-SNAPSHOT + root-example + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + org.projectlombok + lombok + 1.18.30 + provided + + + + module1 + module2 + module3 + module4 + module5 + module6 + + diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/java/pom/App.java b/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/java/pom/App.java new file mode 100644 index 0000000..720734f --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/main/java/pom/App.java @@ -0,0 +1,13 @@ +package pom; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/test/java/pom/AppTest.java b/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/test/java/pom/AppTest.java new file mode 100644 index 0000000..a654303 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_multiple_modules/src/test/java/pom/AppTest.java @@ -0,0 +1,38 @@ +package pom; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/depTree.txt b/test/providers/tst_manifests/maven/pom_with_one_module/common/depTree.txt new file mode 100644 index 0000000..3fb5f9f --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/depTree.txt @@ -0,0 +1,5 @@ +org.zgrinber.tracing:common:jar:1.0-SNAPSHOT ++- com.fasterxml.jackson.core:jackson-databind:jar:2.15.2:compile +| +- com.fasterxml.jackson.core:jackson-annotations:jar:2.15.2:compile +| \- com.fasterxml.jackson.core:jackson-core:jar:2.15.2:compile +\- junit:junit:jar:3.8.1:test diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/pom.xml b/test/providers/tst_manifests/maven/pom_with_one_module/common/pom.xml new file mode 100644 index 0000000..f89ad7e --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + org.zgrinber.tracing + tracing-parent + 1.0 + + org.zgrinber.tracing + common + 1.0-SNAPSHOT + common + jar + http://maven.apache.org + + + + com.fasterxml.jackson.core + jackson-databind + 2.15.2 + compile + + + + 17 + 17 + + diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/main.iml b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/main.iml new file mode 100644 index 0000000..8d3c5a3 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/main.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/dto/CarDto.java b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/dto/CarDto.java new file mode 100644 index 0000000..1412942 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/dto/CarDto.java @@ -0,0 +1,133 @@ +package org.zgrinber.tracing.common.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.util.Objects; + + +public class CarDto +{ + @JsonInclude(JsonInclude.Include.NON_NULL) + private String id; + private String manufacturer; + private String country; + private String model; + private Integer year; + private String color; + private Integer price; + private String currency; + + + public static CarDto getNewCarDtoInstance() + { + return new CarDto(); + } + + private CarDto() + { + + } + public CarDto(String id,String manufacturer, String country, String model, Integer year, String color, Integer price, String currency) { + this.manufacturer = manufacturer; + this.country = country; + this.model = model; + this.year = year; + this.color = color; + this.price = price; + this.currency = currency; + this.id = id; + + } + + public boolean equals(Object object) { + if (this == object) return true; + if (object == null || getClass() != object.getClass()) return false; + if (!super.equals(object)) return false; + CarDto carDto = (CarDto) object; + return java.util.Objects.equals(id, carDto.id) && java.util.Objects.equals(manufacturer, carDto.manufacturer) && java.util.Objects.equals(country, carDto.country) && java.util.Objects.equals(model, carDto.model) && java.util.Objects.equals(year, carDto.year) && java.util.Objects.equals(color, carDto.color) && java.util.Objects.equals(price, carDto.price) && java.util.Objects.equals(currency, carDto.currency); + } + + public int hashCode() { + return Objects.hash(super.hashCode(), id, manufacturer, country, model, year, color, price, currency); + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public Integer getYear() { + return year; + } + + public void setYear(Integer year) { + this.year = year; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public Integer getPrice() { + return price; + } + + public void setPrice(Integer price) { + this.price = price; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @java.lang.Override + public java.lang.String toString() { + return "CarDto{" + + "id='" + id + '\'' + + ", manufacturer='" + manufacturer + '\'' + + ", country='" + country + '\'' + + ", model='" + model + '\'' + + ", year=" + year + + ", color='" + color + '\'' + + ", price=" + price + + ", currency='" + currency + '\'' + + '}'; + } + +} diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/exceptions/RestApiException.java b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/exceptions/RestApiException.java new file mode 100644 index 0000000..c767de3 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/exceptions/RestApiException.java @@ -0,0 +1,26 @@ +package org.zgrinber.tracing.common.exceptions; + + + +public class RestApiException extends Exception +{ + + private Integer httpStatusCode; + private String originalMessage; + + + public RestApiException(String message, Integer httpStatusCode, String originalMessage) { + super(message); + this.httpStatusCode = httpStatusCode; + this.originalMessage = originalMessage; + } + + public Integer getHttpStatusCode() { + return httpStatusCode; + } + + public String getOriginalMessage() { + return originalMessage; + } +} + diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/service/CarService.java b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/service/CarService.java new file mode 100644 index 0000000..801cd9b --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java/org/zgrinber/tracing/common/common/service/CarService.java @@ -0,0 +1,19 @@ +package org.zgrinber.tracing.common.service; + +import org.zgrinber.tracing.common.dto.CarDto; +import org.zgrinber.tracing.common.exceptions.RestApiException; + +import java.util.List; + +public interface CarService { + + CarDto getOneCar(String carId) throws RestApiException; + List getAllCars() throws RestApiException; + void createCar(CarDto car) throws RestApiException; + void updateCar(CarDto car) throws RestApiException; + + void deleteCar(String carId) throws RestApiException; + + + +} diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/component_analysis_expected_sbom.json b/test/providers/tst_manifests/maven/pom_with_one_module/component_analysis_expected_sbom.json new file mode 100644 index 0000000..5e85b63 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/component_analysis_expected_sbom.json @@ -0,0 +1,46 @@ +{ + "bomFormat": "CycloneDX", + "specVersion": "1.4", + "version": 1, + "metadata": { + "timestamp": "2023-08-07T00:00:00.000Z", + "component": { + "group": "org.zgrinber.tracing", + "name": "tracing-parent", + "version": "1", + "purl": "pkg:maven/org.zgrinber.tracing/tracing-parent@1", + "type": "application", + "bom-ref": "pkg:maven/org.zgrinber.tracing/tracing-parent@1" + } + }, + "components": [ + { + "group": "org.zgrinber.tracing", + "name": "tracing-parent", + "version": "1", + "purl": "pkg:maven/org.zgrinber.tracing/tracing-parent@1", + "type": "application", + "bom-ref": "pkg:maven/org.zgrinber.tracing/tracing-parent@1" + }, + { + "group": "com.fasterxml.jackson.core", + "name": "jackson-databind", + "version": "2.15.2", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.15.2", + "type": "library", + "bom-ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.15.2" + } + ], + "dependencies": [ + { + "ref": "pkg:maven/org.zgrinber.tracing/tracing-parent@1", + "dependsOn": [ + "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.15.2" + ] + }, + { + "ref": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.15.2", + "dependsOn": [] + } + ] +} diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/effectivePom.xml b/test/providers/tst_manifests/maven/pom_with_one_module/effectivePom.xml new file mode 100644 index 0000000..95e4ce5 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/effectivePom.xml @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + 4.0.0 + org.zgrinber.tracing + tracing-parent + 1.0 + pom + tracing-parent + http://maven.apache.org + + common + + + + junit + junit + 3.8.1 + test + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target + tracing-parent-1.0 + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/target/site + + + + + + + + + + 4.0.0 + + org.zgrinber.tracing + tracing-parent + 1.0 + + org.zgrinber.tracing + common + 1.0-SNAPSHOT + common + http://maven.apache.org + + 17 + 17 + + + + com.fasterxml.jackson.core + jackson-databind + 2.15.2 + compile + + + junit + junit + 3.8.1 + test + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/scripts + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/src/test/java + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/classes + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/test-classes + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/src/main/resources + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/src/test/resources + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target + common-1.0-SNAPSHOT + + + + maven-antrun-plugin + 1.3 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-dependency-plugin + 2.8 + + + maven-release-plugin + 2.5.3 + + + + + + maven-clean-plugin + 2.5 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 2.6 + + + default-testResources + process-test-resources + + testResources + + + + default-resources + process-resources + + resources + + + + + + maven-jar-plugin + 2.4 + + + default-jar + package + + jar + + + + + + maven-compiler-plugin + 3.1 + + + default-compile + compile + + compile + + + + default-testCompile + test-compile + + testCompile + + + + + + maven-surefire-plugin + 2.12.4 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.4 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.7 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /home/zgrinber/git/exhort-javascript-api/test/providers/tst_manifests/maven/pom_with_one_module/common/target/site + + + diff --git a/test/providers/tst_manifests/maven/pom_with_one_module/pom.xml b/test/providers/tst_manifests/maven/pom_with_one_module/pom.xml new file mode 100644 index 0000000..9314139 --- /dev/null +++ b/test/providers/tst_manifests/maven/pom_with_one_module/pom.xml @@ -0,0 +1,55 @@ + + + + + 4.0.0 + + + org.zgrinber.tracing + + + tracing-parent + + + pom + + + 1.0 + + + tracing-parent + + + http://maven.apache.org + + + + + + + + + junit + + + junit + + + 3.8.1 + + + test + + + + + + + + + + + common + + +