{"id":62409,"date":"2025-08-12T11:28:12","date_gmt":"2025-08-12T11:28:12","guid":{"rendered":"https:\/\/www.newsbeep.com\/au\/62409\/"},"modified":"2025-08-12T11:28:12","modified_gmt":"2025-08-12T11:28:12","slug":"jakarta-ee-12-will-focus-on-consistency-and-configuration","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/au\/62409\/","title":{"rendered":"Jakarta EE 12 Will Focus on Consistency and Configuration"},"content":{"rendered":"<p>Before the <a href=\"https:\/\/www.infoq.com\/news\/2025\/07\/jakarta-ee-11-updates\/\" rel=\"nofollow noopener\" target=\"_blank\">final release of Jakarta EE 11<\/a>, preparations for Jakarta EE 12 were well underway as plan reviews for 24 Jakarta EE <a href=\"https:\/\/jakarta.ee\/specifications\/\" rel=\"nofollow noopener\" target=\"_blank\">specifications<\/a> were approved in early 2025.<\/p>\n<p>Currently scheduled for a GA release in July 2026, as per the <a href=\"https:\/\/jakartaee.github.io\/platform\/jakartaee12\/JakartaEE12ReleasePlan\" rel=\"nofollow noopener\" target=\"_blank\">release plan<\/a>, Jakarta EE 12 will focus on consistency and configuration, and require a minimum of JDK 21 along with support for the upcoming release of JDK 25. Many of the updated specifications will feature the removal of the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/24\/docs\/api\/java.base\/java\/lang\/SecurityManager.html\" rel=\"nofollow noopener\" target=\"_blank\">SecurityManager<\/a> class that was <a href=\"https:\/\/openjdk.org\/jeps\/411\" rel=\"nofollow noopener\" target=\"_blank\">deprecated<\/a> in JDK 17 and <a href=\"https:\/\/openjdk.org\/jeps\/486\" rel=\"nofollow noopener\" target=\"_blank\">permanently disabled<\/a> in JDK 24. This includes specifications that haven&#8217;t been updated since the <a href=\"https:\/\/www.infoq.com\/news\/2022\/09\/jakarta-ee-10-updates\/\" rel=\"nofollow noopener\" target=\"_blank\">release of Jakarta EE 10<\/a> in September 2022.<\/p>\n<p>Release Timeline<\/p>\n<p>The proposed Jakarta EE 12 release timeline is shown in the diagram below.<\/p>\n<p><img decoding=\"async\" alt=\"\" style=\"width: 600px; height: 341px;\" src=\"https:\/\/www.infoq.com\/news\/2025\/08\/jakarta-ee-12-consistency\/news\/2025\/08\/jakarta-ee-12-consistency\/en\/resources\/1infoq-jakarta-ee-12-timeline-1754654921924.png\" rel=\"share\"\/><\/p>\n<p>The current plan to release Milestone 1 in September 2025.<\/p>\n<p>Jakarta EE 12 Specifications<\/p>\n<p>As shown in the specification diagram below, this is a preliminary look at the specifications and their respective versions that are proposed for the Jakarta EE 12 Platform.<\/p>\n<p><img decoding=\"async\" alt=\"\" style=\"width: 600px; height: 338px;\" src=\"https:\/\/www.infoq.com\/news\/2025\/08\/jakarta-ee-12-consistency\/news\/2025\/08\/jakarta-ee-12-consistency\/en\/resources\/1infoq-jakarta-ee-12-diagram-1754654921925.png\" rel=\"share\"\/><\/p>\n<p>We briefly examine the three specifications labeled as NEW in the above diagram. We will also examine some proposed changes. Note that these three specifications will need to be voted into the Jakarta EE 12 Platform by the Jakarta EE steering committee.<\/p>\n<p>Jakarta Query<\/p>\n<p>Having passed its creation review in April 2025, <a href=\"https:\/\/jakarta.ee\/specifications\/query\/1.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Query 1.0<\/a>, a new specification in the Jakarta EE ecosystem, defines an object-oriented language designed to support the <a href=\"https:\/\/jakarta.ee\/specifications\/persistence\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Persistence<\/a>, <a href=\"https:\/\/jakarta.ee\/specifications\/data\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Data<\/a> and <a href=\"https:\/\/jakarta.ee\/specifications\/nosql\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta NoSQL<\/a> specifications.<\/p>\n<p>The intent is to move the <a href=\"https:\/\/jakarta.ee\/learn\/docs\/jakartaee-tutorial\/current\/persist\/persistence-querylanguage\/persistence-querylanguage.html\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Persistence Query Language<\/a> (JPQL) and the <a href=\"https:\/\/jakarta.ee\/specifications\/data\/1.0\/jakarta-data-1.0#_jakarta_data_query_language\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Data Query Language<\/a> (JDQL) into this new specification. There is potential to support other Java-related persistence technologies as well.<\/p>\n<p>Jakarta NoSQL<\/p>\n<p><a href=\"https:\/\/jakarta.ee\/specifications\/nosql\/1.1\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta NoSQL 1.1<\/a>, a standalone specification since 2020, defines a set of APIs and provides a standard implementation for most NoSQL databases and streamlining the integration of Java applications with those databases.<\/p>\n<p>Proposed new features include: a Standardized Driver Communication API; support for the new Jakarta Query specification; and support for prepared statements.<\/p>\n<p>Jakarta MVC<\/p>\n<p><a href=\"https:\/\/jakarta.ee\/specifications\/mvc\/3.1\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta MVC 3.1<\/a>, also a standalone specification since 2020, defines a standard for creating web applications following the action-based model-view-controller pattern.<\/p>\n<p>Proposed new features include: support for the Jakarta RESTful Web Services <a href=\"https:\/\/jakarta.ee\/specifications\/restful-ws\/4.0\/apidocs\/jakarta.ws.rs\/jakarta\/ws\/rs\/ext\/exceptionmapper\" rel=\"nofollow noopener\" target=\"_blank\">ExceptionMapper<\/a> interface for improved response handling; and support for the <a href=\"https:\/\/jakarta.ee\/specifications\/config\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Config<\/a> specification.<\/p>\n<p>Other New Specifications<\/p>\n<p>Having passed its creation review in April 2025, <a href=\"https:\/\/jakarta.ee\/specifications\/portlet\/4.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Portlet 4.0<\/a>, a new specification in the Jakarta EE ecosystem, defines server-side and client-side APIs for developing modular and reusable web components, known as portlets, in Java applications that are managed within a portlet container. This new specification is a migration from JSR 362, <a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=362\" rel=\"nofollow noopener\" target=\"_blank\">Portlet Specification 3.0<\/a>, under Java EE 8.<\/p>\n<p>Also having passed its creation review in April 2025, <a href=\"https:\/\/jakarta.ee\/specifications\/portlet-bridge\/7.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Portlet Bridge 7.0<\/a>, a new specification in the Jakarta EE ecosystem, defines the necessary behavior and APIs for <a href=\"https:\/\/jakarta.ee\/specifications\/faces\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Faces<\/a> applications to operate within a portlet environment. The bridge aligns a Jakarta Faces lifecycle with a Jakarta Portlet lifecycle. This new specification is a migration from JSR 378, <a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=378\" rel=\"nofollow noopener\" target=\"_blank\">Portlet 3.0 Bridge for JavaServer Faces 2.2 Specification<\/a>, under JavaEE 8.<\/p>\n<p>Initial plans for both Jakarta Portlet and Jakarta Portlet Bridge are &#8220;strictly limited to completing the namespace and dependency migration to ensure compatibility with Jakarta EE 10 and to ease the migration path for developers and organizations.&#8221;<\/p>\n<p>It is anticipated that these two specifications will not be ready for Jakarta EE 12.<\/p>\n<p>Consistency<\/p>\n<p>Before Jakarta Data was introduced in Jakarta EE 11, Jakarta Persistence and Jakarta NoSQL were the only data access-specific specifications.<\/p>\n<p>Jakarta Persistence, with a rich history dating back to May 2006, was initially developed by the <a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=220\" rel=\"nofollow noopener\" target=\"_blank\">Enterprise JavaBeans 3.0<\/a> expert group (JSR 220) with the release of Java EE 5.<\/p>\n<p>Jakarta NoSQL started out with the development of its ultimate implementation, <a href=\"https:\/\/www.jnosql.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Eclipse JNoSQL<\/a>, before the specification was even a concept. Introduced to the Java community in March 2017, Eclipse JNoSQL was originally planned to be a community project led by <a href=\"https:\/\/otaviojava.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Ot\u00e1vio Santana<\/a>, founder of OS Expert Services, under the auspices of the <a href=\"https:\/\/jcp.org\/en\/home\/index\" rel=\"nofollow noopener\" target=\"_blank\">Java Community Process<\/a>.<\/p>\n<p>Jakarta EE 12 will further advance data access technologies with the presumed acceptance of the Jakarta Query and Jakarta NoSQL specifications into the Jakarta EE Platform. In a recent InfoQ <a href=\"https:\/\/www.infoq.com\/articles\/jakarta-ee-11-overview\/\" rel=\"nofollow noopener\" target=\"_blank\">technical article<\/a>, Santana discussed the advantages of improved data access in Jakarta EE 12, writing:<\/p>\n<p>&#13;<\/p>\n<p>If Jakarta EE 12 could have a nickname, we could define it as the Data Age, where it will include polyglot persistence within the Jakarta EE ecosystem. It will enable Jakarta EE to &#8220;speak&#8221; both SQL and NoSQL, thanks to the inclusion of Jakarta NoSQL 1.1.<\/p>\n<p>&#13;<\/p>\n<p>The <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9114\" rel=\"nofollow noopener\" target=\"_blank\">HTTP\/3<\/a> specification, introduced in June 2022, offers new features such as stream multiplexing, per-stream flow control, and low-latency connection establishment.<\/p>\n<p>Early discussions to support HTTP\/3 will possibly include a new Jakarta HTTP specification that would create consistency to track HTTP-based request and response objects among specifications such as <a href=\"https:\/\/jakarta.ee\/specifications\/restful-ws\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta RESTful Web Services<\/a> and <a href=\"https:\/\/jakarta.ee\/specifications\/servlet\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Servlet<\/a>.<\/p>\n<p>Configuration<\/p>\n<p>Having passed its creation review in October 2021, <a href=\"https:\/\/jakarta.ee\/specifications\/config\/1.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Config 1.0<\/a> defines and manages configuration through environmental variables, system properties or property files. Inspired by the <a href=\"https:\/\/microprofile.io\/specifications\/config\/\" rel=\"nofollow noopener\" target=\"_blank\">MicroProfile Config<\/a> specification, Jakarta Config is designed to externalize configuration from microservices and inject configuration values at runtime.<\/p>\n<p>Deprecation of the Application Client Container<\/p>\n<p>The Application Client Container (ACC), <a href=\"https:\/\/docs.oracle.com\/cd\/E18930_01\/html\/821-2418\/beaku.html\" rel=\"nofollow noopener\" target=\"_blank\">introduced<\/a> with the release of GlassFish 3.1 in July 2011, manages the execution of Jakarta EE application client components, which are used to access a variety of Jakarta EE services, such as resources from <a href=\"https:\/\/jakarta.ee\/specifications\/messaging\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Messaging<\/a> and components from <a href=\"https:\/\/jakarta.ee\/specifications\/enterprise-beans\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Enterprise Beans<\/a>, from a JVM outside the Eclipse GlassFish Server.<\/p>\n<p>Deprecating the ACC was raised late in the Jakarta EE 11 release process, so it was ultimately decided to declare this feature as optional, along with Remote EJB, in Jakarta EE 11 so that it may be adequately addressed in Jakarta EE 12.<\/p>\n<p>Jakarta EE Future Directions Interest Group<\/p>\n<p>A Jakarta EE <a href=\"https:\/\/projects.eclipse.org\/interest-groups\/jakarta-ee-future-directions\" rel=\"nofollow noopener\" target=\"_blank\">Future Directions Interest Group<\/a>, formed in July 2024, brings together developers from &#8220;inside and outside of Java-related working groups, influencers, and other interested parties.&#8221; This group has accepted the role of generating ideas, conducting research and providing recommendations to the <a href=\"https:\/\/jakarta.ee\/about\/working-group\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta EE<\/a> and <a href=\"https:\/\/microprofile.io\/workinggroup\/\" rel=\"nofollow noopener\" target=\"_blank\">MicroProfile<\/a> Working Groups. Areas of interest would include: emerging technologies; new industry use cases; integrations; and messaging and marketing. Participating members (in alphabetic order) so far include: Garden State JUG, IBM, Association of the German Java User Groups (iJUG), London Java Community (LJC), Microsoft, OmniFish, OpenElements, Oracle and Payara.<\/p>\n<p>More details on the recent release of Jakarta EE 11 and what is on the horizon for Jakarta EE 12 may be found in this Eclipse Foundation <a href=\"https:\/\/newsroom.eclipse.org\/eclipse-newsletter\/2025\/may\/jakarta-ee-12-ready-hit-ground-running\" rel=\"nofollow noopener\" target=\"_blank\">blog post<\/a>.<\/p>\n<p>Editor&#8217;s Notes<\/p>\n<p>[a] Michael Redlich serves as a Co-Director of the Garden State JUG, a committer on the Jakarta Data and Jakarta NoSQL specifications, and a member of the Jakarta EE Future Directions Interest Group.<\/p>\n<p>[b] The Jakarta EE 12 diagram is courtesy of the Eclipse Foundation.<\/p>\n","protected":false},"excerpt":{"rendered":"Before the final release of Jakarta EE 11, preparations for Jakarta EE 12 were well underway as plan&hellip;\n","protected":false},"author":2,"featured_media":62410,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[19937,449,458,459,64,63,460,16553,134,50280,50276,43241,50277,50278,50279,50281,50282],"class_list":{"0":"post-62409","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-arts-and-design","8":"tag-architecture-design","9":"tag-arts","10":"tag-arts-and-design","11":"tag-artsanddesign","12":"tag-au","13":"tag-australia","14":"tag-design","15":"tag-development","16":"tag-entertainment","17":"tag-jakarta-ee","18":"tag-jakarta-ee-12-consistency","19":"tag-java","20":"tag-mvc","21":"tag-nosql","22":"tag-persistence","23":"tag-portlets","24":"tag-query"},"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/posts\/62409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/comments?post=62409"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/posts\/62409\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/media\/62410"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/media?parent=62409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/categories?post=62409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/au\/wp-json\/wp\/v2\/tags?post=62409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}