# Jakarta EE

Jakarta EE is an open-source, vendor-neutral platform and integrated API stack for building, running, and scaling enterprise Java applications across certified runtimes or cloud environments.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Java News Roundup: New OpenJDK JEPs, CDI 5.0, Spring, Open Liberty, RefactorFirst, ADK for Kotlin

DevFeed: [Java News Roundup: New OpenJDK JEPs, CDI 5.0, Spring, Open Liberty, RefactorFirst, ADK for Kotlin](<https://devfeed.tech/articles/java-news-roundup-new-openjdk-jeps-cdi-5-0-spring-open-liberty-refactorfirst-adk-for-kotlin-21544.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/java-news-roundup-sep07-2026/>)

Author: Michael Redlich

Published: 2026-09-14T20:15:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [JDK 27](<https://devfeed.tech/topics/jdk-27.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Groovy](<https://devfeed.tech/topics/groovy.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [architecture-design](<https://devfeed.tech/tags/architecture-design.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [groovy](<https://devfeed.tech/tags/groovy.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [java-news-roundup-sep07-2026](<https://devfeed.tech/tags/java-news-roundup-sep07-2026.md>), [jdk-27](<https://devfeed.tech/tags/jdk-27.md>), [jdk-28](<https://devfeed.tech/tags/jdk-28.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [micronaut](<https://devfeed.tech/tags/micronaut.md>), [news](<https://devfeed.tech/tags/news.md>), [open-jdk](<https://devfeed.tech/tags/open-jdk.md>), [open-liberty](<https://devfeed.tech/tags/open-liberty.md>), [refactorfirst](<https://devfeed.tech/tags/refactorfirst.md>), [releases](<https://devfeed.tech/tags/releases.md>), [spring-framework](<https://devfeed.tech/tags/spring-framework.md>), [tornadovm](<https://devfeed.tech/tags/tornadovm.md>)

### AI overview

A Java news roundup for September 7, 2026, covers new OpenJDK proposals for ahead-of-time compilation and structured concurrency, Jakarta CDI 5.0 and ADK for Kotlin 1.0, Open Liberty, TornadoVM, RefactorFirst, Micronaut, Groovy 6.0, and Gradle 9.8. It also reports current JDK 27 and JDK 28 early-access builds and describes improvements in TornadoVM 6.1.0.

### Source excerpt

This week's Java roundup for September 7th, 2026, features news highlighting: new JEPs for ahead-of-time compilation and structured concurrency; GA releases of Jakarta CDI 5.0 and ADK for Kotlin 1.0; the September 2026 edition of Open Liberty; point releases of TornadoVM and RefactorFirst; a maintenance release of Micronaut; and first releases candidates of Groovy 6.0 and Gradle 9.8. By Michael Redlich

## Meet Jos Roseboom

DevFeed: [Meet Jos Roseboom](<https://devfeed.tech/articles/meet-jos-roseboom-21985.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/meet-jos-roseboom/>)

Author: vladmihalcea

Published: 2026-09-11T04:23:25Z

Content type: article

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [framework](<https://devfeed.tech/tags/framework.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [interview](<https://devfeed.tech/tags/interview.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>)

### AI overview

An interview with Jos Roseboom about JPA and Hibernate performance tuning, based on his JavaZone talk. He describes production incidents involving exhausted database connections and excessive queries caused by fetching entities and following associations.

### Source excerpt

JavaZone 2026 At the beginning of September, I participated in JavaZone for the third time and had the privilege of meeting a lot of passionate software developers willing to share their knowledge with the community. In the first conference day, I attended a very good talk about JPA performance tuning that was delivered by Jos Roseboom and since I enjoyed his talk, I proposed him to gave an interview for this blog. Therefore, in this article we have the pleasure of getting to know Jos and take opportunity of learning about Spring... Read More The post Meet Jos Roseboom appeared first on Vlad Mihalcea.

## Using the GitHub Copilot SDK for Java

DevFeed: [Using the GitHub Copilot SDK for Java](<https://devfeed.tech/articles/using-the-github-copilot-sdk-for-java-19854.md>)

Original publisher: [Read original article](<https://github.blog/engineering/using-the-github-copilot-sdk-for-java/>)

Author: Edward Burns

Published: 2026-08-10T19:30:00Z

Content type: tutorial

Language: en

Sources: [GitHub](<https://devfeed.tech/sources/github.md>)

Topics: [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [Java](<https://devfeed.tech/topics/java.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Agent Harness](<https://devfeed.tech/topics/agent-harness.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Spring AI](<https://devfeed.tech/topics/spring-ai.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agent-harness](<https://devfeed.tech/tags/agent-harness.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-ml](<https://devfeed.tech/tags/ai-ml.md>), [cli](<https://devfeed.tech/tags/cli.md>), [client-library](<https://devfeed.tech/tags/client-library.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [framework](<https://devfeed.tech/tags/framework.md>), [github-copilot](<https://devfeed.tech/tags/github-copilot.md>), [github-copilot-sdk](<https://devfeed.tech/tags/github-copilot-sdk.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This tutorial introduces the GitHub Copilot SDK for Java, a framework-agnostic client library for creating Copilot agent sessions, registering tools, sending prompts, and receiving structured responses. It demonstrates the SDK in a Jakarta EE 11 real-estate lead-management application and describes prerequisites including JDK, Maven, a GitHub Copilot subscription, and the Copilot CLI.

### Source excerpt

Enterprise Java developers have a new superpower--drive GitHub Copilot from idiomatic Java code with annotations, virtual threads, and more. The post Using the GitHub Copilot SDK for Java appeared first on The GitHub Blog.

## ScarfBench: Benchmarking AI Agents for Enterprise Java Framework Migration

DevFeed: [ScarfBench: Benchmarking AI Agents for Enterprise Java Framework Migration](<https://devfeed.tech/articles/scarfbench-benchmarking-ai-agents-for-enterprise-java-framework-migration-7269.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/ibm-research/scarfbench>)

Author: Raju Pavuluri; Rahul Krishna; Srikanth Govindaraj Tamilselvam; Bridget M; Ashita Saxena; George Safta; Advait Pavuluri; Michele Merler

Published: 2026-06-30T18:32:50Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [migration](<https://devfeed.tech/topics/migration.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Quarkus](<https://devfeed.tech/topics/quarkus.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [agent observability](<https://devfeed.tech/topics/agent-observability.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [applications](<https://devfeed.tech/tags/applications.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [coding](<https://devfeed.tech/tags/coding.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [enterprise](<https://devfeed.tech/tags/enterprise.md>), [java](<https://devfeed.tech/tags/java.md>), [leaderboard](<https://devfeed.tech/tags/leaderboard.md>), [migration](<https://devfeed.tech/tags/migration.md>), [modernization](<https://devfeed.tech/tags/modernization.md>), [open](<https://devfeed.tech/tags/open.md>), [software](<https://devfeed.tech/tags/software.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [spring](<https://devfeed.tech/tags/spring.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

ScarfBench is an open benchmark for evaluating AI agents on enterprise Java framework migrations across Spring, Jakarta EE, and Quarkus. It measures whether migrated applications build, deploy, and preserve behavior, and reports that current agents achieve less than 10% behavioral success on the benchmark.

### Source excerpt

Recent advances in coding agents have sparked excitement around AI-assisted modernization. But an important question remains: Can AI agents reliably modernize real-world enterprise applications? Existing software engineering benchmarks have demonstrated impressive progress in bug fixing and code generation, but framework migration presents a fundamentally different challenge.

## How to emulate LEFT JOIN FETCH using Record-based projections

DevFeed: [How to emulate LEFT JOIN FETCH using Record-based projections](<https://devfeed.tech/articles/how-to-emulate-left-join-fetch-using-record-based-projections-21983.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/emulate-left-join-fetch-using-projections/>)

Author: vladmihalcea

Published: 2026-02-27T08:52:13Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Persistence](<https://devfeed.tech/topics/persistence.md>), [Java](<https://devfeed.tech/topics/java.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [join-fetch](<https://devfeed.tech/tags/join-fetch.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [unrelated](<https://devfeed.tech/tags/unrelated.md>)

### AI overview

This tutorial explains how to emulate a LEFT JOIN FETCH between two root entities without fetching an intermediate child entity. It uses record-based projections and a JPQL query, and describes how the resulting entities remain managed in the persistence context and can produce updates during flush.

### Source excerpt

Introduction In this article, I'm going to show you how to emulate a LEFT JOIN FETCH between two root entities without fetching the intermediate child entity. I got the inspiration for this article by this comment thread on my blog. Domain Model Let's assume we have the following entities: The Post is the root entity of our hierarchy, but just like it's the case with the relational model, the root entity does not have any reference to its children: On the second level of our hierarchy we have the PostDetails: The PostDetails... Read More The post How to emulate LEFT JOIN FETCH using Record-based projections appeared first on Vlad Mihalcea.

## The best way to replace the deprecated GenericGenerator

DevFeed: [The best way to replace the deprecated GenericGenerator](<https://devfeed.tech/articles/the-best-way-to-replace-the-deprecated-genericgenerator-21988.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/replace-deprecated-genericgenerator/>)

Author: vladmihalcea

Published: 2025-12-02T08:23:12Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Development](<https://devfeed.tech/topics/development.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Code](<https://devfeed.tech/topics/code.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [database-identifier](<https://devfeed.tech/tags/database-identifier.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [genericgenerator](<https://devfeed.tech/tags/genericgenerator.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [tsid](<https://devfeed.tech/tags/tsid.md>)

### AI overview

This tutorial explains how to replace the deprecated Hibernate @GenericGenerator annotation when upgrading an application to Hibernate 7. It covers custom entity identifier generators and sequence optimizers using the @IdGeneratorType meta-annotation.

### Source excerpt

Introduction In this article, I'm going to show you the best way to replace the deprecated @GenericGenerator when upgrading your application to Hibernate 7. Hibernate @GenericGenerator annotation The @GenericGenerator annotation has been available since Hibernate 3.5, as an alternative to the <generator> XML element from HBM mappings. As illustrated by the Hibernate 6.5 @GenericGenerator Javadoc, this annotation was deprecated in favor of the @IdGeneratorType meta-annotation, which we've been using before for the TSID identifier. Traditionally, there were two main use cases where you'd use the @GenericGenerator annotation: to provide a custom identifier... Read More The post The best way to replace the deprecated GenericGenerator appeared first on Vlad Mihalcea.

## Twelve years of blogging

DevFeed: [Twelve years of blogging](<https://devfeed.tech/articles/twelve-years-of-blogging-21989.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/twelve-years-of-blogging/>)

Author: vladmihalcea

Published: 2025-09-30T11:35:44Z

Content type: opinion

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [WordPress](<https://devfeed.tech/topics/wordpress.md>)

Tags: [anniversary](<https://devfeed.tech/tags/anniversary.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blogging](<https://devfeed.tech/tags/blogging.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [software-developer](<https://devfeed.tech/tags/software-developer.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [wordpress](<https://devfeed.tech/tags/wordpress.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

A personal reflection marking twelve years of blogging. The author describes starting the blog while working as a software architect, developing writing experience over time, and finding inspiration in wide-ranging reading. The article also promotes Hypersistence Optimizer for detecting performance issues in JPA and Hibernate data access layers across several Java frameworks.

### Source excerpt

Twelve years later! Twelve years ago today, I decided to create this blog on WordPress.com to share whatever I was finding interesting while working as a software architect. Prior to starting this blog, I didn't have any writing experience, which you can clearly see in the first article I've ever published. However, practice makes perfect, and in time, I managed to learn how to express myself in writing, whether it was an article, a social media post, an answer on StackOverflow, or a book. Follow Your Bliss I've always loved to read.... Read More The post Twelve years of blogging appeared first on Vlad Mihalcea.

## Keycloak 22.0.0 released

DevFeed: [Keycloak 22.0.0 released](<https://devfeed.tech/articles/keycloak-22-0-0-released-31614.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2023/07/keycloak-2200-released>)

Author: Keycloak Team

Published: 2023-07-11T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Quarkus](<https://devfeed.tech/topics/quarkus.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [Java](<https://devfeed.tech/topics/java.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>)

Tags: [deprecated](<https://devfeed.tech/tags/deprecated.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [idm](<https://devfeed.tech/tags/idm.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Keycloak 22.0.0 removes Java 11 support, upgrades to Quarkus 3.x and Hibernate ORM 6.2, migrates from Java EE to Jakarta EE 10, and adds a KeyStore Vault implementation and KeyStore Config Source.

### Source excerpt

To download the release go to Keycloak downloads. Release notes Server Distribution Java 11 support removed Running the Keycloak server with Java 11 is no longer supported. Java 11 was deprecated in Keycloak 21 with the announced plan to be removed in Keycloak 22. Upgrade to Quarkus 3.x Keycloak upgraded to version 3.2.0.Final of the Quarkus Java framework. Quarkus 3.x continues the tradition of propelling Java development by moving fast and providing a cutting-edge user experience with the latest technologies. Transition from Java EE to Jakarta EE As part of upgrading to Quarkus 3.x Keycloak migrated its codebase from Java EE (Enterprise Edition) to its successor Jakarta EE, which brings various changes into Keycloak. We have upgraded all Jakarta EE specifications in order to support Jakarta EE 10. Context and dependency injection no longer enabled to JAX-RS Resources In order to provide a better runtime and leverage as much as possible the underlying stack, all injection points for contextual data using the javax.ws.rs.core.Context annotation were removed. The expected improvement in performance involves no longer creating proxies instances multiple times during the request lifecycle, and drastically reducing the amount of reflection code at runtime. Upgrade to Hibernate ORM 6 Keycloak now benefits from the upgrade to Hibernate ORM 6.2, which includes improved performance, better SQL, modern JDK support, and support for modern RDBMS features. Elytron credential store replacement The previous and now removed WildFly distribution provided a built-in vault provider that reads secrets from a keystore-backed Elytron credential store. As this is no longer available, we have added a new implementation of the Keycloak Vault SPI called Keycloak KeyStore Vault. As the name suggests, this implementation reads secrets from a Java keystore file. Such secrets can be then used within multiple places of the Administration Console. For further details, see our guide and the latest