Fork me on GitHub

JakartaEE is coming

For a long time, the Java Enterprise Edition has lived its life under the umbrella of Sun Microsystems then Oracle.

But the project is now hosted by the Eclipse Foundation.

While the transition started smoothly, things have come to a breaking turn when the javax.servlet package has been moved to the jakarta.servlet package.

Several voices have raised to request the support of JakartaEE in pac4j and this post explains the roadmap on this.

In fact, several pac4j implementations exist for various JEE frameworks so the main JEE components exist in the pac4j core project instead of inside each of the implementations.

pac4j v5.2: 1/2

A first step was made in version 5.2 of pac4j where the JEE components (= JavaEE, based on javax.servlet) have been moved from the pac4j-core dependency into the pac4j-jee dependency.

This was not really a breaking change as they remain in the same org.pac4j.core package; this was just a matter of switching from one dependency to another dependency.

Apart from the JakartaEE roadmap, it really was a good change to be able to differentiate between the pac4j JEE implementations (based on pac4j-jee) and the pac4j none-JEE implementations (based on pac4j-core).

pac4j v5.4: 2/2

With pac4j v5.4 comes the second (and last) step to support JakartaEE.

The pac4j-jee dependency is now deprecated and will be removed in version 5.5.x.

It has been replaced by two new dependencies:

In these new dependencies, the JEE components are now in the org.pac4j.jee package, which is a breaking change but won’t be one when you switch from JavaEE (pac4j-javaee) to JakartaEE (pac4j-jakartaee).

As it’s a breaking change, new major versions of the JEE implementations have been released:

They have moved from pac4j-jee to pac4j-javaee.

The jee-pac4j project has even been split into two new modules:

While the pac4j JakartaEE support is only used once currently, it will be used more and more in the future (Spring 6).

Jérôme LELEU - April 2022