Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Datahub project Datahub DataHubClientV2 Builder

From Leeroopedia


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: server URL string (or a pre-built DataHubClientConfigV2 via config())
  • Optional: token, timeoutMs, disableSslVerification, maxRetries, emitMode

Input (buildFromEnv()):

  • Required environment variables: DATAHUB_SERVER or DATAHUB_GMS_URL
  • Optional environment variables: DATAHUB_TOKEN or DATAHUB_GMS_TOKEN

Output: A fully initialized DataHubClientV2 instance containing:

  • RestEmitter -- configured for HTTP communication with DataHub GMS
  • EntityClient -- accessible via client.entities() for CRUD operations
  • DataHubClientConfigV2 -- accessible via client.getConfig()

Exceptions:

  • IOException -- if emitter initialization fails
  • IllegalArgumentException -- 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:

  1. If a pre-built DataHubClientConfigV2 was provided via config(), use it directly
  2. Otherwise, validate that server is set (throws IllegalArgumentException if null)
  3. Build a DataHubClientConfigV2 from the individual builder fields
  4. Pass the config to the private DataHubClientV2 constructor (Line 84)
  5. The constructor creates a RestEmitter from the config and an EntityClient backed by the emitter

Related

Knowledge Sources

Domains

Data_Integration, Metadata_Management, Java_SDK

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment