Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from geoserver:main #67

Open
wants to merge 160 commits into
base: main
Choose a base branch
from
Open

[pull] main from geoserver:main #67

wants to merge 160 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Jan 20, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Jan 20, 2025
@CLAassistant
Copy link

CLAassistant commented Jan 20, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 13 committers have signed the CLA.

❌ sikeoka
❌ groldan
❌ petersmythe
❌ skalesse
❌ fernandor777
❌ dromagnoli
❌ jodygarnett
❌ etj
❌ NielsCharlier
❌ KroniK907
❌ axl8713
❌ aaime
❌ roarbra
You have signed the CLA already but the status is still pending? Let us recheck it.

devdattaT and others added 23 commits January 21, 2025 00:17
…ed based on scale

refined test

added hint

cleanup

pmd

checkstyle

PR responses

test cleanup
Made the datadir community plugin install instructions more consistent with other plugins
Allows WMTS to be selectable as a serivce to disable; and will only list WMTS servivces if TileLayer is defined for the layer or LayerGroup
[GEOS-11691] Smart data loader accepts bigint and bigserial but not int8 postgresql type alias
[GEOS-11677] Hide version info on GWC home page
* [FIXES GEOS-11690] Bug in Externalize printing configuration folder

* Fix tests

* Fix tests

* Fix tests

* Fix QA and fallback do default also when using an absolute path
groldan and others added 30 commits March 19, 2025 16:51
Extract proxy resolution logic from AbstractCatalogFacade into ResolvingProxyResolver
to centralize this functionality and make it reusable across the codebase. This change:

- Creates a new ResolvingProxyResolver utility with comprehensive documentation
- ResolvingProxyResolver is only dedicated to resolve proxies, while
  AbstractCatalogFacade's resolve() methods call setId() and
  ResolvingProxyResolver.resolve().
- Avoids code duplication by moving proxy resolution to an utility class
- Simplifies AbstractCatalogFacade by delegating to the specialized resolver
- Adds test suite for ResolvingProxyResolver with 97.3% coverage
Fix GeoServerLoader's logger topic to match its package
(org.geoserver.config) allowing to set separate logging levels
for the startup logs.

Modified the DEFAULT_LOGGING and PRODUCTION_LOGGING profiles
to specify the logging level for `org.geoserver.config`.

GeoServerLoader logging each catalog object added at the `config` level
and the final results at `info` level allows to load large catalogs
without log flooding while still getting the final results.
Improve performance by reducing thread contention in catalog operations.

Main improvements include:
- Using fine-grained locking instead of broad synchronization blocks
- Separating read/write locking patterns to allow concurrent reads
- Only synchronizing when actually necessary for specialized operations

These changes should improve performance in multi-threaded environments while maintaining thread safety.
Promote the "datadir catalog loader" community module to the GeoServer core,
improving startup performance for deployments with large data directories.

* Make the new loader log objects added to the catalog the same way
  DefaultGeoServerLoader does, and enhance GeoServerLoader's logging
  of timing with the count of objects added as the new loader does.
* Add upgrade docs for optimized data directory loader
  Added a section to the upgrade guide explaining improvements to the
  configuration loading process. Included considerations for compatibility,
  along with configuration details on how to disable the new loader if needed.
* Add more data directory loader tests and multi-instance improvements
* Explicitly declares bean dependencies to ensure proper initialization order
  by making GeoServerLoaderProxy depend on essential components (extensions,
  dataDirectory, securityManager, configLock).
* Guard sanitizing writes with GeoServerConfigurationLock (e.g. when adding
  default styles or estblishing the default workspace). This ensures
  consistency when multiple instances start off a shared data diretory
  such as in the case of GeoServer Cloud.
Separate commits for each community module

imagemap d755395
jdbc-metrics 37daa0e
monitor-hibernate aed25e1
saml 0d699c1
wps-sextante 0bf8d16
xslt 2712766
)

* Bump org.apache.commons:commons-vfs2 from 2.9.0 to 2.10.0 in /src

Bumps org.apache.commons:commons-vfs2 from 2.9.0 to 2.10.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-vfs2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update VFSWorker.java

add deprecated tag

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ian Turton <[email protected]>
* [GEOS-11726] slow wfs post requests: replace featuretype cache from eager to lazy

* [GEOS-11726] slow wfs post requests: add security filter cache

* [GEOS-11726] slow wfs post requests: jdbcconfig cache improvements for layer/resource link

* [GEOS-11726] slow wfs post requests: remove obsolete logger for pmd verification

* [GEOS-11726] slow wfs post requests: remove obsolete test

* [GEOS-11726] slow wfs post requests: security filter cache code improvements & test
Add proper admin authentication propagation and synchronization
mechanisms that prevent race conditions during startup while loading
the config (not the catalog).

Improve thread safety and consistency when running multiple
GeoServer instances sharing the same data directory.

Key improvements include:

1. Authentication is now properly propagated to worker threads in the ForkJoinPool, preventing
   permission issues when threads need to access secured resources during initialization.
2. The new MinimalConfigLoaderSupport class ensures a consistent configuration state by using
   GeoServerConfigurationLock to coordinate when multiple instances attempt to initialize the
   same data directory. It handles missing global config, logging settings, and services in
   a thread-safe manner, and in a cluster-safe way if GeoServerConfigurationLock is cluster-aware.
3. Improved synchronization of root services ensures that when multiple instances start with missing
   service XML files, they will converge on a consistent state rather than creating different in-memory
   copies with different IDs.
4. Improved early initialization of essential components like CRS factories and data store factories
   prevents deadlocks that could occur when these are accessed concurrently during startup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.