Class PolarisClient

java.lang.Object
org.apache.polaris.service.it.env.PolarisClient
All Implemented Interfaces:
AutoCloseable

public final class PolarisClient extends Object implements AutoCloseable
This is a holder for the heavy-weight HTTP client for accessing Polaris APIs. This class provides method for constructing light-weight API wrappers for Iceberg REST and Polaris Management API that reuse the same shared HTTP client.
  • Method Details

    • polarisClient

      public static PolarisClient polarisClient(PolarisApiEndpoints endpoints)
    • buildObjectMapper

      public static com.fasterxml.jackson.databind.ObjectMapper buildObjectMapper()
      Utility method that creates an ObjectMapper sufficient for (de-)serializing client-side payloads for Iceberg REST and Polaris Management APIs.

      It is recommended for PolarisServerManager implementations to use this ObjectMapper if the make custom clients.

    • newEntityName

      public String newEntityName(String hint)
      This method should be used by test code to make top-level entity names. The purpose of this method is two-fold:
    • Identify top-level entities for latger clean-up by cleanUp(ClientCredentials).
    • Allow PolarisServerManagers to customize top-level entities per environment.
    • managementApi

      public ManagementApi managementApi(String authToken)
    • managementApi

      public ManagementApi managementApi(ClientCredentials credentials)
    • managementApi

      public ManagementApi managementApi(org.apache.polaris.core.admin.model.PrincipalWithCredentials principal)
    • catalogApi

      public CatalogApi catalogApi(org.apache.polaris.core.admin.model.PrincipalWithCredentials principal)
    • catalogApi

      public CatalogApi catalogApi(ClientCredentials credentials)
    • catalogApiPlain

      public CatalogApi catalogApiPlain()
    • genericTableApi

      public GenericTableApi genericTableApi(org.apache.polaris.core.admin.model.PrincipalWithCredentials principal)
    • genericTableApi

      public GenericTableApi genericTableApi(ClientCredentials credentials)
    • policyApi

      public PolicyApi policyApi(org.apache.polaris.core.admin.model.PrincipalWithCredentials principal)
    • policyApi

      public PolicyApi policyApi(ClientCredentials credentials)
    • obtainToken

      public String obtainToken(org.apache.polaris.core.admin.model.PrincipalWithCredentials principal)
      Requests an access token from the Polaris server for the client ID/secret pair that is part of the given principal data object.
    • obtainToken

      public String obtainToken(ClientCredentials credentials)
      Requests an access token from the Polaris server for the given ClientCredentials.
    • cleanUp

      public void cleanUp(ClientCredentials credentials)
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception