Skip to content

feat: add java presets and api actions - #542

Merged
dbpolito merged 8 commits into
kool-dev:mainfrom
fbrissi:feat/java-presets-api-actions
Nov 12, 2026
Merged

dbpolito merged 8 commits into
kool-dev:mainfrom
fbrissi:feat/java-presets-api-actions

Conversation

@fbrissi

@fbrissi fbrissi commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Ticket

Closes #541

Description

Adds Java with Gradle and Spring Boot presets, Java database/cache recipes, PostgreSQL 16 template support, and input/API-driven automation actions.

Uses official gradle:9-jdk images for Java 17, 21, and 25. This no longer depends on docker-java#69 (closed without merging).

Final integration review fixes include safe environment-backed Spring input handling, non-interactive top-level selection, and a working MongoDB volume/health-check template. See #542 (comment) for detailed validation.

Validation

  • go test ./... and go vet ./...
  • Race tests for commands, automation, presets, and shell
  • Standalone preset installation with supported JDKs and unsupported-JDK rejection
  • Regression tests for Compose networks/volumes, input handling, and non-interactive selection
  • Java projects on JDK 17, 21, and 25: creation, build/tests, and run
  • Spring Boot: Java/JDK 17 and 21, Kotlin/JDK 25 creation, build/tests, startup, and health UP
  • Generated Compose configurations validate across all database choices; Redis/Memcached combinations checked
  • Final functional CI (Linux/macOS tests, lint, CodeQL, govulncheck); Grype remains deferred

Security maintenance is intentionally deferred separately; no scan suppressions were added. Maintainer authorized bypass of the outstanding approval/security gate after functional validation.

@dbpolito

Copy link
Copy Markdown
Member

Pushed 45731ed after merging current main. Defined both referenced Compose networks, added reusable Java 17/21/25 selection for standalone installation, export/reuse/validate version answers, and made Gradle init non-interactive with an explicit target toolchain. Updated docs and removed the obsolete docker-java dependency from the PR description.

Validation: go test ./... and go vet ./... pass. Added standalone-preset regression tests for both presets on 17/21/25 and rejection of 7. Built the CLI and exercised fresh Java 21 project creation/build/test/run (Hello World), plus Spring Boot creation/build/test/Compose startup and /actuator/health (UP). Both generated Compose configurations validate. Removed the Spring smoke-test container, network, and Gradle volume afterward. JDK 17/25 runtime smoke tests remain; security maintenance stays deferred as requested.

@dbpolito

Copy link
Copy Markdown
Member

Final review and integration fixes pushed in c7db236 after merging main (including #540 and #536):

  • Resolved README/create-test conflicts and adapted the Bun regression test to the new executor API.
  • Pass Spring coordinates/application names through container environment variables rather than interpolating free-form input into shell syntax; quote project-directory handling. Added regression coverage.
  • Honor --no-interaction for top-level create/preset selection, including on a TTY.
  • Fixed the shared MongoDB template: declare its database volume and use mongosh for health checks (confirmed present in the current image).

Validation:

  • go test ./..., go vet ./..., and race tests for commands/automation/presets/shell pass.
  • Fresh Java projects on JDK 17 and 25: creation, build/tests, run (Hello World), and Compose validation pass. JDK 21 was verified earlier.
  • Fresh Spring Boot Java/JDK 17 and Kotlin/JDK 25: creation, build/tests, Compose startup, and actuator health UP pass. Included an application name with spaces. JDK 21 was verified earlier.
  • Java preset configurations validate for PostgreSQL+Redis, MySQL+Memcached, MariaDB, MongoDB, H2, and SQLite.
  • Smoke-test containers/networks/Gradle volumes removed.

Waiting for final CI before merging. The previously authorized security-scan/approval bypass remains separate from this functional validation.

@dbpolito
dbpolito merged commit 0b42495 into kool-dev:main Nov 12, 2026
8 of 9 checks passed
@dbpolito

Copy link
Copy Markdown
Member

Published in 3.8.0, with all six standalone binaries and their SHA-256 files attached. Related issue #541 is completed; runtime validation now includes Java 17/21/25 and Spring Boot Java/Kotlin health checks. Thanks @fbrissi!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Java and Spring Boot presets with API-driven actions

2 participants