Slide 1

Slide 1 text

State of GeoServer 2.27.2

Slide 2

Slide 2 text

Andrea Aime Technical Lead [email protected] @geowolf GeoSolutions Innovative, robust, cost-effective solutions leveraging best-of-breed Open Source products. This presentation is brought to you by 2 Jody Garnett Product Owner [email protected] @[email protected] GeoCat Government Geographic Data publishing

Slide 3

Slide 3 text

GeoServer at a Glance Java Web Application to share and edit geospatial data. Publish data from any major spatial data source using open standards. Core Protocols WMS – maps WFS – vector WFS-T – editing WCS – coverage WMTS – tiles TMS – tiles WMS-C – tiles Extension/community protocols WPS – process CSW – search OGC API - Features - vector OGC API - json + rest standards OGC STAC - spatio-temporal asset catalogue 3 Core Contributors 2025 sponsors

Slide 4

Slide 4 text

GeoServer Team Update 2025 Update 4

Slide 5

Slide 5 text

Peter Smythe is the newest PSC member Core committers are nominated by their peers and trusted with the ability to approve pull-requests. We also support community commit access by request (often to work on a specific research and development topic): ● 25 committers Project Steering Committee serves to guide the project drawing from the various groups with a stake in the success of the project. ● Alessio Fabiani ● Andrea Aime ● Ian Turton ● Jody Garnett ● Jukka Rahkonen ● Kevin Smith ● Nuno Oliveira ● Peter Smythe ● Simone Giannecchini ● Torben Barsballe GeoServer Team 5

Slide 6

Slide 6 text

GeoServer maintains a list service providers: ● Core Contributors Ongoing commitment to the project devoting resources to security fixes, releases and maintenance activities. ● Experienced Providers Successfully contribute functionality to the project on behalf of their customers. ● Additional Services Providers Provide training, setup and integration support and assistance using GeoServer. (request: please take part in community) GeoServer Service Providers Core contributors directly contribute to project sustainability and are recognized for: ● core, committer, support Experienced providers participate in aspects of the project as community members: ● development, coding, documentation, outreach, translation, training, service, product 6

Slide 7

Slide 7 text

Incoming Community ● WFS freemarker output format ● Graticules ● Features autopopulate ● JWT headers auth ● GeoServer monitor Kafka ● Datadir loader ● ogcapi-features Community modules GeoServer maintains a “community space” for experiments and new developers to work. ● Developers propose a community module idea and request commit access ● We make sure they compile! ● May be proposed as an extension when both the author and functionality is ready Spot a community module of interest, reach out to see how you can help. Graduating extension ● Raster Attribute Table Outgoing Community ● app-schema/webservice -test ● gwc-distributed ● imagemap ● Jdbc-metrics ● monitor-hibernate ● Pgraster ● Saml ● Wps-sextante ● xslt Downgraded extension ● h2 7 COM MUN NITY Identifies slides talking about community modules Hey yes, that’s where a lot of action happens experiment supported un-supported end-of-life

Slide 8

Slide 8 text

GeoServer Releases 2025 Update 8

Slide 9

Slide 9 text

September 2026 March 2025 2.26.x Releases covered by this presentation 2.27.x September 2025 2.27.x 9 March 2026 2.28.x 2.28.x 2.28.x 3.0.x 3.0.x? YOU ARE HERE

Slide 10

Slide 10 text

● Security fixes for supported versions only ○ In July 2025 “supported” is 2.26.x and 2.27.x ○ In Sep 2025 “supported” will mean 2.27.x and 2.28.x ● Please upgrade your GeoServer installations! ● Always two, there are. No more. No less. ○ Balance between stability and encouraging development ○ Easier to get answers - user forum and stack exchange typically cover only supported versions Are you using a older version? Upgrade! Photo by SpaceX on Unsplash 10

Slide 11

Slide 11 text

Upgrade? What’s in it for me? ● Much! ● Check what’s new in 2.27 and 2.26 ● Check the bottom of each slide to see who sponsored a certain feature, who implemented it, and what version contains it ○ This icon marks activities done without any sponsoring Version Author Sponsor ♥ 11

Slide 12

Slide 12 text

Configuration and Setup 12

Slide 13

Slide 13 text

Demo request page rewritten ● Demo request page rewritten ● Works fully with Javascript, no server side helper ● Can show response in-line, with headers ● Can show response in separate page ● WPS and WCS request builders switched as well 2.26.x Dave Blasby GeoCat GeoCat Live

Slide 14

Slide 14 text

Demo request page, input and output Dave Blasby GeoCat GeoCat Live 2.26.x

Slide 15

Slide 15 text

WCS and WPS request builders Dave Blasby GeoCat GeoCat Live 2.26.x

Slide 16

Slide 16 text

