You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
141
141
142
-
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 ).
142
+
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).
Copy file name to clipboardExpand all lines: docs/developer-guide/database-setup.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ MapStore has a file called `geostore-datasource-ovr.properties`. This file is on
21
21
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.
22
22
23
23
For instance using tomcat on linux you will have to do something like this to add the environment variable to the JAVA_OPTS
24
-
> 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
24
+
> 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
Copy file name to clipboardExpand all lines: docs/developer-guide/mapstore-migration-guide.md
+133Lines changed: 133 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,139 @@ This is a list of things to check if you want to update from a previous version
20
20
- Optionally check also accessory files like `.eslinrc`, if you want to keep aligned with lint standards.
21
21
- Follow the instructions below, in order, from your version to the one you want to update to.
22
22
23
+
## Migration from 2026.02.00 to 2026.03.00
24
+
25
+
### Spring 7 / Jakarta EE 10 upgrade
26
+
27
+
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.
28
+
29
+
#### New deployment requirements
30
+
31
+
-**Java 17** is now the minimum supported version (Java 8/11 are no longer supported). The CI still tests on Java 17 and 21.
32
+
-**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.
33
+
34
+
#### Updating a MapStore project
35
+
36
+
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):
37
+
38
+
**`pom.xml` properties**: update the dependency versions:
**`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`):
**`web/pom.xml``printing` profile**: if your project defines the `printing` profile, the same `javax` artifacts appear again in its `<dependencyManagement>` 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.
101
+
102
+
**`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):
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:
114
+
115
+
- **Tomcat exposed directly**: enable compression on the connector in `conf/server.xml`:
**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.
142
+
143
+
**Cargo (local test container)**: update the container id and add the logging configuration file:
144
+
145
+
```diff
146
+
- <containerId>tomcat9x</containerId>
147
+
+ <containerId>tomcat10x</containerId>
148
+
```
149
+
150
+
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.
151
+
152
+
**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.
153
+
154
+
**CI/CD**: update your build infrastructure to use JDK 17 as the build JDK.
155
+
23
156
## Migration from 2026.01.02 to 2026.02.00
24
157
25
158
### Custom map resolutions moved from `new.json` to the `CRSSelector` plugin
Here some notes about some requirements and reasons for max version indicated, for future improvements and maintenance :
28
28
29
-
- <sup>1</sup> 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.
30
-
- <sup>2</sup> Running with Tomcat 10 causes this issue [#7524](https://github.com/geosolutions-it/MapStore2/issues/7524).
29
+
- <sup>1</sup> 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.
30
+
- <sup>2</sup> 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.
31
31
- <sup>3</sup> Latest version tested.
32
32
- <sup>4</sup> Python is only needed for building documentation.
0 commit comments