This is a release candidate release of GeoServer made in conjunction with GeoTools 18-RC1.
We want to encourage people to test the release thoroughly and report back any issue found. With no further delay, let’s see what’s new, that is, what is there to test!
Rest API now using Spring MVC
In March, we upgraded the framework used by the GeoServer REST API from Restlet to Spring MVC. All the endpoints should remain unchanged, but they do need testing to ensure there weren’t any unintended side effects.
As part of this upgrade, we also have new REST documentation, providing detailed information about each endpoint.
Thanks again to the code sprint sponsors:
Insurance Australia Group (IAG)
How 2 Map
Atol Conseils et Développements
Adds the ability to create WMS layers backed by remote WMTS layers, similar to the pre-existing WMS cascading functionality.
See GSIP-162 for more details.
Style Based Layer Groups
Adds the ability to define a listing of layers and styles using a single SLD file, in accordance with the original vision of the SLD specification. This includes a new entry type in the Layer Group layers list, and a new preview mode for the style editor.
See GSIP-161 for more details.
Options for KML Placemark placement
New options for KML encoding have been added, to control the placement of placemark icons, mostly for polygons. The syntax of the new options introduces three new top level format options keys:
See GSIP-160 for more details.
GeoWebCache data security API
Add an extension point to GeoWebCache allowing for a security check based on the layer and extent of the tile. Adds an implementation of this extension point to GeoServer’s GWC integration.
This change mostly only affects developers, but will lead to improved security for users in the future.
See GSIP 159 for more details.
NetCDF output support for variable attributes and extra variables
Adds the following to the NetCDF output extension:
An option to allow all attributes to be copied from the source NetCDF/GRIB variable to the target variable.
Support for manual configuration of variable attributes, much like the current support for setting global attributes.
Support for configuration of extra variables which are copied from the NetCDF/GRIB source to the output; initially only scalar variables will be supported. Extra variables can be expanded over “higher” dimensions, that is, values copied from one scalar per ImageMosaic granule are assembled into a multidimensional variable over, for example, time and elevation.
See GSIP 158 for more details.
New labeling features and QGIS compatibility
A number of small new features have been added to labeling to match some of QGIS features, in particular:
Kerning is on by default
New vendor option to strikethrough text
New vendor options to control char and word spacing
Perpendicular offset now works also for curved labels (previously only supported for straight labels):
Labeling the border of polygons as opposed to their centroid when using a LinePlacement (here with repetition and offset):
Along with this work some SLD 1.1 text symbolizer fixes were added in order to better support the new QGIS 3.0 label export, here is an example of a map labeling with background image, as shown in QGIS, and then again in GeoServer using the same data and the exported SLD 1.1 style (click to enlarge):
At the language level:
Scale dependencies can now also be expressed using the “@sd” variable (scale denominator) and the values can use common suffixes such as k and M to get more readable values, compare for example “[@scale < 1000000]” with “[@sd < 1M]”
Color functions have been introduced to match LessCSS functionality, like “Darken”, “Lighten, “Saturate” and so on. The same functions have been made available in all other styling languages.
Calling a “env” variable has been made easier, from “env(‘varName’)” to “@varName” (or “@varName(defaultValue)” if you want to provide a default value).
As you probably already know, internally CSS is translated to an equivalent SLD for map rendering purposes. This translation process became 50 times faster over large stylesheets (such as OSM roads, a particularly long and complicated style).
Image mosaic improvements and protocol control
Image mosaic saw several improvements in 2.12.
First, the support for mosaicking images in different coordinate reference systems improved greatly, with several tweaks and correctness fixes. As a noteworthy change, the code can now handle source data crossing the dateline. The following images show the footprints of images before and after the dateline (expressed in two different UTM zones, 60 and 1 respectively) and the result of mosaicking them as rasters (click to get a larger picture of each):
There are more good news for those that handle mosaicks with a lot of super-imposing images taken at different times. If you added interesting information into the mosaic index, such as cloud cover, off-nadir, snow cover and the like, you can now filter and sort over them, in both WMS (viewing) and WCS (downloading) by adding the cql_filter and sortBy KVP parameters.
Here is an example of the same mosaic, the first composite favoring smallest cloud cover, the second one favoring recency instead (click to enlarge):
The GeoPackage store jumped straight from community to core package, in light of its increasing importance.
The WMS/WFS/WPS output formats are still part of community. Currently GeoPackage vector does not support spatial indexes, but stay tuned, it’s cooking!
New community modules
The 2.12 series comes with a few new community modules, in particular:
Looking into styling vector tiles and server side using a single language? Look no further than the MBStyle module
For those into Earth Observation, there is a new OpenSearch for EO module in the community section
Need to store full GeoTiff in Amazon S3? The “S3 support for GeoTiff” module might just be what you’re looking for
A new “status-monitoring” community module has been added, providing basic statistics system resource usage. Check out this pull request to follow its progress and merge.
Mind, community modules are not part of the release, but you can find them in the nightly builds instead.
Other assorted improvements
|Highlights of this release featured below, for more information please see the release notes (2.12-RC1||2.12-beta):|
Users REST uses default role service name as a user/group service name
imageio-ext-gdal-bindings-xxx.jar not available in geoserver-2.x.x-gdal-plugin.zip anymore since 2.10
REST GET resource metadata - file extension can override format parameter
GeoServer macOS picks up system extensions
SLD files not deleted when SLD is deleted in web admin
Reproject geometries in WMS GetFeatureInfo responses when info_format is GML
Include Marlin by default in bin/win/osx downloads, add to war instructions
Handle placemark placement when centroid of geometry not contained within
Enable usage of viewParams in WPS embedded WFS requests
Add GeoJson encoder for complex features
Allow image mosaic to refer a GeoServer configured store
Duplicate GeoPackage formats in layer preview page
ExternalGraphicFactory does not have a general way to reset caches
Generating a raster SLD style from template produced a functionally invalid style, now fixed
Style Editor Can Create Incorrect External Legend URLs
Namespace filtering on capabilities returns all layer groups (including the ones in other workspaces)
Test, test, test!
Now that you know about all the goodies, please go, download and test your favourite ones. Let us know how it went!
About GeoServer 2.12
GeoServer 2.12 is scheduled for October 2017 release.
- State of GeoServer 2.12 (slideshare)
- OGC Filter Injection Vulnerability Statement
- GeoServer 2.22.0 Release
- GeoServer 2.21.2 Release
- Jiffle and GeoTools RCE vulnerabilities
- GeoServer 2.20.4 Released
- Spring4Shell RCE vulnerability
- GeoServer 2.20.3 Released
- GeoServer 2.19.5 Released
- GeoServer 2.19.4 Released
- Log4J2 zero day vulnerability assessment