diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 7919b05b761..d31ed56fc49 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -94,7 +94,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java-version: ['11.x', '17.x', '21.x']
+ java-version: ['17.x', '21.x']
fail-fast: false
steps:
- name: "checking out"
@@ -126,19 +126,15 @@ jobs:
strategy:
matrix:
node-version: ['20.x', '22.x', '24.x']
- java-version: ['11.x', '17.x', '21.x']
+ java-version: ['17.x', '21.x']
# Reduce the combinations to reduce the total number of jobs
exclude:
- node-version: '20.x'
java-version: '17.x'
- node-version: '20.x'
java-version: '21.x'
- - node-version: '22.x'
- java-version: '11.x'
- node-version: '22.x'
java-version: '21.x'
- - node-version: '24.x'
- java-version: '11.x'
- node-version: '24.x'
java-version: '17.x'
fail-fast: false
@@ -216,14 +212,14 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
- java-version: '11.x'
+ java-version: '17.x'
############
# Publish
##########
- name: Set up Maven Central Repository
uses: actions/setup-java@v3
with:
- java-version: '11'
+ java-version: '17'
distribution: 'temurin'
server-id: geosolutions
server-username: MAVEN_USERNAME
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4e3f2f5f5fa..5672816bebc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -5,7 +5,7 @@ on:
- master
# using filter pattern: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
- '[cC][0-9][0-9][0-9]-+**' # c123 or c123-something for custom branch
- - '[0-9][0-9][0-9][0-9].[0-9][0-9].xx' # stable brances. E.g. 2021.01.xx
+ - '[0-9][0-9][0-9][0-9].[0-9][0-9].xx' # stable branches. E.g. 2021.01.xx
- '[geonode]-[0-9].[0-9].x' # stable branches for GeoNode. E.g. geonode-4.4.x
jobs:
@@ -22,7 +22,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
- java-version: '11.x'
+ java-version: '17.x'
############
# CACHING
##########
diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml
index 09b8de786c0..38212a8e9a7 100644
--- a/.github/workflows/create_release.yml
+++ b/.github/workflows/create_release.yml
@@ -41,7 +41,7 @@ jobs:
- name: "setting up Java"
uses: actions/setup-java@v1
with:
- java-version: '11.x'
+ java-version: '17.x'
############
# CACHING
##########
diff --git a/.github/workflows/post_release.yml b/.github/workflows/post_release.yml
index d6b564668bd..d70bf51cc42 100644
--- a/.github/workflows/post_release.yml
+++ b/.github/workflows/post_release.yml
@@ -21,10 +21,10 @@ jobs:
script: |
core.setFailed('This workflow can not run on master branch')
- uses: actions/checkout@v3
- - name: Set up JDK 11
+ - name: Set up JDK 17
uses: actions/setup-java@v3
with:
- java-version: '11.x'
+ java-version: '17.x'
distribution: 'adopt'
cache: maven
diff --git a/.github/workflows/pre_release.yml b/.github/workflows/pre_release.yml
index ca21e705e1a..97b36e09ce2 100644
--- a/.github/workflows/pre_release.yml
+++ b/.github/workflows/pre_release.yml
@@ -37,10 +37,10 @@ jobs:
script: |
core.setFailed('This workflow can not run on master branch')
- uses: actions/checkout@v3
- - name: Set up JDK 11
+ - name: Set up JDK 17
uses: actions/setup-java@v3
with:
- java-version: '11.x'
+ java-version: '17.x'
distribution: 'adopt'
cache: maven
diff --git a/binary/bin-war/pom.xml b/binary/bin-war/pom.xml
index 72c10bbe1ad..792ce108f20 100644
--- a/binary/bin-war/pom.xml
+++ b/binary/bin-war/pom.xml
@@ -14,7 +14,7 @@
http://www.geo-solutions.itUTF-8
- 9.0.116
+ 11.0.22${mapstore2.version}
diff --git a/binary/pom.xml b/binary/pom.xml
index b39feebfb82..7f055ae24ac 100644
--- a/binary/pom.xml
+++ b/binary/pom.xml
@@ -13,7 +13,7 @@
http://www.geo-solutions.itUTF-8
- 9.0.118
+ 11.0.22${mapstore2.version}
diff --git a/binary/tomcat/conf/web.xml b/binary/tomcat/conf/web.xml
index b4fc5b61da1..09d0d44fc48 100644
--- a/binary/tomcat/conf/web.xml
+++ b/binary/tomcat/conf/web.xml
@@ -15,11 +15,10 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+ version="6.0">
diff --git a/docs/developer-guide/advanced-project-customization.md b/docs/developer-guide/advanced-project-customization.md
index 68826f51ee3..ad5f9a68d03 100644
--- a/docs/developer-guide/advanced-project-customization.md
+++ b/docs/developer-guide/advanced-project-customization.md
@@ -32,12 +32,12 @@ Find the entry for `cargo-maven3-plugin` and add the `systemProperties` tag with
cargo-maven3-plugin
- tomcat8x
+ tomcat10x[local_path_to_your_datadir]/datadir/[customInstallationFolder]
- https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/8.5.69/tomcat-8.5.69.zip
+ https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/10.1.55/tomcat-10.1.55.zip
diff --git a/docs/developer-guide/configuration-files.md b/docs/developer-guide/configuration-files.md
index 15eff1b1532..04a4fbb650a 100644
--- a/docs/developer-guide/configuration-files.md
+++ b/docs/developer-guide/configuration-files.md
@@ -139,7 +139,7 @@ java -Ddatadir.location=/path/to/data-dir -jar mapstore.war
In servlet containers like Tomcat, you can set Java system properties in the `setenv.sh` file (for Unix-based systems) or `setenv.bat` file (for Windows systems) located in the `bin` directory of the Tomcat installation.
-If you are using Tomcat as a service, you can set Java system properties in the service configuration file (for instance `/etc/default/tomcat9` in Ubuntu 20.04 ).
+If you are using Tomcat as a service, you can set Java system properties in the service configuration file (for instance `/etc/default/tomcat10` in Ubuntu).
### `datadir.location`
diff --git a/docs/developer-guide/database-setup.md b/docs/developer-guide/database-setup.md
index 468d9ee8214..597e2926ef7 100644
--- a/docs/developer-guide/database-setup.md
+++ b/docs/developer-guide/database-setup.md
@@ -21,7 +21,7 @@ MapStore has a file called `geostore-datasource-ovr.properties`. This file is on
For production deployments, consider using the [externalized configuration](externalized-configuration.md) (`-Ddatadir.location=`) instead. It provides a single data directory that centralizes all MapStore configuration files (database, proxy, JSON configs, etc.) and persists across updates. The `geostore-datasource-ovr.properties` file can simply be placed inside that directory.
For instance using tomcat on linux you will have to do something like this to add the environment variable to the JAVA_OPTS
-> where to add your JAVA_OPTS depends on your operating system. For instance the file could be `/etc/default/tomcat8`, or similar, in linux debian
+> where to add your JAVA_OPTS depends on your operating system. For instance the file could be `/etc/default/tomcat10`, or similar, in linux debian
```properties
# here the path to the ovr file
diff --git a/docs/developer-guide/mapstore-migration-guide.md b/docs/developer-guide/mapstore-migration-guide.md
index a295e9226db..e939c86ea9b 100644
--- a/docs/developer-guide/mapstore-migration-guide.md
+++ b/docs/developer-guide/mapstore-migration-guide.md
@@ -20,6 +20,139 @@ This is a list of things to check if you want to update from a previous version
- Optionally check also accessory files like `.eslinrc`, if you want to keep aligned with lint standards.
- Follow the instructions below, in order, from your version to the one you want to update to.
+## Migration from 2026.02.00 to 2026.03.00
+
+### Spring 7 / Jakarta EE 10 upgrade
+
+MapStore has been upgraded to Spring Framework 7 and Spring Security 7, moving from the Java EE (`javax.*`) to the Jakarta EE 10 (`jakarta.*`) platform. This is a **breaking change** for the deployment environment and for MapStore projects.
+
+#### New deployment requirements
+
+- **Java 17** is now the minimum supported version (Java 8/11 are no longer supported). The CI still tests on Java 17 and 21.
+- **Tomcat 10.1** (Jakarta Servlet API 6.0) is the new reference servlet container. The binary distribution ships Tomcat 11. **Tomcat 9 or older cannot run this version of MapStore**, since they are based on the `javax.*` servlet API.
+
+#### Updating a MapStore project
+
+The following changes must be applied to your project (see the updated [project templates](https://github.com/geosolutions-it/MapStore2/tree/master/project/standard/templates) for reference):
+
+**`pom.xml` properties**: update the dependency versions:
+
+```diff
+- 9.0.116
+- 2.16.1
++ 10.1.55
++ 2.19.4
+
+- 5.3.39
+- 5.7.13
++ 7.0.8
++ 7.1.0
+- 1.5.4
+- 2.0.4
+- 4.5.13
+- 3.0.1
+- 2.3.1
++ 6.0.0
++ 4.0.3
+- 1.10.2
++ 1.10.27
+
+- 1.10-SNAPSHOT
+- 2.6-SNAPSHOT
+- 1.6-SNAPSHOT
+- 2.3.5
++ 1.12-SNAPSHOT
++ 2.7-SNAPSHOT
++ 1.7-SNAPSHOT
++ 2.5-SNAPSHOT
+```
+
+**`web/pom.xml` dependencies**: replace the `javax` artifacts with their `jakarta` equivalents and remove the dependencies that are not used anymore (`net.sf.ehcache:ehcache-web`, `commons-pool:commons-pool`):
+
+```diff
+
+- javax.servlet
+- javax.servlet-api
+- ${javax.servlet-api.version}
++ jakarta.servlet
++ jakarta.servlet-api
++ ${jakarta.servlet-api.version}
+
+-
+-
+- net.sf.ehcache
+- ehcache-web
+- ${ehcache-web.version}
+-
+-
+- commons-pool
+- commons-pool
+-
+
+- javax.xml.ws
+- jaxws-api
++ jakarta.xml.ws
++ jakarta.xml.ws-api
+ ${jaxws-api.version}
+
+```
+
+**`web/pom.xml` `printing` profile**: if your project defines the `printing` profile, the same `javax` artifacts appear again in its `` section. Replace them with the `jakarta` equivalents as above, and remove the `httpclient`, `ehcache-web` and `commons-pool` entries: their version properties no longer exist in the root `pom.xml`, so a build with `-Pprinting` would fail on the unresolved placeholders.
+
+**`web/src/main/webapp/WEB-INF/web.xml`**: update the schema declaration to Jakarta EE 10 and remove the GZip `CompressionFilter`, together with its three `filter-mapping` entries (the filter class comes from the removed `ehcache-web` library, which is not available for the `jakarta.*` namespace):
+
+```diff
+-
++ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd">
+```
+
+!!! note
+ The removed `CompressionFilter` used to gzip `*.js`, `*.css` and `*.html` responses out of the box. Compression has to be configured in the deployment environment instead:
+
+ - **Tomcat exposed directly**: enable compression on the connector in `conf/server.xml`:
+
+ ```xml
+
+ ```
+
+ - **Behind a reverse proxy (recommended)**: enable gzip (or brotli) in the proxy; e.g. for nginx:
+
+ ```nginx
+ gzip on;
+ gzip_vary on;
+ gzip_types text/css text/plain application/javascript application/json application/xml image/svg+xml;
+ ```
+
+ - **Docker composition**: nothing to do, compression is already enabled in the bundled nginx configuration (`docker/mapstore.conf`).
+
+ Without it MapStore still works, but the JavaScript bundles are quite big and the first load becomes noticeably slower.
+
+**`WEB-INF/*-servlet.xml`** (`configs-servlet.xml`, `extensions-servlet.xml`, `loadAssets-servlet.xml`): Spring Security 7 replaced the `global-method-security` element:
+
+```diff
+-
++
+```
+
+**Security configuration overrides**: if your project overrides `geostore-spring-security.xml` (e.g. for [LDAP](integrations/users/ldap.md) or database authentication), the file must be aligned with the new Spring Security 7 syntax. Copy the updated reference files from the MapStore repository (`web/src/config/db/geostore-spring-security-db.xml`, `web/src/config/ldap/geostore-spring-security-ldap.xml`) and re-apply your customizations on top of them.
+
+**Cargo (local test container)**: update the container id and add the logging configuration file:
+
+```diff
+- tomcat9x
++ tomcat10x
+```
+
+Copy the `logging.properties` file from the MapStore repository (`product/cargo/logging.properties`) into the `web/cargo/` folder of your project and reference it in `cargo.jvmargs` with `-Djava.util.logging.config.file=${project.basedir}/cargo/logging.properties`. Note that `${project.basedir}` points to the `web` module, where the Cargo plugin runs. New projects created from the templates already include this file.
+
+**Custom Java code**: any custom backend code must be migrated from the `javax.*` to the `jakarta.*` namespace (e.g. `javax.servlet.http.HttpServletRequest` → `jakarta.servlet.http.HttpServletRequest`) and compiled with source/target 17.
+
+**CI/CD**: update your build infrastructure to use JDK 17 as the build JDK.
+
## Migration from 2026.01.02 to 2026.02.00
### Custom map resolutions moved from `new.json` to the `CRSSelector` plugin
diff --git a/docs/developer-guide/requirements.md b/docs/developer-guide/requirements.md
index 361cad136d1..8b4ca4fbe3e 100644
--- a/docs/developer-guide/requirements.md
+++ b/docs/developer-guide/requirements.md
@@ -6,10 +6,10 @@ In this section you can have a glance of the minimum and recommended versions of
You can download a java web container like *Apache Tomcat* from and *Java JRE*
-| Tool | Link | Minimum | Recommended | Maximum |
-|--------|----------------------------------------------------|-----------------|-------------|---------------|
-| Java | [link](https://jdk.java.net/archive/) | 111 | 17 | 21 |
-| Tomcat | [link](https://tomcat.apache.org/download-90.cgi) | 8.5 | 9 | 92 |
+| Tool | Link | Minimum | Recommended | Maximum |
+|--------|----------------------------------------------------|------------------|-------------|---------|
+| Java | [link](https://jdk.java.net/archive/) | 171 | 17 | 21 |
+| Tomcat | [link](https://tomcat.apache.org/download-10.cgi) | 10.12 | 10.1 | 11 |
## Debug / Build
@@ -19,15 +19,15 @@ These tools needs to be installed (other than **Java** in versions above above):
|-----------------------|------------------------------------------------------------|---------|-------------|-----------------|
| npm | [link](https://www.npmjs.com/get-npm) | 8 | 10 | |
| NodeJS | [link](https://nodejs.org/en/) | 20 | 20 | 243 |
-| Java (JDK) | [link](https://jdk.java.net/archive/) | 11 | 17 | 21 |
+| Java (JDK) | [link](https://jdk.java.net/archive/) | 17 | 17 | 21 |
| Maven | [link](https://maven.apache.org/download.cgi) | 3.1.0 | 3.6 | |
| python4 | [link](https://www.python.org/downloads/) | 2.7.9 | 3.7 | |
!!! notes
Here some notes about some requirements and reasons for max version indicated, for future improvements and maintenance :
- - 1 Java 8 is the minimum version required for running MapStore, but it is not compatible in case you want to use the print module. In this case, you need to use Java 11.
- - 2 Running with Tomcat 10 causes this issue [#7524](https://github.com/geosolutions-it/MapStore2/issues/7524).
+ - 1 Java 17 is the minimum version required since the upgrade to Spring 7 (see the [migration guidelines](mapstore-migration-guide.md)). Previous versions of MapStore could run on Java 8/11.
+ - 2 Since the upgrade to Spring 7 / Jakarta EE 10, MapStore requires a servlet container supporting the Jakarta Servlet API 6.0 (`jakarta.*` namespace): Tomcat 10.1 is the reference target, and the binary distribution ships Tomcat 11. Tomcat 9 or older (based on the `javax.*` namespace) is **not** supported anymore.
- 3 Latest version tested.
- 4 Python is only needed for building documentation.
diff --git a/java/services/pom.xml b/java/services/pom.xml
index 5eae8354eb5..0007b3dcdbd 100644
--- a/java/services/pom.xml
+++ b/java/services/pom.xml
@@ -86,10 +86,9 @@
-
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
@@ -143,8 +142,8 @@
3.10.1utf8
- 8
- 8
+ 17
+ 17trueUTF-8
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
-
- net.sf.ehcache
- ehcache-web
-
-
-
- commons-pool
- commons-pool
-
-
- javax.xml.ws
- jaxws-api
+ jakarta.xml.ws
+ jakarta.xml.ws-api
diff --git a/java/web/src/main/webapp/WEB-INF/configs-servlet.xml b/java/web/src/main/webapp/WEB-INF/configs-servlet.xml
index 247b9626c26..dceda537f3b 100644
--- a/java/web/src/main/webapp/WEB-INF/configs-servlet.xml
+++ b/java/web/src/main/webapp/WEB-INF/configs-servlet.xml
@@ -13,7 +13,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/java/web/src/main/webapp/WEB-INF/extensions-servlet.xml b/java/web/src/main/webapp/WEB-INF/extensions-servlet.xml
index ab32ad3d736..b53c78d8c91 100644
--- a/java/web/src/main/webapp/WEB-INF/extensions-servlet.xml
+++ b/java/web/src/main/webapp/WEB-INF/extensions-servlet.xml
@@ -13,7 +13,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/java/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml b/java/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
index c1c1ab9387d..a6e59eb1f14 100644
--- a/java/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
+++ b/java/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
@@ -13,7 +13,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/java/web/src/main/webapp/WEB-INF/web.xml b/java/web/src/main/webapp/WEB-INF/web.xml
index 5da51060fce..b1b3ca70402 100644
--- a/java/web/src/main/webapp/WEB-INF/web.xml
+++ b/java/web/src/main/webapp/WEB-INF/web.xml
@@ -1,7 +1,7 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd">
@@ -54,23 +54,6 @@
/rest/*
-
-
- CompressionFilter
- net.sf.ehcache.constructs.web.filter.GzipFilter
-
-
- CompressionFilter
- *.css
-
-
- CompressionFilter
- *.html
-
-
- CompressionFilter
- *.js
- noCacheFilter
diff --git a/pom.xml b/pom.xml
index bb0c9934f5f..7fe32f8f127 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,44 +13,39 @@
8080
- 9.0.116
- 2.16.1
- 31.3
+ 10.1.55
+ 2.19.44.2.1232.0.0-jre2.63.4.0
- 5.3.39
- 5.7.13
+ 7.0.8
+ 7.1.03.2.22.14.01.2
- 1.5.4
- 2.0.4
- 4.5.13
- 3.0.1
- 2.3.1
+ 6.0.0
+ 4.0.32.4.2-geoserver1.134.13.2
- 2.19.0
+ 2.26.02.1.34.0.01.7.25
- 1.10.2
+ 1.10.27
- 2.6-SNAPSHOT
- 2.3.5
- 1.6-SNAPSHOT
+ 2.7-SNAPSHOT
+ 2.5-SNAPSHOT
+ 1.7-SNAPSHOT
- 2.3
- 3.18.0
+ 3.20.01.13.0
@@ -140,13 +135,6 @@
-
-
- org.apache.httpcomponents
- httpclient
- ${httpclient.version}
-
-
junitjunit
@@ -160,24 +148,9 @@
test
- javax.servlet
- javax.servlet-api
- ${javax.servlet-api.version}
-
-
- net.sf.ehcache
- ehcache-web
- ${ehcache-web.version}
-
-
- commons-pool
- commons-pool
- ${commons-pool.version}
-
-
- commons-lang
- commons-lang
- ${commons-lang-version}
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet-api.version}org.apache.commons
@@ -203,8 +176,8 @@
- javax.xml.ws
- jaxws-api
+ jakarta.xml.ws
+ jakarta.xml.ws-api${jaxws-api.version}
@@ -223,6 +196,22 @@
javax.annotationjavax.annotation-api
+
+ jakarta.activation
+ jakarta.activation-api
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+
+
+ jakarta.xml.soap
+ jakarta.xml.soap-api
+
@@ -264,7 +253,7 @@
-
+
it.geosolutions.geostoregeostore-webapp
@@ -359,6 +348,10 @@
org.apache.httpcomponentshttpcore
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+
@@ -458,6 +451,30 @@
binary
+
+ owasp
+
+
+ owasp
+
+
+
+
+
+ org.owasp
+ dependency-check-maven
+ 12.2.2
+
+
+
+ check
+
+
+
+
+
+
+
@@ -498,19 +515,6 @@
-
- org.owasp
- dependency-check-maven
- 9.0.9
-
- true
-
-
-
- check
-
-
-
diff --git a/product/cargo/logging.properties b/product/cargo/logging.properties
new file mode 100644
index 00000000000..0bee6b30e0c
--- /dev/null
+++ b/product/cargo/logging.properties
@@ -0,0 +1,79 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.AsyncFileHandler.level = ALL
+1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
+1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
+1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+2localhost.org.apache.juli.AsyncFileHandler.level = ALL
+2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
+2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
+2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+3manager.org.apache.juli.AsyncFileHandler.level = ALL
+3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
+3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
+3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+4host-manager.org.apache.juli.AsyncFileHandler.level = ALL
+4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
+4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
+4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
+java.util.logging.ConsoleHandler.encoding = UTF-8
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
+
+# For example, set the org.apache.catalina.util.LifecycleBase logger to log
+# each component that extends LifecycleBase changing state:
+#org.apache.catalina.util.LifecycleBase.level = FINE
+
+# To see debug messages for HTTP/2 handling, uncomment the following line:
+#org.apache.coyote.http2.level = FINE
+
+# To see debug messages for WebSocket handling, uncomment the following line:
+#org.apache.tomcat.websocket.level = FINE
+
+# MapStore debugging
+#org.apache.catalina.core.StandardContext.level = FINE
diff --git a/product/config/db/geostore-spring-security-db.xml b/product/config/db/geostore-spring-security-db.xml
index 9964684ac35..a6ab9a3a2e0 100644
--- a/product/config/db/geostore-spring-security-db.xml
+++ b/product/config/db/geostore-spring-security-db.xml
@@ -15,38 +15,54 @@
-
+
-
+
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
+
diff --git a/product/config/ldap/geostore-spring-security-ldap.xml b/product/config/ldap/geostore-spring-security-ldap.xml
index fc35f22c8d5..9916bd2970e 100644
--- a/product/config/ldap/geostore-spring-security-ldap.xml
+++ b/product/config/ldap/geostore-spring-security-ldap.xml
@@ -18,15 +18,16 @@
-
+
-
+
+
@@ -37,13 +38,17 @@
class="it.geosolutions.geostore.services.rest.security.UserServiceAuthenticationProvider">
-
-
+
+
-
-
+
+
diff --git a/product/pom.xml b/product/pom.xml
index c2b79945cc0..2c2fdb6c1ea 100644
--- a/product/pom.xml
+++ b/product/pom.xml
@@ -276,7 +276,7 @@
${cargo.version}
- tomcat9x
+ tomcat10x${datadir.location}${security.integration}
@@ -297,6 +297,7 @@
${backend.debug.args}
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
+ -Djava.util.logging.config.file=${project.basedir}/cargo/logging.properties
${tomcat.port}low
diff --git a/project/standard/templates/pom.xml b/project/standard/templates/pom.xml
index 46578a0e9c7..fd17a39eb5c 100644
--- a/project/standard/templates/pom.xml
+++ b/project/standard/templates/pom.xml
@@ -12,28 +12,28 @@
UTF-88080
- 9.0.116
- 2.16.1
+ 10.1.55
+ 2.19.4-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=89892.63.4.0
+
- 5.7.13
- 5.3.39
+ 7.0.8
+ 7.1.0
+
- 1.5.4
- 2.0.4
- 4.5.13
- 3.0.1
- 2.3.1
+ 6.0.0
+ 4.0.34.13.24.0.0
- 1.10.2
+ 1.10.27
+
- 1.10-SNAPSHOT
- 2.6-SNAPSHOT
- 1.6-SNAPSHOT
- 2.3.5
+ 1.12-SNAPSHOT
+ 2.7-SNAPSHOT
+ 1.7-SNAPSHOT
+ 2.5-SNAPSHOT
diff --git a/project/standard/templates/web/cargo/logging.properties b/project/standard/templates/web/cargo/logging.properties
new file mode 100644
index 00000000000..0bee6b30e0c
--- /dev/null
+++ b/project/standard/templates/web/cargo/logging.properties
@@ -0,0 +1,79 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.AsyncFileHandler.level = ALL
+1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
+1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
+1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+2localhost.org.apache.juli.AsyncFileHandler.level = ALL
+2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
+2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
+2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+3manager.org.apache.juli.AsyncFileHandler.level = ALL
+3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
+3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
+3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+4host-manager.org.apache.juli.AsyncFileHandler.level = ALL
+4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
+4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
+4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
+4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
+
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
+java.util.logging.ConsoleHandler.encoding = UTF-8
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
+
+# For example, set the org.apache.catalina.util.LifecycleBase logger to log
+# each component that extends LifecycleBase changing state:
+#org.apache.catalina.util.LifecycleBase.level = FINE
+
+# To see debug messages for HTTP/2 handling, uncomment the following line:
+#org.apache.coyote.http2.level = FINE
+
+# To see debug messages for WebSocket handling, uncomment the following line:
+#org.apache.tomcat.websocket.level = FINE
+
+# MapStore debugging
+#org.apache.catalina.core.StandardContext.level = FINE
diff --git a/project/standard/templates/web/pom.xml b/project/standard/templates/web/pom.xml
index 18b238fd7f7..b05476a443e 100644
--- a/project/standard/templates/web/pom.xml
+++ b/project/standard/templates/web/pom.xml
@@ -59,21 +59,9 @@
- javax.servlet
- javax.servlet-api
- ${javax.servlet-api.version}
-
-
-
- net.sf.ehcache
- ehcache-web
- ${ehcache-web.version}
-
-
-
- commons-pool
- commons-pool
- ${commons-pool.version}
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet-api.version}
@@ -393,7 +381,7 @@
${cargo.version}
- tomcat9x
+ tomcat10x
https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip
@@ -410,6 +398,7 @@
${backend.debug.args}
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
+ -Djava.util.logging.config.file=${project.basedir}/cargo/logging.properties
${tomcat.port}low
@@ -472,11 +461,6 @@
-
- org.apache.httpcomponents
- httpclient
- ${httpclient.version}
- junit
@@ -492,25 +476,13 @@
- javax.servlet
- javax.servlet-api
- ${javax.servlet-api.version}
-
-
-
- net.sf.ehcache
- ehcache-web
- ${ehcache-web.version}
-
-
-
- commons-pool
- commons-pool
- ${commons-pool.version}
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet-api.version}
- javax.xml.ws
- jaxws-api
+ jakarta.xml.ws
+ jakarta.xml.ws-api${jaxws-api.version}
diff --git a/project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml b/project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml
index 9eddc998119..9cf39d6c417 100644
--- a/project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml
+++ b/project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml
@@ -12,7 +12,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml b/project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml
index 206c71b8f40..25d0d06bf9d 100644
--- a/project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml
+++ b/project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml
@@ -12,7 +12,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml b/project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
index 28d407bae18..220ee5b9e59 100644
--- a/project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
+++ b/project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
@@ -12,7 +12,7 @@
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
-
+
diff --git a/project/standard/templates/web/src/main/webapp/WEB-INF/web.xml b/project/standard/templates/web/src/main/webapp/WEB-INF/web.xml
index 03b4a380c06..869be321bfb 100644
--- a/project/standard/templates/web/src/main/webapp/WEB-INF/web.xml
+++ b/project/standard/templates/web/src/main/webapp/WEB-INF/web.xml
@@ -1,7 +1,7 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd">
@@ -54,24 +54,6 @@
/rest/*
-
-
- CompressionFilter
- net.sf.ehcache.constructs.web.filter.GzipFilter
-
-
- CompressionFilter
- *.css
-
-
- CompressionFilter
- *.html
-
-
- CompressionFilter
- *.js
-
-
noCacheFilter
diff --git a/web/src/config/db/geostore-spring-security-db.xml b/web/src/config/db/geostore-spring-security-db.xml
index 994fb4ed9ae..6f77fef8a5f 100644
--- a/web/src/config/db/geostore-spring-security-db.xml
+++ b/web/src/config/db/geostore-spring-security-db.xml
@@ -15,37 +15,54 @@
-
+
-
+
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/web/src/config/ldap/geostore-spring-security-ldap.xml b/web/src/config/ldap/geostore-spring-security-ldap.xml
index ff7e73f22a0..6d3242f30ff 100644
--- a/web/src/config/ldap/geostore-spring-security-ldap.xml
+++ b/web/src/config/ldap/geostore-spring-security-ldap.xml
@@ -18,15 +18,16 @@
-
+
-
+
+
@@ -37,13 +38,17 @@
class="it.geosolutions.geostore.services.rest.security.UserServiceAuthenticationProvider">
-
-
+
+
-
-
+
+
@@ -108,9 +113,9 @@
-
-
-
+
+
+
+