Class HiveCatalogFederationIntegrationTest

java.lang.Object
org.apache.polaris.service.it.test.HiveCatalogFederationIntegrationTest

@ExtendWith(PolarisIntegrationTestExtension.class) @TestInstance(PER_CLASS) public abstract class HiveCatalogFederationIntegrationTest extends Object
Integration test for Hive Metastore (HMS) federation. Verifies that an external Polaris catalog with connectionType=HIVE can federate read/write operations to a backing HMS, while Polaris continues to enforce its own RBAC.

This test requires the following features to be configured:

  • FeatureConfiguration.ENABLE_CATALOG_FEDERATION = true.
  • FeatureConfiguration.SUPPORTED_CATALOG_CONNECTION_TYPES must include "HIVE".
  • FeatureConfiguration.SUPPORTED_EXTERNAL_CATALOG_AUTHENTICATION_TYPES must include "IMPLICIT"; Hive federation only supports IMPLICIT authentication.
  • FeatureConfiguration.ENABLE_SUB_CATALOG_RBAC_FOR_FEDERATED_CATALOGS = true: required by tests that exercise RBAC on securables that live in HMS.
  • FeatureConfiguration.ALLOW_DROPPING_NON_EMPTY_PASSTHROUGH_FACADE_CATALOG = true: used by cleanup code.
  • FeatureConfiguration.ALLOW_OVERLAPPING_CATALOG_URLS = true.
This test also requires a properly-configured RustfsAccess instance. The core-site.xml file in src/main/resources will be used to configure the S3A filesystem. Therefore, the test must set the following system properties, which will be substituted into that file at startup using Hadoop's ${name} substitution:
  • polaris.s3.endpoint
  • polaris.s3.access-key
  • polaris.s3.secret-key
The values of the above properties must correspond to the values exposed by the RustFS container.
  • Field Details

  • Constructor Details

    • HiveCatalogFederationIntegrationTest

      public HiveCatalogFederationIntegrationTest()
  • Method Details

    • rustfsAccess

      protected abstract org.apache.polaris.test.rustfs.RustfsAccess rustfsAccess()
      Returns the RustFS instance backing the test. The subclass is also responsible for propagating the endpoint/credentials to the Polaris JVM as system properties so Hadoop's core-site.xml can substitute them.