feat(java): add nv-boot-parent Spring Boot starter libraries#269
Conversation
|
Important Review skippedToo many files! This PR contains 480 files, which is 180 over the limit of 300. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (480)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
|
🛡️ CodeQL Analysis🚨 Found 2 issue(s) Severity Breakdown:
📋 Top Issues🔗 View full details in Security tab 🕐 Last updated: 2026-07-20 18:55:52 UTC | Commit: e055ea9 |
b61c736 to
8337b6b
Compare
Replicate the nv-boot-parent Bazel module (Spring Boot starters + BOM) from the nvcf-libraries/java/nv-boot-parent feat/bazel branch into the monorepo at src/libraries/java/nv-boot-parent. This is the first Java module in the tree. The module is carried verbatim: MODULE.bazel, MODULE.bazel.lock, and the pinned maven_install.json are unchanged, so the validated Maven graph and CVE-override pins are preserved exactly. Only the internal-only CI config (.gitlab-ci.yml, settings.xml) is omitted; it has no meaning on GitHub. Like every other nested Bazel module in the repo, src/libraries/java is added to .bazelignore so the root `bazel build //...` and Gazelle skip the nested module; it builds standalone by cd-ing into it. Follow-up (not in this change): a GitHub Actions Java matrix row to build and test it, pending confirmation that public runners can resolve the Maven closure (repositories lists urm.nvidia.com first, then public Central mirrors). Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Register src/libraries/java/nv-boot-parent/NOTICE with the root NOTICE third-party license index (tools/scripts/update-license), satisfying the license/NOTICE audit for the newly added Java module. Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add java-kotlin to the CodeQL matrix with build-mode none. Java supports buildless extraction, so it scans on PRs like rust without a Bazel/Maven build. Trigger on *.java changes as well. The monorepo already contains Java source (examples/java-spring-boot-service) and gains more with the nv-boot-parent import, so Java should be covered by the same security scan as Go and Rust. Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove the bazel-enablement/ directory (phase-status docs, design reviews, and enablement skills). This is internal migration process material for the Bazel enablement effort, not part of the library source or build, so it does not belong in the public monorepo. Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Complete the nv-boot-parent import per bazel-enablement/github-monorepo- architecture.md: one root module owns all Java third-party artifacts and the single lock; imported code carries BUILD files but no nested active module. Root integration: - MODULE.bazel: merge nv-boot's Maven closure + BOMs into the root hub, rename maven -> nv_third_party_deps, rules_java 8.14.0 -> 9.3.0. Repin the single root maven_install.json (287 artifacts, public mirrors only, urm-free). - .bazelrc: Java 21 -> 25 + --java_header_compilation=false (Lombok). - .bazelignore: un-ignore src/libraries/java so the root build traverses it. - BUILD.bazel: export MODULE.bazel/NOTICE/maven_install.json to the nv-boot subtree for its NOTICE tooling. nv-boot-parent (in tree): - Delete the nested MODULE.bazel / MODULE.bazel.lock / maven_install.json / .bazelrc / .bazelversion (import inputs; content now lives at root). - Reprefix absolute labels (//tools/bazel, //nv-boot-*) to the monorepo path; prefix strip_prefix/resource_strip_prefix with the import dir; point the NOTICE genrules at the root //:maven_install.json. examples/java-spring-boot-service: - Move onto the nv_third_party_deps hub; migrate to Spring Boot 4 (@AutoConfigureMockMvc -> org.springframework.boot.webmvc.test.autoconfigure, add the spring-boot-webmvc-test dep). Validated locally: `bazel build //...` completes cleanly on Bazel 9.1.1 / JDK 25 (497 actions, fully cacheless), Go and Java together. Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8337b6b to
26b4087
Compare
|
@balajinvda -- Let's update BAZEL.md and the architecture doc under |
|
Please add a github issue. |
- BootWarmupBase: widen totalSuccesses to long. Stream.count() returns long, so accumulating it into an int narrowed the value (alert #162). - OciRegistryClient: make the registry-host regex labels dot-free ([^/.]+ separated by literal dots) instead of [^/]+(?:\.[^/]+)*. The old form let a label contain '.', so it was ambiguous and backtracked exponentially on inputs like '..' repeated (ReDoS, alert #161). The tighter form matches the same valid hosts (dotted names, ports, IPs, single labels) and rejects the malformed '..'-prefixed inputs. Co-authored-by: Balaji Ganesan <bganesan@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Why
Brings the nv-boot-parent Spring Boot starter libraries into the monorepo as the first Java Bazel module. Source is nvcf-libraries/java/nv-boot-parent (feat/bazel), which already carries a complete, self-contained Bazel module with a pinned Maven graph.
What changed
src/libraries/java/nv-boot-parent: 11 starter modules + BOM, 376 Java files, and the full Bazel scaffold.MODULE.bazel,MODULE.bazel.lock, and the 505 KB pinnedmaven_install.jsonare copied unchanged, so the validated Maven closure (Spring Boot 4, Spring Cloud, OTel, Cassandra, Testcontainers) and the CVE-override pin discipline are preserved exactly..gitlab-ci.ymlandsettings.xml.src/libraries/javato the root.bazelignore, exactly as every other nested Bazel module (src/*-plane-services,src/libraries/{python,ts}, stargate) is handled, so the rootbazel build //...and Gazelle skip the nested module. It builds standalone by cd-ing into it.No changes to the root
MODULE.bazelor to the module's ownMODULE.*files.Customer Release Notes
Not customer visible. Internal Java platform library; no runtime service change.
Plan Summary
Not applicable.
Usage
Build standalone:
Testing
Faithful replication of an already-validated branch; no source modified. Not yet built on GitHub Actions (see Notes).
Notes
Two deliberate follow-ups, called out for honesty rather than left implicit:
repositorieslist inMODULE.bazelputsurm.nvidia.com/artifactory/mavenfirst (withuse_credentials_from_home_netrc_file = True), then two public Central mirrors. Public GHA runners cannot reachurmand have no netrc; whether Coursier's fallback to the public mirrors resolves the (all-public, checksummed) artifacts needs a real run before we wire CI green.MODULE.bazel/maven_install.jsonretainurm.nvidia.comreferences (internal hostnames, not secrets). Kept per the "no MODULE.* changes / replicate as-is" requirement.The JWT-looking strings under
nv-boot-mock-servers-testare mock registry-auth test fixtures (expired /mockSignature), not credentials.Issues
Closes #319
References
NO-REF
Related Merge Requests/Pull Requests
Source: nvcf-libraries/java/nv-boot-parent @ feat/bazel
Dependencies
Introduces the Java/Maven dependency closure via
rules_jvm_external(Spring Boot 4.0.7 BOM, Spring Cloud 2025.1.2, Testcontainers 2.0.5, shedlock 7.7.0). All pinned inmaven_install.json; licenses tracked in the module'sNOTICE.