GeoServer 2.14-RC released

We are happy to announce the release of GeoServer 2.14-RC. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a beta release of GeoServer made in conjunction with GeoTools 20-RC.

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!

WMS “nearest match” support for time dimension

WMS time dimension can now be configured for “nearest match”, that is, to return the nearest time to the one requested (either explicitly, or implicitly via the default time value).

In case of mismatch the actual time used will be returned along with the response as a HTTP header. It is also possible to configure a maximum tolerance, beyond that the server will throw a service exception.

Channel selection name allow expressions

GeoServer 2.14-RC allows expressions to be used in SourceChannelName SLD elements, and in their code counterpart, thus allowing dynamic channel selection. This is welcomed news for anyone building applications that display multispectral or hyperspectral data, thus avoiding the need to build many different styles for the various interesting false color combinations.

Here is an SLD example:

<RasterSymbolizer>
  <ChannelSelection>
    <RedChannel>
      <SourceChannelName>
          <ogc:Function name="env">
             <ogc:Literal>B1</ogc:Literal>
             <ogc:Literal>2</ogc:Literal>
          </ogc:Function>
      </SourceChannelName>
    </RedChannel>
    <GreenChannel>
      <SourceChannelName>
          <ogc:Function name="env">
             <ogc:Literal>B2</ogc:Literal>
             <ogc:Literal>5</ogc:Literal>
          </ogc:Function>
      </SourceChannelName>
    </GreenChannel>
    <BlueChannel>
      <SourceChannelName>
          <ogc:Function name="env">
             <ogc:Literal>B3</ogc:Literal>
             <ogc:Literal>7</ogc:Literal>
          </ogc:Function>
      </SourceChannelName>
    </BlueChannel>
  </ChannelSelection>
<RasterSymbolizer>

Map algebra

This release adds support for an efficient map algebra package knows as Jiffle. Jiffle has been the work of a former GeoTools contributor, Michael Bedwards, that has been salvaged, upgraded to support Java 8, and integrated in jai-ext. From the there support has been added into the GeoTools gt-process-raster module and as a result in GeoServer WPS, to be used either directly or as a rendering transformation.

The following SLD style calls onto Jiffle to perform a NDVI calculation on top of Sentinel 2 data:

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" 
   xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld
http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" version="1.0.0">
  <NamedLayer>
    <Name>Sentinel2 NDVI</Name>
    <UserStyle>
      <Title>NDVI</Title>
      <FeatureTypeStyle>
        <Transformation>
          <ogc:Function name="ras:Jiffle">
            <ogc:Function name="parameter">
              <ogc:Literal>coverage</ogc:Literal>
            </ogc:Function>
            <ogc:Function name="parameter">
              <ogc:Literal>script</ogc:Literal>
              <ogc:Literal>
                nir = src[7];
                vir = src[3];
                dest = (nir - vir) / (nir + vir);
              </ogc:Literal>
            </ogc:Function>
          </ogc:Function>
        </Transformation>
        <Rule>
          <RasterSymbolizer>
            <Opacity>1.0</Opacity>
            <ColorMap>
              <ColorMapEntry color="#000000" quantity="-1"/>
              <ColorMapEntry color="#0000ff" quantity="-0.75"/>
              <ColorMapEntry color="#ff00ff" quantity="-0.25"/>
              <ColorMapEntry color="#ff0000" quantity="0"/>
              <ColorMapEntry color="#ffff00" quantity="0.5"/>
              <ColorMapEntry color="#00ff00" quantity="1"/>
            </ColorMap>
          </RasterSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

The performance is good enough for interactive display, and the result looks as follows (click to enlarge):

PostGIS store improvements and measured geometries support

The PostGIS datastore has been for years the only one that could encode a few filter functions used in filters down into native SQL, but it required a datastore creation flag to be enabled.
Starting with this release it will do so by default.

The functions supported for SQL encoding by the store are:

  • String functions: strConcat, strEndsWith, strStartsWith, strEqualsIgnoreCase, strIndexOf, strLength, strToLowerCase, strToUpperCase, strReplace, strSubstring, strSubstringStart, strTrim, strTrim2
  • Math functions: abs, abs_2, abs_3, abs_4, ceil, floor
  • Date functions: dateDifference

This release adds support for “array” data type in the store, with full reading and writing support, as well as native filtering (with index support, where feasible).

Finally, it’s now possible to read geometries with measures from PostGIS and encode the results in GML. GML does not natively support measures, so the encoding is off by default and you’ll have to enable it explicitly, as well as ensure that the clients involved in WFS usage recognize this extra ordinate. The work will continue in the next few month in order to cover more formats.

 

