The old PR was a mess to rebase after the Palantir formatting.
Also, curiously enough, the sample datadir, worked with the community module as it was, but not with the refactored code from the old pr.
In any case, I’ve cleaned things up a lot in this one, making the new loader play nicely with GeoServerLoader and DefaultGeoServerLoader, instead of re-doing a lot of their workflow.
Added a bunch of test cases for invalid datadir configs.
The next commit will be about removing the community module and moving these classes to core.
Meanwhile, any testing is very much welcomed.
You can download these two files to run GeoServer against the sample data directory from docker compose:
initialize_volume.sh: creates a docker volume named geoserver_nfs_data. Downloads the sample datadir file if it’s not present in the current directory.
compose.yml: GeoServer docker composition to load the catalog from an NFS share using geoserver_nfs_data volume
So just download both files and run
chmod +x ./initialize_volume.sh
./initialize_volume.sh
docker compose up -d
Voting is open, if this can complete ahead of 2.27.0 it would be ideal.
@groldan for my own feedback the environmental variable DATADIR_LOADER_ENABLED does not make much sense when in core. I wonder if DATADIR_LOAD_PARALLELISM=0 could instead be a single setting and when DATADIR_LOAD_PARALLELISM=0 the datadir catalog loader could be disabled.
I would not go with “parallel” because the existing data dir loader is also parallel the parallelism can be controlled by changing the default java fork/join pool size.
Just a friendly reminder that GSIP-231Promote datadir catalog loader to core and its related pull request are ready for review.
Looking forward to your feedback. If possible, we’d like it to be ready for the 2.27.0 release, for which I’d encourage you, as
discussed in the last PSC meeting, to try it out with your data directories and report back any trouble you might encounter.
Reminder that the data directories are interesting also in combination with extensions that might
do something unexpected and deadlock the startup. One does not need 1 million layers,
all it takes is one with the right combo of settings and extensions.