Skip to content

Commit 59d2482

Browse files
authored
Add FOSSA license scanning (#1718)
1 parent 92afa67 commit 59d2482

File tree

6 files changed

+84
-85
lines changed

6 files changed

+84
-85
lines changed

.fossa.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 3
2+
3+
targets:
4+
only:
5+
- type: gradle
6+
7+
experimental:
8+
gradle:
9+
configurations-only:
10+
# consumer will only be exposed to these dependencies
11+
- runtimeClasspath

.github/workflows/fossa.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: FOSSA
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
fossa:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
16+
17+
- uses: fossas/fossa-action@93a52ecf7c3ac7eb40f5de77fd69b1a19524de94 # v1.5.0
18+
with:
19+
api-key: ${{secrets.FOSSA_API_KEY}}

buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts

+5
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,11 @@ testing {
135135
dependencies {
136136
implementation(project(project.path))
137137

138+
implementation(enforcedPlatform("org.junit:junit-bom:5.11.4"))
139+
implementation(enforcedPlatform("org.testcontainers:testcontainers-bom:1.20.4"))
140+
implementation(enforcedPlatform("com.google.guava:guava-bom:33.4.0-jre"))
141+
implementation(enforcedPlatform("com.linecorp.armeria:armeria-bom:1.31.3"))
142+
138143
compileOnly("com.google.auto.value:auto-value-annotations")
139144
compileOnly("com.google.errorprone:error_prone_annotations")
140145
compileOnly("com.google.code.findbugs:jsr305")

dependencyManagement/build.gradle.kts

+47-83
Original file line numberDiff line numberDiff line change
@@ -2,96 +2,60 @@ plugins {
22
`java-platform`
33
}
44

5-
data class DependencySet(val group: String, val version: String, val modules: List<String>)
6-
7-
val dependencyVersions = hashMapOf<String, String>()
8-
rootProject.extra["versions"] = dependencyVersions
9-
105
val otelInstrumentationVersion = "2.12.0-alpha"
11-
12-
val DEPENDENCY_BOMS = listOf(
13-
"com.fasterxml.jackson:jackson-bom:2.18.2",
14-
"com.google.guava:guava-bom:33.4.0-jre",
15-
"com.linecorp.armeria:armeria-bom:1.31.3",
16-
"org.junit:junit-bom:5.11.4",
17-
"io.grpc:grpc-bom:1.70.0",
18-
"io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${otelInstrumentationVersion}",
19-
"org.testcontainers:testcontainers-bom:1.20.4"
20-
)
21-
22-
val autoServiceVersion = "1.1.1"
23-
val autoValueVersion = "1.11.0"
24-
val errorProneVersion = "2.36.0"
25-
val prometheusVersion = "0.16.0"
26-
val mockitoVersion = "4.11.0"
27-
val slf4jVersion = "2.0.16"
28-
val semConvVersion = "1.30.0-rc.1"
29-
30-
val CORE_DEPENDENCIES = listOf(
31-
"com.google.auto.service:auto-service:${autoServiceVersion}",
32-
"com.google.auto.service:auto-service-annotations:${autoServiceVersion}",
33-
"com.google.auto.value:auto-value:${autoValueVersion}",
34-
"com.google.auto.value:auto-value-annotations:${autoValueVersion}",
35-
"com.google.errorprone:error_prone_annotations:${errorProneVersion}",
36-
"com.google.errorprone:error_prone_core:${errorProneVersion}",
37-
"io.github.netmikey.logunit:logunit-jul:2.0.0",
38-
"io.opentelemetry.proto:opentelemetry-proto:1.5.0-alpha",
39-
// these two constraints can be removed once the opentelemetry-instrumentation-bom-alpha
40-
// is updated to contain the latest version of opentelemetry-semconv
41-
"io.opentelemetry.semconv:opentelemetry-semconv:${semConvVersion}",
42-
"io.opentelemetry.semconv:opentelemetry-semconv-incubating:${semConvVersion}",
43-
"io.prometheus:simpleclient:${prometheusVersion}",
44-
"io.prometheus:simpleclient_common:${prometheusVersion}",
45-
"io.prometheus:simpleclient_httpserver:${prometheusVersion}",
46-
"org.mockito:mockito-core:${mockitoVersion}",
47-
"org.mockito:mockito-inline:${mockitoVersion}",
48-
"org.mockito:mockito-junit-jupiter:${mockitoVersion}",
49-
"org.slf4j:slf4j-api:${slf4jVersion}",
50-
"org.slf4j:slf4j-simple:${slf4jVersion}",
51-
"org.slf4j:log4j-over-slf4j:${slf4jVersion}",
52-
"org.slf4j:jcl-over-slf4j:${slf4jVersion}",
53-
"org.slf4j:jul-to-slf4j:${slf4jVersion}"
54-
)
55-
56-
val DEPENDENCIES = listOf(
57-
"com.google.code.findbugs:annotations:3.0.1u2",
58-
"com.google.code.findbugs:jsr305:3.0.2",
59-
"com.squareup.okhttp3:okhttp:4.12.0",
60-
"com.uber.nullaway:nullaway:0.12.3",
61-
"org.assertj:assertj-core:3.27.3",
62-
"org.awaitility:awaitility:4.2.2",
63-
"org.bouncycastle:bcpkix-jdk15on:1.70",
64-
"org.junit-pioneer:junit-pioneer:1.9.1",
65-
"org.skyscreamer:jsonassert:1.5.3",
66-
"org.apache.kafka:kafka-clients:3.9.0",
67-
"org.testcontainers:kafka:1.20.4",
68-
"com.lmax:disruptor:3.4.4",
69-
"org.jctools:jctools-core:4.0.5",
70-
"tools.profiler:async-profiler:3.0",
71-
"com.blogspot.mydailyjava:weak-lock-free:0.18",
72-
"org.agrona:agrona:1.22.0"
73-
)
6+
val semconvVersion = "1.30.0-rc.1"
747

758
javaPlatform {
769
allowDependencies()
7710
}
7811

7912
dependencies {
80-
for (bom in DEPENDENCY_BOMS) {
81-
api(enforcedPlatform(bom))
82-
val split = bom.split(':')
83-
dependencyVersions[split[0]] = split[2]
84-
}
13+
// boms that are only used by tests should be added in otel.java-conventions.gradle.kts
14+
// under JvmTestSuite so they don't show up as runtime dependencies in license and vulnerability scans
15+
// (the constraints section below doesn't have this issue, and will only show up
16+
// as runtime dependencies if they are actually used as runtime dependencies)
17+
api(enforcedPlatform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${otelInstrumentationVersion}"))
18+
api(enforcedPlatform("com.fasterxml.jackson:jackson-bom:2.18.2"))
19+
8520
constraints {
86-
for (dependency in CORE_DEPENDENCIES) {
87-
api(dependency)
88-
val split = dependency.split(':')
89-
dependencyVersions[split[0]] = split[2]
90-
}
91-
for (dependency in DEPENDENCIES) {
92-
api(dependency)
93-
val split = dependency.split(':')
94-
dependencyVersions[split[0]] = split[2]
95-
}
21+
api("io.opentelemetry.semconv:opentelemetry-semconv:${semconvVersion}")
22+
api("io.opentelemetry.semconv:opentelemetry-semconv-incubating:${semconvVersion}")
23+
24+
api("com.google.auto.service:auto-service:1.1.1")
25+
api("com.google.auto.service:auto-service-annotations:1.1.1")
26+
api("com.google.auto.value:auto-value:1.11.0")
27+
api("com.google.auto.value:auto-value-annotations:1.11.0")
28+
api("com.google.errorprone:error_prone_annotations:2.36.0")
29+
api("com.google.errorprone:error_prone_core:2.36.0")
30+
api("io.github.netmikey.logunit:logunit-jul:2.0.0")
31+
api("io.opentelemetry.proto:opentelemetry-proto:1.5.0-alpha")
32+
api("io.prometheus:simpleclient:0.16.0")
33+
api("io.prometheus:simpleclient_common:0.16.0")
34+
api("io.prometheus:simpleclient_httpserver:0.16.0")
35+
api("org.mockito:mockito-core:4.11.0")
36+
api("org.mockito:mockito-inline:4.11.0")
37+
api("org.mockito:mockito-junit-jupiter:4.11.0")
38+
api("org.slf4j:slf4j-api:2.0.16")
39+
api("org.slf4j:slf4j-simple:2.0.16")
40+
api("org.slf4j:log4j-over-slf4j:2.0.16")
41+
api("org.slf4j:jcl-over-slf4j:2.0.16")
42+
api("org.slf4j:jul-to-slf4j:2.0.16")
43+
44+
api("com.google.code.findbugs:annotations:3.0.1u2")
45+
api("com.google.code.findbugs:jsr305:3.0.2")
46+
api("com.squareup.okhttp3:okhttp:4.12.0")
47+
api("com.uber.nullaway:nullaway:0.12.3")
48+
api("org.assertj:assertj-core:3.27.3")
49+
api("org.awaitility:awaitility:4.2.2")
50+
api("org.bouncycastle:bcpkix-jdk15on:1.70")
51+
api("org.junit-pioneer:junit-pioneer:1.9.1")
52+
api("org.skyscreamer:jsonassert:1.5.3")
53+
api("org.apache.kafka:kafka-clients:3.9.0")
54+
api("org.testcontainers:kafka:1.20.4")
55+
api("com.lmax:disruptor:3.4.4")
56+
api("org.jctools:jctools-core:4.0.5")
57+
api("tools.profiler:async-profiler:3.0")
58+
api("com.blogspot.mydailyjava:weak-lock-free:0.18")
59+
api("org.agrona:agrona:1.22.0")
9660
}
9761
}

jmx-metrics/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ val groovyVersion = "3.0.23"
2727
dependencies {
2828
api(platform("org.codehaus.groovy:groovy-bom:$groovyVersion"))
2929

30-
implementation("io.grpc:grpc-netty-shaded")
30+
implementation("io.grpc:grpc-netty-shaded:1.70.0")
3131
implementation("org.codehaus.groovy:groovy-jmx")
3232
implementation("org.codehaus.groovy:groovy")
3333
implementation("io.prometheus:simpleclient")

jmx-scraper/test-webapp/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ plugins {
77
description = "JMX metrics scraper - test web application"
88

99
dependencies {
10-
providedCompile("jakarta.servlet:jakarta.servlet-api:5.0.0")
10+
compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0")
1111
}

0 commit comments

Comments
 (0)