A New Kind of Java GA Month
Hardwood 1.0, Endive 1.0 and the Eliya 25 distribution mark a month of Java GA releases where core data tooling, WebAssembly integration and JVM-level production diagnostics move from experimentation into production-ready options, signalling that the Java ecosystem is shifting its focus toward observability, high-performance data pipelines and enterprise governance rather than only adding new language features. This is not just a busy release calendar; it is a clear statement of priorities. Java’s center of gravity is tilting toward what happens in production: how data is parsed, how polyglot runtimes run safely on the JVM, and how operators gain reliable crash and memory insight without stitching together ad-hoc flag sets. If you treat Java as “mature and done,” this month is a counter‑argument.
The GA releases of Hardwood 1.0 and Endive 1.0 sit alongside the June edition of Azul Payara, new Quarkus and LangChain4j point releases, and the introduction of Eliya JDK and the Open Source Sustainability Initiative. Early-access builds of JDK 27 (Build 28) and JDK 28 (Build 4) underline that even the core platform is in motion. For developers, the message is blunt: Java is not slowing down; it is getting sharper around the edges that matter in real deployments.
Hardwood and Endive: GA Signals for Data and WebAssembly
Hardwood 1.0 release is more than “yet another parser.” It is a GA-ready parser dedicated to the Apache Parquet file format, introducing changes that address correctness and performance at the edges where data teams feel pain. Idempotent close() methods for ColumnReader and RowReader resolve a performance regression, while AvroRowReader now honours column projections, ensuring DECIMAL, UUID, UINT_32 and FIXED columns are read correctly. The Hardwood entry point also now accepts a HardwoodContext implementation, giving you control over decoder thread-pool sizing and letting multiple readers share a context. For teams building Parquet-heavy pipelines, that is a clear invitation to treat Hardwood as a first-class production dependency rather than a niche experiment.
Endive 1.0 framework, a JVM-native WebAssembly runtime with roots in the Chicory project, is the more radical GA story. It delivers WasmGC host integration with externref value types mapped directly to Java Object, so host functions can work naturally with garbage-collected types. It also optimizes tail call correctness by eliminating unnecessary stack frame allocation, directly benefiting languages like CPython when they adopt tail calls in their interpreter loop. Opinionated take: Endive GA is a line in the sand. Java is no longer content to sit on the sidelines of WebAssembly; it wants to be a serious host runtime for WasmGC workloads, and this GA release says “bring those polyglot workloads into the JVM and measure them against your existing Java services.”

Enterprise Runtime Updates: Azul Payara, Quarkus and LangChain4j
If Hardwood and Endive are about data and polyglot runtimes, Azul Payara and the Quarkus updates are about keeping enterprise Java boring—in the best possible way. The June edition of Azul Payara 7.1.0 includes Community Edition 7.2026.6, Enterprise Edition 6.39.0 and Enterprise Edition 5.88.0. All editions fix a Cross-Site Request Forgery and Server-Side Request Forgery issue in the Admin Console and REST management interface by removing unnecessary REST URL passing in servlet requests, and they add support for overriding methods with the Spring Framework @Transactional annotation on Jakarta Data repositories. This is classic enterprise housekeeping: security tightened, Spring integration smoothed, and no drama for production admins.
Quarkus updates in version 3.37.0 lean hard into modern data access and image-friendly runtimes. The release adds support for Hibernate ORM 7.4.0.Final, Hibernate Reactive 3.4.0.Final and Hibernate Search 8.4.0.Final, plus an experimental JLink extension that uses jlink to generate custom runtime images containing only the JDK modules your app needs. Reflection-free Jackson serializers are now enabled by default. For developers, this combination is potent: slimmer images, fewer reflection surprises and first-class access to the latest Hibernate stack. On the AI side, LangChain4j 1.17.0 introduces a DebatePlanner for the debate agentic pattern, an OracleChatMemoryStore for Oracle-backed memories, and an onUnmappedRawEvent callback to surface unmapped streaming events. Together, these updates show that both enterprise stacks and AI frameworks in Java are not ornamental; they are being wired for serious workloads.
Eliya 25: Production Diagnostics as a First-Class JVM Concern
The most consequential change for production operators may be Eliya 25.0.3, an OpenJDK 25 LTS distribution that introduces a JVM-level policy point for diagnostics via the opt-in flag -XX:EliyaProfile=Production. Eliya follows the openjdk/jdk25u line and keeps Java APIs, standard library, JIT, class loading and module semantics aligned with upstream OpenJDK 25. The current Production profile consolidates existing HotSpot options: heap dumps on OutOfMemoryError to structured per-service paths, exit-on-OOM for clean orchestrator restarts, Native Memory Tracking in summary mode, predictable hs_err logs, and unlocked diagnostic VM options for JFR sampling and profiler attachment—all under one flag. Eliya tracks OpenJDK 25 Critical Patch Updates with its initial build, version 25.0.3, based on the April 2026 Oracle CPU advisory, and promises quarterly CPUs within two weeks of upstream and critical CVE fixes within one week.
Eliya is deliberately conservative: it treats service auth, network controls, resource limits, heap sizing and GC choices as external policy, reserving JVM-level policy for cases of “reach” or “non-overridability,” where behaviour cannot be safely controlled from the outside. This aligns with examples like heap dumps and fatal-error logs, where sensitive information can be written by the JVM before external sanitizers act. According to the project, support for Eliya 25 continues through the JDK 25 LTS window until September 2029, with a planned 24‑month overlap with JDK 29 LTS before retirement. The roadmap schedules Phase 2 for the second half of 2026, adding bundled diagnostic tools, a FIPS variant, package repositories, continuous JFR recording, unified GC logging and expanded CLI support, with later phases targeting a JVM diagnostic forensics platform and demand-driven compliance profiles. Operations teams should weigh whether a single profile flag is preferable to maintaining their own sprawling flag sets.

Beyond This Month: What Developers Should Do Next
Taken together, these Java GA releases and runtime updates show an ecosystem doubling down on sustainability and long-term production readiness. Hardwood 1.0 and Endive 1.0 reaching GA in the same month as Eliya 25’s diagnostic profile, Azul Payara’s June runtime updates, Quarkus 3.37.0 and LangChain4j 1.17.0 sends a clear signal: the Java world is investing in data correctness, secure runtimes, polyglot execution and observability, not in flashy syntax tweaks. Even the Open Source Sustainability Initiative, founded by HeroDevs and the Commonhaus Foundation to support more transparent lifecycle management for open source, underlines that long-term ecosystem health is back on the agenda.
So what should teams do now? Data-heavy services should trial Hardwood 1.0 in non-production to validate Parquet read paths and thread-pool configurations. JVM polyglot and Wasm-curious teams should prototype one or two services on Endive 1.0 rather than waiting for “version 2,” because the GA label means the maintainers are ready for production feedback. Enterprise shops using Azul Payara should roll the June releases into their next patch window to gain CSRF/SSRF fixes and cleaner Spring @Transactional integration. Framework-heavy microservices should test Quarkus 3.37.0’s JLink extension and reflection-free Jackson defaults in staging. Finally, operations teams with OpenJDK 25 LTS footprints should evaluate EliyaProfile=Production in a controlled environment; if it replaces custom diagnostic flag bundles with a single, documented profile, it might be the most impactful Java change you adopt this year.







