Interface PolarisServerManager


public interface PolarisServerManager
This is a plugin interfaces to allow different test execution environments to control how tests access Polaris Servers when they run under PolarisIntegrationTestExtension.

Implementations are loaded via ServiceLoader assuming there is only one implementation per test runtime class path.

  • Method Summary

    Modifier and Type
    Method
    Description
    accessManager(jakarta.ws.rs.client.Client client)
     
    default jakarta.ws.rs.client.Client
    Create a new HTTP client for accessing the server targeted by tests.
    serverForContext(org.junit.jupiter.api.extension.ExtensionContext context)
    Returns server connection parameters for the tests under the specified context.
    default String
    Transforms the name of an entity that tests need to create.
  • Method Details

    • serverForContext

      Server serverForContext(org.junit.jupiter.api.extension.ExtensionContext context)
      Returns server connection parameters for the tests under the specified context.

      Implementations may reuse the same server for multiple contexts (with the same of different realm IDs) or create a fresh server for each context. In any case, AutoCloseable.close() will be invoked when the context provided as the argument to this call is closed.

      Note: Server objects are generally attached to the test class context, but this is not guaranteed.

    • accessManager

      default PolarisAccessManager accessManager(jakarta.ws.rs.client.Client client)
    • createClient

      default jakarta.ws.rs.client.Client createClient()
      Create a new HTTP client for accessing the server targeted by tests.
    • transformEntityName

      default String transformEntityName(String name)
      Transforms the name of an entity that tests need to create. Implementations may prepend of append text to the original name, but they should not alter the original name text or add any characters that have special meaning in Spark SQL, HTTP or Iceberg REST specifications.

      This method will be called for all top-level entities (catalogs, principal, principal roles), but may not be called for secondary entities (such as catalog roles, namespaces, tables, etc.).