Skip to content

fix(cli): resolve prebuilt Java provider versions via repo1.maven.org - #285

Merged
jsteinich merged 4 commits into
open-constructs:mainfrom
X-Guardian:test/java-maven-retry
Jul 2, 2026
Merged

jsteinich merged 4 commits into
open-constructs:mainfrom
X-Guardian:test/java-maven-retry

Conversation

@X-Guardian

@X-Guardian X-Guardian commented Jun 28, 2026 •

Copy link
Copy Markdown
Contributor

Description

The Java integration tests (provider-add, provider-list, provider-upgrade) have been intermittently failing, resolving a prebuilt provider package version one or two below the expected maximum (e.g. 0.2.55 → 0.2.53/0.2.54).

Example Failed jobs

Cause

When adding a prebuilt Java provider, the resolver walks the npm candidate versions highest-to-lowest and installs the first that exists on Maven Central, using JavaPackageManager.isNpmVersionAvailable to decide existence. That check queries the search.maven.org/solrsearch index — a separate service from the artifact repository, and a flaky one: under load it returns HTTP 502 and can take ~90s to respond. A failed search response reads as "version not found", so the resolver drops to an older package.

Fix

This PR points the existence check at the artifact repository directly:

  • Probe repo1.maven.org (package-manager.ts): JavaPackageManager.isNpmVersionAvailable requests the artifact's .pom directly (https://repo1.maven.org/maven2/<group>/<artifact>/<version>/<artifact>-<version>.pom) with a plain fetch, matching the shape of the other package managers' probes — 200 means present, anything else means not available. repo1.maven.org is the Fastly-fronted artifact CDN every Maven build already relies on, so it is both the source of truth for "is this artifact published" and reliably fast (~0.05s).

Why a direct file check rather than the central.sonatype.com search API: the artifact CDN is the most reliable signal and the fastest, with the fewest moving parts. The Sonatype Central search API is the documented successor to search.maven.org, but it is still a search index in front of the same artifacts; querying the artifact directly depends only on the artifact itself.

Checklist

  • I have updated the PR title to match CDKTN's style guide
  • I have run the linter on my code locally
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation if applicable
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works if applicable
  • New and existing unit tests pass locally with my changes

@X-Guardian
X-Guardian force-pushed the test/java-maven-retry branch from 4847cf1 to e7be99c Compare June 29, 2026 13:22
@X-Guardian X-Guardian changed the title test: Add Java Maven Retry fix(cli): resolve prebuilt Java provider versions via repo1.maven.org Jun 29, 2026
@X-Guardian
X-Guardian force-pushed the test/java-maven-retry branch 3 times, most recently from 8f8bcf4 to 580ac34 Compare June 30, 2026 09:01
@X-Guardian
X-Guardian force-pushed the test/java-maven-retry branch from 08ab89a to 07bdd77 Compare June 30, 2026 10:03
@X-Guardian
X-Guardian marked this pull request as ready for review June 30, 2026 14:30
@X-Guardian
X-Guardian requested a review from a team as a code owner June 30, 2026 14:30
@jsteinich
jsteinich merged commit d5af07d into open-constructs:main Jul 2, 2026
259 checks passed
so0k pushed a commit that referenced this pull request Jul 3, 2026
🤖 Release PR — merge to cut a new release. Kept open and rebased
as commits land on `main`.
---


<details><summary>0.23.4</summary>

##
[0.23.4](v0.23.3...v0.23.4)
(2026-07-02)


### Features

* **cli:** validate Terraform CLI feature versions
([#237](#237))
([32d434c](32d434c))
* declared Terraform/OpenTofu target versions (validation foundation)
([#269](#269))
([0aa2343](0aa2343))
* **lib:** S3-backend - Add `useLockfile` field and update
`dynamodbTable` deprecated JSDoc
([#234](#234))
([32a408f](32a408f))
* **lib:** validate Fn usage against Terraform/OpenTofu versions
([#268](#268))
([cdf8115](cdf8115))


### Bug Fixes

* **cli:** don't mistake terraform error output for a missing-variable
prompt
([#267](#267))
([0ea946f](0ea946f))
* **cli:** release terraform state lock when interrupting diff/deploy
([#284](#284))
([de617db](de617db))
* **cli:** resolve prebuilt Java provider versions via repo1.maven.org
([#285](#285))
([d5af07d](d5af07d))
* **gha:** Adding CHANGELOG.md to prettier ignore list
([#258](#258))
([5160469](5160469))
* **gha:** pull jsii-terraform CI image from GHCR instead of Docker Hub
([#261](#261))
([f19d34b](f19d34b))
* **provider-generator:** copy only publishable files into the jsii
compile bundle
([#292](#292))
([562d4c7](562d4c7))
* **provider-generator:** match shorthand provider sources against
OpenTofu schema keys
([#293](#293))
([fda0103](fda0103))
* **release:** add Changelog title for correct release-please insertion
([#255](#255))
([004818a](004818a))
* **release:** drop devEngines.packageManager that broke npm publish
([ef508a6](ef508a6))
* **tools:** repair generate-function-bindings tool
([#273](#273))
([821e1cf](821e1cf))


### Miscellaneous Chores

* Add Gradle to Mise config
([#271](#271))
([1578270](1578270))
* add pnpm to mise
([#266](#266))
([48ab91f](48ab91f))
* add uv to mise
([#260](#260))
([163cf3d](163cf3d))
* **deps:** bump nrwl/nx-set-shas from
38457b511e60ee4e1da09255b658e480748a1af4 to
afb73a62d26e41464e9254689e1fd6122ee683c1
([#236](#236))
([b5ac018](b5ac018))
* **deps:** bump the github-actions-backward-compatible group across 1
directory with 7 updates
([#235](#235))
([de67d9f](de67d9f))
* **deps:** replace uuid dependency with node:crypto.randomUUID
([#291](#291))
([6d3657a](6d3657a))
* ESLint ignore test edge-provider-bindings
([#270](#270))
([ba407bb](ba407bb))
* Fix Verdaccio logging config
([#272](#272))
([aded64b](aded64b))
* **gha:** parallelize provider binding generation for documentation
examples
([#244](#244))
([0a9c955](0a9c955))
* Migrate package manager from yarn to pnpm
([#170](#170))
([d23da4e](d23da4e))
* migrate planning artifacts to cdktn-planning [skip ci]
([968c358](968c358))
* **release:** add release-please automation for versioning
([#243](#243))
([c759eec](c759eec))
* Remove dependency-pinner tool
([#250](#250))
([42c27d5](42c27d5))
* Remove unused dependencies
([#281](#281))
([c7de65e](c7de65e))
* **tests:** run verdaccio in-process
([#248](#248))
([c17677d](c17677d))
* Update JSII version constraint
([#245](#245))
([d89558f](d89558f))
* Update scheduled workflows to only run on open-constructs/cdk-terrain
([#256](#256))
([ba408cf](ba408cf))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: open-constructs-cdktn[bot] <291052431+open-constructs-cdktn[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

I'm going to lock this pull request because it has been closed for 30 days. This helps our maintainers find and focus on the active issues. If you've found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Aug 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants