Hi all,
As part of the GeoTools/GeoWebCache/GeoServer code sprint, we addressed a number of concerns. The immediate goal was to do enough so that users could run GeoServer on Java 9/10/11. Jody Garnett has an email thread describing the work that the sprint team completed this week to achieve that goal.
JDK 11's module path insists that packages come from only one jar. Lots of GeoTools jars contribute to many of the same packages. Reducing and eliminating these overlaps is one of our major goals for this week. The refactoring was done in manner so that downstream changes in GeoServer were made at the same time.
At the end of sprint, we worked late to finish the last of the planned refactoring and merge out work. There is some outstanding work to be done.
Outstanding TODOs:
* Any remaining split packages need to be identified. (This tool[2] could be run against GT and GWC jars.)
* The changes in the spreadsheet[1] should be documented (and ideally set up as a nice sed script!).
* More testing for extensions and community modules would be great.
It's been a great week! From our spreadsheet[1], we planned and documented migrating classes to different package names, and in some cases, moving packages between modules/jars to achieve this goal. It is our expectation that we'll need to resolve this 'split package' problem for GeoTools first. We do not expect to see J2EE web servers which will put software on the module path for a little while... Given that, we expect the first use of the module path to be with the GeoTools library.
A big thanks goes to Jody! Not only for organizing the week and hosting developers in Victoria, but also for planning the new package architecture. Jody performed some of the initial repackaging in the core library. Towards the end of the week, Andrea Aime joined us to do some of the refactoring as well. David Vick, Devon Tucker, Torben Barsballe and I pitched in to carry about the rest of the refactoring. Kevin Smith handled the repackaging for GeoWebCache.
I'm proud to be a member of this community and events like this are possible due to sponsorship and participation around the world. Gaia3D, Astun Technology, OS Geo UK, and Atol all contributed to the financial needs of the event. Astun, Boundless, CCRi, GeoCat, and GeoSolutions all provided staff to do the work. David Vick wrote up some more details about the sprint here[3].
Cheers,
Jim
1. https://docs.google.com/spreadsheets/d/1oE6mU4jp-ZL5PebgXf-fuhtf7MY5dzSwPqpMtrzdZ94/
2. https://github.com/AdoptOpenJDK/jsplitpkgscan
3. https://www.linkedin.com/pulse/java-2018-code-sprint-david-vick/