Skip to content
GeoServer 3 - Update
Events

GeoServer 3 – Update

Jeroen Ticheler

Milestone 1 Completed & Another Successful Code Sprint

GeoServer 3 is a major upgrade led by a consortium of Camptocamp, GeoSolutions, and GeoCat and backed by a successful crowdfunding activity.

This is a major investment in the future of GeoServer and we are pleased to provide a project update. The GeoServer 3 code sprint completed last week, and we have quite a list of accomplishments to share.

Milestone 1 Accomplished

With the release of GeoServer 2.28.0 earlier this month Milestone 1 is officially accomplished. Our goal for Milestone 1 was to clear the decks of as much work as possible before performing the big migration to Spring Framework 6. The key objectives met are:

  • Replace the image processing engine, updating from Java Advanced Imaging 1.1.3 to Eclipse ImageN 0.9.0. This is a major technical accomplishment, years in the making, combining the Oracle donation of the JAI codebase with all the work done by GeoSolutions on JAI-Ext. The Eclipse ImageN integration was completed for the release of GeoServer 2.28.0. This activity was directly sponsored by the Office of Public Works.
  • Java 17 LTS minimum, and related maven “bill-of-materials” improvements, making it easier to manage the vast quantity of updates planned for Milestone 2.
  • Replacement for GeoServer OAuth2 support with a new OAuth2 Open ID Connect module is available to try out today and has been tested with Google, GitHub, Microsoft Azure and Keycloak authentication providers. Integration testing with KeyCloak (using test containers) clears the way for this to be a supported extension in the future.

Milestone 1 was completed a few weeks behind schedule, and we are really happy with the result. Eclipse ImageN is now available to the public and included in GeoServer 2.28.0 for widespread use.

Milestone 2 Code Sprint

GeoSolutions hosted the Milestone 2 code sprint in mid October, arranging perfect weather for a productive indoor gathering.

Prior to the code sprint, a code-freeze was performed across five projects, putting external work on hold to allow the team assembled in person to focus. With the path cleared, OpenRewrite migrations were performed for JakartaEE, Spring 6.2, Spring Security 6.5, and Wicket 10.

This was followed by manual fixing to get each section to first compile, then pass tests, satisfy the quality assurance checks, and finally to run.

The initial steps went smoothly for ImageIO-Ext and GeoTools. The GeoTools migration took some time out to work on Elasticsearch testing, and updating the http client library to use the same version as the other projects.

For GeoServer careful work was required by the whole team, working module by module. Interesting challenges included:

  • Changes made to the Spring Framework URL mapper, to identify which module is responsible for answering a request.
  • Some OGC Standards use multi-part HTTP requests, and the Apache Common File Library used to separate out this content does not yet have a stable release.
  • The Spring Security 6.5 Update was completed during the code Sprint. This activity was sponsored by the Office of Public Works.

The embedded web applications (GeoWebCache, MapFishPrint and GeoFence) took considerably more work. GeoWebCache in particular was deeply affected by the URL mapper changes, struggling to resolve workspaces and layers when integrated with GeoServer. GeoFence remains in progress and is scheduled to be addressed in Milestone 3.

The code sprint was very successful, it was really effective to have a team meet in person allowing modules to be worked on in parallel.

This places the GeoServer 3 project on track and we are confident in meeting the community March release schedule.

GeoServer 3 Milestone Progress

Crowdfunding Thanks

We would like to thank all the organizations who have sponsored the GeoServer 3 Crowdfunding activity. We appreciate your trust and recognize your dedication to the GeoServer project.

Written by Jeroen Ticheler Owner and Founder
View Jeroen Ticheler