Image mosaic improvements

The image mosaic module never sleeps, in this release we see the following improvements:

  • Support for remote images (e.g. S3 or Minio). In order to leverage this the mosaic index will have to be created up-front (manually, or with some home grown tools)
  • A new “virtual native resolution” read parameter allows the mosaic to compose outputs respecting a native resolution other than its native one (useful in case you want to give selective resolution access to different users)
  • Supporting multiple WKBs footprint for pixel precise overviews masking
  • A new read mask parameter allows to cut the image to a given geometry (again, helps in providing different selective views to different users)
  • Speed up NetCDF mosaics by allowing usage of stores coming from a repository, instead of re-creating them every time a NetCDF file is needed (to be setup in the auxiliary store config file, while the repository instance needs to be passed as a creation hint).
  • The mosaic now works against images without a proper CRS, setting them into the “CRS not found” wildcard CRS, aka “EPSG:404000”

App-schema improvements

The app-schema module got significant performance and functionality improvements since 19.x series, in particular:

  • Better delegation of spatial filters on nested properties to native database
  • Improved support for multiple nested attribute matches in filters
  • It is now possible to use Apache SOLR as a data source for app-schema
  • The configuration files can be hosted on a remote HTTP server

The MongoDB store upgrades to official extension

Wanted to use the MongoDB store but worried about its unsupported status? Worry no more, in GeoServer 2.14 the MongoDB datastore upgraded to official extension status.

Style editor improvements

The GeoServer style editor now includes a fullscreen side-by-side editing mode, to make it easier to preview your styles while editing them. Click the fullscreen button at the top-right of the screen to toggle fullscreen mode.

The toolbar also has two new additions, a color picker helping to find the right color and turn it into a HEX specification, and a file chooser that allows to pick an external graphic and build the relevant ExternalGraphic element:

 

Windows build restored

GeoServer failed to properly build on Windows for a long time. GeoServer 2.14.x is the first branch in years to successfully build on Windows, and we have added an AppVeyor build to help keep the build going in the future.

The work to make it build there has been fully done in spare time, and we are still experiencing random build failures. If you are a Java developer on Windows, we could really use your help to keep GeoServer Windows build friendly.

New community modules

The 2.12 series comes with a few new community modules, in particular:

  • OAuth2 OpenID connect module (still very much a work in progress)
  • A WFS3 implementation has been added that matches the current WFS3 specification draft, and it’s being updated to become an official compliant one.

Mind, community modules are not part of the release, but you can find them in the nightly builds instead.

Other assorted improvements

There are many improvements to look at in the release notes, cherry picking a few here:

  • The ncWMS community module has seen significant performance improvements
  • WPS has a CSV input/output supporting geometryless data, as well as geometries with WKT encoding, as well as supporting pure PNG/JPEG image for raster data
  • Time/Elevation parsers are no longer silently cutting the read data to 100 entries
  • The WMTS multidimensional GetHistogram operation is now significantly faster, and a new GetDomainValues operation allows to page through the values of a domain (time, elevation) that has too many values to be efficiently explored with DescribeDomain or GetFeature. The DescribeDomain was also improved to allow a selection of the domains that should be described.
  • The SLDService community module has now the ability to return a full SLD style (as opposed to snippets), allows for custom classification and custom color selection. Also, keep an eye on this module, as it’s about to graduate to supported status
  • The monitoring modul can now log the hit/miss status of tiled requests, quite helpful to verify the benefit of caching, especially while using WMS direct integration

Security consideration

Please update your production instances of GeoServer to receive the latest security updates and fixes.

This release addresses several security vulnerabilities:

  • Prevent arbitrary code execution via Freemarker Template injection
  • XXE vulnerability in GeoTools XML Parser
  • XXE vulnerability in WPS Request builder
  • Various library upgrades (see above) from versions with known CVEs
  • Potential access to admin pages without being logged in

Thanks to Steve Ikeoka, Kevin Smith, Brad Hards, Nuno Oliveira and Andrea Aime for providing fixes to these issues.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

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.14

GeoServer 2.14 is scheduled for September 2018 release.

FOSS4G 2018 GeoServer Developers Workshop

Thanks to everyone who attended today’s foss4g developer workshop, here are the slides and resources used:

 

GeoServer 2.12.5 released

We are happy to announce the release of GeoServer 2.12.5. Downloads are available (zipwar, and exe) along with docs and extensions.

This is the last maintenance release for the 2.12.x series, so we recommend users to plan an upgrade to 2.13.x or to the upcoming 2.14.x series. This release is made in conjunction with GeoTools 18.5.

