FYI here is the diff between servlet 5 and 6 API jars:

New API: - jakarta.servlet.ServletConnection Deleted API: -
jakarta.servlet.SingleThreadModel - jakarta.servlet.http.HttpSessionContext
- jakarta.servlet.http.HttpUtils Changed API:
jakarta.servlet.ServletContext Deleted methods: - public abstract
jakarta.servlet.Servlet
jakarta.servlet.ServletContext.getServlet(java.lang.String) throws
jakarta.servlet.ServletException - public abstract java.util.Enumeration
jakarta.servlet.ServletContext.getServletNames() - public abstract
java.util.Enumeration jakarta.servlet.ServletContext.getServlets() - public
abstract void
jakarta.servlet.ServletContext.log(java.lang.Exception,java.lang.String)
jakarta.servlet.ServletRequest Added methods: - public abstract
jakarta.servlet.ServletConnection
jakarta.servlet.ServletRequest.getServletConnection() - public abstract
java.lang.String jakarta.servlet.ServletRequest.getProtocolRequestId() -
public abstract java.lang.String
jakarta.servlet.ServletRequest.getRequestId() Deleted methods: - public
abstract java.lang.String
jakarta.servlet.ServletRequest.getRealPath(java.lang.String)
jakarta.servlet.ServletRequestWrapper Added methods: - public
jakarta.servlet.ServletConnection
jakarta.servlet.ServletRequestWrapper.getServletConnection() - public
java.lang.String
jakarta.servlet.ServletRequestWrapper.getProtocolRequestId() - public
java.lang.String jakarta.servlet.ServletRequestWrapper.getRequestId()
Deleted methods: - public java.lang.String
jakarta.servlet.ServletRequestWrapper.getRealPath(java.lang.String)
jakarta.servlet.SessionCookieConfig Added methods: - public abstract
java.lang.String
jakarta.servlet.SessionCookieConfig.getAttribute(java.lang.String) - public
abstract java.util.Map jakarta.servlet.SessionCookieConfig.getAttributes()
- public abstract void
jakarta.servlet.SessionCookieConfig.setAttribute(java.lang.String,java.lang.String)
jakarta.servlet.UnavailableException Deleted methods: - public
jakarta.servlet.Servlet jakarta.servlet.UnavailableException.getServlet()
jakarta.servlet.descriptor.JspPropertyGroupDescriptor Added methods: -
public abstract java.lang.String
jakarta.servlet.descriptor.JspPropertyGroupDescriptor.getErrorOnELNotFound()
jakarta.servlet.http.Cookie Added methods: - public boolean
jakarta.servlet.http.Cookie.equals(java.lang.Object) - public int
jakarta.servlet.http.Cookie.hashCode() - public java.lang.String
jakarta.servlet.http.Cookie.getAttribute(java.lang.String) - public
java.lang.String jakarta.servlet.http.Cookie.toString() - public
java.util.Map jakarta.servlet.http.Cookie.getAttributes() - public void
jakarta.servlet.http.Cookie.setAttribute(java.lang.String,java.lang.String)
jakarta.servlet.http.HttpServlet Added fields: - public static final
java.lang.String jakarta.servlet.http.HttpServlet.LEGACY_DO_HEAD Added
methods: - public void
jakarta.servlet.http.HttpServlet.init(jakarta.servlet.ServletConfig) throws
jakarta.servlet.ServletException jakarta.servlet.http.HttpServletRequest
Deleted methods: - public abstract boolean
jakarta.servlet.http.HttpServletRequest.isRequestedSessionIdFromUrl()
jakarta.servlet.http.HttpServletRequestWrapper Deleted methods: - public
boolean
jakarta.servlet.http.HttpServletRequestWrapper.isRequestedSessionIdFromUrl()
jakarta.servlet.http.HttpServletResponse Deleted methods: - public abstract
java.lang.String
jakarta.servlet.http.HttpServletResponse.encodeRedirectUrl(java.lang.String)
- public abstract java.lang.String
jakarta.servlet.http.HttpServletResponse.encodeUrl(java.lang.String) -
public abstract void
jakarta.servlet.http.HttpServletResponse.setStatus(int,java.lang.String)
jakarta.servlet.http.HttpServletResponseWrapper Deleted methods: - public
java.lang.String
jakarta.servlet.http.HttpServletResponseWrapper.encodeRedirectUrl(java.lang.String)
- public java.lang.String
jakarta.servlet.http.HttpServletResponseWrapper.encodeUrl(java.lang.String)
- public void
jakarta.servlet.http.HttpServletResponseWrapper.setStatus(int,java.lang.String)
jakarta.servlet.http.HttpSession Deleted methods: - public abstract
jakarta.servlet.http.HttpSessionContext
jakarta.servlet.http.HttpSession.getSessionContext() - public abstract
java.lang.Object
jakarta.servlet.http.HttpSession.getValue(java.lang.String) - public
abstract java.lang.String[]
jakarta.servlet.http.HttpSession.getValueNames() - public abstract void
jakarta.servlet.http.HttpSession.putValue(java.lang.String,java.lang.Object)
- public abstract void
jakarta.servlet.http.HttpSession.removeValue(java.lang.String)

It does not look crazy to get back (without @Override) deleted methods in
Tomcat - most of them are just either "return null" or a delegation to
another method so cost for tomcat is almost 0 for that side.
What I'm not yet sure - didn't have time to check yet - is if the new API
are used directly from jakarta package (if so it would fail running with
servlet 5 api else it will run smoothly and could be a win-win?).

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mer. 27 mars 2024 à 14:20, Romain Manni-Bucau <rmannibu...@gmail.com> a
écrit :

