diqiu50 opened a new pull request, #13457: URL: https://github.com/apache/gravitino/pull/13457
### What changes were proposed in this pull request? Add a `SparkCatalogExtension` SPI, discovered through `ServiceLoader`, so a jar outside the connector can register a Spark catalog class for a provider this build has no in-tree class for. `SparkBindings.Builder.build()` merges discovered extensions before validating required bindings. ### Why are the changes needed? A catalog implementation living outside the connector (e.g. a vendor-specific JDBC catalog) cannot currently be plugged in without modifying the connector itself. Fix: #13208 ### Does this PR introduce _any_ user-facing change? Adds a new extension point. No behavior change for existing builds: a jar with a `META-INF/services/org.apache.gravitino.spark.connector.plugin.SparkCatalogExtension` entry can now supply a catalog for a kind the build doesn't already bind at compile time. ### How was this patch tested? Added `TestSparkCatalogExtensionLoader`, covering: fills an omitted kind, unknown-provider skip, already-bound-kind skip, throwing-extension skip, no-op with no extensions. Existing `TestSparkBindings` still passes. -- 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]