● OGC API services now show up in the home page under their general category ● Old and new services for the same purpose, side by side OGC APIs at home Dave Blasby GeoCat GeoCat Live 2.26.x 16 COM MUN NITY

Slide 17

Slide 17 text

● New code for loading the GeoServer data directory ● Same old XML files, but better performance especially for ○ Large data directories ○ Over network file systems ● Backport from the GeoServer cloud project ● Default loader since 2.27.0 Data directory loader Gabriel Roldan Camptocamp 2.27.x 17 COM MUN NITY

Slide 18

Slide 18 text

● The war file has been Java 17 compatible for a while ● The Windows installer and “bin” package are compatible out of the box since 2.26.x ● The GeoServer docker image uses Java 17 ● All builds now include testing on Java 21 too (not widely used though) ● GeoServer cloud uses Java 21 by default Windows installer and bin package Java 17/21 ready Andrea Aime GeoSolutions 2.26.x 18

Slide 19

Slide 19 text

● Searchable tables in GeoServer GUI normally return whatever “contains” the search them ● Use double quotes, and they will search for the exact word instead Exact searches in the GeoServer GUI Alessandro Ricchiuti GeoSolutions 2.26.x 19

Slide 20

Slide 20 text

● Allows locking down admins to a certain when setting up file stores ● For workspaces admins / ● Prevents admins from wandering around on the whole file system File system sandbox Andrea Aime GeoSolutions 2.27.0/2.26.2 20

Slide 21

Slide 21 text

Mapping Data making a scene! 21

Slide 22

Slide 22 text

EPSG database v11.0.31 22 2.27 Daniele Romagnoli GeoSolutions ● Long overdue update ● New database structure ● Updated geodetic information ● New EPSG codes: from ~6700 to almost 8000 Deutsche Bahn

Slide 23

Slide 23 text

