Skip to content

GS GF Compatibility matrix

Emanuele Tajariol edited this page Oct 30, 2024 · 16 revisions

Here a compatibility matrix for GS and GF versions.
Strikethrough versions will behave badly.

GeoServer Declared GF Notes
2.26.x 3.7.2
2.26.0 3.7.x (stuff in 3.7.2 already in)
2.25.x 3.7.2 Added GUI-less .war [3.7]
2.25.0-4 3.7.x (stuff in 3.7.2 already in)
2.24.1-5 3.7.1 Log working [log4j]. Missing standalone .war [3.7]
2.24.0 3.7-RC JDK11, GeoTools 30, Missing standalone .war [3.7]. Log not working [log4j]
2.23.x 3.6.1 Log working [log4j]
2.23.0-3 3.6.0 DTO changes (subfield) [3.6.0]. Log not working [log4j]
2.22.0-x 3.5.1 Improve filtering by role [3.5.1]. Log not working [log4j]
2.21.2-x 3.5.1 Improve filtering by role [3.5.1]. Log not working [log4j]
2.21.0-1 3.5.0 Log not working [log4j]
2.20.6-x 3.5.1 Improve filtering by role [3.5.1]
2.20.0-5 3.5.0
2.19.0-x 3.5.0 DTO changes (restricted area, clip) [3.5.0]
2.18.4-x 3.4.6.1 JTS 1.17.1
2.18.3 3.5.0 JTS 1.17.1
2.18.1-2 3.4.6 JTS 1.17.1: Use 3.4.6.1 for PG in embedded mode [JTS]
2.18.0 3.4.2 JTS 1.17.1: Use 3.4.6.1 for PG in embedded mode [JTS]
2.17.5-x 3.4.6.1 JTS 1.17.0
2.17.3-4 3.4.6 JTS 1.17.0: Use 3.4.6.1 for PG in embedded mode [JTS]
2.17.0-2 3.4.6 JTS 1.16.1

Notes -- breaking changes that require version alignment between GS and GF:

  • [JTS]:
    GeoServer, from 2.17.3, depended from a newer JTS version. This change causes errors in hibernate-spatial when GeoFence is running in embedded mode using PostGIS.
    hibernate-spatial issue was solved by recompiling it against JTS 1.17.0. This recompiled version is hibernate-spatial-postgis-1.1.3.2.jar.
    In order to fix the dependencies in GeoServer, GeoFence version 3.4.6.1 was released.
    Please note that 3.4.6.1 differs from 3.4.6 only in the hibernate-spatial dependency, so if you need to fix the postgis issue in a GeoServer 2.17.3, 2.17.4, 2.18.x(x<3), you only need to update hibernate-spatial-postgis to version 1.1.3.2, leaving the GeoFence jars you already have in place.

  • [3.5.0]:
    3.5.0 introduces some API DTO changes related to

    Related GeoServer client part was introduced on master 2.19.0 and backported to 2.18.x.
    The DTO changes backported on 2.18.x (only released on 2.18.3) broke some external integrations (GeoNode), so it was reverted (GEOS-10094). 2.18.4 was back on GeoFence 3.4.6.1, using the old DTOs.

    GeoFence 3.4.7 and 3.4.8 were deprecated in favor of 3.5.0, because they suffered of the JTS upgrade compatibility issue.

  • [3.5.1]:
    3.5.1 introduces some changes related to group authorization. DTO are not changed but group listing in RuleFilter changes some semantics.

  • [3.6.0]:
    3.6.0 introduces some API DTO changes related to increased specification in the rules filterings (#226) in order to improve control on WPS processes (#225).
    GeoServer needed some improvements on the handling of the nested WPS calls (GEOS-10681).
    GeoFence modules have been heavily refactored in order to be able to handle authorization for WPS calls (GEOS-10680, GEOS-10682) The work on GeoServer was implemented on 2.23 and was not backported given the complexity of the refactoring.

  • [log4j]:
    Since 2.21.0 GeoServer moved from log4j to log4j2 (GEOS-10426).
    GeoFence was still dependent to logj4, so DAOs and services were not outputting anything in embedded mode.

    • Issue #251 (Upgrade log4j) was only solved for branch 2.23 with version 3.6.1 and for 2.24 and 2.25 since version 3.7.1.
  • [3.7]:
    Version 3.7 introduces some major changes:

    • JDK11 compatibility: some deps are changes in order to allow building and running with Java11.
    • GWT GUI removed: most of the client libraries are not JDK11 compliant, so the whole webapp has been removed. Until a new war is implemented, GF can only be used in embedded mode.
      Since API between 3.6 and 3.7 is not changed, it should be possibile to use the 3.6.0 or 3.6.1 standalone war with a GeoServer 2.24 or 2.25; this has not been tested anyway.
    • GeoTools 30: massive package renaming to remove opengis packages.

A note about main and master branches

Please disregard the master branch, since dev branch is main.

master evolved (with breaking changes for the standalone version) from the 3.4, but it was never used (there are no tags on it). Its "3.5" version in pom file was the next in line version from 3.4, but it was never released. The "real" (released) 3.5 tags are on main, not master.

When github introduced the main branch, we created main on the GeoFence branch that at that time was the most advanced, that is 3.5.x.


Here a coarser version match list, also reporting older versions:

GeoFence GeoServer Main changes
3.5.x
- nightly: 3.5.x
2.19.x (client) (embedded) DTO changes in restricted area: wkt, clip
3.4.x
- stable: 3.4.6.1
2.18.x (client) (embedded)
2.17.x (client) (embedded)
JTS Version update
Minor DTO changes
3.3.x LDAP improvements
Minor DTO changes
3.2.x 2.12
2.11
2.10
2.9
Spring 4, JDK 8
3.1.x >=2.8.2 Handle Workspace admin
(feature for embedded version only)
3.0.x 2.8.0, 2.8.1 GeoFence embedded into GeoServer
(Only for older 2.8 releases; Not recommended)
2.2.x 2.7
2.6