Highlights of this release are featured below, for more information please see the release notes (2.12.52.12.42.12.3,2.12.22.12.12.12.0 | 2.12-RC1 | 2.12-beta).

Improvements

  • ImageMosaic should work when the images have no CRS information
  • Upgrade Apache POI dependencies
  • Upgrade jasypt dependency
  • Upgrade json-lib dependency to 2.4
  • Upgrade bouncycastle provider to 1.60

Bug Fixes

  •  NullPointerException during WMS request of layer group when caching is enabled
  • GeorectifyCoverage fails to handle paths with spaces
  •  CSS translator does not support mark offset/anchors based on expressions (but SLD does)
  • GeoServerSecuredPage might not redirect to login page in some obscure cases after Wicket upgrade

Security updates

Please update your production instances of GeoServer to receive the latest security updates and fixes.

This release addresses several security vulnerabilities:

  • Prevent arbitrary code execution via Freemarker Template injection
  • XXE vulnerability in GeoTools XML Parser
  • XXE vulnerability in WPS Request builder
  • Various library upgrades (see above) from versions with known CVEs

Thanks to Steve Ikeoka, Kevin Smith, Brad Hards and Nuno Oliveira for providing fixes to these issues.

These fixes are also included in the 2.13.2 release.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

About GeoServer 2.12 Series

Additional information on the 2.12 series:

GeoServer 2.13.2 released

We are happy to announce the release of GeoServer 2.13.2. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a stable release recommended for production use. This release is made in conjunction with GeoTools 19.2 and GeoWebCache 1.13.2.

Highlights of this release are featured below, for more information please see the release notes (2.13.2 | 2.13.1 | 2.13.02.13-RC1 | 2.13-beta).

Improvements and Fixes

  • style editor map legend always includes legend
  • performance improvement for multi-band coverage time series
  • WMS 1.3.0 performance improvement for north/east axis order
  • Fix support of external graphics over http

Security updates

Please update your production instances of GeoServer to receive the latest security updates and fixes.

This release addresses several security vulnerabilities:

  • Prevent arbitrary code execution via Freemarker Template injection
  • XXE vulnerability in GeoTools XML Parser
  • XXE vulnerability in WPS Request builder
  • Various library upgrades (see above) from versions with known CVEs

Thanks to Steve Ikeoka, Kevin Smith, Brad Hards and Nuno Oliveira for providing fixes to these issues.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

About GeoServer 2.13 Series

Additional information on the 2.13 series:

 

GeoServer 2.12.4 Release

We are happy to announce the release of GeoServer 2.12.4. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a maintenance release and a recommend update production systems. This release is made in conjunction with GeoTools 18.4.

Highlights of this release are featured below, for more information please see the release notes (2.12.42.12.3,2.12.2, 2.12.12.12.0 | 2.12-RC1 | 2.12-beta).

Improvements

  • Add forceLabels=on in the style editor map legend to help users,
  • Remove language warnings during Windows setup compilation and remove ‘work’ folder when uninstalling on Windows
  • Move MongoDB community module to supported status

Bug Fixes

  • Response time of WMS 1.3.0 significantly higher than vs WMS 1.x.x on systems whose axis in north/east order
  • Exception with NULL values with AggregateProcess
  • Style with Interpolate function causes NullPointerException on GetLegendGraphic
  • WFS with startIndex doesn’t return some results
  • Vector identifying feature info uses an undocumented system variable to set the default search area
  • Removing extensions with own configuration bits may cause GeoServer not to start up anymore
  • Windows Installation issue – upgrading GeoServer results in corrupt data_dir
  • Class java.util.Map$Entry is not whitelisted for XML parsing.
  • Add WMS GetMap and GetFeatureInfo tests for App-Schema MongoDB integration
  • CatalogRepository cannot find a store by name, if the store has just been added
  • WCS 1.0.0 generates wrong links in GetCapabilities
  • CatalogRepository should return a null on store not found, instead it throws a RuntimeException
  • Layer page will only show up to 25 bands, regardless of the actual set of bands available
  • Undocumented GDAL 2.3.0 CSV output geometry column name change breaks WPSOgrTest

Security Updates

Please update your production instances of GeoServer to receive the latest security updates and fixes.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

About GeoServer 2.12 Series

Additional information on the 2.12 series:

GeoServer 2.13.1 Released

We are happy to announce the release of GeoServer 2.13.1. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a stable release recommended for production use. This release is made in conjunction with GeoTools 19.1 and GeoWebCache 1.13.1.

