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