*** DRAFT *** DRAFT *** DRAFT ***

Jakarta EE 9 will be, as far as Tomcat is concerned, identical to Java EE 8 with one notable exception. The package names for many of the Jakarta EE packages will change from javax.* to jakarta.*

Jakarta EE 10 will follow relatively quickly after Jakarta EE 9 and will include API changes, new features etc.

Tomcat major versions have, historically, tracked releases of the Java Servlet specification (and associated Java EE specification).

The expectation is that future Tomcat versions will continue to track releases of the Jakarta Servlet specification  (and associated Jakarta EE specification).

The Tomcat community wishes to implement Jakarta EE 9 but recognises that many users will wish to remain on Java EE 8 while taking advantage of new features introduced in Tomcat 10 onwards.

The Tomcat community has therefore drafted the following release plan:

Current status

  • 7.0.x : Continues to support Java EE 6
  • 8.5.x : Continues to support Java EE 7
  • 9.0.x : Continues to support Java EE 8
  • 10.0.x : Jakarta EE 9 development

Step 1: Announce EOL for 7.0.x

Announce EOL for Tomcat 7 (as 31 March 2021?)

That gives us:

  • 7 : Continues to support Java EE 6
  • 8 : Continues to support Java EE 7
  • 9 : Continues to support Java EE 8
  • 10.0.0-Mx (master) development branch for Jakarta EE 9 support

Note the 10.0.0-Mx will be Milestone releases

Step 2: Releases between now and Jakarta EE 9 release

Apply Tomcat API changes planned for Tomcat 10 to 10.0.0-Mx

Apply Jakarta EE 9 package rename changes.

Other changes applied to 10.0.0-Mx and then back-ported to 9.0.x, 8.5.x and 7.0.x

Monthly milestone releases of 10.0.0-Mx alongside 9.0.x and 8.5.x

Step 3: Jakarta EE 9 release

Once Jakarta EE 9 is released and Tomcat 10.0.0-Mx passes the TCK

Release 10.0.0

Create a 10.0.x branch from master.

10.0.x will be supported until there is a stable 10.1.0 release.

Create a 9.10.x branch (from master and revert the package rename commits)

9.n will be supported until there is a stable 9.(n+1) release.

Latest 9.n aims to be identical to latest Tomcat n except it won't include the javax → jakarta package rename.

That gives us:

  • 7.0.x : Continues to support Java EE 6
  • 8.5.x : Continues to support Java EE 7
  • 9.0.x : Continues to support Java EE 8
  • 9.10.x: Continues to support Java EE 8 with Tomcat API identical to latest Tomcat 10
  • 10.0.x: Continues to support Jakarta EE 9. Critical / important fixes only. Will be EOL'd as soon as Jakarta EE 10 is stable.
  • 10.1-0-Mx (master): Development branch for Jakarta EE 10 support

Step 4 : Jakarta EE 10 release

It is assumed that Tomcat 7 EOL has passed by this point.

10.0.x will also be EOL.

That gives us:

  • 8.5.x : Continues to support Java EE 7
  • 9.0.x : Continues to support Java EE 8
  • 9.10.x: Continues to support Java EE 8 with Tomcat API identical to latest Tomcat 10.1.x
  • 10.1.x (master): Supports Jakarta EE 10

Step 5 Jakarta EE 11 development starts

Announce EOL for Tomcat 8.

Create 10.1.x branch from master.

That gives us:

  • 8.5.x : Continues to support Java EE 7
  • 9.0.x : Continues to support Java EE 8
  • 9.10.x : Continues to support Java EE 8 with Tomcat API identical to latest Tomcat 10.0.x
  • 10.1.x : Supports Jakarta EE 10
  • 11.0.x (master): Development of Jakarta EE 11 support

Step 6 : Jakarta EE 11 release

9.10.x is now EOL.

Create a 9.11.x branch (from master and revert the package rename commits)

That gives us:

  • 8.5.x : Continues to support Java EE 7 (likely to be EOL soon if not already EOL)
  • 9.0.x : Continues to support Java EE 8
  • 9.11.x : Continues to support Java EE 8 with Tomcat API identical to latest Tomcat 11.0.x
  • 10.1.x : Supports Jakarta EE 10
  • 11.0.x : (master): Supports of Jakarta EE 11

Steady state

The steady state should be repeating the pattern of steps 5 and 6 with the following versions:

  • 9.N: Continues to support Java EE 8 with Tomcat API identical to latest Tomcat N
  • (N-2): Supports Jakarta EE (N-2)
  • (N-1): Supports Jakarta EE (N-1)
  • N (master): Development of Jakarta EE N support


  • No labels