From 3f2e73bf922b372fdda1cdc7e71af208fa7e00c7 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 14:46:32 -0500 Subject: [PATCH 01/29] add test matrix Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 45 ++++++++++++++++++++++++ pom.xml | 7 ++-- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/multi-version-test.yml diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml new file mode 100644 index 000000000..1a2eac4c1 --- /dev/null +++ b/.github/workflows/multi-version-test.yml @@ -0,0 +1,45 @@ +--- +name: Multi-Version Compatibility Tests + +on: [pull_request] + +permissions: {} + +jobs: + compatibility-test: + name: Test on Java ${{ matrix.java }} + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + java: [11, 17, 21, 25] + steps: + - name: Check out + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + with: + persist-credentials: false + + - name: Set up Java ${{ matrix.java }} + id: setup-java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + + - name: Cache local Maven repository + uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven-java${{ matrix.java }}- + ${{ runner.os }}-maven- + + - name: Build and test on Java ${{ matrix.java }} + run: | + if [ "${{ matrix.java }}" = "11" ]; then + echo "Building on Java 11 - excluding integration-tests module (GraalVM plugin requires Java 17+)" + ./mvnw clean install -Dtest.java.version=11 -pl '!integration-tests' + else + ./mvnw clean install -Dtest.java.version=${{ matrix.java }} + fi \ No newline at end of file diff --git a/pom.xml b/pom.xml index b00d02d4d..c67c256ab 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,7 @@ 6.0.1 2.16.0-alpha 8 + 25 0.70 false false @@ -252,9 +253,9 @@ ${java.version} ${java.version} ${java.version} - 25 - 25 - 25 + ${test.java.version} + ${test.java.version} + ${test.java.version} true -Xlint:all,-serial,-processing,-options From c709cc72ed786e1670c001cc5643fdfbee8ffe09 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:08:52 -0500 Subject: [PATCH 02/29] make graal conditional for java 17+ Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 8 +- .../it-spring-boot-smoke-test/pom.xml | 147 ++++++++++-------- .../exporter/httpserver/HTTPServerTest.java | 26 +++- 3 files changed, 106 insertions(+), 75 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 1a2eac4c1..897cbd79d 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -36,10 +36,4 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: | - if [ "${{ matrix.java }}" = "11" ]; then - echo "Building on Java 11 - excluding integration-tests module (GraalVM plugin requires Java 17+)" - ./mvnw clean install -Dtest.java.version=11 -pl '!integration-tests' - else - ./mvnw clean install -Dtest.java.version=${{ matrix.java }} - fi \ No newline at end of file + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} \ No newline at end of file diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index 2f0e18cb1..ee45922f5 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -21,7 +21,7 @@ Spring Smoke Tests - 25 + ${test.java.version} 6.0.1 @@ -89,72 +89,6 @@ - - org.graalvm.buildtools - native-maven-plugin - - - - - --initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1 - - - --initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo - - - --initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext - - - --initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue - - --initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier - - - --initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider - - - --initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo - - - --initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods - - - --initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger - - - --initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator - - - --initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker - - - --initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult - - - --initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain - - - - - org.springframework.boot spring-boot-maven-plugin @@ -180,4 +114,83 @@ + + + graalvm-native + + [17,) + + + + + org.graalvm.buildtools + native-maven-plugin + + + + + --initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1 + + + --initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo + + + --initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext + + + --initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue + + --initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier + + + --initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider + + + --initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo + + + --initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods + + + --initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger + + + --initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator + + + --initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker + + + --initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult + + + --initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain + + + + + + + + + + diff --git a/prometheus-metrics-exporter-httpserver/src/test/java/io/prometheus/metrics/exporter/httpserver/HTTPServerTest.java b/prometheus-metrics-exporter-httpserver/src/test/java/io/prometheus/metrics/exporter/httpserver/HTTPServerTest.java index 9b7f658de..5959c5c91 100644 --- a/prometheus-metrics-exporter-httpserver/src/test/java/io/prometheus/metrics/exporter/httpserver/HTTPServerTest.java +++ b/prometheus-metrics-exporter-httpserver/src/test/java/io/prometheus/metrics/exporter/httpserver/HTTPServerTest.java @@ -12,6 +12,7 @@ import io.prometheus.metrics.model.registry.PrometheusScrapeRequest; import io.prometheus.metrics.model.snapshots.MetricSnapshots; import java.io.IOException; +import java.lang.reflect.Method; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; @@ -45,7 +46,7 @@ public Result authenticate(HttpExchange exchange) { HttpHandler handler = exchange -> { boolean found = false; - Subject current = Subject.current(); + Subject current = getCurrentSubject(); for (Principal p : current.getPrincipals()) { if (user.equals(p.getName())) { found = true; @@ -186,4 +187,27 @@ void healthDisabled() throws IOException { "204", "/-/healthy"); } + + /** + * Get current Subject using reflection to support both Java 17 and Java 18+. + * + *

Java 18+ has Subject.current(), but Java 17 and earlier require + * Subject.getSubject(AccessController.getContext()). + */ + @SuppressWarnings({"removal"}) + private static Subject getCurrentSubject() { + try { + Method currentMethod = Subject.class.getMethod("current"); + return (Subject) currentMethod.invoke(null); + } catch (NoSuchMethodException e) { + // Fall back to pre-Java 18 API + try { + return Subject.getSubject(java.security.AccessController.getContext()); + } catch (Exception ex) { + throw new RuntimeException("Failed to get current Subject", ex); + } + } catch (Exception e) { + throw new RuntimeException("Failed to invoke Subject.current()", e); + } + } } From 8472199034a2908923d0582bb75916dbe84d1859 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:27:25 -0500 Subject: [PATCH 03/29] errorprone too Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 4 +- .../it-spring-boot-smoke-test/pom.xml | 38 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 897cbd79d..86bd9b57e 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -1,5 +1,5 @@ --- -name: Multi-Version Compatibility Tests +name: Java-Version Compatibility Tests on: [pull_request] @@ -36,4 +36,4 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} \ No newline at end of file + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.check.skip=true -Dcheckstyle.skip=true -Dmaven.compiler.proc=none -Dwarnings=-nowarn \ No newline at end of file diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index 5bd82a5cd..eb0d1c5d8 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -93,30 +93,12 @@ org.springframework.boot spring-boot-maven-plugin - - com.diffplug.spotless - spotless-maven-plugin - 3.1.0 - - - - - - - - verify - - check - - - - - graalvm-native + java17-plus [17,) @@ -188,6 +170,24 @@ + + com.diffplug.spotless + spotless-maven-plugin + 3.1.0 + + + + + + + + verify + + check + + + + From 4d19fd7405363bb57805042fea55e0b896ee559e Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:29:59 -0500 Subject: [PATCH 04/29] fix spotless disable Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 86bd9b57e..ad73904d3 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -36,4 +36,4 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.check.skip=true -Dcheckstyle.skip=true -Dmaven.compiler.proc=none -Dwarnings=-nowarn \ No newline at end of file + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dmaven.compiler.proc=none -Dwarnings=-nowarn \ No newline at end of file From 18763cb5eec2decb2fe3fc9eef10efcb84806797 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:31:16 -0500 Subject: [PATCH 05/29] disable cache Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index ad73904d3..026749c1d 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -26,14 +26,14 @@ jobs: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: Cache local Maven repository - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-java${{ matrix.java }}- - ${{ runner.os }}-maven- +# - name: Cache local Maven repository +# uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 +# with: +# path: ~/.m2/repository +# key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} +# restore-keys: | +# ${{ runner.os }}-maven-java${{ matrix.java }}- +# ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dmaven.compiler.proc=none -Dwarnings=-nowarn \ No newline at end of file From 4bcc776ced1f8350c510f79168f342a1f91388bf Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:34:16 -0500 Subject: [PATCH 06/29] try again Signed-off-by: Jay DeLuca --- prometheus-metrics-parent/pom.xml | 48 +++++++++++++++++++------------ 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml index 075eaf782..c5b521b1a 100644 --- a/prometheus-metrics-parent/pom.xml +++ b/prometheus-metrics-parent/pom.xml @@ -68,29 +68,39 @@ - - com.diffplug.spotless - spotless-maven-plugin - 3.1.0 - - - - - ${spotless.skip} - - - - verify - - check - - - - + + java17-plus + + [17,) + + + + + com.diffplug.spotless + spotless-maven-plugin + 3.1.0 + + + + + ${spotless.skip} + + + + verify + + check + + + + + + + release From 58e0b20a9ce94de179c2bd2f08dbabebb492621e Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:39:14 -0500 Subject: [PATCH 07/29] move errorprone into diff profile Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 18 +++---- pom.xml | 64 ++++++++++++++---------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 026749c1d..2736e7229 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -26,14 +26,14 @@ jobs: distribution: 'temurin' java-version: ${{ matrix.java }} -# - name: Cache local Maven repository -# uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 -# with: -# path: ~/.m2/repository -# key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} -# restore-keys: | -# ${{ runner.os }}-maven-java${{ matrix.java }}- -# ${{ runner.os }}-maven- + - name: Cache local Maven repository + uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven-java${{ matrix.java }}- + ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dmaven.compiler.proc=none -Dwarnings=-nowarn \ No newline at end of file + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true \ No newline at end of file diff --git a/pom.xml b/pom.xml index 685d9a27e..fedd9571e 100644 --- a/pom.xml +++ b/pom.xml @@ -262,33 +262,7 @@ ${warnings} --should-stop=ifError=FLOW -XDcompilePolicy=simple - - -Xplugin:ErrorProne - -Xep:AlmostJavadoc:OFF - -Xep:MissingSummary:OFF - -Xep:LongDoubleConversion:OFF - -Xep:StringSplitter:OFF - -XepExcludedPaths:(.*/generated/.*|.*/src/test/java/.*|.*/examples/.*|.*/integration-tests/.*) - -XepOpt:NullAway:AnnotatedPackages=io.prometheus.metrics - - - - com.google.errorprone - error_prone_core - 2.46.0 - - - com.uber.nullaway - nullaway - 0.12.15 - - - @@ -449,6 +423,44 @@ + + errorprone + + [21,) + + + + + maven-compiler-plugin + + + + -Xplugin:ErrorProne + -Xep:AlmostJavadoc:OFF + -Xep:MissingSummary:OFF + -Xep:LongDoubleConversion:OFF + -Xep:StringSplitter:OFF + -XepExcludedPaths:(.*/generated/.*|.*/src/test/java/.*|.*/examples/.*|.*/integration-tests/.*) + -XepOpt:NullAway:AnnotatedPackages=io.prometheus.metrics + + + + + com.google.errorprone + error_prone_core + 2.46.0 + + + com.uber.nullaway + nullaway + 0.12.15 + + + + + + + release From 69f79012c1f7bbf2118e7a4107c5f0ad5cb65d1f Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 15 Jan 2026 15:44:03 -0500 Subject: [PATCH 08/29] another try Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 2 +- pom.xml | 49 ++++++++++++------------ 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 2736e7229..4fc7e07a7 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [17, 21, 25] steps: - name: Check out uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 diff --git a/pom.xml b/pom.xml index fedd9571e..f9b261c33 100644 --- a/pom.xml +++ b/pom.xml @@ -276,6 +276,31 @@ + + + + org.junit + junit-bom + ${junit-jupiter.version} + pom + import + + + io.opentelemetry.instrumentation + opentelemetry-instrumentation-bom-alpha + ${otel.instrumentation.version} + pom + import + + + io.opentelemetry + opentelemetry-proto + 1.7.1-alpha + test + + + + @@ -315,30 +340,6 @@ benchmarks integration-tests - - - - org.junit - junit-bom - ${junit-jupiter.version} - pom - import - - - io.opentelemetry.instrumentation - opentelemetry-instrumentation-bom-alpha - ${otel.instrumentation.version} - pom - import - - - io.opentelemetry - opentelemetry-proto - 1.7.1-alpha - test - - - From 36ed925a8a48db889e29f378c8d7be80f1af33ba Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 10:25:44 -0500 Subject: [PATCH 09/29] conditionally run additioanl profiles Signed-off-by: Jay DeLuca --- pom.xml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index f9b261c33..f796967f8 100644 --- a/pom.xml +++ b/pom.xml @@ -331,15 +331,10 @@ - default + test-dependencies true - - examples - benchmarks - integration-tests - @@ -404,6 +399,17 @@ + + examples-and-integration-tests + + [25,) + + + examples + benchmarks + integration-tests + + javadoc From ce39d7a6ebe93c5e3a86d80f91b4d5120dea163b Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 10:32:53 -0500 Subject: [PATCH 10/29] add flag to error prone Signed-off-by: Jay DeLuca --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index f796967f8..1cd3547e5 100644 --- a/pom.xml +++ b/pom.xml @@ -441,6 +441,7 @@ maven-compiler-plugin + -XDaddTypeAnnotationsToSymbol=true -Xplugin:ErrorProne -Xep:AlmostJavadoc:OFF From 1f49ac592dfd1de00c6ca3fa07878f1ce9a07a9e Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 11:14:56 -0500 Subject: [PATCH 11/29] move more dependencies Signed-off-by: Jay DeLuca --- pom.xml | 130 ++++++++++++++++++++++++++------------------------------ 1 file changed, 61 insertions(+), 69 deletions(-) diff --git a/pom.xml b/pom.xml index 1cd3547e5..50a763f46 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,67 @@ 3.0.2 provided + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + org.junit.jupiter + junit-jupiter-params + ${junit-jupiter.version} + test + + + org.mockito + mockito-core + 5.21.0 + test + + + org.assertj + assertj-core + 3.27.6 + test + + + com.google.guava + guava + ${guava.version} + test + + + org.slf4j + slf4j-simple + 2.0.17 + test + + + org.junit-pioneer + junit-pioneer + 2.3.0 + test + + + org.awaitility + awaitility + 4.3.0 + test + + + org.wiremock + wiremock + 3.13.2 + test + + + org.hamcrest + hamcrest-core + + + @@ -330,75 +391,6 @@ - - test-dependencies - - true - - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - org.junit.jupiter - junit-jupiter-params - ${junit-jupiter.version} - test - - - org.mockito - mockito-core - 5.21.0 - test - - - org.assertj - assertj-core - 3.27.6 - test - - - com.google.guava - guava - ${guava.version} - test - - - org.slf4j - slf4j-simple - 2.0.17 - test - - - org.junit-pioneer - junit-pioneer - 2.3.0 - test - - - org.awaitility - awaitility - 4.3.0 - test - - - org.wiremock - wiremock - 3.13.2 - test - - - org.hamcrest - hamcrest-core - - - - - examples-and-integration-tests From 2b2bbf544bb6b6b2f7262848a074655044bf7fa1 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 11:32:32 -0500 Subject: [PATCH 12/29] fix benchmarks module Signed-off-by: Jay DeLuca --- benchmarks/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index b2fad5766..b484e4754 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -85,8 +85,8 @@ 1.8 1.8 - - + + -parameters From 1df9c69545e5f219c6d968882d3b450036932b43 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 11:37:34 -0500 Subject: [PATCH 13/29] fix spring boot test module Signed-off-by: Jay DeLuca --- integration-tests/it-spring-boot-smoke-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index eb0d1c5d8..4d7f79c8d 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -21,7 +21,7 @@ Spring Smoke Tests - ${test.java.version} + 25 6.0.2 From 4d1f6a3ce897ebfe2cfc5a368aac64a7b159efd5 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 11:47:04 -0500 Subject: [PATCH 14/29] linting Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 4fc7e07a7..857bf34da 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -23,7 +23,7 @@ jobs: id: setup-java uses: actions/setup-java@v4 with: - distribution: 'temurin' + distribution: "temurin" java-version: ${{ matrix.java }} - name: Cache local Maven repository @@ -36,4 +36,4 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true \ No newline at end of file + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true From 5e4bfdf88b7fbd92b3907202f7e2ea8b6b46c679 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 11:52:59 -0500 Subject: [PATCH 15/29] linting Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 857bf34da..130153442 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -27,7 +27,7 @@ jobs: java-version: ${{ matrix.java }} - name: Cache local Maven repository - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 + uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} @@ -36,4 +36,10 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true + run: >- + ./mvnw clean install + -Dtest.java.version=${{ matrix.java }} + -Dspotless.skip=true + -Dcheckstyle.skip=true + -Dwarnings=-nowarn + -Dcoverage.skip=true From 690824f51892a2840f432d8df77a10f94b5dbc26 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 12:00:26 -0500 Subject: [PATCH 16/29] linting Signed-off-by: Jay DeLuca --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index 8e121f2a3..6da5b315f 100644 --- a/pom.xml +++ b/pom.xml @@ -440,7 +440,9 @@ -Xep:MissingSummary:OFF -Xep:LongDoubleConversion:OFF -Xep:StringSplitter:OFF + -XepExcludedPaths:(.*/generated/.*|.*/src/test/java/.*|.*/examples/.*|.*/integration-tests/.*) + -XepOpt:NullAway:AnnotatedPackages=io.prometheus.metrics From 16d922a95fe5a39528d02fc086413e9bf852edfc Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 19:11:20 -0500 Subject: [PATCH 17/29] linting Signed-off-by: Jay DeLuca --- .editorconfig | 2 +- pom.xml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8628b45bd..52cac2bc7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,7 +11,7 @@ max_line_length = 200 max_line_length = 300 [pom.xml] -max_line_length = 110 +max_line_length = 120 [*.py] # checked by black diff --git a/pom.xml b/pom.xml index 6da5b315f..8e121f2a3 100644 --- a/pom.xml +++ b/pom.xml @@ -440,9 +440,7 @@ -Xep:MissingSummary:OFF -Xep:LongDoubleConversion:OFF -Xep:StringSplitter:OFF - -XepExcludedPaths:(.*/generated/.*|.*/src/test/java/.*|.*/examples/.*|.*/integration-tests/.*) - -XepOpt:NullAway:AnnotatedPackages=io.prometheus.metrics From fe0f06ac23f183c11508bc0661e1856c2df7888b Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 19:36:21 -0500 Subject: [PATCH 18/29] change mvn package to install Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index a29b0d22f..a4e734604 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B package -P 'release,!default' -Dmaven.test.skip=true +mvn -B install -P 'release,!default' -Dmaven.test.skip=true From 780752ce6743d45b8ab45aa9d4f1dfa30b045330 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Tue, 20 Jan 2026 19:41:23 -0500 Subject: [PATCH 19/29] skip gpg Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index a4e734604..64ce4ad4b 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B install -P 'release,!default' -Dmaven.test.skip=true +mvn -B install -P 'release,!default' -Dmaven.test.skip=true -Dgpg.skip=true From beadc0aaf704002781e5f7dfa6752ee2ba764f77 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 06:13:59 -0500 Subject: [PATCH 20/29] undo Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index 64ce4ad4b..a29b0d22f 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B install -P 'release,!default' -Dmaven.test.skip=true -Dgpg.skip=true +mvn -B package -P 'release,!default' -Dmaven.test.skip=true From 2b45c091927f3787d5cd08f107f8ca7f2edaa55e Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 06:31:28 -0500 Subject: [PATCH 21/29] test install again and skip tests Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index a29b0d22f..7f4dbaf74 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B package -P 'release,!default' -Dmaven.test.skip=true +mvn -B install -P 'release,!default' -DskipTests -Dgpg.skip=true From e5c129ebdb46eb610a43105fe955471f5ec42145 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 06:35:46 -0500 Subject: [PATCH 22/29] exclude others from release build Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index 7f4dbaf74..448dd3d5f 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B install -P 'release,!default' -DskipTests -Dgpg.skip=true +mvn -B package -P 'release,!default,!examples-and-integration-tests' -Dmaven.test.skip=true -Dgpg.skip=true From ae836bf7b3f14ea6e0f1a363b25ea896c655793c Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 06:40:12 -0500 Subject: [PATCH 23/29] editorconfig Signed-off-by: Jay DeLuca --- .editorconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.editorconfig b/.editorconfig index 52cac2bc7..757b8e752 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,3 +17,6 @@ max_line_length = 120 # checked by black indent_size = 4 max_line_length = 120 + +[.mise/tasks/build-release.sh] +max_line_length = 110 \ No newline at end of file From c97268089dcf272119b731fc0b6604a85a7d00c2 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 07:19:47 -0500 Subject: [PATCH 24/29] Update .mise/tasks/build-release.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .mise/tasks/build-release.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index 448dd3d5f..019733ae6 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,4 +9,7 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B package -P 'release,!default,!examples-and-integration-tests' -Dmaven.test.skip=true -Dgpg.skip=true +mvn -B package \ + -P 'release,!default,!examples-and-integration-tests' \ + -Dmaven.test.skip=true \ + -Dgpg.skip=true From c6b6d5a3b49e3836d0227cd8399e9fbe85e5ac33 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 07:47:56 -0500 Subject: [PATCH 25/29] retry other java versions Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 2 +- .mise/tasks/build-release.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 130153442..1fc34972c 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - java: [17, 21, 25] + java: [8, 11, 17, 21, 25] steps: - name: Check out uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh index 019733ae6..448dd3d5f 100755 --- a/.mise/tasks/build-release.sh +++ b/.mise/tasks/build-release.sh @@ -9,7 +9,4 @@ set -euo pipefail VERSION=${usage_tag#v} mise run set-version "$VERSION" -mvn -B package \ - -P 'release,!default,!examples-and-integration-tests' \ - -Dmaven.test.skip=true \ - -Dgpg.skip=true +mvn -B package -P 'release,!default,!examples-and-integration-tests' -Dmaven.test.skip=true -Dgpg.skip=true From efc9c9f7ba9d6967fe5b0c14de327099c27f42b4 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 08:46:37 -0500 Subject: [PATCH 26/29] try and fix j8 and 11 Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 15 +++++++++++---- pom.xml | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 1fc34972c..f26db02da 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -19,13 +19,20 @@ jobs: with: persist-credentials: false - - name: Set up Java ${{ matrix.java }} - id: setup-java - uses: actions/setup-java@v4 + - name: Set up Java ${{ matrix.java }} for testing + id: setup-test-java + uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5 with: distribution: "temurin" java-version: ${{ matrix.java }} + - name: Set up Java 25 for Maven + id: setup-build-java + uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5 + with: + distribution: "temurin" + java-version: "25" + - name: Cache local Maven repository uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2 with: @@ -38,7 +45,7 @@ jobs: - name: Build and test on Java ${{ matrix.java }} run: >- ./mvnw clean install - -Dtest.java.version=${{ matrix.java }} + -Djvm=${{ steps.setup-test-java.outputs.path }}/bin/java -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn diff --git a/pom.xml b/pom.xml index 8e121f2a3..6d8e5666c 100644 --- a/pom.xml +++ b/pom.xml @@ -307,6 +307,9 @@ org.apache.maven.plugins maven-surefire-plugin + + ${jvm} + maven-compiler-plugin From 9548485f9367a8f13eec0cb14d3a1d004afb5670 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 09:54:56 -0500 Subject: [PATCH 27/29] undo 8 and 11 Signed-off-by: Jay DeLuca --- .github/workflows/multi-version-test.yml | 21 ++++----------------- pom.xml | 3 --- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index f26db02da..871c8168a 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -12,27 +12,20 @@ jobs: strategy: fail-fast: false matrix: - java: [8, 11, 17, 21, 25] + java: [17, 21, 25] steps: - name: Check out uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 with: persist-credentials: false - - name: Set up Java ${{ matrix.java }} for testing - id: setup-test-java + - name: Set up Java ${{ matrix.java }} + id: setup-java uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5 with: distribution: "temurin" java-version: ${{ matrix.java }} - - name: Set up Java 25 for Maven - id: setup-build-java - uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5 - with: - distribution: "temurin" - java-version: "25" - - name: Cache local Maven repository uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # v5.0.2 with: @@ -43,10 +36,4 @@ jobs: ${{ runner.os }}-maven- - name: Build and test on Java ${{ matrix.java }} - run: >- - ./mvnw clean install - -Djvm=${{ steps.setup-test-java.outputs.path }}/bin/java - -Dspotless.skip=true - -Dcheckstyle.skip=true - -Dwarnings=-nowarn - -Dcoverage.skip=true + run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true diff --git a/pom.xml b/pom.xml index 6d8e5666c..8e121f2a3 100644 --- a/pom.xml +++ b/pom.xml @@ -307,9 +307,6 @@ org.apache.maven.plugins maven-surefire-plugin - - ${jvm} - maven-compiler-plugin From 501afb0d220f36d1434568f5dcf03e8cdee32a49 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 09:59:15 -0500 Subject: [PATCH 28/29] editorconfig Signed-off-by: Jay DeLuca --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 757b8e752..5ab66a522 100644 --- a/.editorconfig +++ b/.editorconfig @@ -19,4 +19,4 @@ indent_size = 4 max_line_length = 120 [.mise/tasks/build-release.sh] -max_line_length = 110 \ No newline at end of file +max_line_length = 200 \ No newline at end of file From 7b3a748e475ce8f29f3e760d09c4262f78884735 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 21 Jan 2026 10:03:29 -0500 Subject: [PATCH 29/29] editorconfig Signed-off-by: Jay DeLuca --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 5ab66a522..3ba329fae 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,5 +18,5 @@ max_line_length = 120 indent_size = 4 max_line_length = 120 -[.mise/tasks/build-release.sh] +[{.mise/tasks/build-release.sh,.github/workflows/multi-version-test.yml}] max_line_length = 200 \ No newline at end of file