GeoServer Blog

Java 2018 Code Sprint Results

The Java 2018 code sprint was an ambitious event gathering up OSGeo Java projects to look at Java 11 compatibility. With a great response from the GeoServer community we are pleased to announce the GeoServer can now run in Java 11!

This sprint was an important response by our community to changes in the Java roadmap. The immediate motivation is to give our users the option of using Java 11 in the coming year now that OpenJDK is taking over as lead project. We are also pleased to report that Java 8 will continue to be supported (thanks to the commitment of RedHat and Adopt OpenJDK) giving everyone a chance to migrate when ready.

We had 11 participants for the sprint - thanks to everyone who attended!

  • David Vick (Boundless), Devon Tucker (Boundless), Jim Hughes (CCRi), Jody Garnett (Boundless) Kevin Smith (Boundless), and Torben Barsballe (Boundless) gathered at the Boundless office in Victoria, Canada.

  • Andrea Aime (GeoSolutions) and Antonello Andrea (Hydrologis) participated from Andrea’s home office in Italy.

  • María Arias de Reyna (GeoCat), Ian Turton (Astun), Landon Blake (BKF Engineers), and Brad Hards participated remotely.

With support from OSGeo and event sponsors many individuals were able to meet up in person, with those hosed at the Boundless Victoria office enjoying the occasional break outside.

How to try it out:

To get started:

  1. Download and install Java 11 from jdk.java.net/11

  2. Download the GeoServer 2.15-M0 milestone release of GeoServer

* The GeoServer 2.15-M0 will run under Java 11 with no additional configuration on **Tomcat 9** or newer and **Jetty 9.4.12** or newer.

 	
* The binary distribution includes a compatible version of Jetty.

We need your help:

  • pulling together running on java 11 instructions for additional application servers, please download the WAR bundle to help out

  • testing the windows installer

Sponsors

Thanks to Gaia3D for leading with a silver sponsorship, and ASTUN Technology, OSGeo:UK, and ATOL for their bronze sponsorships.

Gaia3d

AstunLogo.png

uk.osgeo.org Atol

These sprints also require people to function, and we appreciate Boundless, GeoCat, ASTUN Technology, GeoSolutions and CCRi for their in-kind participation.

Boundless

Astun.png   Ccri.

Geosolutions GeoCat

Key accomplishments:

  • GeoServer was upgraded to Spring 5. Thanks to David Vick and everyone for this (especially the Spring Security upgrade with James).

  • Kevin went through the same steps for GeoWebCache for a difficult couple of days.

  • The EMF models that drive much of our parsing technology were upgraded. Thanks to Ian who worked through this, putting us in a much better spot to make changes to our codebase.

  • Torben helped remove countless references to internal “com.sun” classes.

  • A big thanks to Andrea for stepping up where needed (i.e. everywhere) and encouraging everyone through out the week

  • Thanks to Andrea and Brad for preliminary work that made this sprint possible.

  • Thanks to Jody for doing the milestone release.

Outstanding issues:

Certain components and dependencies could not be upgraded as no Java 11-compatible versions have been released. These have been removed or replaced by different libraries where possible, but some incompatible libraries remain.

The remaining issues are primarily either Internal API usage or Illegal access. These will only cause problems when running on Java 11:

Internal API usage

Some components and dependencies reference internal Java API. Depending on the nature of this API, calling this code may cause a runtime error or a warning when running on Java 11. If you run into any unusual failures when running under Java 11, please report them.

Examples of libraries producing these warnings:

  • freemarker template library (used for GetFeatureInfo responses)

  • ehcache library used for image mosaic performance

  • Java Advanced Imaging used for image processing

Illegal Access

Java 11 introduces stricter access constraints on reflective operations. For now, such issues will only cause a warning in the logs, of the form:

WARNING: Illegal reflective access by ...

In future versions of Java, this will instead cause a runtime error.

Known warnings you can expect when running in Java 11:

  • org.hsqldb.persist.RAFileNIO

  • org.parboiled.transform.AsmUtils

  • org.fest.reflect.util.Accessibles

  • com.google.protobuf.UnsafeUtil

  • net.sf.cglib.core.ReflecUtils

If you run into a reflective access warning about a package not in this list, please report it.

Community Modules

The following community modules do not yet support Java 11:

  • printing

  • script

  • spatiallite

  • monitor-hibernate

Further reading:

Read More

GeoServer 2.15-M0 Milestone Release

We are happy to share a GeoServer 2.15-M0 milestone release with downloads (zip war exe), documentation (html pdf) and extensions.

This milestone release is provided for everyone considering a Java 11 operational environment in 2019.  A milestone release provides a technology preview and a chance to support the development team with early feedback:  your assistance and participation is requested!

This release is a result of participation in the OSGeo Java 2018 Code Sprint and is made in conjunction with GeoTools 21-M0 and GeoWebCache 1.15-M0. We would like to thank organizations participating in the code sprint (Boundless, GeoSolutions, GeoCatAstun TechnologyCCRi) along with sprint sponsors (Gaia3Datol, osgeo:uk, Astun Technology). Our gratitude goes out to the individuals who worked so hard to bring everything together.

