Talks about GeoServer in FOSS4G Bonn

Guest post by Fernando Quadro: FOSS4G is the annual global event of the Open Source Geospatial Foundation (OSGeo). Although widely recognized as the largest technical open source geospatial conference we call FOSS4G an “event” because it is far more than “just” a conference. A typical FOSS4G will include regular presentations and talks, but also code sprints, birds of a feather sessions, workshops, topic talks and of course social events spanning all nine days.

The list of talks that will be presented are already published, here are the talks about GeoServer:

The workshops are include great GeoServer content:

FOSS4G 2016 takes place between August 24th and 27th in Bonn Germany. For more information see the video below:

GeoServer 2.9.0 Released

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.
  • Styles can now include an optional legend graphic for use in WMS GetCapabilities.
  • 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.

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.

About GeoServer 2.9

Articles, docs, blog posts and presentations:

GeoServer 2.9-RC1 Released!

The GeoServer team is pleased to announce GeoServer 2.9-RC1. Downloads are available (zipwardmg and exe) along with docs and extensions.

This release is made by Torben Barsballe (Boundless) in conjunction with GeoWebCache 1.9-RC1 and GeoTools 15-RC1.

This is a release candidate for final testing before we release 2.9.0.


  • This release requires Java 8 and is compatible with Oracle JDK and OpenJDK
  • GeoServer now requires Servlet 3 (so Tomcat 7 or newer if you are doing a WAR install)
  • Update to Spring 4 and JAI-EXT to 1.0.9
  • For more information, check the 2.9-beta, 2.9-beta2, and 2.9-M0 release notes.

Fixes since beta:

For more information see 2.9-RC1 release notes.

We would like to thank the sponsors of the Wicket 7 upgrade sprint: OSGeoBoundlessVivid SolutionsHow 2 MapSan Jose Water CompanyTransient and Geobeyond (with in-kind sponsors GeoSolutions, CCRi, Astun Technology and Voyager).

About GeoServer 2.9

Articles, docs, blog posts and presentations:

GeoServer Community

GeoServer Community modules provide an area for ideas and experimentation. Community highlights for this release:

Community modules should be considered a work-in-progress and are subject to quality assurance, documentation IP checks and a maintainer before being considered ready for release.

GeoServer 2.9-beta2 released

The GeoServer team is pleased to announce the release of GeoServer 2.9-beta2. The previous 2.9-beta discovered an incompatibility with Java 8, resulting in a bit of emergency planning and a delay to the 2.9.0 release schedule.

Download bundles are available (zip, war, dmg and exe). A reminder that beta releases are intended for public feedback and are not recommended for production use.


  • This release requires Java 8 and is compatible with Oracle JDK and OpenJDK
  • GeoServer now requires Servlet 3 (so Tomcat 7 or newer if you are doing a WAR install)
  • Negative-date now supported (for GeoNode compatibility)
  • New REST API for installation status
  • For more information check the release notes for beta2 (history beta1|M0)
  • Update to Spring 4 and JAI-EXT to 1.0.9

This 2.9-beta2 release is released in conjunction with GeoTools 15-beta2 and GeoWebCache 1.9-beta2. Thanks to Jody Garnett (Boundless) and Kevin Smith (Boundless) for this release.

Beta Testing

The GeoServer Team has been hard at work to bring you this beta release. Thanks to the committers for taking part in the emergency spring-4 upgrade and community members joining for subsequent testing and quality assurance: Justin Deoliveira and Andrea Aimie, Emanuele Tajariol, Damiano Giampaoli, Ben Caradoc-Davies, Niels Charlier, Mauro Bartolomeoli, Jody Garnett, Jukka Rahkonen, Brad Hards, Kevin Smith, Chris Snider, Torben Barsballe, Christian Mueller, Luigi Pirelli  … and next you!

Here is our priorities for testing:

  • Seeking confirmation on Java 8 compatibility (test Oracle JDK and OpenJDK on a range of platforms)
  • Testing of the user-interface (although the team has performed extensive manual testing we need your help)
  • Release packaging (check for anything out of date, any issues starting up)
  • GeoServer security integration

