Breaking changes for plugins between 2.27.x and 2.28.x?

Hi,
I tried to upgrade my Geoserver instance to 2.28.0 and I noticed some changes in community plugins, especially ogcapi-dggs-plugin.
Clickhouse is not a Geoserver plugin anymore, and it has been replaced by a GeoTools datastore JAR, missing the GeoServer module wiring. It may not be the only one community plugin in that case.

Error in the Geoserver log :

java.io.IOException: Failed to find the datastore factory for clickhouse-h3, did you forget to install the store extension jar”
GeoServer version Plugin JAR Notes
2.27.2 gs-dggs-clickhouse-2.27-SNAPSHOT.jar :white_check_mark: Works fine
2.28.0 gt-clickhouse-34-SNAPSHOT.jar :cross_mark: Fails: “Failed to find the datastore factory”

Interesting, checking the geotools codebase the code is still present:

* geotools/modules/unsupported/dggs/clickhouse at main · geotools/geotools · GitHub

And it appears to still try and included this in the download:

* Code search results · GitHub

The 2.28.x download does not managed to include it:
worldwind-0.6.jar
gs-dds-2.28-SNAPSHOT.jar

So it does not look like this was an intentional change, as this is a community module I recommend seeing how you can help out :slight_smile:

1 Like

Hi,

it seems like the clickhouse datastore factory is not registered anymore.

I’m going to fix it and I’ll report back when done.

1 Like

Thanks a lot. I’m trying to understand how the plugins are installed and where the files come from.
There’s something that isn’t clear.
First, built JAR files are generated here:
https://build.geoserver.org/geoserver/2.28.x/ext-latest/
https://build.geoserver.org/geoserver/2.28.x/community-latest/
Then stable plugins are package as zip and downloaded during install from :
https://sourceforge.net/projects/geoserver/files/GeoServer/2.28.0/extensions/

Well, for community plugins, it seems broken… STABLE_PLUGIN_URL is defined but not COMMUNITY_PLUGIN_URL, in the install-extensions.sh script

Thanks @danieleromagnoli

@nicolasvila - checking what you mean by install-extensions.sh? Ah from geoserver/dovker install-extensions.sh.

The GeoServer team does not distribute community modules alongside official releases - so there is no value of COMMUNITY_PLUGIN_URL - see GEOS-11555: fix installation of extensions in various configurations by spike83 · Pull Request #102 · geoserver/docker · GitHub

Although as a result of that discussion we are taking steps to do so: GSIP 233 · geoserver/geoserver Wiki · GitHub

@jive the script is provided in the osgeo docker image we are using : docker.osgeo.org/geoserver:2.28.0
This image embeds the script /opt/install-extensions.sh which installs all the extensions on first start, according to the environment variables. The script is mentioning both STABLE and COMMUNITY plugins, which was a bit confusing
Yes I understood that only official stable plugins are distributed.

So I expect COMMUNITY_PLUGIN url to be empty / in order to make them not available for an official release?

That was your question right? Why is it empty …

Hi @nicolasvila.

The nightly gs-2.28 build should contain the updated https://build.geoserver.org/geoserver/2.28.x/community-latest/geoserver-2.28-SNAPSHOT-ogcapi-dggs-plugin.zip with gt-clickhouse jar containng the META-INF/services needed to have the clickhouse datastore factory show up.

Please, let us know if that solve your problem.