Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to upgrade to latest Tomcat - Requires Spring 6.x+ #3025

Open
SammyIsConfused opened this issue May 24, 2021 · 2 comments
Open

Unable to upgrade to latest Tomcat - Requires Spring 6.x+ #3025

SammyIsConfused opened this issue May 24, 2021 · 2 comments
Labels
Tech debt Anything to with the health of the code base

Comments

@SammyIsConfused
Copy link
Contributor

SammyIsConfused commented May 24, 2021

Describe the bug
When attempting to upgrade Tomcat from 9.0.46 to 10.0.6 for #2685, I quickly found that in order to run this upgrade we would also need to upgrade Spring framework and RESTEasy - they use the javax.servlet classpath, which is incompatible in Tomcat 10 which migrates to use jakarta.servlet.

However, there are as of yet no released versions of either library that use the jakarta.servlet classpath. Because of this, it is impossible to update Tomcat to 10 without breaking RESTEasy and Spring framework, until both libraries do work to support Tomcat 10.

To Reproduce
Steps to reproduce the behavior:

  1. Change TomcatVersion in equellaserver/build.sbt to 10.0.6.
  2. Rename all in-code instances of javax.servlet to jakarta.servlet as per the Apache Tomcat 9 - 10 Migration guide.
  3. Rebuild openEQUELLA. Note errors wherever Spring framework is used (E.G line 90 on RemoteInterceptor.java, where jakarta.servlet.HttpRequest and jakarta.servlet.HttpResponse are used and org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter expects javax.servlet.HttpResponse and javax.servlet.HttpRequest).

Expected behavior
We need to wait until stable versions of org.springframework and resteasy are released that have support for jakarta.servlet classpaths, and then we can upgrade both of those and Tomcat.

See also: spring-projects/spring-framework#25354

Platform:

  • OpenEquella Version: 2021.1+
  • OS: Agnostic
  • Browser: Agnostic

Additional context
Another slight problem with upgrading Tomcat is that the JDBCStore which has been deprecated for multiple versions is finally removed, and openEQUELLA relies on this JDBCStore in the TomcatServiceImpl. We will need to migrate to use the new (JNDI) format.

@stale
Copy link

stale bot commented Sep 22, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale Issue with low activity and flagged by Stale Bot label Sep 22, 2021
@edalex-ian edalex-ian added the Tech debt Anything to with the health of the code base label Sep 23, 2021
@stale stale bot removed the stale Issue with low activity and flagged by Stale Bot label Sep 23, 2021
@edalex-ian
Copy link
Member

From the above we're currently waiting on two releases:

Current situation is as follows.

Spring

Not yet available, the latest is still 5.3.14. When this does update, several updates will be required at once but at least we are currently running 5.3.14 and renovate is actively keeping us up to date.

Note: We don't use spring-core, we only use spring-{aop, context, context-support, jcl, jdbc, orm, tx, web}.

RESTEasy

Version 5 of RESTEasy is now available and includes use of the jakarta namespace. So at least this is ready, but I guess we also need to wait for spring.

That said though, we're also on a rather old version at RESTEasy with resteasy-jaxrs at 3.15.3.Final so it would be worthwhile at least getting this closer (say 4.7.x) in preparation.

@edalex-ian edalex-ian changed the title Unable to upgrade to latest Tomcat - Spring framework and RestEasy don't support Tomcat 10 Unable to upgrade to latest Tomcat - Requires Spring 6.x+ Jan 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tech debt Anything to with the health of the code base
Projects
None yet
Development

No branches or pull requests

2 participants