Skip to main content

Spring Boot 4.1.0 and Java 21 in TeaQL's Java Generation Targets

· 3 min read
TeaQL Team
Core Team

TeaQL's generated Java output has moved to a Java 21 baseline, and the Java generation targets now select Spring Boot 4.1.0.

The version change affects generated manifests and the language level available to generated code and application extensions. It does not remove the need to build and test each generated target against the matching TeaQL runtime.

Embracing Java 21

The current java-lib-core output uses Java 21. Application extensions can therefore use Java 21 language features such as record patterns and pattern matching, subject to the conventions of the generated project.

The baseline is part of the generated contract. Teams should verify the emitted maven.compiler.release, CI toolchain, container image, and deployment runtime instead of assuming that a local Java installation will be used everywhere.

What Spring Boot 4.1 Adds

Spring Boot 4.1.0 includes Spring gRPC support, HTTP-client SSRF mitigation through InetAddressFilter, and observability updates. These are Spring capabilities available to an application built on that baseline; they are not TeaQL features and are not enabled merely by regenerating a domain model.

For complete release and migration details, use the Spring Boot 4.1.0 announcement and official release notes as the source of truth.

TeaQL-specific integration still requires explicit work. For example, tracing a generated query needs instrumentation that carries request and query metadata into the application's observation pipeline.

Regenerate and Inspect

First inspect the dynamic target catalog and evaluate the model:

mvn io.teaql:teaql-maven-plugin:1.1.0:list-services
mvn io.teaql:teaql-maven-plugin:1.1.0:eval -Dinput=model

Then generate the Spring Boot application into an explicit output directory:

mvn io.teaql:teaql-maven-plugin:1.1.0:generate \
-Dservice=java-web-spring-boot \
-Dinput=model \
-Dteaql.output=generated-spring-boot

Inspect the generated POM rather than hard-coding versions in editable source. After generation, run the project's own test command and start it with the intended database configuration.

Current Verification Boundary

A clean inspection on 2026-07-13 confirmed that java-lib-core output selected Java 21, Spring Boot 4.1.0, and TeaQL 1.525-RELEASE. That run also exposed generator/runtime alignment defects documented in the compatibility matrix, including an SQLite artifact-coordinate mismatch and generated internal-accessor names that do not match the runtime.

Those findings are why this post distinguishes version selection from verified support. The generated versions are current, but a target should only be promoted into production after its generated workspace compiles, tests, starts, and exercises an intent-declared query and audited mutation.