Highlights of this release are featured below, for more information please see the release notes (2.13.1 | 2.13.02.13-RC1 | 2.13-beta):

New Features and Improvements

  • MongoDB community module moved to extension
  • Support PNG/JPEG WPS Downloads
  • Allow self joining GetFeature without aliases
  • Add support for priority in control-flow bounded queues
  • Hibernate Monitoring extension moved to a community module

Bug Fixes

  • WCS 1.0.0 generates wrong links in GetCapabilities
  • WFS 2.0 capabilities report transaction support even if the service level is not configured as such
  • WPSResourceManager cleanup is not deleting temporary subfolders (only files)
  • GeoServer in CITE compliance mode fails to validate an empty LockFeature request
  • WMS 1.3 GetMap request significantly slower than WMS 1.1.0 since GeoServer 2.11.4
  • Import objects cannot be deleted when in COMPLETE state
  • Style with Interpolate function causes NullPointerException on GetLegendGraphic
  • Windows Installation issue – upgrading GeoServer results in corrupt data_dir
  • Windows Installer: Remove ‘work’ folder when uninstalling

 

GeoServer 2.12.3 Released

We are happy to announce the release of GeoServer 2.12.3. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a maintenance release and a recommend update production systems. This release is made in conjunction with GeoTools 18.3.

Highlights of this release are featured below, for more information please see the release notes (2.12.3,2.12.2, 2.12.12.12.0 | 2.12-RC1 | 2.12-beta).

Improvements

  • Improved bounding box reporting in WMS GetCapabilities allowing more entries to be supported when Output bounding box for every support CRS is selected. Bounding boxes are now returned for layer groups as well.
  • NetCDF/GRIB has been improved with a new setting to copy over global attributes when generating NetCDF output

Bug Fixes

  • WFS 2.0 fix for interaction with startIndex and the total features count
  • CQL filters can now be used with the WMS vector tile output format
  • GeoPackage WPS output corrected to generate y coordinates from bottom left
  • User interface for editing workspace details checks for conflicts with name or namespace URI.
  • GML 3.2 output can now limit the number of decimals used for coordinate output
  • REST management of styles now supports defining a style using POST for CSS, YSLD and MapBox styles (previously this only worked for SLD)
  • WPS output error handling does a better job reporting when Async output format parameters are incorrect.
  • WPS improvements have also been made for the cleanup of temporary folders and output “raw data encoder” (which is often used for image generation).
  • Demo request page does a better job of of reporting authorization failures, and correctly sending credentials for testing service security.
  • GetLegendGraphic fixes to correct line thickness and ensure polygons and points are not cut off.

Community Updates

For developers building from source our community modules remain a great place to collaborate on new functionality and improvements. This month Nuno Oliveira has added a new community module for the GeoTools MongoDB datastore.

Security Updates

Please update your production instances of GeoServer to receive the latest security updates and fixes.

If you encounter a security vulnerability in GeoServer, or any other open source software, please take care to report the issue in a responsible fashion.

About GeoServer 2.12 Series

Additional information on the 2.12 series:

GeoServer 2.13.0 released

We are happy to announce the release of GeoServer 2.13.0. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a release candidate of GeoServer made in conjunction with GeoTools 19.0.

Isolated Workspaces

The concept of an “Isolated Workspaces” has been added to GeoServer, to allow for reusing a namespace among multiple workspaces. In particular, an isolated workspace allows reuse of a namespace already used by another workspace, but its resources (layers, styles, etc …) can only be retrieved when using that workspace’s virtual services and will only show up in those virtual service capabilities documents.

When reusing a namespace among workspaces, exactly one of those must be non-isolated, and the rest must be isolated; i.e. isolated workspaces have no restrictions in namespaces usage but the existing restrictions still apply for non isolated workspaces.

This is particularly useful for those publishing complex schemas for INSPIRE compliance. For more details, refer to the original proposal.

GeoWebCache REST API

Two new endpoints have been added to the GeoWebCache REST API:

  • /gwc/rest/blobstores:
    • GET /gwc/rest/blobstores for a list of the blobstores
    • GET /gwc/rest/blobstores/{blobStoreName} for details about a single blobstore
    • PUT /gwc/rest/blobstores/{blobStoreName} to create or update a blobstore
    • DELETE /gwc/rest/blobstores/{blobStoreName} to remove a blobstore
  • /gwc/rest/gridsets:
    • GET /gwc/rest/gridsets for a list of the gridsets
    • GET /gwc/rest/gridsets/{gridSetName} for details about a single gridset
    • PUT /gwc/rest/gridsets/{gridSetName} to create or update a gridset
    • DELETE /gwc/rest/gridsets/{gridSetName} to remove a gridset

