Interface PulsarAdminBuilder


public interface PulsarAdminBuilder
Builder class for a PulsarAdmin instance.
  • Method Details

    • build

      PulsarAdmin build() throws org.apache.pulsar.client.api.PulsarClientException
      Returns:
      the new PulsarAdmin instance
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • loadConf

      PulsarAdminBuilder loadConf(Map<String,Object> config)
      Load the configuration from provided config map.

      Example:

       
       Map<String, Object> config = new HashMap<>();
       config.put("serviceHttpUrl", "http://localhost:6650");
      
       PulsarAdminBuilder builder = ...;
       builder = builder.loadConf(config);
      
       PulsarAdmin client = builder.build();
       
       
      Parameters:
      config - configuration to load
      Returns:
      the client builder instance
    • clone

      Create a copy of the current client builder.

      Cloning the builder can be used to share an incomplete configuration and specialize it multiple times. For example:

       PulsarAdminBuilder builder = PulsarAdmin.builder().allowTlsInsecureConnection(false);
      
       PulsarAdmin client1 = builder.clone().serviceHttpUrl(URL_1).build();
       PulsarAdmin client2 = builder.clone().serviceHttpUrl(URL_2).build();
       
    • serviceHttpUrl

      PulsarAdminBuilder serviceHttpUrl(String serviceHttpUrl)
      Set the Pulsar service HTTP URL for the admin endpoint (eg. "http://my-broker.example.com:8080", or "https://my-broker.example.com:8443" for TLS)
    • authentication

      PulsarAdminBuilder authentication(String authPluginClassName, String authParamsString) throws org.apache.pulsar.client.api.PulsarClientException.UnsupportedAuthenticationException
      Set the authentication provider to use in the Pulsar client instance.

      Example:

       
       String AUTH_CLASS = "org.apache.pulsar.client.impl.auth.AuthenticationTls";
       String AUTH_PARAMS = "tlsCertFile:/my/cert/file,tlsKeyFile:/my/key/file";
      
       PulsarAdmin client = PulsarAdmin.builder()
                .serviceHttpUrl(SERVICE_HTTP_URL)
                .authentication(AUTH_CLASS, AUTH_PARAMS)
                .build();
       ....
       
       
      Parameters:
      authPluginClassName - name of the Authentication-Plugin you want to use
      authParamsString - string which represents parameters for the Authentication-Plugin, e.g., "key1:val1,key2:val2"
      Throws:
      org.apache.pulsar.client.api.PulsarClientException.UnsupportedAuthenticationException - failed to instantiate specified Authentication-Plugin
    • authentication

      PulsarAdminBuilder authentication(String authPluginClassName, Map<String,String> authParams) throws org.apache.pulsar.client.api.PulsarClientException.UnsupportedAuthenticationException
      Set the authentication provider to use in the Pulsar client instance.

      Example:

      
       String AUTH_CLASS = "org.apache.pulsar.client.impl.auth.AuthenticationTls";
      
       Map<String, String> conf = new TreeMap<>();
       conf.put("tlsCertFile", "/my/cert/file");
       conf.put("tlsKeyFile", "/my/key/file");
      
       PulsarAdmin client = PulsarAdmin.builder()
                .serviceHttpUrl(SERVICE_HTTP_URL)
                .authentication(AUTH_CLASS, conf)
                .build();
       ....
       
       
      Parameters:
      authPluginClassName - name of the Authentication-Plugin you want to use
      authParams - map which represents parameters for the Authentication-Plugin
      Throws:
      org.apache.pulsar.client.api.PulsarClientException.UnsupportedAuthenticationException - failed to instantiate specified Authentication-Plugin
    • authentication

      PulsarAdminBuilder authentication(org.apache.pulsar.client.api.Authentication authentication)
      Set the authentication provider to use in the Pulsar admin instance.

      Example:

      
       String AUTH_CLASS = "org.apache.pulsar.client.impl.auth.AuthenticationTls";
      
       Map<String, String> conf = new TreeMap<>();
       conf.put("tlsCertFile", "/my/cert/file");
       conf.put("tlsKeyFile", "/my/key/file");
      
       Authentication auth = AuthenticationFactor.create(AUTH_CLASS, conf);
      
       PulsarAdmin admin = PulsarAdmin.builder()
                .serviceHttpUrl(SERVICE_URL)
                .authentication(auth)
                .build();
       ....
       
       
      Parameters:
      authentication - an instance of the Authentication provider already constructed
    • tlsKeyFilePath

      PulsarAdminBuilder tlsKeyFilePath(String tlsKeyFilePath)
      Set the path to the TLS key file.
      Parameters:
      tlsKeyFilePath -
      Returns:
      the admin builder instance
    • tlsCertificateFilePath

      PulsarAdminBuilder tlsCertificateFilePath(String tlsCertificateFilePath)
      Set the path to the TLS certificate file.
      Parameters:
      tlsCertificateFilePath -
      Returns:
      the admin builder instance
    • tlsTrustCertsFilePath

      PulsarAdminBuilder tlsTrustCertsFilePath(String tlsTrustCertsFilePath)
      Set the path to the trusted TLS certificate file.
      Parameters:
      tlsTrustCertsFilePath -
    • allowTlsInsecureConnection

      PulsarAdminBuilder allowTlsInsecureConnection(boolean allowTlsInsecureConnection)
      Configure whether the Pulsar admin client accept untrusted TLS certificate from broker (default: false).
      Parameters:
      allowTlsInsecureConnection -
    • enableTlsHostnameVerification

      PulsarAdminBuilder enableTlsHostnameVerification(boolean enableTlsHostnameVerification)
      It allows to validate hostname verification when client connects to broker over TLS. It validates incoming x509 certificate and matches provided hostname(CN/SAN) with expected broker's host name. It follows RFC 2818, 3.1. Server Identity hostname verification.
      Parameters:
      enableTlsHostnameVerification -
      See Also:
    • useKeyStoreTls

      PulsarAdminBuilder useKeyStoreTls(boolean useKeyStoreTls)
      If Tls is enabled, whether use KeyStore type as tls configuration parameter. False means use default pem type configuration.
      Parameters:
      useKeyStoreTls -
    • sslProvider

      PulsarAdminBuilder sslProvider(String sslProvider)
      The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.
      Parameters:
      sslProvider -
    • tlsKeyStoreType

      PulsarAdminBuilder tlsKeyStoreType(String tlsKeyStoreType)
      The file format of the key store file.
      Parameters:
      tlsKeyStoreType -
      Returns:
      the admin builder instance
    • tlsKeyStorePath

      PulsarAdminBuilder tlsKeyStorePath(String tlsTrustStorePath)
      The location of the key store file.
      Parameters:
      tlsTrustStorePath -
      Returns:
      the admin builder instance
    • tlsKeyStorePassword

      PulsarAdminBuilder tlsKeyStorePassword(String tlsKeyStorePassword)
      The store password for the key store file.
      Parameters:
      tlsKeyStorePassword -
      Returns:
      the admin builder instance
    • tlsTrustStoreType

      PulsarAdminBuilder tlsTrustStoreType(String tlsTrustStoreType)
      The file format of the trust store file.
      Parameters:
      tlsTrustStoreType -
    • tlsTrustStorePath

      PulsarAdminBuilder tlsTrustStorePath(String tlsTrustStorePath)
      The location of the trust store file.
      Parameters:
      tlsTrustStorePath -
    • tlsTrustStorePassword

      PulsarAdminBuilder tlsTrustStorePassword(String tlsTrustStorePassword)
      The store password for the key store file.
      Parameters:
      tlsTrustStorePassword -
      Returns:
      the client builder instance
    • tlsCiphers

      PulsarAdminBuilder tlsCiphers(Set<String> tlsCiphers)
      A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol. By default all the available cipher suites are supported.
      Parameters:
      tlsCiphers -
    • tlsProtocols

      PulsarAdminBuilder tlsProtocols(Set<String> tlsProtocols)
      The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.3, TLSv1.2 and TLSv1.1.
      Parameters:
      tlsProtocols -
    • sslFactoryPlugin

      PulsarAdminBuilder sslFactoryPlugin(String sslFactoryPlugin)
      SSL Factory Plugin used to generate the SSL Context and SSLEngine.
      Parameters:
      sslFactoryPlugin - Name of the SSL Factory Class to be used.
      Returns:
      PulsarAdminBuilder
    • sslFactoryPluginParams

      PulsarAdminBuilder sslFactoryPluginParams(String sslFactoryPluginParams)
      Parameters used by the SSL Factory Plugin class.
      Parameters:
      sslFactoryPluginParams - String parameters to be used by the SSL Factory Class.
      Returns:
    • connectionTimeout

      PulsarAdminBuilder connectionTimeout(int connectionTimeout, TimeUnit connectionTimeoutUnit)
      This sets the connection time out for the pulsar admin client.
      Parameters:
      connectionTimeout -
      connectionTimeoutUnit -
    • readTimeout

      PulsarAdminBuilder readTimeout(int readTimeout, TimeUnit readTimeoutUnit)
      This sets the server response read time out for the pulsar admin client for any request.
      Parameters:
      readTimeout -
      readTimeoutUnit -
    • requestTimeout

      PulsarAdminBuilder requestTimeout(int requestTimeout, TimeUnit requestTimeoutUnit)
      This sets the server request time out for the pulsar admin client for any request.
      Parameters:
      requestTimeout -
      requestTimeoutUnit -
    • autoCertRefreshTime

      PulsarAdminBuilder autoCertRefreshTime(int autoCertRefreshTime, TimeUnit autoCertRefreshTimeUnit)
      This sets auto cert refresh time if Pulsar admin uses tls authentication.
      Parameters:
      autoCertRefreshTime -
      autoCertRefreshTimeUnit -
    • setContextClassLoader

      PulsarAdminBuilder setContextClassLoader(ClassLoader clientBuilderClassLoader)
      Returns:
    • acceptGzipCompression

      PulsarAdminBuilder acceptGzipCompression(boolean acceptGzipCompression)
      Determines whether to include the "Accept-Encoding: gzip" header in HTTP requests. By default, the "Accept-Encoding: gzip" header is included in HTTP requests. If this is set to false, the "Accept-Encoding: gzip" header will not be included in the requests.
      Parameters:
      acceptGzipCompression - A flag that indicates whether to include the "Accept-Encoding: gzip" header in HTTP requests
    • maxConnectionsPerHost

      PulsarAdminBuilder maxConnectionsPerHost(int maxConnectionsPerHost)
      Configures the maximum number of connections that the client library will establish with a single host.

      By default, the connection pool maintains up to 16 connections to a single host. This method allows you to modify this default behavior and limit the number of connections.

      This setting can be useful in scenarios where you want to limit the resources used by the client library, or control the level of parallelism for operations so that a single client does not overwhelm the Pulsar cluster with too many concurrent connections.

      Parameters:
      maxConnectionsPerHost - the maximum number of connections to establish per host. Set to invalid input: '<'= 0 to disable the limit.
      Returns:
      the PulsarAdminBuilder instance, allowing for method chaining
    • connectionMaxIdleSeconds

      PulsarAdminBuilder connectionMaxIdleSeconds(int connectionMaxIdleSeconds)
      Sets the maximum idle time for a pooled connection. If a connection is idle for more than the specified amount of seconds, it will be released back to the connection pool. Defaults to 25 seconds.
      Parameters:
      connectionMaxIdleSeconds - the maximum idle time, in seconds, for a pooled connection
      Returns:
      the PulsarAdminBuilder instance