GeoServer Blog

GeoServer 2.11-beta released

We are happy to announce the release of GeoServer 2.11-beta. Downloads are available (zip, war, dmg and exe) along with docs and extensions.

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

We want to encourage people to test the release thoughly and report back any issue found. With no further delay, let’s see what’s new, that is, what is there to test!

YSLD module graduated to supported land

The YSLD styling language has been graduated to supported land, becoming an official extension. YSLD is a YAML based language which closely matches the stucture of SLD, and the internal data model that GeoServer’s renderer uses. Here is an example from the YSLD Cook Book:

<span class="l-Scalar-Plain">title</span><span class="p-Indicator">:</span> <span class="s">'YSLD</span> <span class="s">Cook</span> <span class="s">Book:</span> <span class="s">Simple</span> <span class="s">Line'</span>
<span class="l-Scalar-Plain">feature-styles</span><span class="p-Indicator">:</span>
<span class="p-Indicator">-</span> <span class="l-Scalar-Plain">name</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">name</span>
  <span class="l-Scalar-Plain">rules</span><span class="p-Indicator">:</span>
  <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">symbolizers</span><span class="p-Indicator">:</span>
    <span class="p-Indicator">-</span> <span class="l-Scalar-Plain">line</span><span class="p-Indicator">:</span>
        <span class="l-Scalar-Plain">stroke-color</span><span class="p-Indicator">:</span> <span class="s">'#000000'</span>
        <span class="l-Scalar-Plain">stroke-width</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">3
</span>

Compared to SLD it sports a similar structure, but in a more compact and readable syntax. Here the same example can be expressed in a more compact format:

<span class="l-Scalar-Plain">line</span><span class="p-Indicator">:</span>
<span class="l-Scalar-Plain">  stroke-color</span><span class="p-Indicator">:</span> <span class="s">'#000000'</span>
<span class="l-Scalar-Plain">  stroke-width</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">3</span>

Similarly to SLD and CSS, the user guide contains both a reference and a cookbook to get you started. There is also a styling workshop with both CSS and YSLD examples (including an important example for converting your SLD styles to YSLD).

Vector tiles graduate to extension

The vector tiles community module graduated to extension. The module allows to generate vector tiles out of WMS and WMTS requests, using SLD to filter the contents of the tile at the requested scale. Supported vector tiles formats are MVT (MapBox Vector Tile), GeoJSON vector tiles, and TopoJSON vector tiles.

This allow for much more compact data transfers, reduced tile caches thanks to overzooming support, and allows the client to control styling. Here is an example of the client rendering a world map as a vector tile, and highlighting a specific area by attribute:

vectortileoutputafrica

Hop on the documentation to get more information about this extension, along with a couple of presentations highlighting vector tile usage.

Underlying labels in SLD

A new vendor option allow to underline labels in SLD (and CSS). Just add:

<VendorOption name="underlineText">true</VendorOption>

Selezione_197

Opaque Container Layer Group Mode

A new layer group mode has been added, called “Opaque Container”. It’s similar to “single” in that you cannot see the layers contained in it, but it also prevents its layers from showing up at the root level of the capabilities document. This new mode is targeted to building “base maps” that the client is not allowed to take apart into their components.

You can read more about layer group modes in the GeoServer user guide.

Layer Group Security

The build-in data security can now secure layer groups too, for both global and workspace specific groups. “Tree” mode groups (named tree, container tree, opaque container) will extend the security rules applied to them to the layers contained.

Selezione_196

Improved loading and OGC request times for large installations

GeoServer has historically had issues with long startup times on installation having several thousands layers. A group of recent improvements significantly sped up these times making it possible to handle tends of thousands of layers with no particular headaches.

For reference, some tests were run on a Core i7 860, 16GB of memory, 2TB hybrid drive (spinning disk plus SSD cache), on two different data directories:

  • “Many states”: 1 workspace, 1 store, 10k layers, 10k cached layers

  • “Large”: 1001 workspaces, 11000 stores (a mix of shapefiles, postgis, directory of shapefile, single tiff, arcgrid, mosaics), 42000 layers and 42000 associated tile layers

Startup times have been measured in both “cold” and “warm” mode, “cold” means the operating system file system cache contains none of the configuration files and the startup has to actually read everything from the disk, “warm” means the data dir is fully cached in memory instead:

  • Many states, cold startup: 30s

  • Many states, warm startup: 21s

  • Large, cold startup: 107s

  • Large, warm startup: 45s

As you can see, worst case is loading in excess of 40 thousands layers in less than a minute and a half!

For reference, “Large” startup times with JDBCConfig are 290s for cold startup, and 120s for warm startup. This is mostly due to cached layers loading, if your configuration has none the startup time will be of around 20-30 seconds instead (no matter how many layers are configured, because JDBCConfig loads layers on a as-needed basis at runtime… for a cost, see below).