We have a couple known issues to keep in mind when testing:

  • Windows installer “Install as service” needs a configuration change once installed (GEOS-7507)
    Open wrapper.conf and update contents with:
  • Windows installer “Run manually” may have an issue with startup.bat (GEOS-7509)
  • Several issues have been reported with the Demo Page (GEOS-7513)

About GeoServer 2.9

Articles, docs, blog posts and presentations:

The GeoServer team extends our thanks to wicket upgrade sprint sponsors: OSGeo, Boundless, Vivid Solutions, How 2 Map, San Jose Water Company, Transient and Geobeyond.

GeoServer 2.8.3 released

The GeoServer team is pleased to announce the release of GeoServer 2.8.3. Download bundles are provided (binwardmg and exe) along with documentation and extensions.

GeoServer 2.8.3 is the latest stable release of GeoServer and is recommended for production deployment. This release is made in conjunction with GeoTools 14.3. Thanks to all contributors. Fixes and new functionality include:

  • A few security subsystem related fixed, DescribeFeatureType and layer preview now works with mixed security mode, new layer groups can be edited when using GeoFence, mixing layer groups and layers with other styles in a GetMap request now works with GeoFence too, it’s possible to access workspace specific services when security only allows access to some layers of it (but not the full workspace), embedded GWC can now serve layer groups when “data security” is enabled
  • WFS cascading related fixes, the WFS store does not get disabled on restart anymore, and can handle straight line elements embedded in a curve container,
  • WFS server received GML3 encoding fixes for geometries with 3D coordinates and pure geometry collections
  • Fixed regression with configuration of SQL Views having multiple geometry fields
  • WPS can now be enabled/disabled per workspace properly
  • And much more, see all the 34 tickets resolved in the release notes

Thanks to Andrea Aime (GeoSolutions) for this release.

About GeoServer 2.8

Articles, blog posts and presentations:

GeoServer 2.9-beta released

The GeoServer team is pleased to announce the release of GeoServer 2.9-beta. This is a beta release, focused on making our wicket update available for testing, and trying out our release process to ensure we have not broken anything.

Beta releases are intended for public feedback and are not recommended for production use.

Download bundles are available (zip, war and exe). Our mac dmg is late to the party, we will update the blog post when it arrives.


  • This release requires Java 8.
    We have identified one known incompatibility and may need to adjust our roadmap based on your testing and feedback.
  • Documentation has a new layout grouping service description and configuration reference together. Services that are an optional install (such as CSW and WPS) have been brought into a consistent location so you can easily see what GeoServer is capable of rather than getting lost in extensions.
  • This release includes support for perpendicular offset in SLD (see SLD cookbook for an example).
  • UTFGrid support in WMS GetMap
  • Internally we have upgraded the user interface library – taking the opportunity to update global, image processing and raster access screens. The layer group page has also been split into tabs. By popular request the button to add a new layer has been renamed to “Add new layer”.
  • Legend graphic has always been auto-generated, you can use your own custom icons.
  • For installations without direct file system access you can now manage resources (icons, fonts,templates) using the REST API.
  • An useful improvement to the aggregation process is the group aggregate queries (sum, average, count) by an attribute.
  • For more information, as always, check the beta release notes (and milestone release notes)

This 2.9-beta release is released in conjunction with GeoTools 15-beta and GeoWebCache 1.9-beta. Thanks to Jody Garnett (Boundless) for this release.

A beta release often features lots of last-moment pull requests – thanks to Andrea Amie (GeoSolutions) and Ben Caradoc-Davies (Transient) for their assistance during this review cycle. A further thanks to Larry Shaffer (Boundless) and Chris Del Pino (Boundless) for their build assistance.

The big news for GeoServer 2.9-beta is upgrading our user interface from Wicket 1.4 to Wicket 7. A sprint was organized for this labour intensive task, with plenty of hard work and manual testing. We would like to thank our sponsors OSGeo, Boundless, Vivid Solutions, How 2 Map, San Jose Water Company, Transient and Geobeyond. We should also thank sprint participants and in-kind sponsors scitus development, GeoSolutions, CCRi, Astun Technology and Voyager for making this event possible.