API docs for these endpoints will be added to the GeoServer documentation shortly. Until then, the request body syntax for PUT requests closely matched the equivalent structures in geowebcache.xml: BlobStores and GridSets.

The ArcGISCache backed layers are now also configurable via the REST API.

This release sees a major reworking of the configuration system in GeoWebCache that will allow for plugging in alternate configuration persistence mechanisms in future. While these changes should be largely invisible to users, it is a huge update that impacts all of GeoWebCache. However, due to these changes, we ask that you please test the embedded GeoWebCache.

UI Improvements

Entering in URLs for data files has been improved with autocomplete – now GeoServer will scan the path that has already been typed, and suggest existing files within that path.

In addition, autocomplete support has been added to a number of dropdowns which contain a long list of values, such as stores or layers. You can now start typing the name of an option, and the visible options will be filtered to match.

Editing raster layer parameters made easier, from a wall a text input fields, to appropriate controls being used depending on the parameter type. Here is a “before and after” comparison:

Finally, error messages are now displayed both at top (as usual) and bottom (new!) in all configuration pages. This should make it easier to locate error messages, especially while editing styles:

 

GeoPackage performance improvements

GeoPackage reading and rendering performance improved significantly, up to two times faster on large datasets full extractions and 50% faster on small bounding box searches, bringing GeoPackage on par with PostGIS. We also have a Google spreadsheet with more details.

Shapefile remains king of full dataset extractions and the fastest data source for pure spatial driven queries.

WFS 2.0 and WMTS 1.0 OGC compliance work

During the past few months we have been involved in OGC Testbed 14 and significantly improved GeoServer compliance with WFS 2.0 and WMTS 1.0. The work involved numerous fixes in GeoServer/GeoWebCache, along with variuos fixes in the CITE tests themselves. The changes were too numerous to backport to the 2.12.x series, so if compliance with these protocols is important it’s time to consider an upgrade to the 2.13.x series. For details see these lists:

Work is still ongoing and a small number of issues are yet to be fixed, we’ll keep you updated.

Support for more PostGIS data types

The PostGIS data store now has simple support for HStore and JSON columns. HStore is returned as a Map and will render as a JSON formatted string field in common WFS output formats, while JSON is read as a string and rendered as-is. In both cases no special query support has been added for those types (but we’d be very happy if someone would work, or sponsor, that functionality too).

Better label position control in map rendering

When setting maxDisplacement on point/polygons the renderer used to search in a circular area around the designated label point.
The new displacementMode vendor option allows to control the positioning by specifying the preferred cardinal positions, as a comma separated list.

Coverage views from heterogeneous bands

Satellite data often comes as a set of heterogeenous resolution bands, due to multiple sensors having different native resolutions. It is yet useful to have all bands packaged on the same coverage, for ease of display (false color setups) and information (GetFeatureInfo). Coverage views now allow to mix those bands, coming from separate files and organized in a image mosaic, in a single multiband coverage view, resampling on the fly with configurable target resolution policies.

Removed OS X installers

Due to lack of resources and interest, the OS X dmg installers are no longer being built. OS X users can still use the system-independent binary.

New community modules and improvements

The 2.13 series comes with a few new community modules, in particular:

  • Do you want to generate GHRSST compliant outputs from GHRSST inputs? Try out the new GHRSST NetCDF output community module.
  • The mongodb community module provides an easy-to-use wrapper around the Ge0Tools mongodb data store, allowing you to publish geospatial data stored in mongodb.
  • There is also a new community module introducing NSG profiles for the WFS and WMTS services.

Existing community modules also got some love, in particular:

  • The WPS download module now allows to download large maps, and also build animations, generating MP4 courtesy of jcodec library. Both processes can (and should!) be invoked asynchronously to better handle long generation times. Here is an example of animation output:
  • The WPS download process now also allows control of GeoTiff output structure (tiling, compression) in raw raster downloads, as well as downloading granules part of a heterogeneous mosaic in their native CRS and native resolution
  • Various JDBCConfig and JDBCStore performance improvements, reducing the number of configuration database queries performed for each OGC request. Configuration queries are also consistently logged for further analysis

Note that community modules are not part of the release; instead you can find them in the nightly builds.

Other assorted improvements

A single bug got fixed since the RC, for more information please see the release notes (2.13.02.13-RC1 | 2.13-beta):

  • CQL filter not working when asking for vector tiles in wms request, GEOS-8065

 

