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_PROPERTIESwhen 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-simplejndiandlib/spring-factorytoconfig/by @groldan in #776 - Backwards-compatible serialization for
GeoServerTileLayerInfoafter [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
@Beangeneration 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.enabledconfig 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/clitostructurizr/structurizrby @groldan in #797 - Fix
spring.cloud.bus.destinationproperty as of Spring Cloud 2025.1.1 by @groldan in #813 - Remove empty
gwc-cloud-servicesmodule by @groldan in #815 - Fix GeoServer ACL caching client configuration by @groldan in #821
- Remove unused dependencies on
gs-cloud-spring-factoryby @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-bom→gs-cloud-parentby @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.txt→acceptance_tests/ci_requirements.txtby @groldan in #806 - Upgrade
logstash-logback-encoder7.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
AclSpringCloudBusclasspath issue by @groldan in #829 - Rename Testcontainers-based tests to
*ITfor Failsafe by @groldan in #830 - QA fixes by @groldan in #831
Full Changelog: v2.28.2.0...v3.0.0-RC