It is also interesting to compare the times needed to run a GetMap against one of the “topp:states” in the “many states” data directory.

Version Throughput req/sec Avg resp. time ms
2.10.1 169 47
2.10.1 + JDCBConfig 68 117
2.11-beta 233 34

More information can be found in the initial proposal, and on the latest mailing list thread about parallel catalog loading.

Improved lookup of EPSG codes

Ever been annoyed by some shapefile with a .prj declaration that GeoServer does not understand? If so, try this new release, we pulled some extra heuristics and smarts to figure out the equivalent EPSG code of thousands more cases. This will hopefully reduce guesswork when configuring new vector layers, not to mention significantly speeding up importing large directories of shapefiles in the “Importer” extension.

Selezione_198

Other assorted improvements

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

  • New REST call allowing a users to modify his/her password (no UI for it yet, sorry)

  • Support JSON encoded exceptions for WFS 2.0 too (was already available for 1.0 and 1.1)

  • Drastically reduced output size for WMS PDF output format, when using a graphic fill based on repeated marks or SVG symbols

  • Improved scalability when using “advanced projection handling” thanks to a new implementation of SoftValueHashMap (used as a cache by the referencing subsystem)

  • Better transparency handling of NODATA and ROI (Region Of Interest)

  • Fixes in computation of global disk quota (if you find you have a negative number, upgrade, wipe out the quota database, and restart)

Test, test, test!

Now that you know about all the goodies, please go, download and test your favorite ones. Let us know how it went!

About GeoServer 2.11

GeoServer 2.11 is scheduled for March 2017 release. This puts GeoServer back on our six month “time boxed” release schedule.

Read More

GeoServer 2.10.2 released

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

GeoServer 2.10.2 is the latest stable release of GeoServer and is recommended for production deployment. This release is made in conjunction with GeoTools 16.2 and GeoWebCache 1.10.2. Thanks to all contributors.

New Features and Improvements:

  • Promote YSLD module to extension

  • Add jetty-servlets.jar file to default jetty to help users set up CORS

  • Handle non error http codes (from HttpCodeException) as normal response

  • Reducing output size of PDF with graphic fills by using tiling patterns

Bug Fixes:

  • Disk quota usage page no longer shows negative bytes free (if you already have negative values in your quota DB, follow this instructions)

  • New style editor can now detect and fix old GeoServer CSS styles (which were marked as SLD)

  • Fixes to json output for layergroup

  • Can not display table based pages in Turkish locale

  • WMS 1.3.0 GetCapabilities response doesn’t validate against the schema when using LayerGroups

  • Editing style and moving it into workspace loses the edits

  • Style Edit Page: Apply then Submit causes WicketRuntimeException

  • Force transformation of ROI and NoData to transparent/bg color in direct raster rendering path

And more! For more information on this release check the release notes (2.10.2  2.10.1  2.10.0   2.10-RC1 2.10-beta 2.10-M0 )

About GeoServer 2.10

Articles, docs, blog posts and presentations:

Community modules

  • A new community module to backup/restore and restore GeoServer configuration

  • A resource browser is available allowing remote management of styles, icons and fonts (needs building from sources).

  • A new WMTS multidimensional domain discovery community module for discovering patches of data in scattered data sets

Read More

GeoServer Code Sprint 2017

GeoSolutions has offered to host the GeoServer team for a Java 2017 code sprint to look at updating, fixing and documenting the the GeoServer REST API. The GeoServer REST API is used to remotely manage a GeoServer instance and has proven highly successful for automation, integration with other applications, with libraries for java and python remote management.

rest-api

The code sprint is dedicated to:

  • Migrating from the restlet library to Spring MVC library. As an early adopter GeoServer selected the restlet library as best of breed at the time. It has not aged well, and Spring MVC represents a supported annotation based solution that is familiar to more developers.

  • Although popular the REST API has not attracted a lot of investment, leading it to have the highest bug count of any of our GeoServer modules! This sprint would like to directly reduce this bug count, and indirectly reduce this bug count by introducing more developers to this area of the codebase.

  • The REST API also has the greatest number of requests for documentation and examples. This code sprint will update the documentation for each area of the REST API as as it is migrated, and look at some of the solutions for the automated collection of examples requests.

  • We will be sure to test against the gsconfig python library and geoserver-manager java library.

The GeoServer team has previously planned and executed a highly successful code sprint. We would like to once again ask for your support and participation in 2017.

Viareggio, Lucca

The code sprint is planned for a week in March in the glamorous GeoSolutions headquarters of Viareggio, Lucca. Thanks to GeoSolutions for providing a venue, space is limited to 10-15 people so hit the wiki to sign up if you are interested.

