Package com.clickhouse.client
Class ClickHouseClientBuilder
- java.lang.Object
-
- com.clickhouse.client.ClickHouseClientBuilder
-
public class ClickHouseClientBuilder extends Object
Builder class for creatingClickHouseClient
. Please useClickHouseClient.builder()
for instantiation, and avoid multi-threading as it's NOT thread-safe.
-
-
Field Summary
Fields Modifier and Type Field Description protected ClickHouseConfig
config
protected ClickHouseCredentials
credentials
protected Object
metricRegistry
protected ClickHouseNodeSelector
nodeSelector
protected Map<ClickHouseOption,Serializable>
options
-
Constructor Summary
Constructors Modifier Constructor Description protected
ClickHouseClientBuilder()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ClickHouseClient
build()
Builds an instance ofClickHouseClient
.ClickHouseClientBuilder
config(ClickHouseConfig config)
Sets configuration.ClickHouseClientBuilder
defaultCredentials(ClickHouseCredentials credentials)
Sets default credentials, which will be used to connect to aClickHouseNode
only when it has no credentials defined.ClickHouseConfig
getConfig()
Gets client configuration.ClickHouseClientBuilder
metricRegistry(Object metricRegistry)
Sets metric registry.ClickHouseClientBuilder
nodeSelector(ClickHouseNodeSelector nodeSelector)
Sets node selector.ClickHouseClientBuilder
option(ClickHouseOption option, Serializable value)
Adds an option, which is usually an Enum type that implementsClickHouseOption
.ClickHouseClientBuilder
options(Map<ClickHouseOption,Serializable> options)
Sets options.ClickHouseClientBuilder
removeOption(ClickHouseOption option)
Removes an option.protected void
resetConfig()
Resets client configuration to null.
-
-
-
Field Detail
-
config
protected ClickHouseConfig config
-
credentials
protected ClickHouseCredentials credentials
-
metricRegistry
protected Object metricRegistry
-
nodeSelector
protected ClickHouseNodeSelector nodeSelector
-
options
protected final Map<ClickHouseOption,Serializable> options
-
-
Method Detail
-
resetConfig
protected void resetConfig()
Resets client configuration to null.
-
getConfig
public ClickHouseConfig getConfig()
Gets client configuration.- Returns:
- non-null client configuration
-
build
public ClickHouseClient build()
Builds an instance ofClickHouseClient
. This method will useServiceLoader
to load a suitable implementation based on preferred protocol(s), or just the first one if no preference given.ClickHouseClient.accept(ClickHouseProtocol)
will be invoked during the process to test if the implementation is compatible with the preferred protocol(s) or not. At the end of process, if a suitable implementation is found,ClickHouseClient.init(ClickHouseConfig)
will be invoked for initialization.- Returns:
- suitable client to handle preferred protocols
- Throws:
IllegalStateException
- when no suitable client found in classpath
-
config
public ClickHouseClientBuilder config(ClickHouseConfig config)
Sets configuration.- Parameters:
config
- non-null configuration- Returns:
- this builder
-
option
public ClickHouseClientBuilder option(ClickHouseOption option, Serializable value)
Adds an option, which is usually an Enum type that implementsClickHouseOption
.- Parameters:
option
- non-null optionvalue
- value- Returns:
- this builder
-
removeOption
public ClickHouseClientBuilder removeOption(ClickHouseOption option)
Removes an option.- Parameters:
option
- non-null option- Returns:
- this builder
-
options
public ClickHouseClientBuilder options(Map<ClickHouseOption,Serializable> options)
Sets options.- Parameters:
options
- map containing all options- Returns:
- this builder
-
defaultCredentials
public ClickHouseClientBuilder defaultCredentials(ClickHouseCredentials credentials)
Sets default credentials, which will be used to connect to aClickHouseNode
only when it has no credentials defined.- Parameters:
credentials
- default credentials- Returns:
- this builder
-
nodeSelector
public ClickHouseClientBuilder nodeSelector(ClickHouseNodeSelector nodeSelector)
Sets node selector.- Parameters:
nodeSelector
- non-null node selector- Returns:
- this builder
-
metricRegistry
public ClickHouseClientBuilder metricRegistry(Object metricRegistry)
Sets metric registry.- Parameters:
metricRegistry
- metric registry, could be null- Returns:
- this builder
-
-