geosolutions-it/mapfish-print

Java 11 build not available due to gradle version being so old

Closed this issue · 14 comments

Cross-referencing mapfish/mapfish-print-v2#11

GeoTools now requires Java 11, and as part OpenGIS Harmonization we need to change some package names in GeoTools requiring a new release of mapfish-print-v2 for downstream projects GeoServer and GeoNode.

  • Presently: gradle version 3, works with Java 8 (not Java 11) and uses plugins jetty and maven
  • Minimim: gradle version 5, works with Java 11, requires upgrade to plugins getty and maven-plublish

@tdipisa are you aware of this? Is it something that has been already discussed?
@aaime might add more details.

aaime commented

That ticket was the first communication towards the community.
I've also reported in private to @giohappy on Monday July 2nd.

The details in that ticket are all we know, but we can set up a meeting to discuss it better if you want.
In short:

  • GeoServer depends on GeoTools, whose public API is going to change significantly to avoid Martin Desriusseaux/OGC to use us for using the org.opengis Java package
  • MapFish v2 also depends on GeoTools, a very old version of it. We need to upgrade it t the latest, or it won't work anymore with the more recent GeoTools version with different package names, but the old project does not even build against it, because it cannot build with Java 11. (it's working in the current version of GeoServer just because of a lucky accident).
graph TD;
    GeoServer-->MapfishPrintV2;
    GeoServer-->GeoTools
    MapfishPrintV2-->GeoTools;
Loading

The mapfish-print version used directly by MapStore is likely not affected, as MapStore does not have a GeoTools dependency of its own (as far as I know, at least).

Please see mapfish/mapfish-print-v2#12 branch which merges all the work here into something that can be updated for geotools refactor.

I worked very hard @aaime with and @sebr72(camptocamp) at the code sprint to try and come up with a solution that would satisfy GeoNode community and be support out-of-the box by gs-printing module.

More info also here for internal coordination ad testing purposes.

@tdipisa let me know when tests on your side are done, then I will setup the tasks to upgrade GeoNode to the new mapfish print libs.

Thanks, we want the GeoNode community to be happy out-of-the-box before making this GeoServer release.

More info also here

I cannot see that issue, perhaps it is a private repository.

More info also here

I cannot see that issue, perhaps it is a private repository.

That's only for internal coordination for testing purposes @jodygarnett

@offtherailz the new artifact is now ready on GS MVN repo to be used for MS dev. @ElenaGallo will be involved for functional tests there.

That's only for internal coordination for testing purposes @jodygarnett

That was my subtle reminder that you are on a public communication channel :)

Note that use of https://maven.geo-solutions.it/org/mapfish/print/print-lib/2.3-SNAPSHOT/ is not going to work well for anyone as there is a conflict between this and repo.osgeo.org for the same artifact coordinate. If you wish to have a fork use a different classifier or group id etc….

The correct org.mapfish.print:print-lib:2.2-SNAPSHOT is already available from build.geoserver.org nightly builds packaged in geosever printing extension and ready to use.

@jodygarnett @aaime @giohappy
The updated print-lib has been integrated in MS master branch through geosolutions-it/MapStore2#9453 and tested in DEV environment by comparing the output with the one of QA (that provides the old print-lib version from the GeoSolutions fork).

The test has been performed using this map with the MapStore printing tool. All layout combinations provided by that tool have been tested as well as other available options such as:

  • output format
  • legend options
  • coordinate system

Test result

Comparing prints between DEV and QA using the same options, the outputs are the same. There are therefore no regressions from tested use cases.

Printing outputs derived from the tests are available here.

The only issue found during tests is captured by geosolutions-it/MapStore2#9459 and need to be further investigated. It doesn't seems anyway connected with printing capabilities.

The new print-lib version will be anyway available for the next major version of MapStore v2024.01.00. In the meantime it will remain in MS master branch for further tests during next months.

@giohappy so we can proceed with the upgrade of the print-lib in Geoserver for GeoNode, right @tdipisa?

FYI A task for testing the new plugin in GeoNode has been created GeoNode/geoserver-geonode-ext#175