Viareggio,_passeggiata_a_mare_2

A note on the timing: We were unable to join the Daytona Code Sprint 2017 as it is scheduled too close to the GeoServer 2.11 code freeze. GeoSolution’s offer to host in Europe will reduce travel costs allowing us to run the event with minimal sponsorship.

Participation and Sponsorship

We have the following sponsorship levels available:

  • Gold: $1000

  • Silver: $500

  • Bronze: $250

We are reaching out to international and local sponsors. Contributions will be put towards travel costs for overseas sprinters who would be otherwise unable to attend. Any surplus at the end of the event will be turned over to OSGeo or used for a future code sprints.

For more details on participation, sponsorship or budget for the event please see the Java 2017 Code Sprint 2017 on the OSGeo wiki.

Read More

GeoServer 2.10.1 Released

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

GeoServer 2.10.1 is the latest stable release of GeoServer and is recommended for production deployment. This release is made in conjunction with GeoTools 16.1 and GeoWebCache 1.10.1. Thanks to all contributors.

New Features and Improvements:

  • Allow windows installer to use port 80

  • Allow underlined labels in SLD

  • Add documentation for the WMTS multidimensional module

  • Add an example of GS Download process with request of output reference

Bug Fixes:

  • Slow startup of GeoServer with many layers

  • Cannot upload style files in the style editor

  • Generating a raster SLD style from template produces a formally invalid style

  • WPS fails if geometry column is named “location”

  • REST API services settings.html throws errors for null values

  • REST PUT property update on ServiceInfo does not work properly for primitive properties

  • ClassCastException when posting WFS Transaction request on a URL containing a valid GetFeature request

  • High oversampling on raster cells with reproject can put a significant amount of load on GeoServer

  • JMS Clustering does not propagate virtual services configurations

And more! For more information on this release check the release notes (2.10.1  2.10.0   2.10-RC1 2.10-beta 2.10-M0 )

Security Considerations

This release addresses three security vulnerabilities:

  • Additional restrictions have been placed on the demo request page

  • Addressed an XML injection vulnerability identified in an automatic scan.

  • GeoServer now changes sessions during login, this addresses a class of vulnerablities known as “session fixation”.

Thanks again to Nick Muerdter for reporting these in a responsible manner (and Andrea and Jody for addressing these during the November bug stomp.)

If you wish to report a security vulnerability, please visit our website for instructions on responsible reporting.

About GeoServer 2.10

Articles, docs, blog posts and presentations:

Community modules

  • A new community module to backup/restore and restore GeoServer configuration

  • A resource browser is available allowing remote management of styles, icons and fonts (needs building from sources).

  • A new WMTS multidimensional domain discovery community module for discovering patches of data in scattered data sets

  • The YSLD community module has been updated with extensive documentation

Read More

GeoServer 2.9.3 Released

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

This is a maintenance release of GeoServer suitable for production systems. Maintenance releases are focused on bug fixes and stability, rather than new features.

The team has been working hard, resulting in a wide range of bug fixes:

  • Windows installer fixed allowing port to set for standalone or service use

  • KML Output managed a date-month swap when used in a non-POSIX locale.

  • Improved documentation for the demo pages, including the WCS Request builder.

  • CSS stroke-offset now supports expressions

  • WMS GetCapabilities fix for inadvertently show layer group contents multiple times.

  • Style generation fix for raster data layers

  • Coverage view improvements include preservation of origional band names, and alpha band if available.

  • WFS correctly handles disabled stores

  • REST API

    • Correctly represent empty true/false values for html output

    • Representation of an empty styles list in JSON fixed

    • Cascade delete fixed to correctly handle nested layer groups

  • JMS Clustering has received a number of fixes: correctly handles virtual service configuration, propagation of workspace and service settings.

  • Lots of bug fixes (check the release notes for details)

For more information about GeoServer 2.9.3 refer to release notes (2.9.3 2.9.2   2.9.1   2.9.0   RC1   beta2   beta   M0 ).

Community Modules

Community module updates:

  • A community module is now available allowing GeoServer to authenticate against the OAuth2 protocol (including Google OAuth2).

Security Considerations

This release addresses three security vulnerabilities:

  • Additional restrictions have been placed on the demo request page

  • Addressed an XML injection vulnerability identified in an automatic scan.

  • GeoServer now changes sessions during login, this addresses a class of vulnerablities known as “session fixation”.

Thanks again to Nick Muerdter for reporting these in a responsible manner (and Andrea and Jody for addressing these during the November bug stomp.)

If you wish to report a security vulnerability, please visit our website for instructions on responsible reporting.

About GeoServer 2.9

Articles, docs, blog posts and presentations:

##

Read More