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
-
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
- 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
-
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