Java 11 Support

The provided binary download works with either Java 8 or Java 11. Tomcat 9 or newer is required for the WAR install.

We will the update the user guide compatibility list based on your feedback and testing of this 2.15-M0 milestone release. Please note that Java 11 no longer supports the Java 2 extension mechanism used for native JAI and native ImageIO.

This is a good opportunity to review your operational environment and help test GeoServer with the environment you intend to use in 2019.

Java Roadmap Considerations

Our initial concerns with respect to continued availability of the Java 8 platform have been alleviated by industry action and commitment. Extensive Java 8 support options are now available, with RedHat making a public commitment to contribute fixes to the OpenJDK 8 codebase, and a range of organizations committed to making OpenJDK 8 builds available on a range of platforms.

Oracle has changed to a six month release schedule, donating additional components to OpenJDK to make it lead platform. Long term support (beyond six months) is being offered from a range of organizations notably RedHat OpenJDK  and Adopt OpenJDK.

The net effect of these changes:

  • If you have been using Oracle JDK up until now it is time to review your options

  • Java 8 will continue to be available

  • The Java ecosystem is now led by the open-source Open JDK project

See the GeoTools user guide for a table outlining the Java 8 and Java 11 alternatives to consider in the year ahead.

About GeoServer 2.15 Series

Additional information on the GeoServer 2.15 series:

Read More

GeoServer 2.13.4 released

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

This is a maintenance release recommended for production use (for newer projects please use the 2.14.x series, as this is last community sponsored 2.13.x release). This release is made in conjunction with GeoTools 19.4 and GeoWebCache 1.13.4.

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

Improvements and Fixes

  • Significant speedup in WMTS capabilities document generation when source data is not in WGS84

  • GeoPackage improvements, speed up raster reading and reprojection, make sure global coverage GeoPackage can be displayed

  • Removed gml:id attribute from GML 3.1 encoding (was added in previous releases by mistake)

  • NetCDF output format improvement, fixing projection coefficients in some cases, make sure data packing takes into account all data slices when calculating linear transformation coefficients

  • WCS 2.0 compliance improvements, DescribeCoverage output schema compliance fixes when using GeoServer extensions, returning correct exception type when subsetting request is out of range on time/elevation/custom dimension axis

  • KML request handling fixes, support for sortBy and CQL filtering on layer groups

  • GWC related fixes, could not modify blobstore configuration without changing its name too, wrong axis order in configuration when saving EPSG:4326 gridset configurations

  • Styling related improvements, cannot read dynamic SLD served by an apache server, SLD 1.1 posted to the REST API resulted in garbled content

  • And various others, please see the release notes for details

About GeoServer 2.13 Series

Additional information on the 2.13 series:

Read More

GeoSever 2.14.1 released

We are happy to announce the release of GeoServer 2.14.1. Downloads are provided (zip war exe) along with docs (html pdf) and extensions.

This is a stable release of the GeoServer 2.14 series and is recommended for all production systems. Users of prior releases of GeoServer are encouraged to upgrade.

This release is made in conjunction with GeoTools 20.1 and GeoWebCache 1.14.1. Thanks to all who contributed to this release.

For more information please see our release notes (2.14.1 2.14.0 2.14-RC).

Improvements and Fixes

This release includes a number of new features and improvements:

  • New coordinate formatting options for WFS layers

  • REST API granule management remove of metadata or all

  • Coverage view support for indexed color model

  • Check handling of WCS 2.0 time/elevation/range subsetting

  • WFS 1.1.0 handling of gml:id

  • WFS Shapefile and GeoJSON output now support geometry with measures

  • Fixes to the start.bat and shutdown.bat scripts on windows

About GeoServer 2.14 Series

Additional information on the GeoServer 2.14 series:

Read More

GeoServer 2.13.3 released

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

This is a maintenance release recommended for production use (for newer projects please use the 2.14.x series, as 2.13.x will cease to be supported in a few months). This release is made in conjunction with GeoTools 19.3 and GeoWebCache 1.13.3.

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

Improvements and Fixes

  • Allow selection of geometry attribute in app-schema, support mapping files over HTTP connection, push spatial filters over nested geometries down into SQL when possible

  • Performance improvement when reporting dimension values in WMS capabilities, for dimensions out of raster data and presented as “interval and resolution”

  • WCS thread safety fixes when using requests with reprojection and rescaling under high load. Also, when requesting an area inside the bounds of a sparse mosaic, the result might have had less pixels than requested.

  • CSS translator fixed to support mark offset/anchors based on expressions

  • File chooser autocomplete had duplicate entries on Linux

  • REST config, it was not possible to set the default style using a layer PUT

  • GetLegendGraphic ignores the OnlineResource configured in the style for raster layers

About GeoServer 2.13 Series

Additional information on the 2.13 series:

Read More