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]

Reply via email to