lasdf1234 opened a new pull request, #11153: URL: https://github.com/apache/gravitino/pull/11153
### What changes were proposed in this pull request? When IRC runs with `iceberg.config-provider.impl = dynamic-config-provider` (required when authorization is enabled), server-level `table-metadata-cache-*` settings in `gravitino.conf` were parsed at startup but never applied to per-catalog `IcebergConfig`. Catalogs therefore used `TableMetadataCache.DUMMY` unless cache properties were set on each catalog individually. This PR reuses `StaticIcebergConfigProvider.initCatalogConfigs()` during dynamic provider initialization and merges the resolved static catalog config into the dynamic per-catalog config with `putIfAbsent`, so catalog-level properties continue to override server defaults. ### Why are the changes needed? Fixes #11128 Authorization-enabled deployments always use the dynamic config provider. Operators configure table metadata cache at the server level (visible in the boot log) but get no cache behavior and no warning. The static provider path already worked; this aligns the dynamic path with the same layering model. ### Does this PR introduce _any_ user-facing change? Yes. Server-level `gravitino.iceberg-rest.table-metadata-cache-*` (and other `catalog.<name>.*` static IRC properties) now take effect for dynamic catalogs. Per-catalog properties still win when both are set. ### How was this patch tested? - Added unit tests in `TestDynamicIcebergConfigProvider` for `initCatalogConfigs`, named/default catalog merge behavior, and `mergeAbsentProperties`. - `./gradlew :iceberg:iceberg-rest-server:test -PskipITs` Made with [Cursor](https://cursor.com) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
