The GeoServer team is overjoyed to announce the GeoServer 2.9.0 release. Downloads are available (zipwardmg and exe) along with docs and extensions. We will be working with OSGeo to provide a signed DMG download shortly.

This release is made by Jody Garnett (Boundless) and Devon Tucker (Boundless) with help from Andrea Aime and Alessandro Parma (GeoSolutions) in conjunction with the GeoWebCache 1.9.0 and GeoTools 15.0 releases.

For more information on this release check the release notes (2.9.0 RC1 beta2 beta, M0).

GeoServer 2.9.0


As this is a major release GeoServer 2.9.0 includes a number of important changes, including both new features and compatibility requirements.

Java 8 Required

This release requires the use of Java 8, and is compatible with both Oracle JDK and Open JDK.

Java 8 Required

Servlet 3 Required

Due to internal upgrades GeoServer now requires a Servlet 3 compatible application server.

  • The standalone downloads for Mac, Windows and Linux has been update to Jetty 9.2.13

  • Tomcat users will be required to upgrade to Tomcat 7 or newer (for those doing a WAR install)

Web Administration

A number of improvements and clarifications have been made to the web administration application:

  • The Layers and Layer Preview has been restructured to lead with layer title in the first column, layer workspace and name combined into the second column. By popular request these pages now use layer (rather than resource) actions with “Add a new layer”, and “Remove selected layers”. Layers Page

  • You can now generate layer bounds from either the data bounds or from the spatial reference system bounds. This is handy for dynamic layers that will have content added to them over time. 2.9.0-srs-bounds

  • Styles can now include an optional legend graphic for use in WMS GetCapabilities. 2.9.0-legend

  • Global Settings have been grouped into a section for configuration of web services and a section for internal settings (affecting the GeoServer application as a whole).

  • Image Processing and Raster Access are clearly presented with controls for memory and CPU use. Previously these screens were expressed in terms of the internal components used. image_processing.png

User Guide

The user guide has been restructured:

  • The document layout has been reduced to a smaller number of sections

    • Data management covers vector, raster, database and web services along with common settings

    • Services (WMS, WFS, WCS, WPS, CSW) have been gathered into a single section for consistency, even though WPS is an optional install.

  • The duplication between service description and application configuration has been resolved:

    • Each Service is described, both in terms of functionality, alongside details on how the service is configured

    • The Web administration interface section remains focused on on application configuration, linking to to service configuration above (to prevent duplication).

  • Tutorials have been gathered into a single location.

Resource REST API

A new feature for GeoServer 2.9 is the ability to manage resources (icons, fonts, configuration files) via the REST API.  This approach works with both the default file based GeoServer configuration and JDBCConfig community module.

  • **GET: rest/resource/styles/grass_fill.png? **

  • GET: rest/resource/styles/grass_fill.png?operation=metadata&format=json

    {  ”ResourceMetadata”: { “name”: “grass_fill.png”, “parent”: { “path”: “/styles”, “link”: { “href”: “http://localhost:8080/geoserver/rest/resource/styles”, “rel”: “alternate”, “type”: “application/json” } }, “lastModified”: “2016-05-27 19:31:30.0 UTC”, “type”: “resource” } }

About/Status REST API

The about REST API already reports on the jars installed and the version of high-level components. GeoServer 2.9 includes the addition of about/status which reports not only what components are installed, but if they are correctly functioning. We will be working with this endpoint in subsequent releases to better reporting on GeoServer installation status.

  • GET rest/about/status


Offset line support

Symbology Encoding 1.0 offset line is now supported, along with a vendor extension to use the same in SLD 1.0, and CSS support via the “stroke-offset” property. Here are a couple of screenshots of the effects that can be achieved by using offset line.



UTFGrid support in WMS and WMTS

GeoServer WMS and WMTS now support UTFGrid as an output format, to get fast and rich feature info on the client side. The WMS output has been tested with OpenLayers 2 by applying this patch, while not officially tested it should also work with OpenLayers 3 and Leaflet using the appropriate URL templates against the WMTS output.


Improved WPS aggregation process with group by

The Aggregate process has been improved to support group-by against any data source, with the ability to turn the execution in an efficient SQL with group by query, if the underlying data source is a database. In case of group-by a rich JSON output is generated, than can then be used to drive client side libraries such as D3 to generate nice charts for your users:

  "GroupByAttributes": [ "groupingAttribute" ],
  "AggregationResults": [
    [ "Class1", 18 ],
    [ "Class2", 1 ],
    [ "Class3", 3 ],
    [ "Class4", 3 ]
  "AggregationFunctions": [ "Count" ],
  "AggregationAttribute": "countingAttribute"


Vector masking support for GDAL based formats

All GDAL based formats now support vector masks to cut NODATA areas away from rendering, similar to what image mosaic already supported. Here is a sample, cutting away some areas from a JPEG 2000 image (the format adds compression artifacts at the border, thus the input transparent color cannot be used to achieve a similar effect).



Internal Upgrades

Internally GeoServer has received a number of important upgrades:

  • Update to Spring 4: The upgrade to Spring 4 is responsible for the delay of the GeoServer 2.9 and was required for Java 8 compatibility. This upgrade was far reaching with both  the REST-API and Security integration requiring a concerted quality assurance effort on geoserver-devel. This upgrade was technically challenging resulting in a delay to the 2.9 release schedule. Thanks to everyone who helped out, beta testers, and Justin, Andrea and Niels for tackling the harder issues.

  • Upgrade to JAI-EXT to 1.0.9: To enable JAI-EXT use startup parameter org.geotools.coverage.jaiext.enabled=true (for more information see Image Processing in the user guide).

  • **Upgrade to Wicket 7: **The web administration application has been updated to use the latest Wicket library, thanks to a larger team effort. We would like to thank the sponsors of the Wicket 7 upgrade sprint: OSGeoBoundlessVivid SolutionsHow 2 MapSan Jose Water CompanyTransientGeobeyond (with in-kind sponsors GeoSolutions, CCRi, Astun Technology and Voyager). Can you see the difference? Neither can we.

  • The GeoServer default data directory has been updated with titles and descriptions for many layers (to better take advantage of the user interface improvements). The previously disabled Pk50095 layer (shown below) is now enabled by default. Pk50095

About GeoServer 2.9

Articles, docs, blog posts and presentations: