Implementation:Datahub project Datahub DataHubClientV2 Builder
Appearance
| Field | Value |
|---|---|
| Implementation Name | DataHubClientV2 Builder |
| Type | API Doc |
| Status | Active |
| Last Updated | 2026-02-10 |
| Repository | Datahub_project_Datahub |
| Source File | metadata-integration/java/datahub-client/src/main/java/datahub/client/v2/DataHubClientV2.java (Lines 223-385)
|
Overview
The DataHubClientV2.Builder class provides a fluent API for constructing authenticated DataHubClientV2 instances. It supports explicit configuration via chained method calls and automatic configuration from environment variables.
Import Statement
import datahub.client.v2.DataHubClientV2;
import datahub.client.v2.config.EmitMode;
Source Reference
File: metadata-integration/java/datahub-client/src/main/java/datahub/client/v2/DataHubClientV2.java (Lines 223-385)
public static class Builder {
private String server;
private String token;
private Integer timeoutMs;
private Boolean disableSslVerification;
private Integer maxRetries;
private EmitMode emitMode;
private DataHubClientConfigV2 config;
@Nonnull
public Builder server(@Nonnull String server) {
this.server = server;
return this;
}
@Nonnull
public Builder token(@Nonnull String token) {
this.token = token;
return this;
}
@Nonnull
public Builder timeoutMs(int timeoutMs) {
this.timeoutMs = timeoutMs;
return this;
}
@Nonnull
public Builder disableSslVerification(boolean disable) {
this.disableSslVerification = disable;
return this;
}
@Nonnull
public Builder maxRetries(int maxRetries) {
this.maxRetries = maxRetries;
return this;
}
@Nonnull
public Builder emitMode(@Nonnull EmitMode emitMode) {
this.emitMode = emitMode;
return this;
}
@Nonnull
public Builder config(@Nonnull DataHubClientConfigV2 config) {
this.config = config;
return this;
}
@Nonnull
public DataHubClientV2 build() throws IOException { ... }
@Nonnull
public DataHubClientV2 buildFromEnv() throws IOException { ... }
}
Builder Methods
| Method | Parameter | Default | Description |
|---|---|---|---|
server(String) |
Server URL | (required) | DataHub GMS server URL (e.g., "http://localhost:8080")
|
token(String) |
Auth token | null |
Authentication token for secured DataHub instances |
timeoutMs(int) |
Milliseconds | 10000 |
HTTP request timeout in milliseconds |
disableSslVerification(boolean) |
Boolean | false |
Disables SSL certificate verification (testing only) |
maxRetries(int) |
Integer | 3 |
Maximum number of retries for failed requests |
emitMode(EmitMode) |
EmitMode enum | SYNC_PRIMARY |
Controls consistency vs performance tradeoff (SYNC_WAIT, SYNC_PRIMARY, ASYNC) |
config(DataHubClientConfigV2) |
Config object | null |
Pre-built configuration object (overrides individual settings) |
build() |
-- | -- | Constructs the client; throws IOException or IllegalArgumentException
|
buildFromEnv() |
-- | -- | Constructs from environment variables (DATAHUB_SERVER, DATAHUB_TOKEN)
|
I/O Contract
Input (build()):
- Required:
serverURL string (or a pre-builtDataHubClientConfigV2viaconfig()) - Optional:
token,timeoutMs,disableSslVerification,maxRetries,emitMode
Input (buildFromEnv()):
- Required environment variables:
DATAHUB_SERVERorDATAHUB_GMS_URL - Optional environment variables:
DATAHUB_TOKENorDATAHUB_GMS_TOKEN
Output: A fully initialized DataHubClientV2 instance containing:
RestEmitter-- configured for HTTP communication with DataHub GMSEntityClient-- accessible viaclient.entities()for CRUD operationsDataHubClientConfigV2-- accessible viaclient.getConfig()
Exceptions:
IOException-- if emitter initialization failsIllegalArgumentException-- if server URL is not provided
Usage Examples
Basic Initialization
DataHubClientV2 client = DataHubClientV2.builder()
.server("http://localhost:8080")
.token("my-personal-access-token")
.build();
Full Configuration
DataHubClientV2 client = DataHubClientV2.builder()
.server("https://datahub.mycompany.com")
.token("my-token")
.timeoutMs(30000)
.maxRetries(5)
.emitMode(EmitMode.SYNC_WAIT)
.disableSslVerification(false)
.build();
From Environment Variables
// Requires DATAHUB_SERVER or DATAHUB_GMS_URL environment variable
DataHubClientV2 client = DataHubClientV2.builder()
.buildFromEnv();
Testing Connection
DataHubClientV2 client = DataHubClientV2.builder()
.server("http://localhost:8080")
.build();
boolean connected = client.testConnection();
// Use client.entities() for CRUD operations
client.close(); // Implements AutoCloseable
Internal Construction Flow
The build() method follows this sequence:
- If a pre-built
DataHubClientConfigV2was provided viaconfig(), use it directly - Otherwise, validate that
serveris set (throwsIllegalArgumentExceptionif null) - Build a
DataHubClientConfigV2from the individual builder fields - Pass the config to the private
DataHubClientV2constructor (Line 84) - The constructor creates a
RestEmitterfrom the config and anEntityClientbacked by the emitter
Related
- Implements: Datahub_project_Datahub_Java_Client_Initialization
- Depends on: Datahub_project_Datahub_Datahub_Client_Dependency
- Related Implementation: Datahub_project_Datahub_EntityClient_Upsert
- Related Implementation: Datahub_project_Datahub_EntityClient_Get_Mutable
- Environment: Environment:Datahub_project_Datahub_Java_17_Backend_Environment
Knowledge Sources
Domains
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment