Skip to content

GSIP 171

Torben Barsballe edited this page Aug 15, 2018 · 18 revisions

GSIP 171 - Java 18.9 Compatibility

Overview

Proposed By

Jody Garnett

Assigned to Release

This proposal is for GeoServer 2.15-beta scheduled for February 2019.

State

  • Under Discussion
  • In Progress
  • Completed
  • Rejected
  • Deferred

Motivation

Java 8 as a supported platform is reaching end-of-life January 2019, we have some work to do before GeoServer can run on recent versions of Java (mostly due to "jigsaw" module system).

Going forward the Java roadmap has changed to a six month release cycle, with both Oracle and OpenJDK participants offering various levels of "long-term-support" options.

Proposal

This proposal covers the planning and time commitment to run under Java 18.9.

Code Sprint 2018 Q4

To reduce travel costs we are looking at supporting multiple locations:

  • North America - location TBD
  • Europe - location TBD

We have some funding via OSGeo (thanks!) and will put together a sponsorship program to support this work.

Dependency Review / Update / Replace

Review of dependencies, update/replace with compatible versions as required:

  • Spring 5 - Older versions of spring are not compatible with Java 18.9. Upgrading to from Spring 4 to Spring 5 does involve handling some API changes, including:

    • NativeJdbcExtractors in SpringUnWrapper no longer exist
  • HazelCast - Like Spring, HazelCast involves a lot of reflection. Any GeoServer components which use it will need to upgrade to a Java 18.9-compatible version.

GeoServer codebase Jigsaw compatibility

Ideally we would like repackage the codebase, introducing MANIFEST.MF directives, producing a codebase that can run under both Java 8 and newer.

This work is done in conjunction with GeoTools Java-9-Compatibility efforts already underway. This library anticipates a refactoring into jigsaw modules with some unavoidable package changes.

Backwards Compatibility

User facing:

  • Our persistence mechanisms use full java classnames on occasion, and thus may be affected by any package changes.

Internal:

  • Some repackaging of extensions and community modules to avoid conflict over package names may be required.

Feedback

Voting

Project Steering Committee:

  • Alessio Fabiani:
  • Andrea Aime:
  • Ben Caradoc-Davies:
  • Brad Hards:
  • Ian Turton:
  • Jody Garnett:
  • Jukka Rahkonen:
  • Kevin Smith:
  • Simone Giannecchini:

Links

Clone this wiki locally