GeoCSS language improvements 23 2.26 Andrea Aime ● Multi-layer styles ● Scale dependencies by zoom level @mode 'Flat'; @TileMatrixSet 'WorldCRS84Quad' tiger:poly_landmarks { /* @title parks and green spaces */ [CFCC in ('D82', 'D32', 'D84', 'D85')] { fill: #B4DFB4; stroke: #88B588; }; … } tiger:tiger_roads [@z > 12] { stroke: #666666, #FFFFFF; stroke-width: 6, 4; z-index: 1, 2; … } tiger:poi [@z > 14] { mark: symbol('circle'), mark-size: 11, 7; … } ♥

Slide 24

Slide 24 text

Improved Polygon Label Function Improvement: - Automatic “tolerance” based on polygon size - Compare with centroid or envelope center 24 2.26 Andrea Aime GeoSolutions ♥ Tolerance 0.1 (too small for some polygons) Previously: “maximum inscribed circle”: - Rectangle → infinite max circles! - Tolerance → has to be “just” right or this happens (see below)

Slide 25

Slide 25 text

Improved vector tiles generation 25 2.26 Andrea Aime GeoSolutions ♥ @mode "Flat"; tiger:poly_landmarks { fill: gray; vt-attributes: 'CFCC,LANAME'; vt-labels: true; } tiger:tiger_roads [@z > 11] { stroke: black; vt-attributes: 'NAME'; vt-coalesce: true; } tiger:poi [@z > 12] { mark: symbol(square); } ● New vendor option flags to control attributes, polygon label points, geometry merging ● As usual, driven by the style (scale dependencies, filters, and now vendor options too)

Slide 26

Slide 26 text

MapML module improvements 26 2.26 Various authors GeoSolutions Natural Resources Canada ● Maps for HTML initiative ● Have a tag just like we have a tag ● Lots of novelties ○ MapML CRS authority ○ Better WMS integration, WFS viewer ○ MapML vector tiles with CSS client side styling ○ Better multi-layer handling ○ Custom WMS dimensions ○ Output templating with Freemarker ○ Native Tiled CRS configuration

Slide 27

Slide 27 text

Data sources and formats News and Updates 27

Slide 28

Slide 28 text

Coverage views: native Jiffle ● New band composition mode: Jiffle ● Jiffle in SLD works only for WMS ● Works for all raster outputs, WCS and WPS included ● E.g. NDVI: don’t just view it, download it and use it for processing as well 2.27.x Daniele Romagnoli GeoSolutions RURALL 28

Slide 29

Slide 29 text

Image mosaic: min/max merge mode ● Given N overlapping images in a mosaic ● Compute for each overlapping pixel the min or the max value 2.26.x Andrea Aime GeoSolutions Naval Research Laboratory 29

Slide 30

Slide 30 text

New SingleStore community module ● SingleStore is a distributed SQL database that supports both transactional and analytical workloads, using a combination of in-memory and disk-based storage. ● Designed for low-latency queries at scale and is often used in real-time data applications. ● Simple spatial support, only Geography, only single part geometries. Lines are always great circles ● New community module 2.27.x GeoSolutions Verizon 30

Slide 31

Slide 31 text

GeoParquet community module ● GeoParquet: columnar, cloud native, compact vector data storage ● Store reads GeoParquet files ○ Local ○ HTTP ○ Blob storage ● Uses DuckBD for the actual reading (fast!) 2.27.x Gabriel Roldan Camp2Camp 31

Slide 32

Slide 32 text

Services News and Updates 32

Slide 33

Slide 33 text

OGC API Features extension 33 - OGC API Features graduated from community to Extension – now part or releases - Code sprint organized by Camp2Camp - Implements: Core, CRS by reference, Filtering, CQL2 - Unofficial extensions for sorting and POST search - Passes CITE test conformance Gabriel Roldan Camptocamp Geo2France and others 2.27.0 Andrea Aime GeoSolutions Jody Garnett GeoCat

Slide 34

Slide 34 text

OGC API - Features 34 Gabriel Roldan Camptocamp Geo2France and others 2.27.0 Andrea Aime GeoSolutions Jody Garnett GeoCat

Slide 35

Slide 35 text

OGC API - Processes community module 2.27.x Andrea Aime GeoSolutions ISSI 35 - Invoke spatial analysis online with the ease of OGC APIs - Sync or Asynch execution - Bonus bit not found in the official spec: invoke processes as GET requests too http://host:port/geoserver / ogc/processes/v1/processes/JTS:buffer/execution? geom=POINT(0 0)& geom[type]=application/wkt& &distance=10&capStyle=Square &response[f]=application/json

Slide 36

Slide 36 text

● Other OGC APIs in various states of completion ● Please join the development or share funds to push these beyond the finish line too OGC API community modules Andrea Aime GeoSolutions GeoSolutions OGC GeoNovum Maps API Coverages API Implementing, yet still incomplete Missing, looking for volunteers/sponsors Records API Process API Tiles API Styles API STAC API 36 COM MUN NITY 2.27 x DGGS API DAPA API

Slide 37

Slide 37 text

OGC compliance push 2.27.0 ♥ Andrea Aime (GeoSolutions) Peter Smith (AfriGIS) 37 - Spin off from OGC API Features effort - Now testing compliance (and passing it) in every pull request! - Official compliance recognition underway - Dedicated presentation in this very conference, Friday, 11am, EL11, join us to learn more!

Slide 38

Slide 38 text

38 2.27.2 Peter Smith (AfriGIS) Gaia3D OSGeo:UK

Slide 39

Slide 39 text

JTS 1.20 upgrade 2.26.0 Martin Davis CrunchyDB 39 - RelateNG - Topological relationship tests (e.g. intersection test) - Faster, more robust - Lots of new functionality related to polygon “coverages” (polygonal space partition) useful for writing plugins and new processes - See all details in its release notes: - https://github.com/locationtech/jts/releases/tag/1.20.0

Slide 40

Slide 40 text

- Significant speed up by external contributor! - Changes across the board - Faster PNG encoding for tiles in a MetaTile (ImageIO-EXT) - Less locking contention (GWC) - Improved parallelization GWC tile generation speedup 2.26.x Mitchell Bosecke ? 40 Before After

Slide 41

Slide 41 text

Distribution 41

Slide 42

Slide 42 text

Official Docker image x.y.z Several contributors 42 COM MUN NITY ● Java 17 upgrade ● Tomcat 9.0.97 upgrade ● CORS headers problem fixed ● Allow running as unprivileged user ● Set admin credentials with environment variables ● GDAL build

Slide 43

Slide 43 text

Platform independent binary for JDK 17/21 2.26 Andrea Aime GeoSolutions GeoSolutions 43 COM MUN NITY ● Support running on Java 17 and Java 21 ● Upgrade to latest Marlin renderer

Slide 44

Slide 44 text

GeoServer Cloud 2.26.1+ Gabriel Roldan Camptocamp Several Camptocamp customers 44 COM MUN NITY ● Cloud Native distribution ○ Built on the strengths of GeoServer ○ Microservices architecture ○ Dynamic scaling, advanced security, simplified operations ● Version 1.9.0 upgrade to GeoServer 2.26.1 ● Multi-platform (amd64/arm64) Docker images ● Improved Catalog scalability ● Improved security scalability with GeoServer ACL ● Continuous Integration acceptance tests pipeline ● JSON logging output in logstash format ● New integrations incl. GeoNode ● Horizontal pod auto-scaling (inc. in helm-chart)

Slide 45

Slide 45 text

Security Vulnerabilities Same policy, with updated name and now CVE numbers. 45

Slide 46

Slide 46 text

Disclosure Policy Update (GSIP 220) ● Name Changed ○ “Responsible Disclosure” to “Coordinated Vulnerability Disclosure” ● Policy unchanged: ○ Communicate first ○ Stable and maintenance branches patched ○ Patches are released for downloads ○ Share vulnerability with community ● Communication changed: ○ GeoServer nows provides CVE Numbers ○ Automated scans flag dependencies with known vulnerabilities, only if a vulnerability is confirmed will we provide a CVE number 46 2.24 Jody GeoCat GeoCat Map

Slide 47

Slide 47 text

Update!!!! Various authors 🔥🔥🔥 47 Moderate and High

Slide 48

Slide 48 text

Community Building Building up some muscle 48

Slide 49

Slide 49 text

● geoserver-users → OSGeo Discourse ○ Can login with credentials you have and ask (or answer) a question ○ Forum approach allows repeative questions to stay answered ○ Previously email list has seen a similar level of involvement as gis stackexchange (which is a surprising result) ○ Ability to drop-in and engage without long term commitment ○ GSIP-225 Reducing friction on communication channels 49 2.26 Jody ♥

Slide 50

Slide 50 text

No more release candidates? ● Developers have been asking for community uptake on RC testing for a while ● It’s a “once every six months” activity ● Response has been tepid/missing ○ But massive thanks to the few that did provide feedback, we love you! ● Time to accept reality: RCs, under this conditions, are just busywork ● GeoServer 2.26.0 released directly, without a RC 50 Release Candidate

Slide 51

Slide 51 text

RERO: Release Early Release Often Key open source “development strategy”: - feedback loop between user and developer community. - Social contract for shared success - Avoid pressure of larger releases - Quick “does this work” feedback - Faster response when reporting issues (developer is still available) - Reduces risk etc… Going forward: Help test nightly builds! (docker nightly builds included!) 51

Slide 52

Slide 52 text

GeoServer Sponsorship GeoServer Sponsorship allows activities that are beyond the reach of an individual developer. (Poor sustained suppot for valuable project) ● OSGeo Foundation is doing so much! ● Asking for financial support at this time Added a page to the website: ● Previously Just in the wiki page ● Easier to raise funds for specific activities ● “log4j” vulnerability had offers of funding (so we know users are out there) Sponsor via OSGeo Foundation options: ● Email [email protected] for invoice ● GitHub Sponsorship (tag your repo) ● PayPal Donation Perks: ● GeoServer website recognition ● Mention in release announcements ● OSGeo website recognition ● GeoServer continues to happen 52

Slide 53

Slide 53 text

Roadmap Planning 53

Slide 54

Slide 54 text

We are at a turning point in the Java ecosystem. Spring 5 is no longer supported, but Spring 6 requires switching from JavaEE to Jakarta EE (API break) and Java 17 as the minimum 54 Spring 5 → 6 JavaEE → Jakarta EE Wicket 7 → 10 Tomcat 9 → 10 Spring security 5 → 6 OAuth/OpenID connect modules rewrite Java 11 → Java 17 Jetty 9 → 12 JAI → ImageN 3 Presentation about this GeoServer 3 Status Report: How We Got Here, How It’s Going This afternoon, same room!

Slide 55

Slide 55 text

● What is mkdocs? ○ faster than sphinx-build ○ the search works (finally) ○ offers live preview when editing ● markdown is less complicated ○ Less explicit directives (so we will need writers guidelines to cover conventions) ● Lower barrier of entry: ○ reStructuredText → Markdown ● Theme: “material for mkdocs” ○ Graphics designer likes it ○ Clear documentation and examples ○ version and language switchers - Format transition: - pandoc + jody wrote a script sphinx-build to mk-docs ? Jody Garnett (GeoCat) GeoCat Live GeoCat Map 55 ● GSIP-221 ● Outstanding PR in need of volunteers for completion

Slide 56

Slide 56 text

● Long requested issue tracker switch ● We need to find/develop the right tooling ○ Keep title/comments (most tools do) ○ Keep attachments (trickier) ○ Keep cross-issue links ○ Possibly map users (at least well known ones) ● E.g. (does not match all desired) https://github.com/lemeurherve/jira-issues- importer From Jira to Github issues ? ? ? 56

Slide 57

Slide 57 text

● The community has a very loose “road map”, often missing funds to enact it ● Core developers are mostly employed in companies providing commercial services for GeoServer, or using it in a product, or hosting solution → customer driven (no other significant source of funding) ● Other developers pop up occasionally to provide improvements, fixes and new features they need ● Larger changes require planning and funding! Roadmap - whatever else you want to push for Community 57 Everyone ♥

Slide 58

Slide 58 text

Thanks! 58