test: run JMX Exporter quick test configuration by zeitlinger · Pull Request #2178 · prometheus/client_java (original) (raw)
The compatibility job previously ran only the unit tests of three modules (common, javaagent, standalone) and never built the integration_test_suite, so the docker-based integration tests never ran.
Switch to jmx_exporter's quick test configuration: build the full reactor (including integration_test_suite) against a single Java and Prometheus distribution. The distributions are read from the checked-out jmx_exporter's run-quick-test.sh so they stay aligned with upstream instead of drifting from a hardcoded copy. Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
This was referenced
Jun 2, 2026
added 3 commits
The integration_test_suite only compiles against current client_java when jmx_exporter imports the stable expositionformats.generated.Metrics class. Release 1.5.0 imports the version-stamped com_google_protobuf_4_32_0 package directly, which breaks on protobuf bumps (now 4.35.0); main uses the stable class. Test main until a release ships the fix (tracked in #2179). Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.com
The jmx-exporter and micrometer compat env files pin an LTS JDK that the upstream release supports; a major bump to the primary JDK (e.g. 25) breaks those builds, as in #2173. Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.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
zeitlinger added a commit that referenced this pull request
Summary
- v1.6.0 of jmx_exporter ships the stable
io.prometheus.metrics.expositionformats.generated.Metricsclass (verified inintegration_test_suite/integration_tests/src/main/java/io/prometheus/jmx/test/support/metrics/MetricsParser.javaon the v1.6.0 tag). - Restore
DEFAULT_JMX_EXPORTER_VERSION(currentlyv1.6.0, renovate-tracked) as the default ref so the compatibility job pins to a release again.workflow_dispatch'sJMX_EXPORTER_REFstill overrides. - Drops the stale comment in
mise.tomlthat explained why we trackedmain.
Closes #2179. Follow-up to #2178.
Test plan
- CI
JMX Exporter Compatibilityjob runs againstv1.6.0and passes.
Signed-off-by: Gregor Zeitlinger gregor.zeitlinger@grafana.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 }})