GeoServer 2.13-RC1 Released

We are happy to announce the release of GeoServer 2.13-RC1. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a release candidate of GeoServer made in conjunction with GeoTools 19-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!

Isolated Workspaces

The concept of an “Isolated Workspaces” has been added to GeoServer, to allow for reusing a namespace among multiple workspaces. In particular, an isolated workspace allows reuse of a namespace already used by another workspace, but its resources (layers, styles, etc …) can only be retrieved when using that workspace’s virtual services and will only show up in those virtual service capabilities documents.

When reusing a namespace among workspaces, exactly one of those must be non-isolated, and the rest must be isolated; i.e. isolated workspaces have no restrictions in namespaces usage but the existing restrictions still apply for non isolated workspaces.

This is particularly useful for those publishing complex schemas for INSPIRE compliance. For more details, refer to the original proposal.

GeoWebCache REST API

Two new endpoints have been added to the GeoWebCache REST API:

  • /gwc/rest/blobstores:
    • GET /gwc/rest/blobstores for a list of the blobstores
    • GET /gwc/rest/blobstores/{blobStoreName} for details about a single blobstore
    • PUT /gwc/rest/blobstores/{blobStoreName} to create or update a blobstore
    • DELETE /gwc/rest/blobstores/{blobStoreName} to remove a blobstore
  • /gwc/rest/gridsets:
    • GET /gwc/rest/gridsets for a list of the gridsets
    • GET /gwc/rest/gridsets/{gridSetName} for details about a single gridset
    • PUT /gwc/rest/gridsets/{gridSetName} to create or update a gridset
    • DELETE /gwc/rest/gridsets/{gridSetName} to remove a gridset

API docs for these endpoints will be added to the GeoServer documentation shortly. Until then, the request body syntax for PUT requests closely matched the equivalent structures in geowebcache.xml: BlobStores and GridSets.

The ArcGISCache backed layers are now also configurable via the REST API.

This release sees a major reworking of the configuration system in GeoWebCache that will allow for plugging in alternate configuration persistence mechanisms in future. While these changes should be largely invisible to users, it is a huge update that impacts all of GeoWebCache. However, due to these changes, we ask that you please test the embedded GeoWebCache.

UI Improvements

Entering in URLs for data files has been improved with autocomplete – now GeoServer will scan the path that has already been typed, and suggest existing files within that path.

In addition, autocomplete support has been added to a number of dropdowns which contain a long list of values, such as stores or layers. You can now start typing the name of an option, and the visible options will be filtered to match.

Editing raster layer parameters made easier, from a wall a text input fields, to appropriate controls being used depending on the parameter type. Here is a “before and after” comparison:

Finally, error messages are now displayed both at top (as usual) and bottom (new!) in all configuration pages. This should make it easier to locate error messages, especially while editing styles:

 

GeoPackage performance improvements

GeoPackage reading and rendering performance improved significantly, up to two times faster on large datasets full extractions and 50% faster on small bounding box searches, bringing GeoPackage on par with PostGIS. We also have a Google spreadsheet with more details.

Shapefile remains king of full dataset extractions and the fastest data source for pure spatial driven queries.

WFS 2.0 and WMTS 1.0 OGC compliance work

During the past few months we have been involved in OGC Testbed 14 and significantly improved GeoServer compliance with WFS 2.0 and WMTS 1.0. The work involved numerous fixes in GeoServer/GeoWebCache, along with variuos fixes in the CITE tests themselves. The changes were too numerous to backport to the 2.12.x series, so if compliance with these protocols is important it’s time to consider an upgrade to the 2.13.x series. For details see these lists:

Work is still ongoing and a small number of issues are yet to be fixed, we’ll keep you updated.

Support for more PostGIS data types

The PostGIS data store now has simple support for HStore and JSON columns. HStore is returned as a Map and will render as a JSON formatted string field in common WFS output formats, while JSON is read as a string and rendered as-is. In both cases no special query support has been added for those types (but we’d be very happy if someone would work, or sponsor, that functionality too).

Better label position control in map rendering

When setting maxDisplacement on point/polygons the renderer used to search in a circular area around the designated label point.
The new displacementMode vendor option allows to control the positioning by specifying the preferred cardinal positions, as a comma separated list.

Coverage views from heterogeneous bands

Satellite data often comes as a set of heterogeenous resolution bands, due to multiple sensors having different native resolutions. It is yet useful to have all bands packaged on the same coverage, for ease of display (false color setups) and information (GetFeatureInfo). Coverage views now allow to mix those bands, coming from separate files and organized in a image mosaic, in a single multiband coverage view, resampling on the fly with configurable target resolution policies.

