eclipse-rdf4j / rdf4j

Eclipse RDF4J: scalable RDF for Java
https://rdf4j.org/
BSD 3-Clause "New" or "Revised" License
359 stars 161 forks source link

Docker: use jetty and/or newer verssion of Tomcat #5064

Open barthanssens opened 2 months ago

barthanssens commented 2 months ago

Problem description

Tomcat 8.5 is EOL 31 March 2024 (https://tomcat.apache.org/tomcat-85-eol.html), so we either need to move to a more recent version or switch to another servlet engine for the server/workbench Docker image

Preferred solution

Use Jetty 9.4, since it's already being used by other dependencies (bonus: Jetty is an Eclipse project) and uses the same Servlet API 3.1 as Tomcat. Probably supported until the end of 2025 (https://github.com/jetty/jetty.project/issues/7958)

Are you interested in contributing a solution yourself?

Yes

Alternatives you've considered

No response

Anything else?

Eventually, we'll need to move to a newer version of the servlet API

aschwarte10 commented 1 month ago

Preferred solution

Use Jetty 9.4, since it's already being used by other dependencies (bonus: Jetty is an Eclipse project) and uses the same Servlet API 3.1 as Tomcat. Probably supported until the end of 2025 (https://github.com/jetty/jetty.project/issues/7958

@barthanssens can you explain why you are not considering to go to Jetty 11? Is it because of the Jakarta switch that is technically blocking it?

barthanssens commented 1 month ago

Well, Jetty 11 (or even 12) should be the next step.

Due to various other dependencies, we already have jetty 9.4 in the list of dependencies, so this should not take much effort and (if all goes well) no code changes, just a different Docker makefile that I'm preparing.

(It's available on hub.docker as jetty-experimental, but I haven't tested it yet)

For Jetty 11, we may need to look into the workbench / rdf4j-server (IIRC they both use Servlet API 3.1, not sure if that API works on Jetty 11 without changes).

barthanssens commented 1 month ago

@aschwarte10 turns out Jetty 12 does indeed still support older Servlet APIs when enabling some modules :-)

barthanssens commented 1 month ago

Problem in jetty 12 : https://github.com/eclipse-rdf4j/rdf4j/issues/5092