terrestris
FOSSGIS 2026

GeoServer 3

Der große technische Umbau

FOSSGIS 2026

Nils Bühner & Daniel Koch

Agenda

  1. GeoServer im Überblick
  2. Warum GeoServer 3?
  3. Der Weg zu GeoServer 3
  4. Was ist neu?
  5. Migration von 2.x → 3.x
  6. Was ist wirklich neu?
  7. Fazit

GeoServer im Überblick

  • Open-Source-Server für Geodaten (Java)
  • Referenzimplementierung für OGC-Standards
  • WMS, WFS, WCS, WMTS, WPS, OGC-API
  • Web-Admin-Oberfläche, REST-API
  • Plugin-Architektur, große Community

GeoServer im Überblick

GeoServer Architektur

Warum GeoServer 3?

  • Kein klassisches Feature-Release, sondern Plattformupgrade
  • Technische Modernisierung
    • LTS-Support für Spring 5 in 2025 bereits abgelaufen
      → Migration zu Spring 6/7 dringend nötig
    • Java 17/21 – Ende des Java 8/11 Support
    • Kompatibilität zu Tomcat 11/Jetty 12/Jakarta EE schaffen
    • Unterstützung für moderne Security-Integrationen
    • Ersatz der veralteten Java Advanced Imaging (JAI) Bibliothek
  • Zukunftsfähigkeit sichern

Der Weg zu GeoServer 3

Der Weg zu GeoServer 3

Der Weg zu GeoServer 3

Crowdfunding

  • Ziel: 550.000 €
  • Start mit je 50.000 € aus 3er-Konsortium:
    • Camptocamp
    • GeoSolutions
    • GeoCat
  • 30+ Sponsoren weltweit
  • Ziel übertroffen
Crowdfunding Betrag Crowdfunding Prozent

Sponsoren

GeoServer 3 Sponsoren

Der Weg zu GeoServer 3

Community Code Sprint

Zusammenfassung

WannWas
Jan 2024Roadmap 2024
Sep 2024Crowdfunding-Start
Jan 2025Finanzierungsziel bei 80%
Apr 2025Final Call (~90%)
Mai 2025Finanzierungsziel bei > 100%
Okt 2025Community Codesprint
Apr 2026Offizielles Release

Viel Arbeit...

Quelle: GeoServer 3 Status Report, FOSS4G-E 2025

Der Plan

Quelle: GeoServer 3 Crowdfunding

Spring & Jakarta EE

  • "Spring" ist vom GeoServer genutzte Kernbibliothek
  • Auslöser einer Lawine und Antreiber für GeoServer 3:
    • Kein LTS-Support mehr für Spring 5
    • Upgrade auf Spring 6 / 7 zwingend nötig!
  • Infolgedessen neue Minimalanforderungen:
    • Java 17+
    • Servlet Container: Tomcat 10+ / Jetty 11+
    • Spring Security 6 / 7
  • Namespace-Wechsel: javax.*jakarta.*
// GeoServer 2.x
import javax.servlet.http.HttpServletRequest;

// GeoServer 3
import jakarta.servlet.http.HttpServletRequest;

Die Spring-Lawine

Quelle: GeoServer 3 Crowdfunding

Java 17

  • Erfordert Umstieg auf Wicket 10 (Web-UI)
  • Führt zu Inkompatibilität mit Java Advanced Imaging (JAI)
    → Erfordert Umstieg auf ImageN
  • Kompatibilität zu anderen Abhängigkeiten muss sichergestellt werden (GeoTools, etc.)
  • Seit GeoServer 2.28.x ist Java 17 bereits zwingend gefordert!
Java 17

Von JAI zu ImageN

  • Java Advanced Imaging (JAI) 1.1.3 – letzte Aktualisierung ~2006
  • Inkompatibel mit Java 17+
  • Eclipse ImageN als moderner OpenSource-Nachfolger
    • Der alte JAI-Code wurde dafür von Oracle gespendet!
    • Bessere Performance bei Raster-Daten
    • Aktiv gepflegt, kompatibel mit aktuellen JVMs
    • Bereits ab GeoServer 2.28.x im Einsatz
Eclipse ImageN

Schöne Geschichte:

From JAI to ImageN