Removed OS X installers

Due to lack of resources and interest, the OS X dmg installers are no longer being built. OS X users can still use the system-independent binary.

New community modules and improvements

The 2.13 series comes with a few new community modules, in particular:

  • Do you want to generate GHRSST compliant outputs from GHRSST inputs? Try out the new GHRSST NetCDF output community module.
  • The mongodb community module provides an easy-to-use wrapper around the Ge0Tools mongodb data store, allowing you to publish geospatial data stored in mongodb.
  • There is also a new community module introducing NSG profiles for the WFS and WMTS services.

Existing community modules also got some love, in particular:

  • The WPS download module now allows to download large maps, and also build animations, generating MP4 courtesy of jcodec library. Both processes can (and should!) be invoked asynchronously to better handle long generation times. Here is an example of animation output:
  • The WPS download process now also allows control of GeoTiff output structure (tiling, compression) in raw raster downloads, as well as downloading granules part of a heterogeneous mosaic in their native CRS and native resolution
  • Various JDBCConfig and JDBCStore performance improvements, reducing the number of configuration database queries performed for each OGC request. Configuration queries are also consistently logged for further analysis

Note that community modules are not part of the release; instead you can find them in the nightly builds.

Other assorted improvements

New bug fixes and improvements since the beta are featured below, for more information please see the release notes (2.13-RC1 | 2.13-beta):

  • Async WPS does not report wrong output parameters
  • GetFeatureInfo requires high clicking precision when the WMS “max buffer” setting is zero
  • totalFeatures for WFS 2.0 request returns wrong count
  • CoverageStore HTML REST representation points to a coverage named after the store (instead of its actual name)
  • WPSDownload: per-granule resolution on target resolution
  • GeoWebCache fails to compute sub-gridset bounds for layers whose native CRS is wrong/cannot be recognized
  • Regression: GetLegendGraphics renderer lines thicker than they should
  • Backup/restore reports completion too soon

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.13

GeoServer 2.13 is scheduled for March 2018 release.

GeoServer 2.13-beta released

We are happy to announce the release of GeoServer 2.13-beta. Downloads are available (zipwar, and exe) along with docs and extensions.

This is a beta release of GeoServer made in conjunction with GeoTools 19-beta.

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!

Isolated Workspaces

The concept of an “Isolated Workspaces” has been added to GeoServer, to allow for reusing a namespace among multiple workspaces. In particular, an isolated workspace allows reuse of a namespace already used by another workspace, but its resources (layers, styles, etc …) can only be retrieved when using that workspace’s virtual services and will only show up in those virtual service capabilities documents.

When reusing a namespace among workspaces, exactly one of those must be non-isolated, and the rest must be isolated; i.e. isolated workspaces have no restrictions in namespaces usage but the existing restrictions still apply for non isolated workspaces.

This is particularly useful for those publishing complex schemas for INSPIRE compliance. For more details, refer to the original proposal.

GeoWebCache REST API

Two new endpoints have been added to the GeoWebCache REST API:

  • /gwc/rest/blobstores:
    • GET /gwc/rest/blobstores for a list of the blobstores
    • GET /gwc/rest/blobstores/{blobStoreName} for details about a single blobstore
    • PUT /gwc/rest/blobstores/{blobStoreName} to create or update a blobstore
    • DELETE /gwc/rest/blobstores/{blobStoreName} to remove a blobstore
  • /gwc/rest/gridsets:
    • GET /gwc/rest/gridsets for a list of the gridsets
    • GET /gwc/rest/gridsets/{gridSetName} for details about a single gridset
    • PUT /gwc/rest/gridsets/{gridSetName} to create or update a gridset
    • DELETE /gwc/rest/gridsets/{gridSetName} to remove a gridset

API docs for these endpoints will be added to the GeoServer documentation shortly. Until then, the request body syntax for PUT requests closely matched the equivalent structures in geowebcache.xml: BlobStores and GridSets.

The ArcGISCache backed layers are now also configurable via the REST API.

This release sees a major reworking of the configuration system in GeoWebCache that will allow for plugging in alternate configuration persistence mechanisms in future. While these changes should be largely invisible to users, it is a huge update that impacts all of GeoWebCache. However, due to these changes, we ask that you please test the embedded GeoWebCache.

UI Improvements

Entering in URLs for data files has been improved with autocomplete – now GeoServer will scan the path that has already been typed, and suggest existing files within that path.

