roryqi opened a new issue, #13568:
URL: https://github.com/apache/gravitino/issues/13568

   ### Describe the feature
   
   Add an experimental Iceberg REST auxiliary service that can use a different 
Iceberg dependency version from the stable Iceberg REST service.
   
   ### Motivation
   
   Development may require APIs from an unpublished Iceberg snapshot. Loading 
stable and experimental Iceberg jars in the same classloader is unsafe because 
their classes may be binary incompatible.
   
   The stable Iceberg REST service should remain unchanged while allowing 
developers to build and run an experimental variant.
   
   ### Describe the solution
   
   - Add an `iceberg-rest-experimental-server` module that depends on 
`iceberg-rest-server`.
   - Package it in a separate library directory and load it through an isolated 
auxiliary-service classloader.
   - Allow its Iceberg dependency version to be selected with the 
`icebergExperimentalVersion` Gradle property.
   - Register the service as `iceberg-rest-experimental`.
   - Select either `iceberg-rest` or `iceberg-rest-experimental` through 
`gravitino.auxService.names`.
   - Reuse regular `gravitino.iceberg-rest.*` settings while allowing 
experimental-prefixed overrides.
   
   ### Additional context
   
   Before the snapshot artifact is published, the experimental module falls 
back to the repository's regular Iceberg version so normal builds remain 
reproducible.
   


-- 
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