Lucee 7: javax compatiblility mode

Using Lucee 7, I can see that we must change our loader class from: lucee.loader.servlet.CFMLServlet to either lucee.loader.servlet.javax.CFMLServlet or lucee.loader.servlet.jakarta.CFMLServlet.

This “works” for me using the jakarta version when I upgrade my servlet container to one that uses jakarta. However, I have a mountain of other dependencies to migrate at this point to get the application running with jakarta.

If I use the javax.CFMLServlet however, it immediately fails with class not found jakarta.servelet.ServletException.

Looking at the source code for the javax compatible CFMLServlet.java I immeditately see it pulling in dependencies that rely on jakarta. Is this intended/tested? Or is javax simply not supported in Lucee 7?

I see from the docs that yes, javax is no longer supported.

In this case, what is the reasoning for having:

  • lucee.loader.servlet.CFMLServlet (that throws deprecation errors)
  • lucee.loader.servlet.jakarta.CFMLServlet (the only one that works)
  • lucee.loader.servlet.javax.CFMLServlet (fails with missing jakarta errors)

Should this now be:

  • lucee.loader.servlet.CFMLServlet - the main servelet, working and using jakarta
  • lucee.loader.servlet.jakarta.CFMLServlet - compatibility proxy to lucee.loader.servlet.CFMLServlet
  • lucee.loader.servlet.javax.CFMLServlet - throws error saying no longer supported

Or even just going back to a single CFMLServlet and letting people know that javax no longer supported?

Or am I missing something?