IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Webinar Summary: Jakarta EE 9 and Beyond
On August 20, 2020, we hosted a live webinar on ‘Jakarta EE 9 and Beyond’ by Ivar Grimstad, Jakarta EE Developer Advocate at Eclipse Foundation. This session combined an overview of Jakarta EE with live demos.
You can develop your enterprise applications with IntelliJ IDEA Ultimate using Jakarta EE. IntelliJ IDEA Ultimate supports all Jakarta EE features, including CDI, JPA, Batch, Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON-P, JSON-B, Security, and EJB and JTA specifications.
Session details
Ivar started the session with an overview of Jakarta EE, explaining what it is, its transition from Oracle Corporation to Eclipse Foundation, where it gets its name from, and providing website links for further information. He briefly covered Jakarta specifications, what its components are, and the Jakarta EE Platform and Jakarta EE Web Profile.
Even seasoned developers are often uncertain about specifications and their role in driving a technology forward. Our speaker touched on what a specification is and how the Jakarta EE Specification Process works.
Ivar covered Jakarta EE Compatible implementations and gave links to where you can find and check the implementations that work best for your application.
Ivar talked about the main goals of Jakarta EE 9 – lowering barriers to entry, and making Jakarta EE a platform for innovation and easy migration. Jakarta EE is huge, and the speaker talked about the need to change its namespace from javax to jakarta. Unlike Java EE, which had Glassfish as its Reference Implementation (RI), Jakarta EE doesn’t have any concept of an RI.
He gave a live coding demonstration in which he showed how to change the javax namespace of a Jakarta EE 8 application running on Glassfish 5 to jakarta, making it a Jakarta EE 9 application that can run on Glassfish 6.
Ivar also treated his viewers to a sneak peek into what lies beyond Jakarta EE 9. Unlike Java’s six-month release cadence, Jakarta EE will have a year-long, time-based release cadence, which is more suitable for enterprise applications and large organizations.
This webinar touched upon a lot of topics and concepts. Ivar talked about modularizing and modernizing the TCK, CDI Alignment and EJBs, new NoSQL and MVC APIs, externalized configuration, and possible updates to security, concurrency, messaging, persistence, REST, and other aspects of Jakarta EE. Ivar hailed the community effort in moving Jakarta EE forward.
He concluded the presentation with a live demonstration showing how applications are portable across Jakarta EE implementations using Open Liberty, Tomcat, and Jetty. He deployed the same application to all these implementations without recompilation and it worked like a charm.
Additional resources
You can learn more about Jakarta EE here:
Jakarta EE’s website
Jakarta Blogs
JakartaOne LiveStream
Hashtag Jakarta EE Blog series
Session slides ‘Jakarta EE 9 and Beyond’
Follow-up Q & A
Ivar answered a lot of questions from webinar attendees. However, due to time constraints, he couldn’t answer all the questions during the Q&A session. Ivar was kind enough to share answers to some of the questions that he didn’t have time to address, and also a couple of others which he thought were especially important:
Has anyone tried Java EE + Kotlin in production?
Ivar: Not that I am aware of. However, if this is something that is of interest to you, you could join the Working Group and start advocating for Kotlin support.
(For migrating to the java ee namespace to jakarta ee namespace) Is it a case of simple string replacement of javax to jakarta?
Ivar: It can be. But I would suggest that you use the tooling support the IDEs provide you to make sure you the changes are done right. Also, remember that it is not only the Java sources, but also XML schemas and properties that are affected by the namespace change from javax. to jakarta.
Are you familiar with Spring Boot? If so, can you compare the two? If someone is starting a greenfield project, how should they decide which to use?
Ivar: It depends on your familiarity with the frameworks and if either of them provide some specific functionality your use case requires. If you are used to the development model used by Spring, it is probably a good idea to stick with it. Likewise, if Spring provides some functionality you need. The same goes for Jakarta EE. Switching from one to the other isn’t that hard either.
Will Jakarta NoSQL? support JSON Native
Ivar: JSON support is provided by Jakarta JSON Processing and Jakarta JSON Binding. I am not aware that Jakarta NoSQL will provide native support, but I suggest posting that question on their mailing list: https://accounts.eclipse.org/mailing-list/nosql-dev.
Which application servers already support JakartaEE?
Ivar: See https://jakarta.ee/compatibility/
Which OpenJDK version can I use with Jakarta EE 9?
Ivar: The APIs are compiled to Java SE 8 source level and the requirement for Jakarta EE 9 is that the vendors must certify on Java SE 8. BUT, most vendors already support Java SE 11+, so it really depends on which product you choose. There will be a Jakarta EE 9.1 release coming shortly after Jakarta EE 9, which will require that vendors certify on Java SE 11.
What about JAXB generated code and namespace transformation? Will it not break?
Ivar: It depends on the product you are using. The vendor may have included transformation capabilities that make it possible to run applications using the javax. namespace. In that case, they will take care of the transformation at runtime. I would recommend regenerating the JAXB code to use the jakarta. namespace though.
Which vendor of openjdk should I use?
Ivar: Any one of them. If your company has a support agreement with one of them, go with that one. Otherwise, just take your pick.
Which use cases are better for Spring Boot and Jakarta EE?
Ivar: Currently, Spring Boot has better support for Reactive and Serverless, as well as Cloud Native support. I suspect that Jakarta EE will catch up with this pretty soon when we get over this namespace change and can start really developing the platform further.
Will switching to JakartaEE have an impact on providers like RESTEasy, Hibernate, Weld, etc?
Ivar: Yes, RESTEasy, Hibernate, and Weld will release new versions that implement the corresponding specifications with the jakarta.* namespace.
Will Jakarta have its own definition of testing?
Ivar: Currently, no. But if this is of interest to you, I suggest joining the Working Group and advocating for it.
On the Jakarta EE 9 milestone there were plans to update Jakarta EE to JDK 11. What happened to that plan?
Ivar: It turned out that the work required to update from Java SE 8 to Java SE 11 was a little more extensive than we estimated and we didn’t want to jeopardize the release. There will be a Jakarta EE 9.1 release shortly after Jakarta EE 9 that will require Java SE 11.
Our next webinar
For all our IntelliJ IDEA users, we are hosting another webinar on ‘Developing Micronaut Applications With IntelliJ IDEA‘. Micronaut is a popular modern JVM framework for developing microservices using Java, Groovy, or Kotlin.
Join us on Friday, September 18, 4:00 pm–5:00 pm CEST. Access further details on this webinar and register now.
Happy developing!