Skip to content

GN4 SpringFramework 6 OpenRewrite Update #9125

@jodygarnett

Description

@jodygarnett

Based on the positive GeoServer 3 experience of upgrading to Spring Framework 6 this proposal recommends this approach for the core-geonetwork codebase.

Two things have changed since the initial feasibility exploration and proposal:

  • Tools, specifically OpenRewrite have lessened the effort required to update to Spring Framework 6; and
  • Many of the libraries used by GeoNework have now released JakartaEE compatible versions making migration possible

Assessment:

  • @jodygarnett and @davidblasby carried out an assessment specificly of using the OpenRewrite tools, based on the GeoServer 3 experience, to determine if this activity was technically feasible and to identify fundamental blockers (such as a library incompatibility).
  • While the result spring6-try3 compiles, it in no way attempts to startup with new configuration required for jetty and activemq among others.
  • Importantly the XmlTest shows that our patched Saxon 8.x fork continues to operate, although And XslConversionTest shows unit test covering the use of Java Functions!

Risks:

  • Resource commitment (sponsorship and in-kind) for this activity
  • Spring Framework 7 is now scheduled for April of 2026 (Spring Framework 6 reaches EOL in April).
  • This approach is a lift-and-shift updating dependencies in place and adapting to api changes. For anything beyond this approach GN5 and SpringBoot is the preferred approach. Some libraries have discontinued (keycloak) or heavily modified (activemq)
  • We cannot continue to ship GeoNetwork 4.2.x and 4.4.x on outdated version of Spring Framework 5.3 (see "why this is important" below).

Why is this important

With Cyber Resilience Act coming into effect in 2026 and 2027 the GeoNetwork project can no longer expect to make releases with known security vulnerabilities, or using components with known security vulnerabilities. These updates are required to be performed of any new features or improvements.

Project policy must adjust to reflect the increased expectations, and associated operational expenses, for open source development.

Proposal Support

Those with developer resources can contribute directly. For more information funding this activity look at commercial support options, or GeoNetwork-2026-Sponsorship-Opportunities to coordinate funding across several parties.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Opportunity

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions