Your AI-generated monthly roundup of Java framework and platform updates. Please direct your comments directly to us at blog@manorrock.com
Welcome to the September 2025 edition of Pulse on Java, where we recap the key developments, announcements, and trends across the Java ecosystem during the month. September was a milestone month – Java 25 reached General Availability as the latest long-term support release, frameworks and tools rolled out updates to support the new JDK, the enterprise Java world hit a big Jakarta EE 11 certification milestone, and the community kicked off the fall conference season with plenty of Java 25 buzz. Let’s dive into the details.
Java 25 (JDK 25) was officially released on September 16, 2025, marking Java’s first LTS (Long-Term Support) release since JDK 211. Oracle announced that JDK 25 will receive at least eight years of support, underscoring its importance for enterprises planning long-term upgrades2. This release delivers a final feature set of 18 JDK Enhancement Proposals (JEPs) spanning language improvements, library enhancements, security, and performance optimizations1. Key highlights include:
Language Productivity: Pattern Matching for Primitive Types (JEP 507, 3rd preview) extends pattern matching to primitives in instanceof
and switch
, making code more uniform and expressive2. Module Import Declarations (JEP 511) let developers import all packages from a module with a single statement without using the module system, simplifying reuse of modular libraries2. And the Compact Source Files & Instance Main Methods (JEP 512) feature enables writing simple scripts or single-file programs with less boilerplate (e.g. a shortened main
signature), lowering the entry barrier for beginners and sysadmins scripting in Java2.
Safer, Simpler Concurrency: Structured Concurrency (JEP 505, 5th preview) treats groups of related threads as a unit, helping avoid common pitfalls with thread cancellation and improving reliability of multithreaded code2. This goes hand-in-hand with Scoped Values (JEP 506), a new API for sharing immutable data within and across threads as a safer alternative to thread-local variables2. Together, these features (still under preview) make high-throughput concurrent programming more approachable and robust, which is especially valuable for parallel tasks and upcoming AI workloads.
Library and VM Enhancements: The Vector API (JEP 508, 10th incubator) advances again, allowing developers to leverage SIMD instructions for math-heavy operations (such as AI inference) with ease – achieving much better performance than equivalent scalar loops2. Primitive-based APIs like this are complemented by quality-of-life improvements such as Flexible Main Constructors (JEP 513) which let constructors execute validation code before calling super()
, and a new Key Derivation Function API (JEP 510) to help applications prepare for post-quantum cryptography by deriving keys in a standardized way2. On the JVM side, Compact Object Headers (JEP 519) shrink object header size to 64 bits on 64-bit platforms, reducing memory footprint and improving cache efficiency for better performance2.
Platform Changes: Notably, Java 25 drops support for 32-bit x86 architectures, making Java on x86 officially 64-bit only moving forward3. This streamlining reflects the evolution of deployment environments and helps optimize the JVM for modern 64-bit systems. Combined with enhancements like generational Shenandoah GC and various ahead-of-time compilation improvements included in JDK 25, developers can expect tangible gains in application startup and throughput out-of-the-box33.
To summarize some of these changes at a glance, here’s a quick look at selected JDK 25 features and their benefits:
(Table: A sampling of Java 25’s new features. Java 25 includes 18 JEPs in total, spanning language, libraries, security, and JVM performance.)
With these improvements, Java 25 sets a strong foundation for modern Java development. Early real-world tests have reported nice wins in memory usage and startup time due to features like compact headers and improved ahead-of-time profiling33. Oracle is providing no-fee production support for JDK 25 for at least 8 years (through 2033 for extended support)2 – giving organizations confidence to adopt it at their own pace.
GraalVM for JDK 25 was released in tandem, ensuring the popular native image technology is ready for Java 25. This GraalVM update adds support for Java 25’s new features (e.g. the Foreign Function & Memory API changes and latest Vector API improvements) so developers can compile Java 25 applications ahead-of-time to native executables without missing out on new JDK APIs1. Notably, Oracle also announced a strategic shift: they are detaching GraalVM’s release cycle from the JDK’s. The GraalVM tools (especially for non-Java languages like Python and JavaScript on Graal) will no longer be tied to each Java release train1. In fact, JDK 24 was the last JDK bundled with an “official” Oracle GraalVM – going forward GraalVM will be developed and released on its own schedule, focusing on multi-language support. This signals that while Java 25 is fully supported, GraalVM’s future innovations may come independently (we can expect more details from Oracle on this in the coming months1).
What’s next after Java 25? The OpenJDK community didn’t pause – work is already underway on JDK 26 (due March 2026). A few JEPs have been proposed or targeted for JDK 26, indicating the themes of the next release. For example, JEP 517: HTTP/3 support in the Java HTTP Client was moved to Targeted status for Java 26 in early September4, meaning Java’s built-in HTTP client will likely get HTTP/3 (QUIC) capabilities to improve web communication performance. JEP 522: G1 GC throughput improvements (reducing synchronization overhead in the G1 garbage collector) was also targeted to JDK 261, aiming to squeeze out more performance from the JVM’s GC. On the clean-up side, the decades-old Applet API is finally scheduled for removal in JDK 263 – a long anticipated housecleaning now that applets have been deprecated for years. There’s also a proposal (JEP 500) to make final
truly final by forbidding deep reflection hacks that mutate final
fields1, though this is currently a JEP Candidate and will spark discussion about compatibility. In short, expect JDK 26 to continue Java’s modernization: more performance, more legacy trimming, and early work on features from big projects like Valhalla (value types) and Loom, now that Java 25’s large enhancements (like virtual threads, structured concurrency, etc.) are out.
With Java 25’s arrival, the maintainers of major Java frameworks and libraries have been busy preparing updates to ensure full compatibility and to leverage the new JDK features. September saw a flurry of releases across the ecosystem:
🌱 Spring Ecosystem – Milestone Releases March Toward Spring 7/Boot 4: The Spring community delivered a wave of third milestone releases for their upcoming major versions during September, keeping pace with Java’s evolution. Notably, Spring Boot 4.0.0-M3 arrived, bringing various fixes and refinements. Spring Boot 4 will be the next generation built on Spring Framework 7, and M3 includes tweaks like a refactored PropertyMapper
(to avoid invoking certain calls on null by default) and replacement of some custom annotations with standardized ones (e.g. using @Nullable
from JSpecify in place of a custom @OptionalParameter
)5. Alongside Boot, almost every corner of the Spring portfolio saw milestone updates: Spring Framework 7.0.0-M9, Spring Security 7.0.0-M3, Spring for GraphQL 2.0-M3, Spring Integration 7.0-M3, Spring Modulith 2.0-M3, Spring Batch 6.0-M3, and more were all released during the month1. These bring a host of improvements – for example, Spring Security M3 added a new OneTimeTokenAuthentication
system to simplify certain auth flows and an AuthorizationManagerFactory
for custom auth managers5. The Spring team also addressed some security vulnerabilities during the month: they disclosed and fixed CVEs in Spring Framework (related to annotation processing in certain inheritance scenarios) and Spring Security (a similar issue that could bypass method security under specific generics conditions)55. Users of Spring 6.x received patches (e.g. Spring Framework 6.2.11, Spring Security 6.5.5) to eliminate these risks.
An interesting organizational update: the Spring Authorization Server (an OAuth2/OIDC server framework) is being merged back into Spring Security as of version 7.05. This move, announced by the Spring team, indicates the project’s maturity – folding it into Spring Security will streamline its maintenance and align it with Spring Security’s release cadence. All these changes show the Spring ecosystem gearing up for its next major release line. With Spring Framework 7.0 and Spring Boot 4.0 expected around November 2025, the milestones in September ensured that by the time Java 25 lands in enterprises, the Spring stack will be ready (Spring 7 is set to support Java 17+ baseline but will fully embrace Java 25 as the latest LTS).
⚡ Quarkus 3.27 LTS and 3.28 – “Supersonic” Java Goes Long-Term: Red Hat’s Quarkus, the Kubernetes-native Java framework, had an eventful September. After a series of 3.26.x maintenance releases, the Quarkus team designated a new Long-Term Support version: Quarkus 3.27, released on September 24th6. Quarkus 3.27 is essentially a hardening of the 3.26 line (3.27.0 is a rebadged 3.26.4 with no new features6) and will be supported for 12 months as an LTS release. This is significant for users who want a stable baseline to stick with while the Quarkus project continues its rapid development on the main branch. In fact, Quarkus 3.28.0 was released the same day as the next incremental version with new features7. Quarkus 3.28 introduces a collection of quality-of-life improvements and enhancements: for instance, it provides a new fluent API for configuring CSRF protection programmatically7, adds support for flow-specific filters in OpenID Connect authentication (to better handle OAuth flows)7, enables the use of custom Grafana dashboards out-of-the-box for its dev services7, and extends the MongoDB Liquibase extension to support multiple clients7 (previously only one MongoDB client could be used with Liquibase in Quarkus). Under the hood, Quarkus 3.28 also speeds up build times by reducing memory allocations and parallelizing more tasks during the build (like bytecode enhancement for Hibernate and JAR packaging)7 – continuing Quarkus’s emphasis on fast iterative development. With this one-two release, Quarkus offers both a rock-solid LTS for enterprises (3.27) and a feature-packed latest release (3.28) for those who want the newest capabilities. The project’s momentum is strong as ever; notably Quarkus has now surpassed 1100 contributors in its community67, reflecting growing engagement in its ecosystem.
🏗 Jakarta EE & Enterprise Java – Jakarta EE 11 Adoption, Planning for 12: On the enterprise Java front, Jakarta EE 11’s rollout hit a major milestone in September. The Payara application server announced full Jakarta EE 11 compatibility in its latest beta, effectively becoming one of the first non-Eclipse implementations (beyond the reference implementation, GlassFish) to achieve Jakarta EE 11 Platform certification8. Payara Community 7 Beta passed the Jakarta EE 11 TCK, meaning Java EE/Jakarta EE developers can now run their applications on Payara with Java 17/21 and the newest Jakarta APIs (like Servlet 6.1, Jakarta REST 4.0, etc.) fully supported. This is a big step because, as of early September, Eclipse GlassFish was the only Jakarta EE 11 compatible platform available3 – now Payara is joining those ranks. Other Java EE servers are not far behind: IBM’s Open Liberty has been delivering monthly betas (e.g. 23.0.0.9 beta) inching toward Jakarta EE 11 compliance, and Red Hat’s WildFly (which in July transitioned to the independent MicroProfile-oriented CommonHaus Foundation governance model) is also in the process of implementing Jakarta EE 11 in an upcoming WildFly 28 or 29 release. By September’s end, we have multiple vendors actively testing Jakarta EE 11, so enterprise developers can expect stable, production-ready Jakarta EE 11 runtimes in the coming months across all major app servers.
Meanwhile, planning for Jakarta EE 12 is underway in the Eclipse community. The Jakarta EE Platform team continued discussions in September about what new features and specs to include in EE 12. Jakarta NoSQL and a new Jakarta Query API (which would unify querying across SQL/NoSQL data stores) are emerging as likely candidates to be added1. There’s also talk of possibly folding some smaller, old APIs (like the Jakarta Debugging spec) into larger ones or even removing them from the platform1 to keep things tidy. According to the draft Jakarta EE 12 release plan, the first milestone builds for EE 12 were planned to start appearing by Q3 20251 – meaning we could see early Jakarta EE 12 preview implementations soon. This next version of Jakarta EE will target Java SE 21+ as baseline (since EE 11 uses Java 17) and likely align with Java 25 features where relevant. The overarching theme for EE 12 seems to be “consistency and configuration” improvements (per Eclipse Foundation messaging) and better alignment with cloud-native needs. While EE 12 is further out (likely 2026), it’s notable that work has begun even as EE 11 is still rolling out – showing the enterprise Java ecosystem’s determination to not rest on laurels.
In related news for enterprise Java developers, Apache Tomcat and TomEE (the Jakarta EE 10 web profile server) delivered routine updates in September. Tomcat 11.0.11 came out with fixes and small enhancements (e.g. improved locking in its resource handling to boost stability)4, ensuring the servlet engine is rock-solid for those using Jakarta EE 10/11 web containers. Apache Kafka 4.1.0 was also released, important for Java developers in the event-streaming space – it included changes like an option to preserve replication factor on partition reassignment and internal refactoring to reduce usage of ThreadLocal
in favor of more straightforward concurrency controls4. And the Apache Grails framework, now incubating at the Apache Foundation, inched closer to a major update with Grails 7.0 RC2 on September 11. Grails 7 (which modernizes the Groovy-based web framework to align with Spring Boot 3+ and Java 17+) is nearly GA, and RC2 fixed various issues and continued to refine how new features (like an updated plugin system and optional servlet-less mode) are presented4. The Micronaut framework likewise issued a maintenance release v4.9.34, mainly containing bug fixes and dependency updates, as the Micronaut team prepares for an eventual 5.0 next year.
💾 Data & Tooling – Hibernate, JBang, Gradle and more: In Java’s data layer, there weren’t new major GA releases in September for things like Hibernate ORM (the big 7.1 came in August). However, Hibernate Validator 9.1 moved into its second alpha, testing out performance improvements for bean validation (such as a new RandomAccessPath
for faster path handling in validation messages)1. For those following the latest in object-nosql mapping, Eclipse JNoSQL and the emerging Jakarta Data spec (for repository-style data access) continued to evolve as well, with Jakarta Data 1.0 likely to tie into Jakarta EE 12 plans.
On the tooling front, build tools saw important releases timed with JDK 25. The Gradle build system released version 9.1.0 final shortly after Java 25’s GA1. Gradle 9.1 adds official support for building with JDK 25, so projects can immediately use Java 25 language features in Gradle builds. It also introduces a few nifty features for developers: a new task graph visualization capability (so you can inspect your build’s task dependency graph without running the build, useful for understanding complex projects) and improved project reporting in the Gradle CLI1. Additionally, the Gradle team has enhanced the console output for a smoother developer experience – better structured logs and feedback during builds1. Another handy tool, JBang, reached version 0.131.0, bringing compatibility with JDK 25’s novel features1. JBang is a scripting tool for Java, and in 0.131 it now supports JEP 512’s compact main classes – meaning if you use JBang to run a Java snippet, it can take advantage of the new instance main method syntax introduced in Java 251. JBang 0.131 also made a subtle fix: removing the word “Java” from its User-Agent string for HTTP, as some web services were blocking requests thinking they were bots (a quirky issue that caused HTTP 403 errors)1.
The Apache Maven team is also on the cusp of a major update (Maven 4.0); while the final release didn’t occur in September, Release Candidate 3/4 were in testing. Maven 4 will require Java 17+ and bring significant performance and interoperability improvements after many years on Maven 3.x. Tool vendors are already preparing: JetBrains IntelliJ IDEA 2025.2 (released over the summer) included support for Maven 4 in advance9. In fact, IntelliJ IDEA 2025.2.1 and Eclipse IDE updates have ensured that Java 25 is recognized and supported in code editors and debuggers from day one9. So Java developers upgrading to JDK 25 should find their IDEs, build tools, and CI systems ready or with updates readily available.
September also ushered in a vibrant period for the Java community, as developers around the world reconvened after summer and the fall conference season kicked off. Early in the month, JavaZone 2025 in Oslo (Sept 3–4) drew JVM enthusiasts for talks on modern Java features and practices9. This was followed by events like J-Con Mexico Unconference (Sept 13–14), Java Forum Nord in Germany (Sept 16), and JUG Saxony Day (Sept 25–26) – all featuring sessions on topics such as migrating to Java 25, building cloud-native Java apps, and leveraging new framework capabilities9. Toward the end of the month, Confitura 2025 in Poland and JAX London (Sept 29 – Oct 3) also took place, where Java 25 was naturally a hot topic of discussion. Many speakers and Java Champions gave insights on how to best adopt the new JDK, with live coding demos showcasing features like virtual threads, pattern matching, and records in real-world scenarios.
The community’s enthusiasm for Java’s 30th anniversary year (Java turned 30 in May 2025) remained strong. At the Java 25 launch livestream on September 16th (the day of GA), Oracle’s Java team and industry experts celebrated how far the platform has come and where it’s going. They emphasized Java’s continued evolution to serve modern needs – for example, highlighting how Java 25’s features make it easier to build efficient and secure applications, including those enhanced with AI capabilities22. Oracle executives like Georges Saab underscored that this release reflects ongoing investment in making Java simpler for newcomers and powerful for cutting-edge use cases (like AI integration)2. This alignment with industry trends was a recurring theme in community conversations: 2025 has seen Java increasingly intersect with the AI/ML world.
One fascinating trend is the rise of AI agent frameworks in Java. The creator of Spring, Rod Johnson, has been working on Embabel, an open-source agent framework for the JVM that was introduced earlier in the year. In September, discussions around Embabel continued to gain traction. There was even a buzzworthy presentation titled “You Can Build Better AI Agents in Java than Python”, comparing Java’s Embabel vs. Python’s popular agent tools9. The premise – that Java’s strong typing and performance can be an advantage in building reliable AI-driven agents – resonated with many Java developers looking to extend their skills into AI. Embabel (written in Kotlin) hit over 2.5k stars on GitHub, and anticipation built up for Rod Johnson’s planned keynote about it at the upcoming Devoxx Belgium conference. This cross-pollination of Java and AI was also evident in other projects: e.g., LangChain4j (a Java library inspired by the Python LangChain for building LLM applications) had its 1.5.0 release in September1, adding features for multi-threaded tool usage and integration with image generation models – showing that the Java community is actively working on AI libraries. Even low-level efforts like TornadoVM’s GPULlama3.java project emerged, demonstrating Java running large AI models on GPUs with impressive performance4 (in this case, an open source implementation to run Meta’s Llama 3 on GPUs via TornadoVM, with support for Windows and new GGUF model formats). All of this signals that Java is staking out its place in the AI era, contrary to any notion that AI workloads belong only to Python or other languages.
Community content was abundant as usual. Oracle’s Inside Java Newscast ran a special Q\&A session (#97) where Java architects answered questions from developers about the new release and future plans9. Blogs and newsletters summed up the month’s happenings – for instance, the Java Annotated Monthly by JetBrains and the Inside Java newsletter highlighted tips on upgrading to Java 25 (including an excellent video by Nicolai Parlog on how to tackle potential pitfalls when moving from Java 17 or 21 to 25)9. These resources also pointed readers to tutorials (e.g. “All New Java Features Since Java 21” by Jose Paumard) and playful learning approaches (like a talk on “Learning Modern Java the Playful Way” by Java Champions)9. Across Twitter (X), Reddit, and community Slack channels, developers shared their early experiences with Java 25. Reports of “it just works” on popular frameworks, debates on preview features like primitive patterns, and advice on performance tuning with the new JDK were common, illustrating the community’s hands-on approach to adopting Java’s improvements.
On the events horizon, excitement is brewing for the coming months. Oracle announced that after several years, a dedicated JavaOne conference will return in 2026 (as noted last month), and in the meantime Java tracks are featured at broader events (Oracle CloudWorld and the new Oracle AI World in October have Java-focused sessions)3. In September, many speakers and attendees were already looking forward to Devoxx Belgium 2025 (mid-October) – one of the largest Java conferences – where Java 25, Embabel, and other hot topics are set to take center stage. The Call for Papers for early-2026 events like jCON Europe and JavaDay Istanbul opened up8, reflecting that the community is eagerly planning content around Java’s latest advancements. Also noteworthy, the Java Community Process (JCP) had its annual awards announced in late August: several veteran contributors received Java Lifetime Achievement Awards for their long-standing impact on the ecosystem8. This was a nice moment of recognition that got a nod in September discussions – a reminder of the strong foundations (and people) that have made Java successful for 30 years.
As we move beyond September, the Java world is poised to build on this momentum. October 2025 will bring the first critical patch update (CPU) for Java 25 and other supported JDK versions, so we’ll see JDK 25.0.1 with initial bug fixes and security patches – a prompt for cautious enterprises to start evaluating Java 25 in earnest. The major frameworks are on track for their next releases: expect Spring Framework 7.0 and Spring Boot 4.0 release candidates by late fall, now that the milestone phase is wrapping up. Similarly, we anticipate GraalVM and related ahead-of-time tools to iterate quickly as they decouple from the JDK cycle – it’s worth watching for announcements from Oracle Labs on GraalVM’s roadmap beyond 25. In enterprise Java, Jakarta EE 11 will likely see more implementations reach full certification (Open Liberty and WildFly could announce Jakarta EE 11 support in the coming weeks), paving the way for widespread adoption of EE 11’s features.
The developer community will be digesting Java 25’s new capabilities through the rest of the year. Conferences like Devoxx BE (Oct) and Oracle’s AI World (Oct), and later Devoxx US and Voxxed events, will feature deep dives and experience reports on using virtual threads in production, migrating to the new language features, and leveraging Java in AI/ML scenarios. By the time the next LTS release comes around, we’ll likely have seen Java 25 prove itself across countless workloads. And looking further out, the groundwork is being laid for JDK 26 and 27 – with improvements to things like garbage collection, project Valhalla’s value objects, and perhaps early experimental features from Project Loom (like structured concurrency graduating to final). The rapid six-month release cadence means it’s only about six months until the next Java version, so the cycle of innovation continues unabated.
In summary, September 2025 was a banner month for Java: a new LTS Java release shipped with broad excitement and readiness, the ecosystem (frameworks, tools, servers) aligned their updates to support it, and the community came together through events and collaborative projects – from cloud to AI – to push Java into its next era. Java’s vitality was on full display, proving that even after 30 years, the Java platform is accelerating, not slowing down. Here’s to enjoying Java 25 in your projects, and we’ll see you next month for another Pulse on Java! Happy coding. 8