> Ok, let see if we can maybe have an exceptional certification status with
> servlet 6 as an exception but I doubt (but would make everyone happy) :(
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
>
>
> Le mer. 27 mars 2024 à 14:15, Rémy Maucherat <r...@apache.org> a écrit :
>
>> On Wed, Mar 27, 2024 at 11:13 AM Romain Manni-Bucau
>> <rmannibu...@gmail.com> wrote:
>> >
>> > Le mer. 27 mars 2024 à 10:58, Rémy Maucherat <r...@apache.org> a écrit
>> :
>> >
>> > > On Wed, Mar 27, 2024 at 9:49 AM Romain Manni-Bucau
>> > > <rmannibu...@gmail.com> wrote:
>> > > >
>> > > > Hi all,
>> > > >
>> > > > Checkout out TomEE's notifications I realized Tomcat is in a
>> weirdish
>> > > > situation where Tomcat 9 is Servlet 4 and "+1" version is Tomcat
>> 10.1
>> > > which
>> > > > is Servlet 6.
>> > > > It means Tomcat is no more a Servlet 5 friendly option.
>> > > >
>> > > > I wonder if it means Tomcat < 10.1 should be stopped too or if
>> Tomcat
>> > > 10.0
>> > > > should be maintained and released again - pretty sure we can find
>> help if
>> > > > desired for that not that far.
>> > > > Another option is to restore the deleted methods between servlet
>> 5-6 in
>> > > the
>> > > > code base to be able to run Tomcat 10.1 with Servlet 5 API instead
>> of
>> > > > Servlet 6 - to pass signature TCK.
>> > > >
>> > > > Wdyt?
>> > >
>> > > Nothing. The Tomcat developers (= the committers) determined that the
>> > > EE 9 release was useless since the only change is the javax -> jakarta
>> > > package renaming. A big task for sure, but that seemed to us this was
>> > > more a developer oriented armaggeddon and not something that benefits
>> > > our users.
>> > >
>> > > For reasons that elude my understanding, some other projects like
>> > > TomEE thought this was still useful and decided to release full
>> > > support for EE 9 rather than go to EE 10 like we did. Our plan about
>> > > EE was public. So I guess this is still our problem obviously, but I
>> > > don't feel like doing anything about it.
>> > >
>> >
>> > From what I saw on other AsfEE projects, users requested it, nothing
>> more
>> > and then you have CVE game.
>> >
>> >
>> > >
>> > > BTW, about the last item. Recently, I tried to run CXF on the new EE
>> > > 10 APIs (since OWB moved to that). It doesn't work as it uses
>> > > deprecated APIs, while IMO it should have moved away from them long
>> > > ago. And it's an ASF project, not some hack project somewhere.
>> > >
>> >
>> > This is fixed AFAIK on master (maybe last release, didnt check) so
>> should
>> > be fine soon.
>>
>> I checked and there is a new CXF release from early March.
>>
>> However, I still get the CDI 4 deprecation removal issue:
>>     Caused by: java.lang.NoSuchMethodError: 'void
>> jakarta.enterprise.inject.spi.BeanManager.fireEvent(java.lang.Object,
>> java.lang.annotation.Annotation[])'
>>         at
>> org.apache.cxf.cdi.JAXRSCdiResourceExtension.onStartup(JAXRSCdiResourceExtension.java:167)
>>
>> This is deprecated in CDI 3 (and removed in 4):
>>
>> https://jakarta.ee/specifications/cdi/3.0/apidocs/jakarta/enterprise/inject/spi/beanmanager#fireEvent-java.lang.Object-java.lang.annotation.Annotation...-
>>
>> I did not report it since this is EE 10 work, which they don't claim
>> to support. However, it doesn't hurt to remove use of these deprecated
>> methods and I believe this would make CXF work with OWB 4 (although
>> not officially supported). I use this example to show how much this EE
>> 9 is simply a piece of garbage, you get breakage, it's useless, but
>> then you get breakage again with EE 10.
>>
>> > > Basically unless there's a cut somewhere, nothing will ever change :D
>> > > As a result, I don't think an API restoration in Tomcat 10.1 is a good
>> > > idea ...
>> > >
>> >
>> > Ok, so last option is TomEE community taking the lead on 10.0 branch, is
>> > that an option if all the PR work is done?
>>
>> I doubt it would make any difference:
>> a) Tomcat 10.0 was frozen at 10.1.1 level exactly 18 months ago.
>> b) I suppose this is about CVEs.
>> c) So the process would be to fix them and then release only the Maven
>> artifacts. We cannot make a real release and advertise it with so many
>> bugfixes missing.
>> This would produce the same result with the same effort compared to
>> their custom "forked" branch (I don't consider it a fork since this is
>> simply a continuation from where the Tomcat branch stopped). I would
>> be reluctant to vote +1 to these releases unfortunately due to the
>> known issues.
>>
>> Backporting everything from Tomcat 10.1 is a huge effort ...
>>
>> Rémy
>>
>> > >
>> > > Rémy
>> > >
>> > > > Best,
>> > > > Romain Manni-Bucau
>> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> > > > <https://rmannibucau.metawerx.net/> | Old Blog
>> > > > <http://rmannibucau.wordpress.com> | Github <
>> > > https://github.com/rmannibucau> |
>> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>> > > > <
>> > >
>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>> > > >
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
>> > > For additional commands, e-mail: dev-h...@tomcat.apache.org
>> > >
>> > >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: dev-h...@tomcat.apache.org
>>
>>

Reply via email to