About Geoserver 2.9

Articles, docs, blog posts and presentations:


GeoServer 2.7.6 released

The GeoServer team is happy to announce the release of GeoServer 2.7.6. Download bundles are provided (zip, war, dmg and exe) along with documentation and extensions.

The release contains 17 fixes compared to 2.7.5, including improvements in the WMS cascading, a deadlock fix for admins re-configuring GWC while under load, a fix for a regression with SqlViews using more than one geometry field, and a WPS file descriptor leak, and some other WMS related fixes. For a full list, see the release notes.

GeoServer 2.7.6 is the last maintenance release of the GeoServer 2.7.x series, users are recommended to upgrade to 2.8.x or just wait next month for 2.9.0 to be released as stable.

Thanks to everyone taking part, reporting issues and making pull requests, and also thanks to Andrea Aime (GeoSolutions) for this release.

This release is made in conjunction with GeoTools 13.6.

GeoServer code sprint success

It’s been an exciting time here at GeoServer HQ. To explain, let’s start with a little history lesson.


In 2009, GeoServer released GeoServer 2.0, sporting a new user interface based on Apache Wicket. Wicket allows Java developers to construct an AJAX UI with minimal HTML experience. Since its adoption, Wicket has made development of GeoServer more accessible, due the ease of creating graphical configuration pages.

The problem is that we’ve still been using Wicket version 1.4 all this time, and the current version is 7. We’ve tried to address this activity at two previous single-day code sprints, which were aborted due to insufficient time and resources. And the longer we’ve waited, the more difficult it has become.

Without an upgrade, we were starting to see less compatibility with modern browsers, which would eventually lead to the UI not being usable. Something needed to be done.

Enter the code sprint

The GeoServer PSC responded to this challenge by contacting sponsors and organizing a code sprint.

This was not a small task. The problem is neatly summed up by a graphic created by Jody Garnett explaining the Wicket upgrade:

Can you see the difference? Neither can we.

Can you see the difference? Neither can we.

As you can see, when properly implemented, the visual change for users will be…nothing at all.

So I was very impressed when we got the go-ahead (and funding!) to meet in Victoria, BC, at the Boundless Canadian office.

What we did

Developers from the US, Canada, Italy, and Belgium descended upon the diminutive capital of British Columbia to spend a week doing the upgrade.

Since we held off this work for so long, it wasn’t as simple as a single upgrade, as we had to negotiate several API changes in one go. And GeoServer, being highly extensible software, has dozens of modules and extensions that needed to be tested too:

And on and on…

Developer experience

Here is the team and their primary accomplishments:

  • Andrea Aime (GeoSolutions): Really focused on fixing the build and crushing bugs as they popped up in manual testing. Spent a lot of time migrating the security modules.
  • Torben Barsballe (Boundless): Unit test fixes. Component testing. Styling fixes. Fixed links on the Styles page Fixed the Layer Importer. Fixed the LegendGraphic display.
  • Niels Charlier (Scitus): Fixed code and unit tests for many of the core components. Manually tested and fixed many commonly used pages in the UI such as the Layer Preview and Tile Caching sections.
  • Justin Deoliveira (Voyager Search):  Justin helped out monday-tuesday getting the wicket7 branch to compile and helping everyone learn the tips and tricks of wicket debugging.
  • Jody Garnett (Boundless): Learned a lot about how Wicket worked, suffered through manual testing and enjoyed making usability improvements to the configuration pages.
  • Jim Hughes (CCRi): Helped with updates to unit tests. Fixed issues identified by testers.
  • Morgan Thompson (Boundless): Fixed the CoverageBands panel for raster pages. Tested/upgraded the Stores page. Tested various other pages such as the Security section and NetCDF.
  • Devon Tucker (Boundless): Manual testing of core GeoServer and some extensions. Fixed some regressions from the Wicket migrations and did some improvements on the Layers page

And one week later, we are excited to announce that the sprint was a success, and GeoServer is now running Wicket 7. Hooray!

