deegree / deegree3

Official deegree repository providing geospatial core libraries, data access and advanced OGC web service implementations
https://www.deegree.org
GNU Lesser General Public License v2.1
150 stars 99 forks source link

Add support for Tomcat 10.0 and 10.1 #1401

Closed tfr42 closed 9 months ago

tfr42 commented 2 years ago

To support Servlet API version 5.0 (TC 10.0) and 6.0 (TC 10.1) it is required to change the javax.servlet.* imports in the code by jakarta.servlet.*.

tfr42 commented 1 year ago

The Tomcat Migration Guide describes the requirements which need to be met. There is the Tomcat Migration Tool for Jakarta EE to support the migration of an existing WAR file. How to run the tool is document in here.

tfr42 commented 1 year ago

Steps for migrating to TC 10.x using Apache Maven 3.9+ with OpenJDK 17:

tfr42 commented 1 year ago

A docker image with deegree webservices 3.5.2 on Tomcat 10.1 with JDK 17 is available for testing on hub.docker.com: docker pull tfr42/deegree:3.5-jdk17-tomcat10

julianzz98 commented 1 year ago

The docker image was successfully tested locally.

The tests included:

tfr42 commented 10 months ago

Source code migration to jakarta.* with:

 mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
    -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:LATEST \
    -Drewrite.activeRecipes=org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
tfr42 commented 10 months ago

The PR #1627 contains the upgrade to Servlet API 6.0 and Faces 4.0 as well as upgrade of #1625.

tfr42 commented 10 months ago

Part of the migration to Servlet API 6.0 is a update of the Jetty maven plugin required. The maven plugin is used to run the integration-tests in a servlet container. The plugin has the following constraints:

tfr42 commented 9 months ago

To use Faces 4.0 with CDI on Tomcat 10.1 it is required to enable CDI, see https://tomcat.apache.org/tomcat-10.1-doc/cdi.html for more information.

tfr42 commented 5 months ago

The support of Servlet API version 5.0 (TC 10.0) and 6.0 (TC 10.1) was fully implemented with version 3.6 of deegree webservices, see https://github.com/deegree/deegree3/wiki/End-of-Life-and-Support-Matrix for more information.