Skip to content

Releases: geoserver/geoserver-cloud

GeoServer Cloud 3.0.0

17 Jun 22:49
v3.0.0
37692d6

Choose a tag to compare

GeoServer Cloud 3.0.0 is the first release built on GeoServer 3.0.0. Beyond tracking the new upstream major, this release modernizes the entire foundation of the platform: a move to the Spring Boot 4 / Spring Framework 7 generation, a servlet-based API gateway, Consul service discovery, and a new build-time configuration transpiler that replaces GeoServer's runtime XML wiring with generated Java configuration. The result is a faster, leaner, and more maintainable cloud-native GeoServer.

This is a major release with breaking changes. Please read the Migration Guide (2.28.x to 3.0.0) before upgrading.

Highlights

  • Built on GeoServer 3.0.0, inheriting its features and security hardening.
  • Spring Boot 4 / Spring Framework 7 / Spring Cloud 2025.1 across all services.
  • Servlet-based API gateway: the gateway moves from WebFlux to Spring Cloud Gateway Server MVC, simplifying request handling and aligning the whole stack on a single (WebMVC) programming model (#782, #819).
  • HashiCorp Consul replaces Netflix Eureka for service discovery (#798).
  • XML-to-Java configuration transpiler: a new annotation processor converts GeoServer's Spring XML into generated Java @Configuration, with build-time @Bean generation replacing runtime component scanning, for faster, more predictable startup (#805, #817, #832).
  • Faster startup: JVM AOT cache training baked into the images (#818), parallel JNDI DataSource setup (#812), and a startup actuator endpoint for monitoring (#768).
  • Native multi-platform Docker builds on per-architecture runners, replacing QEMU emulation (#820).
  • Refreshed UI: the initial GeoServer 3 theme (#793) and a full-screen OpenLayers 10 layer preview (#800).
  • GeoServer ACL 3.0.0 integration (#869, #829, #821).

API Gateway and Web Stack

  • Replace the WebFlux gateway with Spring Cloud Gateway Server MVC (#782).
  • Switch the gateway to a reactor-netty HTTP client, with improved error handling and graceful shutdown via actuator (#819).
  • Remove the controller hack for OWS service endpoints and clean up handler-mapping migration (#766, #767).
  • Fix GWC virtual service URLs (#767).

Configuration Transpiler

  • Replace GeoServer XML Spring configurations with Java @Configuration generated by a new transpiler annotation processor (#805).
  • Replace runtime component scanning with build-time @Bean generation (#817).
  • Fix transpiler handling of package-private types and dotted bean names (#832).
  • Refactor catalog/config Jackson DTOs for a clean, consistent distinction from the actual object class names (#765).

Service Discovery and Messaging

  • Migrate service discovery from Netflix Eureka to HashiCorp Consul (#798).
  • Fix RabbitMQ 4.x rejecting Spring Cloud Bus anonymous queue declarations (#835).
  • Fix the spring.cloud.bus.destination property for Spring Cloud 2025.1 (#813).

GeoWebCache

  • Backwards-compatible serialization for GeoServerTileLayerInfo after [GEOS-12049] removed GWC in-memory support (#779).
  • Enable GWC DiskQuota with the pgconfig backend, with expanded REST API integration tests (#862, #864).
  • Fix a "not found" error when deleting a layer with the pgconfig backend (#867).

pgconfig Catalog Backend

  • Cascade workspace changes to resources and layer groups (#856).
  • Evict cached layer lists on workspace/namespace rename (#857).
  • Tighten simplejndi cohesion and decouple pgconfig at runtime (#823).

Performance and Build

  • Add JVM AOT cache training to the Docker images for faster startup (#818).
  • Replace QEMU-emulated multi-platform builds with native per-platform runners (#820).
  • Set up JNDI DataSources in parallel (#812).
  • Enable the actuator startup endpoint for performance monitoring (#768).

Compatibility and Data

  • Disable DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES when parsing catalog objects, and add backwards-compatibility tests for Jackson 2 JSON property naming (#761, #764).
  • Fix an error that prevented saving customized feature type attributes (#759).
  • Fix an NPE caused by PMTiles layer groups (#755).

User Interface

  • Initial GeoServer 3 theme ([GEOS-12063] / [GSIP-238], #793).
  • Full-screen OpenLayers 10.0.8 layer preview ([GEOS-12067], #800).

Documentation

  • Reorganize deployment documentation around local Kubernetes onboarding (#833).
  • Document the Docker image architecture (#751).
  • Add SECURITY.md (#851), supporters documentation (#786), and contributor recognition guidance (#787).

Breaking Changes

See the Migration Guide for details and steps. In short:

  • Service discovery: Eureka is replaced by Consul (hashicorp/consul), affecting Docker Compose and Kubernetes deployments.
  • Gateway: now servlet-based (Spring Cloud Gateway Server MVC) instead of WebFlux.
  • Docker Compose profiles: the config-first profile is no longer included by default in the base service templates and must be set explicitly when using the Config Server.
  • Removed: the JDBC catalog/config backend and the leftover geoserver.security.enabled property (#777).
  • Message broker: RabbitMQ 4.x is supported and used by the example deployments; the Spring Cloud Bus uses transient queues, so no broker data migration is required.
  • Versioning: GeoServer Cloud now follows GeoServer's version (3.0.0) instead of the previous four-part scheme.

Contributors

Thanks to everyone who made this release possible: @groldan, @vuilleumierc, and @jemacchi.

Full Changelog: v2.28.4.0...v3.0.0

GeoServer Cloud 2.28.4.0

04 Jun 08:27
v2.28.4.0
047cccf

Choose a tag to compare

GeoServer Cloud v2.28.4.0 Release Notes

Key Improvements and New Features

GeoWebCache (GWC) Integration

  • DiskQuota & pgconfig: Integrated DiskQuota directly with the pgconfig catalog backend.

PostgreSQL Configuration (pgconfig)

  • Cascading Changes: Workspace modifications now automatically cascade to related resources and layer groups.
  • Cache Management: Enhanced cache eviction now triggers for layer lists immediately following a workspace or namespace rename.

Dependency Upgrades and Security

  • GeoServer Core: Upgraded core dependency to GeoServer 2.28.4.0.
  • Tileverse: Upgraded to Tileverse version 1.4.0.
  • Database Stability: Pinned hsqldb to version 2.7.2 to prevent unexpected runtime version drift.
  • Documentation: Backported SECURITY.md guidelines to the 2.28.x release branch.

Contributors

A special thanks to everyone who contributed to this release:


Raw Pull Requests and Changelog

What's Changed

  • Commits for 2.28.3.0 release, and release instructions by @aaime in #838
  • Upgrade to latest geoserver 2.28.x by @groldan in #847
  • Upgrade tileverse 1.4.0 by @groldan in #848
  • pgconfig: cascade workspace changes to resources and layer groups by @groldan in #854
  • pgconfig: evict cached layer lists on workspace/namespace rename by @groldan in #855
  • Pin hsqldb to 2.7.2 by @vuilleumierc in #858
  • [Backport release/2.28.x] docs: add SECURITY.md by @groldan in #861
  • gwc: integrate DiskQuota with the pgconfig catalog backend by @groldan in #859
  • Upgrade GeoServer to 2.28.4-SNAPSHOT by @groldan in #860

Full Changelog: v2.28.3.0...v2.28.4.0

GeoServer Cloud 2.28.3.0

01 May 23:34

Choose a tag to compare

What's Changed

  • [Backport 2.28.x] Fix RabbitMQ 4.x rejecting Spring Cloud Bus anonymous queue declarations by @groldan in #840

Full Changelog: v2.28.2.4...v2.28.3.0

GeoServer Cloud 3.0.0-RC

23 Apr 16:14
v3.0.0-RC
50cc0fc

Choose a tag to compare

Pre-release

We are pleased to announce the release of GeoServer Cloud 3.0.0-RC, the first release candidate of the 3.0 line. This release is built on top of GeoServer 3.0-RC and brings the full platform up to the latest foundation: Spring Boot 4.0.5, Spring Cloud 2025.1.1, and the new GeoServer 3 codebase.

Highlights include a migration from the Netflix Eureka service registry to HashiCorp Consul, a move from the WebFlux-based API Gateway to Spring Cloud Gateway Server MVC, JVM AOT cache training in the Docker images for significantly faster startup, native per-platform Docker builds replacing QEMU emulation, and a new transpiler that replaces GeoServer's XML Spring configurations with build-time generated Java @Configuration classes. The release also introduces the new GeoServer 3 theme and a full-screen OpenLayers 10 preview, alongside numerous stability and compatibility improvements.

What's Changed

Features

  • [GEOS-12063] [GSIP-238] Initial GeoServer 3 theme by @groldan in #793
  • [GEOS-12067] Add full screen OpenLayers 10.0.8 preview by @groldan in #800
  • Migrate service discovery from Netflix Eureka to HashiCorp Consul by @groldan in #798
  • Replace WebFlux gateway with Spring Cloud Gateway Server MVC by @groldan in #782
  • Replace GeoServer XML Spring configurations by Java Configuration classes using a new transpiler annotation processor by @groldan in #805
  • Add JVM AOT cache training to Docker images for faster startup by @groldan in #818
  • Replace QEMU-emulated multi-platform Docker builds with native per-platform runners by @groldan in #820
  • actuator: enable startup endpoint for performance monitoring by @groldan in #768

Improvements

  • Document Docker image architecture in GeoServer Cloud by @groldan in #751
  • Enable AWS S3 acceptance tests in CI by @vuilleumierc in #746
  • Use common acceptance tests by @vuilleumierc in #747
  • Disable DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES when parsing catalog objects by @groldan in #761
  • Add backwards-compatibility tests for Jackson 2 JSON property naming by @groldan in #764
  • Refactor catalog and config Jackson DTOs for clean and consistent distinction from actual object class names by @groldan in #765
  • Remove Controller hack for OWS service endpoints by @groldan in #766
  • Enable javadoc formatting in palantir java format by @groldan in #775
  • Move lib/spring-boot-simplejndi and lib/spring-factory to config/ by @groldan in #776
  • Backwards-compatible serialization for GeoServerTileLayerInfo after [GEOS-12049] Remove GWC in-memory support by @groldan in #779
  • Ensure config/autoconfig Spring Boot processors in all modules with config properties and autoconfigurations by @groldan in #810
  • Set up JNDI DataSources in parallel by @groldan in #812
  • Replace runtime component scanning with build-time @Bean generation in transpiler by @groldan in #817
  • Switch gateway to reactor-netty HTTP client, improve error handling and shutdown via actuator by @groldan in #819
  • Tighten simplejndi cohesion and decouple pgconfig at runtime by @groldan in #823

Bug Fixes

  • Fix SonarCloud PR analysis for fork PRs by @groldan in #750
  • Fix NPE caused by PMTiles layer groups by @vuilleumierc in #755
  • Fix an error that prevented saving customized feature type attributes by @groldan in #759
  • Fix GWC virtual service URLs and clean up handler mapping migration by @groldan in #767
  • Fix acceptance tests and REST API compatibility by @groldan in #772
  • Remove geoserver.security.enabled config property, remnant from catalog-service backend by @groldan in #777
  • ci: add missing removal of snapshot jars from maven cache by @groldan in #788
  • build: allow running scripts from the root directory checkout by @groldan in #795
  • Fix pgconfig dev docker-compose sample image tags by @groldan in #796
  • fix: migrate diagram generation from deprecated structurizr/cli to structurizr/structurizr by @groldan in #797
  • Fix spring.cloud.bus.destination property as of Spring Cloud 2025.1.1 by @groldan in #813
  • Remove empty gwc-cloud-services module by @groldan in #815
  • Fix GeoServer ACL caching client configuration by @groldan in #821
  • Remove unused dependencies on gs-cloud-spring-factory by @groldan in #822

Tasks

  • Upgrade Spring Boot to 4.0.5 / Spring Cloud 2025.1.1 by @groldan in #814
  • Rename root pom artifact gs-cloud-bomgs-cloud-parent by @groldan in #773
  • Document how to recognize contributors by @groldan in #787
  • Supporters documentation, sources, information, etc. by @jemacchi in #786
  • Upgrade Flyway 12.0.2 → 12.1.0 by @groldan in #783
  • chore(deps): match Spring version used upstream by @groldan in #803
  • chore(ci): move ci/requirements.txtacceptance_tests/ci_requirements.txt by @groldan in #806
  • Upgrade logstash-logback-encoder 7.3 → 9.0 by @groldan in #809
  • Upgrade to latest GeoServer 3.0.x by @groldan in #828
  • Upgrade GeoServer ACL to 3.0-RC3 and fix AclSpringCloudBus classpath issue by @groldan in #829
  • Rename Testcontainers-based tests to *IT for Failsafe by @groldan in #830
  • QA fixes by @groldan in #831

Full Changelog: v2.28.2.0...v3.0.0-RC

GeoServer Cloud 2.28.2.4

23 Mar 23:03
v2.28.2.4
7e1cfa9

Choose a tag to compare

Bug Fixes

Misc

  • [Backport release/2.28.x] actuator: enable startup endpoint for performance monitoring by @groldan in #769
  • ci: add missing removal of snapshot jars from maven cache by @groldan in #789
  • Backwards compat serialization for GeoServerTileLayerInfo after [GEOS-12049]: Remove GWC-in memory support by @groldan in #780

New Contributors

Full Changelog: v2.28.2.3...v2.28.2.4

GeoServer Cloud 2.28.2.3

02 Mar 21:03
v2.28.2.3
e6b5c22

Choose a tag to compare

What's Changed

  • Set disable DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES parsing catalog objects by @groldan in #760
  • [Backport release/2.28.x] Fix an error that prevented saving customized feature type attributes by @groldan in #762
  • Add backwards-compatibility tests for Jackson 2 JSON property naming by @groldan in #763

Full Changelog: v2.28.2.2...v2.28.2.3

GeoServer Cloud 2.28.2.2

27 Feb 17:38
v2.28.2.2
1bb361f

Choose a tag to compare

What's Changed

Full Changelog: v2.28.2.0...v2.28.2.2

GeoServer Cloud 2.28.2.1

10 Feb 12:06
v2.28.2.1
170f4ee

Choose a tag to compare

What's Changed

Full Changelog: v2.28.2.0...v2.28.2.1

GeoServer Cloud 2.28.2.0

22 Jan 13:25
v2.28.2.0
b5d902b

Choose a tag to compare

What's Changed

  • Remove unnecessary duckdb_jdbc dependency override by @jemacchi in #723
  • Add Control Flow extension by @groldan in #724
  • Add AWS credential chain authentication support for GeoParquet S3 by @groldan in #725
  • Initial port of documentation to mkdocs by @groldan in #726
  • docs: remove Jekyll/kramdown ToC syntax by @groldan in #727
  • Remove links from home page in favor of the navigation bar by @groldan in #728
  • docs: Add All Contributors page to recognize all contribution types by @groldan in #729
  • Fix NPE in CatalogPropertyResolver by @groldan in #730
  • Use aws-crt-client alternative async client for gs-cog-s3 by @groldan in #731
  • Skip imagemosaic acceptance tests for pgconfig by @groldan in #733
  • Upgrade to Java 25 for building and base Docker image by @groldan in #732
  • Update compose/standalone.yml to not even launch config and discovery by @groldan in #735
  • Add acceptance tests for cloud native formats on private S3 buckets by @groldan in #736
  • Add acceptance tests for OGC API Features by @groldan in #737
  • Update to latest 2.28.x with PMTiles and GeoParquet fixes by @groldan in #738
  • PMTiles: Spring cache integration with Actuator metrics support by @groldan in #739
  • Fix a bug preventing GlobalSettingsPage to be displayed by @groldan in #741
  • Pre-install Noto fonts and make i18n acceptance tests predictable by @groldan in #740
  • Stop log flooding for "Cannot find 6 /accessDenied.html" by @groldan in #742
  • Fix loading of DXF and Flatgeobuf output format extensions by @groldan in #743
  • Migrate from the unmaintained test library javafaker to the currently maintained datafaker by @groldan in #744
  • Spring Boot 3 compatible control-flow extension property initialization by @groldan in #745

Full Changelog: v2.28.1.0...v2.28.2.0

GeoServer Cloud 2.28.1.3

06 Jan 16:54
v2.28.1.3
d722ca7

Choose a tag to compare

What's Changed

  • PMTiles: Spring cache integration with Actuator metrics support by @groldan in #739
  • Fix a bug preventing GlobalSettingsPage to be displayed by @groldan in #741
  • Pre-install Noto fonts and make i18n acceptance tests predictable by @groldan in #740
  • Stop log flooding for "Cannot find 6 /accessDenied.html" by @groldan in #742
  • Fix loading of DXF and Flatgeobuf output format extensions by @groldan in #743

Full Changelog: v2.28.1.2...v2.28.1.3