[Geoserver-devel] GeoTools / GeoServer Meeting 2017-10-03

GeoTools / GeoServer Meeting 2017-10-03

Attending

Ben Caradoc-Davies

Brad Hards

Jody Garnett

Kevin Smith

Torben Barsballe

Jukka Rahkonen

Apologies# Agenda- Build server and CITE tests

  • 2.12 release

  • Dependency management around “WPS required”

  • GWC Status

  • Java 9 compatibility GSIP Review / Discussion

Actions- Ben: Send email to arrange a CITE test breakout meeting

  • All: Review swagger docs, fix outstanding errors

  • Ben and Jody: add GWC refactoring comments to email thread

Previous Meeting actions- (done) Torben: Get ssh access to provide build box with “geotools” git user?

  • (done) Torben: Swagger try enum + Reference Approach on core, send example to list and ask for help on extensions

  • (done) Kevin: Create a GSIP placeholder page for next release about bundling API docs and User docs as optional extensions for GeoServer

  • (done) Torben and Jody: 2.12 RC1 (Week of Sept 25)

  • Ian (and Kevin?): 2.12 Release (Week of Oct 2)

  • (done) Jody: Update release schedule

Build server and CITE tests

build.geoserver.org:

  • Where are at with the builder server?

  • See RC1 release retrospective email

  • What else needs to be done?

  • CITE Tests need to be migrated from ares

  • They are running, but are not working, …

  • The moment they run we can shut off ares

  • Action: Ben: Send email to arrange a CITE test breakout meeting

  • Mac Build Box

  • Currently manual, using qgis build server, which should be shut off “soon”

  • Download numbers show mac is still used, but not very much

  • Q: Can we move notifications? Yes…

  • 2.12 branch jobs should be sending email notifications to the list

  • Check if there is a way to bulk change notifications?

  • What about the databases?

  • PostGIS - is failing on a legitimate build failure since mid september

  • this is working on ares, so we have a problem here

  • Oracle - working

  • App-schema jobs are working

  • All the other online tests seem to be cheerful

repo.boundlessgeo.com:

  • We have not seen a lazy saturday failure recently, turned off big-stop-the-world backup solution

2.12 release

See Torben’s “retrospective” email:

  • Q: Should we consider moving downloads to github?

  • Torben tried this manually, there is a github api to do this

  • Q: For historic releases

  • Consider releasing to both for a year, and then stop using sourceforge …

  • Does GitHub track download stats

  • Kevin is going to go check as one GWC release was made on sourceforge

  • Yes see - https://help.github.com/articles/getting-the-download-count-for-your-releases/

Testing priorities from beta:

  • (done) Mac DMG use - tested, now avoid conflict with system JAI

  • REST API Resource, format xml or json has problem with metadata request getting confused

Swagger docs:

  • Torben did a full pass on docs, match actual code!

  • Quiet-on-not-found parameter, used internally for testing, not documented on purpose (will make a note to the rst docs).

  • All the core stuff has been merged in for RC1

  • Extension docs

  • Outstanding pull requests, need to be reviewed merged, and backported

  • Action: Jody to review outstanding extension swagger docs

  • Markdown Examples

  • DataStore examples are the priority

  • Style examples

  • Add Layer example, this is not intuitive

  • Q: Will this be ready for 2.12 release?

  • Depends on Ian calling time

  • We noticed that the build server swagger doc builds report failures, but do not result in a failed build!

  • tried updating to the new maven plugin, did not help, made it worse

  • These are actual valid failure, for example the datastore page

  • Action: All: Review swagger docs, fix outstanding errors

GeoServer 2.12 release critical path:

  • Verify security vulnerability (reported against 2.8)

  • GWC GEOS-7713

  • Swagger docs fix errors, nice to have - should not hold up release

Dependency management around “WPS required”

Problem:

  • WPS and GeoWebCache have a strange dependency relationship

  • This occurs in a number of spots where an extension requires WPS be installed, just to access the geotools process

  • GeoPkg depends on MBTiles depends on WPS to depend on gt-process

  • GeoTools gt-process was split up into gt-process (API), gt-process-geometry, gt-process-feature, gt-process-raster

Q: Can these extensions depend directly on gt-process?

  • gs-mbtiles extensions depends on

  • both gs-wps and gs-wps-test

  • gridset information form GWC

  • geopackage:

  • Andrea: the module needs to be split into 4 jars core store, wms output format, wfs output format, wps (in January 2017, before including gpkg into the core)

  • The reading side of geopackage was merged into core for the 2.12-RC1

Q: Can “core” depend directly on gt-process so that gs-wps only adds the WPS protocol?

Strategy discussion:

  • Proposal: Pull up tile stuff into geotools?

  • For common use between geowebcache and mbtile (also vector tiles?)

  • gt-tile has this from WMS-C tile client implementation

  • Proposal: Move the generic tile discussion out of mbtile into its own module, or to core, …

  • Extensions depend on gt-process, rather than gs-process?

GWC Status

GWC mailing list notes a general code cleanup is scheduled:

  • Pay down technical debt, boundless is looking into options if anyone is interested :slight_smile:

  • Make the codebase livable, easier to work with …

Feedback:

  • Jody: The LISAsoft pull request made a distinct module for the GUI, making the codebase far easier to work with (and made it possible to deploy without the GUI).

  • Ben: Duplication between GeoServer GWC class functionality between core

  • Jody: A pass through for code consistency would help, it is obvious that the code has been written piecemeal feature by feature

  • Separate out the GUI from the REST API (wicket - for sharing with GeoServer, or just FDL templates)

Please provide feedback to the email thread …

  • Action: Ben and Jody to add GWC refactoring comments to email thread

Java 9 compatibility GSIP Review / Discussion

See: https://github.com/geotools/geotools/wiki/FactoryRegistry-Refactoring-for-Java-9-Compatibility

There are several API changes, hence the GSIP:

  • Java 9 requires service provide factory to only work with image operations

  • GeoTools used this for Factories:

  • any object with a no argument constructor

  • If the object had a constructor supporting hints it would be called, and the results stored in a registry based on the hints to avoid duplicate instances

  • Jody likes this because the API break makes it clear that a change has occurred!

  • ServiceRegistry → FactoryRegistry

  • We are using GeoTools “Factory” everywhere to be clear this is an API change

  • What does this look like for client code?

  • If you use a FactoryFinder - no change!

  • Change targets GeoTools 19 (current master)

  • API breaking so will not be backported

  • If you implement a Factory should be no change

  • Oracle is dropping support for 32-bit https://stackoverflow.com/questions/46356345/can-java-9-run-on-a-32-bit-os

  • Windows installer requires 32-bit at the moment (does it?)

How to handle users upgrading to Java 9?

  • Ask them to wait …

  • Issue a milestone and ask them to test …

Would this make GeoTools require Java 9?

  • No, the ServiceLocator (used for classpath lookup) has been available since Java 6 (and is the preferred way to do this thing, rather than the image operator ServiceRegistry we have been using)

  • Note this may allow a subset of GeoTools to work on Android (which also uses ServiceLocator)

···
-- 
Ben Caradoc-Davies [<ben@anonymised.com>](mailto:ben@anonymised.com)
Director
Transient Software Limited [<http://transient.nz/>](http://transient.nz/)
New Zealand