test: validate JMX Exporter compatibility by zeitlinger · Pull Request #2167 · prometheus/client_java (original) (raw)
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
The pinned JMX Exporter and Micrometer releases do not build on the primary JDK (Java 25): JMX Exporter's spotless google-java-format and Micrometer's bundled Kotlin compiler both predate JDK 25 support.
Add per-environment mise configs (mirroring .mise/envs/native) that override the java tool to Temurin 21 LTS and run the existing compatibility drivers, and point the workflows at those envs.
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
The compatibility builds run under an LTS JDK (Java 21), but our test sources target release 25 (test.java.version). -DskipTests still compiles test sources, so installing the local artifacts failed with 'release version 25 not supported'. Use -Dmaven.test.skip=true: downstream compatibility tests need only our main artifacts.
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
zeitlinger deleted the validation/jmx-exporter-compatibility branch
This was referenced
Jun 2, 2026
zeitlinger added a commit that referenced this pull request
Follow-up to #2167 ([review comment](#2167 (comment))): switches the JMX Exporter compatibility job to the quick test configuration and fixes the gaps that surfaced.
Changes
- Quick test config (
jmx_exporter_compat.py): build the full reactor (clean install) sointegration_test_suiteactually runs, pinned to a single Java + Prometheus distribution. The pins are read from the checked-out jmx_exporter'srun-quick-test.shso they stay aligned with upstream;-Dparamixel.parallelismset to CPU count. - Test
main, not the release: the integration suite only compiles against currentclient_javawhen jmx_exporter imports the stableexpositionformats.generated.Metricsclass (#1873). Release 1.5.0 imports the version-stampedcom_google_protobuf_4_32_0package directly, which breaks on protobuf bumps (now 4.35.0);mainuses the stable class. Tracked by #2179 — switch the ref back to a pinned release once one ships the fix. - Renovate guard (
renovate.json5): block major JDK bumps for the jmx-exporter and micrometer compat env files (they pin an LTS JDK the upstream release supports). This supersedes #2173-style bumps.
Local validation: mise run lint:fix; image-pin regex verified
against prometheus/jmx_exporter@main. Full integration run is
validated by CI (needs Docker + JDK 21).
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
jaydeluca pushed a commit that referenced this pull request
Draft validation PR for the unmodified JMX Exporter compatibility story.
This intentionally does not depend on #2114. Vanilla JMX Exporter does not use the typed descriptor API, so this PR validates the patch-compatible path independently of typed descriptors.
This validates upstream prometheus/jmx_exporter@main against current
client_java by installing local io.prometheus artifacts and running
the JMX
Exporter collector/common/javaagent/standalone Maven tests against them.
Local validation:
mise run jmx-exporter:testmise run lint:fixmise run lintactionlint .github/workflows/jmx-exporter-compatibility.yml
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com Co-authored-by: Doug Hoard dhoard@users.noreply.github.com Signed-off-by: Jay DeLuca jaydeluca4@gmail.com
jaydeluca pushed a commit that referenced this pull request
Follow-up to #2167 ([review comment](#2167 (comment))): switches the JMX Exporter compatibility job to the quick test configuration and fixes the gaps that surfaced.
Changes
- Quick test config (
jmx_exporter_compat.py): build the full reactor (clean install) sointegration_test_suiteactually runs, pinned to a single Java + Prometheus distribution. The pins are read from the checked-out jmx_exporter'srun-quick-test.shso they stay aligned with upstream;-Dparamixel.parallelismset to CPU count. - Test
main, not the release: the integration suite only compiles against currentclient_javawhen jmx_exporter imports the stableexpositionformats.generated.Metricsclass (#1873). Release 1.5.0 imports the version-stampedcom_google_protobuf_4_32_0package directly, which breaks on protobuf bumps (now 4.35.0);mainuses the stable class. Tracked by #2179 — switch the ref back to a pinned release once one ships the fix. - Renovate guard (
renovate.json5): block major JDK bumps for the jmx-exporter and micrometer compat env files (they pin an LTS JDK the upstream release supports). This supersedes #2173-style bumps.
Local validation: mise run lint:fix; image-pin regex verified
against prometheus/jmx_exporter@main. Full integration run is
validated by CI (needs Docker + JDK 21).
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com Signed-off-by: Jay DeLuca jaydeluca4@gmail.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})