Here is a master nightly build – please download and test it out.

Documentation changes

I was invited to take part in the code sprint, but as I focus on documentation and user experience, I had a lot of down time while the rest of the team was deep in the weeds.

So I took a hard look at the GeoServer User Manual, and performed a fairly significant restructuring, along with some small improvements in the theme.

You can see the new documentation, (compare to an older version). Details on what was done can be found on GitHub. I feel like these changes will make it easier to find information in the documentation, which is fairly extensive.


Documentation Upgrade

More exciting were the visual documentation improvements. I updated the theme of the documentation to increase readability and fix some visual bugs (for example step 10 and higher being cut off).



Documentation Theme and Content Update

Visual Changes and Blue-sky thinking

With so many experienced GeoServer users in the room, we had a short breakout session discussing high-level improvements to the UI and its workflow, in an attempt to answer the question, “what have you always wished the GeoServer UI would do?” It didn’t take too long to fill up a spreadsheet full of more than two dozen ideas for the next co de sprint- and the team was able to make a few of the easier ones on Thursday and Friday.

The rest of the team decided to follow suit and made a few small visual changes, such as:

  • Updating the JAI page (now called “Image Processing”)
  • Updating the Coverage Access page (now called “Raster Access”)
  • “Add a new resource” is now called “Add a new layer”. (Minuscule change, but this has bugged me for years.)
  • Group fields consistently in Global Settings

So I guess we got some visual changes in after all. Hooray again!

Global Settings

Adding Headings and Reorganizing Global Settings


Thanks to OSGeoBoundless, Vivid Solutions, How 2 Map, San Jose Water Company, Transient, GeoBeyond, Scitus, GeoSolutions, CCRi, Astun Technology, and Voyager Search for sponsoring this work.

It’s precisely this kind of support for OSGeo projects that enable our community to thrive.



DSC01732  DSC01733

DSC01736   DSC01739

DSC01741  IMG_1106


IMG_1112 DSC01734 DSC01738

GeoServer 2.8.2 Released

The GeoServer team is pleased to announce the release of GeoServer 2.8.2. Download bundles are provided (binwardmg and exe) along with documentation and extensions.

GeoServer 2.8.2 is the latest stable release of GeoServer and is recommended for production deployment. This release is made in conjunction with GeoTools 14.2. Thanks to all contributors. Fixes and new functionality include:

  • Multiple improvements to Geofence UI.
  • Various concurrency and thread-safety fixes.
  • WPS and Storied Queries hardening.

Thanks to Jody Garnett (Boundless) and Jim Hughes (CCRi) for this release.

About GeoServer 2.8

Articles, blog posts and presentations:

GeoServer Code Sprint 2016 Ready

Follow up to our GeoServer Code Sprint 2016 post – we are all ready to go for next week!

  • Monday: Initial migration, Wicket 7 bootcamp / Java 8 bootcamp
  • Tuesday: Migration/testing workspace and datastore configuration
  • Wednesday: Migration/testing global, service and layer configuration
  • Thursday: Migration/testing tile cache, security and demos
  • Friday: demos, extensions and select community modules

Mike Pumphrey will be on hand to update the User Guide reference section and ask awkward questions about how things work. We expect to corner a few new volunteers for the scheduled release of GeoServer 2.8.2.

See the OSGeo wiki page for details, sponsors, participants and schedule. For participants (local and remote) there is a pre-flight wiki page with background reading for the upgrade.

Thank you Sponsors

A big thanks to organizations sponsoring the sprint – you help make this gathering possible. Special thanks to the “In-Kind” sponsors sending staff to participate.

Gold Sponsors:

OSGeo    Boundless    Vivid Solutions

Silver Sponsors:

How 2 Map

Bronze Sponsors:

San Jose Water Company     Transient     Geobeyond

In-Kind Sponsors:

scitus development     GeoSolutions    CCRi

Astun Technology   Voyager

Welcome to Victoria

Thanks to Boundless Victoria for making their offices available (see prep below). We look forward to taking over next week and thanks to everyone for their hospitality.




Download GeoServer