1885 Commits

Author SHA1 Message Date
Cécile Vuilleumier
e1ee3537ad Use fixture to create and delete test workspaces 2025-11-25 15:18:37 +01:00
Cécile Vuilleumier
b3f10e669b Acceptance tests: upgrade python-geoservercloud 2025-11-25 15:18:37 +01:00
Gabriel Roldan
d44a1854e5 Upgrade maven plugins ahead of Spring Boot 3 upgrade
com.diffplug.spotless:spotless-maven-plugin ....... 2.43.0 -> 3.0.0
com.github.ekryd.sortpom:sortpom-maven-plugin ...... 3.3.0 -> 4.0.0
io.github.git-commit-id:git-commit-id-maven-plugin . 7.0.0 -> 9.0.2
maven-compiler-plugin ............................ 3.11.0 -> 3.14.1
maven-enforcer-plugin .............................. 3.5.0 -> 3.6.2
maven-surefire-plugin .............................. 3.2.1 -> 3.5.4
maven-failsafe-plugin .............................. 3.2.1 -> 3.5.4
maven-jar-plugin ................................... 3.3.0 -> 3.2.0
org.codehaus.mojo:build-helper-maven-plugin ........ 3.4.0 -> 3.6.1
org.codehaus.mojo:exec-maven-plugin ................ 3.1.0 -> 3.6.2
org.codehaus.mojo:flatten-maven-plugin ............. 1.5.0 -> 1.7.3
org.codehaus.mojo:versions-maven-plugin .......... 2.18.0 -> 2.19.1
org.jacoco:jacoco-maven-plugin ................... 0.8.11 -> 0.8.14
2025-11-10 03:55:43 +01:00
Gabriel Roldan
2c959dbb56 Upgrade dependencies ahead of Spring Boot 3 upgrade
jackson.version:2.19.2 -> 2.19.4
lombok.version:1.18.30 -> 1.18.42
mapstruct.version:1.6.0.Beta1 -> 1.6.3
flyway.version:11.1.0 -> 11.16.0
testcontainers.version:1.19.3 -> 1.21.3
2025-11-10 03:26:31 +01:00
Gabriel Roldan
dc60f8ef22
Revert "Set version to 2.28.0.2"
This reverts commit c9c252edd37944231fd25dfac16220d6939e8fb9.
2025-11-08 17:49:56 -03:00
Gabriel Roldan
18fcb007fb
Update docs for 2.28.0.2 2025-11-07 16:40:53 -03:00
Gabriel Roldan
c9c252edd3
Set version to 2.28.0.2 v2.28.0.2 2025-11-07 16:37:01 -03:00
Gabriel Roldan
a497ddfac1
Merge pull request #717 from groldan/monitoring/prometheus_grafana
Add simple monitoring stack for development (Prometheus/Grafana)
2025-11-07 02:38:10 +01:00
Gabriel Roldan
98b7a680c8
Add simple monitoring stack for development (Prometheus/Grafana)
Add basic Prometheus/Grafana setup for local development observability
and as a starting point for building custom production monitoring.

Usage: ./pgconfig -f monitoring.yml up -d
- Grafana at http://localhost:3000 (admin/admin)
- Prometheus at http://localhost:9091 with Eureka service discovery

Includes basic dashboard showing JVM metrics, HTTP rates, service health,
and resource usage. Intentionally kept simple - users should customize for
production with alerting, persistence, security, and integration with
existing observability platforms.

Features:
- Auto-discovery of scaled replicas via Eureka
- Comprehensive monitoring guide
- Example queries and dashboard customization tips

This is a development tool and foundation, not production-ready monitoring.
2025-11-06 22:23:01 -03:00
Gabriel Roldan
a2656682f8
Merge pull request #716 from groldan/build/use_separate_datadir_for_acceptance
Configure separate bind mount directories for development and acceptance tests
2025-11-07 02:20:47 +01:00
Gabriel Roldan
b77b89c8f4
Configure separate bind mount directories for development and acceptance tests
Use separate bind mount directory for acceptance tests

Configure catalog-datadir bind mount path via environment variable to
isolate acceptance test data from development data.

- catalog-datadir.yml: Use ${CATALOG_DATADIR_PATH:-$PWD/catalog-datadir}
- acceptance_datadir: Use catalog-datadir_acceptance directory
- compose/.gitignore: Ignore catalog-datadir_acceptance/