In addition, autocomplete support has been added to a number of dropdowns which contain a long list of values, such as stores or layers. You can now start typing the name of an option, and the visible options will be filtered to match.

Editing raster layer parameters made easier, from a wall a text input fields, to appropriate controls being used depending on the parameter type. Here is a “before and after” comparison:

Finally, error messages are now displayed both at top (as usual) and bottom (new!) in all configuration pages. This should make it easier to locate error messages, especially while editing styles:

 

GeoPackage performance improvements

GeoPackage reading and rendering performance improved significantly, up to two times faster on large datasets full extractions and 50% faster on small bounding box searches, bringing GeoPackage on par with PostGIS. We also have a Google spreadsheet with more details.

Shapefile remains king of full dataset extractions and the fastest data source for pure spatial driven queries.

WFS 2.0 and WMTS 1.0 OGC compliance work

During the past few months we have been involved in OGC Testbed 14 and significantly improved GeoServer compliance with WFS 2.0 and WMTS 1.0. The work involved numerous fixes in GeoServer/GeoWebCache, along with variuos fixes in the CITE tests themselves. The changes were too numerous to backport to the 2.12.x series, so if compliance with these protocols is important it’s time to consider an upgrade to the 2.13.x series. For details see these lists:

Work is still ongoing and a small number of issues are yet to be fixed, we’ll keep you updated.

Support for more PostGIS data types

The PostGIS data store now has simple support for HStore and JSON columns. HStore is returned as a Map and will render as a JSON formatted string field in common WFS output formats, while JSON is read as a string and rendered as-is. In both cases no special query support has been added for those types (but we’d be very happy if someone would work, or sponsor, that functionality too).

Better label position control in map rendering

When setting maxDisplacement on point/polygons the renderer used to search in a circular area around the designated label point.
The new displacementMode vendor option allows to control the positioning by specifying the preferred cardinal positions, as a comma separated list.

Coverage views from heterogeneous bands

Satellite data often comes as a set of heterogeenous resolution bands, due to multiple sensors having different native resolutions. It is yet useful to have all bands packaged on the same coverage, for ease of display (false color setups) and information (GetFeatureInfo). Coverage views now allow to mix those bands, coming from separate files and organized in a image mosaic, in a single multiband coverage view, resampling on the fly with configurable target resolution policies.

Removed OS X installers

Due to lack of resources and interest, the OS X dmg installers are no longer being built. OS X users can still use the system-independent binary.

New community modules and improvements

The 2.13 series comes with a few new community modules, in particular:

  • Do you want to generate GHRSST compliant outputs from GHRSST inputs? Try out the new GHRSST NetCDF output community module.
  • There is also a new community module introducing NSG profiles for the WFS and WMTS services.

Existing community modules also got some love, in particular:

  • The WPS download module now allows to download large maps, and also build animations, generating MP4 courtesy of jcodec library. Both processes can (and should!) be invoked asynchronously to better handle long generation times. Here is an example of animation output:
  • The WPS download process now also allows control of GeoTiff output structure (tiling, compression) in raw raster downloads
  • Various JDBCConfig and JDBCStore performance improvements, reducing the number of configuration database queries performed for each OGC request. Configuration queries are also consistently logged for further analysis

Note that community modules are not part of the release; instead you can find them in the nightly builds.

Other assorted improvements

There are many bug fixes and improvements to look at in the release notes, cherry picking a few here:

  • Upgrade JDom library
  • REST API CORS support
  • REST improvements to list all layers in a workspace, and include the workspace prefix in layer listings
  • Style POST does not support non-SLD styles
  • Add WMTS RESTful API
  • Installing the XSLT plugin may cause random REST endpoints to report lists with transforms/transform
  • WCS 1.0.0 does not handle FORMAT parameter properly
  • Cache small amount of features in memory to avoid repeated data scans in GetFeature requests
  • Allow requesting both OL3 and OL2 from the client side
  • Simple feature GML 3.2.1 output schema-invalid as geometries lack mandatory gml:id
  • GeoPackage generated via WPS has y coordinates starting from bottom left
  • Numerous WFS 2.0 bugfixes (WFS 2.0 CITE compliance related)
  • WMTS bugfixes, improving CITE compliance
  • Submitting a seed/truncate request for a tile layer results in a “406, not acceptable”
  • GWC Seed Form returns “Chunk [] is not a valid entry” message error when seeding a layer.
  • Demo Page does not send password
  • Importer can now add computed fields (with CQL expressions) during imports
  • NetCDF output format has a new option to copy global attributes from the source NetCDF file

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.13

GeoServer 2.13 is scheduled for March 2018 release.

Download GeoServer