I started last week on implementing the Geopackage output extension within Geoserver Cloud. When working on this implementation, I found out that this extension was not easily adoptable as it imports gwc, wms and wfs in a single module. To make it a better fit for Geoserver Cloud, I have splitted the extension into separate modules: a WMS and WFS module, and some code is assigned as core its support both. I have already made a draft PR, it can be found over here: Split geopackage extension into three submodules by woutergd · Pull Request #7965 · geoserver/geoserver · GitHub
As this is my first contribution to the Geoserver core-project, what are the correct steps forward? If any changes are required, please let me know.
Welcome @woutergd and thanks for joining us here, we look forward to working with you.
Some years ago GeoCat helped take the geopackage output community module into an extension… At the time only two output formats, WFS and WMS, were ready to be recommended as an extension.
Splitting it further is fine, but I wonder we could treat the dependencies “as provided” and still have one jar? Like they can use WMS, WFS and GWC at compile time … but the specific classes will only be loaded if they are needed by wms code (for example).
For your PR to be reviewed you will need to create a bug report, and go through the checklist you can see in the PR. You may need to rebase your existing PR into commits to meet the Commit message(s) must be in the form [GEOS-XYZWV] Title of the Jira ticket. checklist item for example.
Hi Jody,
the module structure and the assembly are two separate concerns, mediated by the “release” module and the assembly descriptors.
I see that the release module dependencies have been updated already, one just needs to double check the resulting zip still contains all the required jars, and the GeoServer users won’t notice the difference.
The same check should be done for the community modules packaging.
Thanks for the response and the idea. I tried last couple of days a version of this integration in Geoserver Cloud, where I tried to exclude the dependencies in runtime. Unfortunately this doesn’t work (apparently some initialization code is always executed as far as I can see, instead of only by using WMS or WFS respectively). For now, I will move forward on this path, if there are any ideas or help just let me know and I will try it. Thanks for the info about the PR-process, I will make a bug report of it and update the PR to match the information that you provided above.
About your other question: I am not very familiair with the geopkg community extension. What is the difference with the geopkg-output extension (as far as I can see it is based on WPS)? Also, what is exactly the request / question you have in this case, is there any development necessary on this extension?