Quelle: GeoServer 3 Status Report, FOSS4G-E 2025

Spring Security

  • Upgrade von Spring Security 5 auf 7
  • Führt zu Inkompatibilität der OAuth2 Security Extension des GeoServers
  • Erfordert komplette Überarbeitung der Erweiterung: OAuth2 → OIDC (OpenID Connect)
OpenID Connect Keycloak

Technologien

KomponenteGS 2.26.xGS 2.27.xGS 2.28.xGS 3.0.0
Java11 / 1711 / 1717 / 2117 / 21
BildverarbeitungJAI / JAI-ExtJAI / JAI-ExtEclipse ImageNEclipse ImageN
Spring5.35.35.37.0
Spring Security5.85.85.87.0
Servlet Containerjavax.*
Tomcat 9
Jetty 9 / 10
javax.*
Tomcat 9
Jetty 9 / 10
javax.*
Tomcat 9
Jetty 9 / 10
jakarta.*
Tomcat 10+
Jetty 11+
Web-UIWicket 7Wicket 9Wicket 9Wicket 10

Migration 2.x → 3.x

Überblick der Breaking Changes

BereichAuswirkung
Servlet-Container- Infrastruktur-Update (Tomcat 10+ / Jetty 11+)
- Anpassungen in eigenem Plugin-Code (javax -> jakarta)
- ggf. zu prüfen: sehr spezifische Server-Konfigurationen
Java 17+- Infrastruktur-Update
- ggf. Anpassungen in eigenem Plugin-Code
OAuth2 → OIDC- Aktualisierung/Umstieg auf GeoServer OIDC Extension
Spring 7- Anpassungen nur bei eigenem Plugin-Code
javax → jakarta- Anpassungen nur bei eigenem Plugin-Code
JAI → ImageN- Anpassungen nur bei eigenem (Raster-)Plugin-Code

Migration 2.x → 3.x

Auswirkungen im Betrieb

  • Data Directory: Struktur bleibt kompatibel
  • Umgebungsvariablen: Bleiben kompatibel
  • OGC-Dienste: Keine Änderungen
  • REST: Keine Änderungen

Migrations-Checkliste

  • ☐ Java 17+ installieren*
  • ☐ Servlet-Container aktualisieren (Tomcat 10+ / Jetty 11+)*
  • ☐ Data Directory sichern & testen

  • Falls genutzt:
    • ☐ OAuth2-Konfiguration auf OIDC umstellen

  • In Code eigenen Extensions:
    • ☐ OpenRewrite für javaxjakarta
    • ☐ Spring 7 API-Änderungen ggf. manuell nacharbeiten

  • *) Entfällt bei Nutzung des Docker-Images

Was ist denn wirklich neu?

CORS-Settings in Admin-UI

  • CORS-Support nativ konfigurierbar über Admin-UI
  • Ersetzt bisherige manuelle Filter-Konfiguration in der web.xml
GeoServer Markdown Dokumentation

Dokumentation mit MkDocs

GeoServer Markdown Dokumentation

GeoServer 3 Theme

  • Modernisierte Web-UI
  • Verbesserte Usability & Performance
  • Neues Design, aber vertraute Struktur
GeoServer UI

GeoServer 3 Theme

GeoServer UI

GeoServer 3 Theme

GeoServer UI

GeoServer 3 Theme

GeoServer UI

Multi-Arch Docker Images

  • Support für AMD64 & ARM64 Umgebungen
  • Noch in der Umsetzung
GeoServer Multi-Arch Support

CITE-Zertifizierung wiederhergestellt

  • Erstmals seit ~10 Jahren wieder zertifiziert
  • WFS 2.0, WMS 1.3, WCS 2.0, WMTS 1.0, OGC API Features/Tiles
GeoServer CITE-Zertifizierung

Fazit

  • GeoServer 3 = notwendige Modernisierung
  • Solide technische Basis für die nächsten Jahre
  • Migration sollte unproblematisch sein
    • Data Directory bleibt kompatibel
    • OpenRewrite automatisiert bei eigenem Code großen Teil
    • Community-Testing läuft auf Hochtouren
  • GeoServer 3 Release ist für den 15. April 2026 angekündigt

Links & Ressourcen


Vielen Dank!

Fragen?