Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Sep 12, 2024

See Commits and Changes for more details.


Created by pull[bot]

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

@pull pull bot added the ⤵️ pull label Sep 12, 2024
groldan and others added 28 commits September 16, 2024 11:43
…7.0)

Add azure storage blob 12.27.1 dependencies and upgrade the
azure blobstore.

Run Azurite-based integration tests against the latest Docker image
version, remove legacy.

Migrate to `com.azure:blobstorage:12.x`. The upgrade
tries to do a 1:1 migration to the new azure-sdk API (in its blocking
falvor) as much as possible, so that the integration tests serve to
avoid regressions.

A couple remarks:

* There's no way to close the HTTPClient so AzureClient does not
  implement Closeable anymore.
* Fix a bug in DeleteManager that always reported 0 objects deleted

Upgrade `com.microsoft.azure:azure-storage-blob` to
`com.azure:azure-storage-blob`.
Upgrade Azure Blobstore from legacy azure-sdk (11.0) to latest (12.27.1)
… of validation query

This method is used by GWC to check jdbc configuration files when loaded. Making the method public allows it to also be used by the GeoServer form.
Bumps [org.springframework.security:spring-security-web](https://github.com/spring-projects/spring-security) from 5.7.12 to 5.7.13.
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](spring-projects/spring-security@5.7.12...5.7.13)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-web
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [com.thoughtworks.xstream:xstream](https://github.com/x-stream/xstream) from 1.4.20 to 1.4.21.
- [Release notes](https://github.com/x-stream/xstream/releases)
- [Commits](https://github.com/x-stream/xstream/commits)

---
updated-dependencies:
- dependency-name: com.thoughtworks.xstream:xstream
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
groldan and others added 29 commits February 24, 2025 11:36
This commit enhances security and configurability by enabling dynamic runtime
resolution of HTTP Basic Authentication credentials for WMS layers. Credentials
can now be injected from environment variables, reducing the need to hardcode
sensitive values. This improves code maintainability, supports secure multi-
environment deployments, and simplifies testing through dynamic configuration.

1. **Dynamic Environment Parametrization**:
   - Introduced `GeoWebCacheEnvironment#isAllowEnvParametrization()` to replace
     the static `ALLOW_ENV_PARAMETRIZATION` field, allowing runtime toggling.

2. **Environment Variable Resolution Refactor**:
   - Replaced direct static field checks with method calls.
   - Updated `resolveValue()` and related methods to use environment variables
     dynamically.

3. **WMS Credentials Management Update**:
   - Added `getResolvedHttpUsername()` and `getResolvedHttpPassword()` in
     `WMSHttpHelper`.
   - Created `setGeoWebCacheEnvironment()` for dependency injection.

4. **Testing Enhancements**:
   - Integrated the `system-rules` library for environment variable manipulation.
   - Added tests to cover default, custom, and parameterized credentials.

5. **Code Improvements**:
   - Replaced unsafe casts in `resolveValue()`.
   - Improved exception handling by switching from `Throwable` to
     `RuntimeException`.
   - Added better logging and documentation for credential handling.
…irectories

Enhance `XMLFileResourceProvider` to allow GeoWebCache to start with a
read-only configuration directory and `geowebcache.xml` file. Previously, the provider
assumed that the configuration directory was always writable, which caused startup
failures when running in environments with restricted file permissions.

- **Support read-only configuration directories**:
  - `hasInput()` now correctly returns `true` if the configuration file
     exists or if a template is available and the directory is writable.
  - `hasOutput()` ensures that the configuration file can be written before
     allowing output operations.
  - Improved error handling when checking directory and file writability.

- **Refactored file existence checks**:
  - Consolidated logic for checking configuration file existence and writability
    into `findConfigFile()`.
  - Moved the directory writability check from `findConfigFile()` to
    `findOrCreateConfFile()` to prevent premature failures.

- **Improved logging and exception handling**:
  - `hasInput()` and `hasOutput()` now log warnings when encountering errors
     instead of failing silently.
  - `findOrCreateConfFile()` now explicitly throws an exception when it cannot
     create a new configuration file due to permission issues.

- GeoWebCache can now start successfully with a pre-existing, read-only configuration directory.
- Configurations stored in a read-only filesystem (e.g., mounted from a
  read-only volume) can still be used without requiring write access.
- The provider only attempts to create a configuration file when explicitly
  required, eliminating side effects from query methods `hasInput()` and
  `hasOutput()`.

This change improves the resilience of GeoWebCache in constrained environments
while maintaining backward compatibility for writable configurations.
* On delete tile cache workflows minimize the opertunity for 404 to be returned when deleting tile cash. Use list-objects and delete-objects batch method to operate on 1000 sized batches where possible. Ensure that tile caches are informed of changes through listeners
Fix Integration tests that exercise delete file paths

* On delete tile cache workflows minimize the opertunity for 404 to be returned when deleting tile cash. Use list-objects and delete-objects batch method to operate on 1000 sized batches where possible. Ensure that tile caches are informed of changes through listeners
Fix Integration tests that exercise delete file paths

* On delete tile cache workflows minimize the opertunity for 404 to be returned when deleting tile cash. Use list-objects and delete-objects batch method to operate on 1000 sized batches where possible. Ensure that tile caches are informed of changes through listeners
Fix Integration tests that exercise delete file paths

* Fixed multiple calls to listener.
Added simplest bounded delete.
Added test for bounded delete.
Added test to check if TileDeleted events are received when a layer is deleted. There is a race in this test, so it can pass even though tileDeleted is sent.

* Fixed multiple calls to listener.
Added simplest bounded delete.
Added test for bounded delete.
Added test to check if TileDeleted events are received when a layer is deleted. There is a race in this test, so it can pass even though tileDeleted is sent.

* Restored check in putParametersMetadata, tests have been refactored to supply correct data.
Added Copyright to BoundedS3KeySupplier
Removed redundant test from integration tests
Added an await to the AbstractBlobStoreTest as testDeleteRangeSingleLevel was failing with an aborted BulkDelete without it

* Retained 1.26.0 config for compatibility testing

* Updated version to 1.27-SNAPSHOT

* Fix gt.version = 33-SNAPSHOT-SNAPSHOT/33-SNAPSHOT, there is a problem with the release script

* Updated release notes for 1.28-SNAPSHOT

* Updated version to 1.28-SNAPSHOT

* Fix missing and extra spaces in log messages

* Update Ubuntu to 22.04, 20.04 is not longer supported

* Revert formatting on AbstractBlobStoreTest

* Use a FakeListener rather than a mock
Downgrade log messages to warnings as they only have a big impact in tests. The Delete will run again later.
Disable testTruncateRespectsLevels in windows environment.

* Removed global windows test skip in AbstractS3BlobStoreIntegrationTest

* Disable all window S3Blobstore tests

* Disable all window S3Blobstore tests

---------

Co-authored-by: Alan McDade <alan.mcdade@mac.com>
Co-authored-by: groldan <gabriel.roldan@gmail.com>
Co-authored-by: Gabriel Roldan <gabriel.roldan@camptocamp.com>
Co-authored-by: Peter Smythe <peter@afrigis.co.za>
Co-authored-by: Andrea Aime <andrea.aime@gmail.com>
Updating errorprone to 2.31 and PMD to 7.13
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.6 to 42.7.7.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](pgjdbc/pgjdbc@REL42.7.6...REL42.7.7)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ency versions

This commit integrates the GeoTools Bill of Materials (gt-bom) into
GeoWebCache, centralizing management of GeoTools dependency versions.

* Import `org.geotools:gt-bom` in the root `pom.xml`'s
  `<dependencyManagement>` section. This makes GeoWebCache a direct
  consumer of GeoTools' curated dependency set.
* Remove explicit `<version>${gt.version}</version>` declarations
  for individual GeoTools artifacts from all module POMs. Versions
  are now inherited from the imported `gt-bom`.
* Remove unused dependency org.freemarker:freemarker
* Delegate the following dependency versions to the GeoTools BOM:
  * apache commons (io, logging, collections, text, dbcp)
  * guava
  * h2
  * hsqldb
  * httpclient
  * imageio-ext
  * jackson-annotations
  * jackson-core
  * jackson-databind
  * jai_core/codec
  * jai_imageio
  * jaiext
  * jts
  * log4j-1.2-api
  * log4j-api
  * log4j-core
  * log4j-jcl
  * log4j-jul
  * log4j-slf4j2-impl
  * ojdbc14
  * postgresql
  * slf4j-api
Fix spelling mistake in warning
* Upgrade build to use Java 17 as the baseline version.
* Configure maven-enforcer-plugin to require Java 17.
* Upgrade GitHub Actions workflows to use Java 17.
* Update documentation for Java 17, including developer and user guides.
* Upgrade Jetty from 9.x to 10.0.25, the last version to support `javax.servlet`.
* Replace `com.google.common.base.Objects.equal()` with `java.util.Objects.equal()`.
* Update test configurations to use `localhost:8080` instead of deprecated demo servers.
* Fix REST integration tests and address other issues found during local testing on Java 17.
* Increase heap size for the QA build profile.
* Fix swapped Assert.equals arguments

Plugin version upgrades:
* maven-jar-plugin 2.4 -> 3.0.2
* maven-enforcer-plugin 3.0.0-M3 -> 3.5.0
* maven-compiler-plugin 3.10.1 -> 3.14.0
* maven-surefire-plugin 2.22.1 -> 3.5.3
* maven-failsafe-plugin 3.3.1 -> 3.5.3
* maven-war-plugin 3.3.2 -> 3.4.0
* jetty-maven-plugin 9.4.14.v20181114 -> 10.0.25
* maven-javadoc-plugin 3.4.1 -> 3.11.2
* maven-checkstyle-plugin 3.1.1 -> 3.6.0

Co-authored-by: Andrea Aime <andrea.aime@gmail.com>
Co-authored-by: Jody Garnett <jody.garnett@gmail.com>
@pull pull bot merged commit 57bf196 into GeoCat:main Jul 14, 2025
1 check was pending
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.

9 participants