This prevents acceptance tests from failing when the development datadir
contains non-empty data, while preserving development data across runs.
2025-11-06 21:35:27 -03:00
Gabriel Roldan
fa8deff87e
Add compose/** to pull request workflow paths 2025-11-06 21:35:00 -03:00
Gabriel Roldan
8df7870c83
Merge pull request #713 from groldan/bug/eventualconsistent_catalogfacade_keeps_pending
Fix data-directory backend eventual consistency bugs and improve query performance
2025-11-07 01:11:59 +01:00
Gabriel Roldan
e737d69f66
Fix data-directory backend eventual consistency bugs and improve query performance
This commit addresses two critical bugs in the EventualConsistencyEnforcer
and improves REST API query performance by 95ms when the catalog is converged.

The first bug caused operations to be registered multiple times in pending
queues when retried. This is now prevented by checking for duplicates before
adding operations to the list.

The second bug occurred when objects were removed while other operations still
referenced them. The RemoveOp.clearDependants() method only found operations
currently waiting for the removed object, missing operations that had moved to
waiting for other dependencies. These orphaned operations would later complete
with dangling references. The fix tracks original missing references for each
operation and scans all pending operations when removing an object, discarding
any that originally depended on it regardless of which queue they're in.

Simplified EventuallyConsistentCatalogFacade by removing the isRestRequest()
special case. Previously REST queries always retried even when the catalog was
converged, wasting ~100ms per query. Now all web requests use the same smart
retry logic based on actual catalog convergence state. This eliminates wasteful
retries while still retrying when pending operations exist that might resolve.

Also renamed getMissingRefs() to computeMissingRefs() to reflect its side
effects, cached unresolved refs to avoid recomputation during debug logging,
added comprehensive javadocs, and expanded test coverage to 24 tests including
layers with missing styles and layer groups with missing layers.
2025-11-06 20:45:40 -03:00
Gabriel Roldan
c0ff5bf95b
Merge pull request #714 from groldan/dependency/exclude_xml_apis
Exclude xml-apis:xml-apis:jar:1.0.b2 transitive dependency from gs-app-schema
2025-11-07 00:37:24 +01:00
Gabriel Roldan
0a94d835f3
Merge pull request #715 from groldan/bug/acceptance_tests_broken_for_imagemosaics
Fix ImageMosaic acceptance tests broken by volume mount path change
2025-11-07 00:33:45 +01:00
Gabriel Roldan
600e5664cf
Fix ImageMosaic acceptance tests broken by volume mount path change
The ImageMosaic acceptance tests were failing with 500 errors because they
referenced the old volume mount path /mnt/geoserver_data, which was changed
to /opt/geoserver_data in commit b33a27b9f6.

Changes:
- Update test_imagemosaic.py: Change all file paths from /mnt/ to /opt/
  (6 occurrences across all test functions)
- Update acceptance_tests/README.md: Update sample data path documentation
  to reflect the /opt/ mount location

The tests use external.imagemosaic REST endpoints to reference files that
must exist at the paths specified. With the old /mnt/ paths, GeoServer
could not find the sample data files, resulting in 500 Internal Server
Error responses.
2025-11-06 20:09:11 -03:00
Gabriel Roldan
e12c19bd0d
Exclude xml-apis:xml-apis:jar:1.0.b2 transitive dependency from gs-app-schema 2025-11-06 19:30:15 -03:00
Gabriel Roldan
849f6702c1
Revert "Set version to 2.28.0.1"
This reverts commit 234669be0a57d57c51156d9de33495895e07ed4d.
2025-11-06 13:27:28 -03:00
Gabriel Roldan
27a5cfa2d2
Update docs for 2.28.0.1 v2.28.0.1 2025-11-03 22:28:00 -03:00
Gabriel Roldan
9d1d9395e0
Set version to 2.28.0.1 2025-11-03 22:27:59 -03:00
Gabriel Roldan
297fa9816a
Merge pull request #712 from groldan/pgconfigresourcestore_improve_out_and_save
Fix PgconfigResourceStore.save() undefined type bug and refactor to UPSERT
2025-11-04 02:25:35 +01:00
Gabriel Roldan
c0adadec45
Fix PgconfigResourceStore.save() undefined type bug and refactor to UPSERT
Fixes critical bug where saving new resources failed with "Attempting to save
a resource of undefined type" error. This prevented GeoServer security
initialization when using pgconfig backend (e.g., saving master password file).

Root cause: save() called resource.isUndefined() which triggered getType(),
which called updateState() that reset the type to UNDEFINED before INSERT.

Solution:
- Access resource.type field directly instead of calling getType()
- Refactor save() to unified UPSERT (INSERT ... ON CONFLICT ... DO UPDATE)
- Add optional contents parameter for atomic content+metadata updates
- Use COALESCE to preserve existing content when contents is null

Related improvements:
- Simplify out() implementation to single save() call
- Fix move() to use direct UPDATE, preserving content and ID
- Rename copy() to reset() for clarity
- Add testWriteNewResource() covering the master password scenario
2025-11-03 21:13:14 -03:00
Gabriel Roldan
a0d1f7eefa
Merge pull request #711 from groldan/bug/pgconfig/conntimeout_ogcapi_features
[GEOS-11979] CloseableIterators not closed by OGC API Features
2025-11-03 14:22:12 +01:00
Gabriel Roldan
d705ee4a24
[GEOS-11979] CloseableIterators not closed by OGC API Features
Besides the upstream fix for GEOS-11979, fix for the Stream not being
 closed when calling RepositoryGeoServerFacadeImpl.getGlobalServices(),
 and add caching support for getServices() and
 getServices(WorkspaceInfo) in CachingCatalogFacade, as it's called
 multiple times by the OGCAPI Features code when building the
 collections document.
2025-11-02 01:43:41 -03:00
Gabriel Roldan
b33a27b9f6
Change volume mounts from /mnt/* to /opt/* 2025-10-31 20:34:28 -03:00
Gabriel Roldan
e0ea60c203
Change GeoServer version to 2.28.0-SNAPSHOT 2025-10-31 20:26:25 -03:00
Cécile Vuilleumier
b368bcfdd5
Fix acceptance tests startup (#709) 2025-10-29 10:39:09 +01:00
Gabriel Roldan
74a0bef614
Add README with simple instructions for the development compose files 2025-10-23 10:47:53 -03:00
Gabriel Roldan
fe660177a5
Default to using the compose/catalog-datadir/ directory to simplify joining the cluster from an IDE 2025-10-23 10:43:41 -03:00
Gabriel Roldan
942a55b90e
Revert "Set version to 2.28.0.0"
This reverts commit 63773a3e3ef3fdd9c969b71b752686e2a336ab5d.
2025-10-16 11:59:36 -03:00
Gabriel Roldan
428110c73d
Update documentation for 2.28.0.0 v2.28.0.0 2025-10-16 11:57:19 -03:00
Gabriel Roldan
63773a3e3e
Set version to 2.28.0.0 2025-10-16 11:57:02 -03:00
Gabriel Roldan
cc29914142
Merge pull request #707 from groldan/r2.28.0.0
Update GeoServer to 2.28.0.0, ACL to 2.4.0
2025-10-16 11:23:17 -03:00
Gabriel Roldan
036207be9b
Update GeoServer to 2.28.0.0, ACL to 2.4.0 2025-10-16 10:44:07 -03:00
Gabriel Roldan
aa35c4ab70
Merge pull request #706 from groldan/feature/pmtiles-store
[GEOS-11951] Add PMTiles DataStore community module for reading Protomaps vector tiles
2025-10-16 00:56:51 -03:00
Gabriel Roldan
3162b6657b
[GEOS-11951] Add PMTiles DataStore community module for reading Protomaps vector tiles 2025-10-16 00:15:01 -03:00
Gabriel Roldan
91ed858661
Merge pull request #705 from groldan/feature/jai_json_backwards_compatibility
Add JSON serialization backward compatiblity tests
2025-10-16 00:10:20 -03:00
Gabriel Roldan
a28e0c255a
Add JSON serialization backward compatiblity tests
GeoServerInfo.jai -> GeoServerInfo.imageProcessing: add an alias for `jai`
GeoServerInfo.xmlExternalEntitiesEnabled: deprecated, removed from DTO
2025-10-15 22:38:49 -03:00
Gabriel Roldan
d22b188853
Merge pull request #704 from groldan/feature/gwc_gcs_blobstore
[GEOS-11959] New community module GeoWebCache Google Cloud Storage
2025-10-15 22:15:34 -03:00
Gabriel Roldan
2879a0b20a
[GEOS-11959] New community module GeoWebCache Google Cloud Storage 2025-10-15 21:56:25 -03:00
Gabriel Roldan
1b196a0820 [GEOS-11948] Refactor JAIInfo to ImageProcessingInfo, while retaining jai xstream field 2025-10-15 21:27:40 -03:00
Gabriel Roldan
f7d2d97179 Set gs.version=2.28.0-SNAPSHOT 2025-10-15 21:27:40 -03:00
Gabriel Roldan
df79d3c103
Build geoserver apps docker images in parallel 2025-10-01 21:44:48 -03:00
Gabriel Roldan
efbe292174
Parallelize Docker image builds and optimize disk space usage
Split build workflow into separate jobs: base images build first, then
infrastructure and GeoServer images build in parallel. Each job packages
only its required modules. Signing moved to dedicated job that runs once
after all builds complete. Sign all builds including SNAPSHOTs to catch
issues early.
2025-10-01 13:53:09 -03:00
Gabriel Roldan
736bc5eaed
Fix error running out of disk space during image building in CI workflows
Getting these errors:

System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/_diag/Worker_20251001-142752-utc.log'
2025-10-01 12:26:23 -03:00
Gabriel Roldan
7e7b486972
Merge pull request #698 from groldan/bug/cascaded_wms_style_getcaps
Fix error with cascaded wms style
2025-09-29 15:28:29 -03:00
Gabriel Roldan
30ce59a413
Fix error with cascaded wms style
CatalogPropertyResolver sets the StyleInfo's Catalog property, but
StyleInfoImpl expects the catalog to be null for remote WMS styles,
otherwise StyleInfoImpl.getSLD() fails without short-circuiting
to return null.
2025-09-29 14:45:29 -03:00
Gabriel Roldan
cdc475c388
Merge pull request #697 from groldan/r2.28.0-M0
Upgrade to latest geoserver 2.28.0-SNAPSHOT (ImageN replacing JAI)
2025-09-25 19:16:01 -03:00
Gabriel Roldan
9ee598b950
Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 2025-09-25 17:28:58 -03:00