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 Datahub Client Dependency

From Leeroopedia


Field Value
Implementation Name Datahub Client Dependency
Type External Tool Doc
Status Active
Last Updated 2026-02-10
Repository Datahub_project_Datahub
Source File metadata-integration/java/datahub-client/build.gradle (Lines 22-57)

Overview

The Datahub Client dependency configuration defines how the datahub-client artifact is built, what transitive dependencies it carries, and how consumers declare it in their Gradle or Maven projects. The artifact is published under the io.acryl group ID with the artifact ID datahub-client.

Source Reference

File: metadata-integration/java/datahub-client/build.gradle (Lines 22-57)

dependencies {
  api project(':entity-registry')
  api project(':metadata-integration:java:datahub-event')
  implementation project(':metadata-integration:java:datahub-schematron:lib')

  implementation(externalDependency.kafkaAvroSerializer) {
    exclude group: "org.apache.avro"
  }
  implementation externalDependency.avro
  implementation externalDependency.httpClient

  constraints {
    implementation('commons-collections:commons-collections:3.2.2') {
      because 'Vulnerability Issue'
    }
  }

  implementation externalDependency.awsS3
  implementation platform(externalDependency.jacksonBom)
  implementation externalDependency.jacksonDataBind
  runtimeOnly externalDependency.jna

  api externalDependency.slf4jApi
  compileOnly externalDependency.lombok
  annotationProcessor externalDependency.lombok
  // VisibleForTesting
  compileOnly externalDependency.guava
  testImplementation externalDependency.testng
  testImplementation externalDependency.mockito
  testImplementation externalDependency.mockServer
  testImplementation externalDependency.mockServerClient
  testImplementation externalDependency.testContainers
  testRuntimeOnly externalDependency.logbackClassic
  // ASM for bytecode inspection in tests
  testImplementation 'org.ow2.asm:asm:9.5'
}

Dependency Declaration

Gradle

dependencies {
    implementation 'io.acryl:datahub-client:VERSION'
}

Maven

<dependency>
    <groupId>io.acryl</groupId>
    <artifactId>datahub-client</artifactId>
    <version>VERSION</version>
</dependency>

Publication Configuration

The artifact is published to Maven Central via Sonatype OSSRH. The publication block (Lines 221-270 of build.gradle) defines:

Property Value
Group ID io.acryl
Artifact ID datahub-client
Description DataHub Java client for metadata integration
License Apache License, Version 2.0
SCM URL https://github.com/datahub-project/datahub.git
Releases Repo https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/
Snapshots Repo https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots/

Transitive Dependencies

The following dependencies are exposed transitively (via api scope) to consumers:

Dependency Scope Purpose
entity-registry api Entity type definitions and aspect registry
datahub-event api MetadataChangeProposalWrapper and event classes
slf4j-api api Logging facade

The following dependencies are shaded into the shadow JAR (not exposed to consumers):

Dependency Purpose
datahub-schematron Schema translation utilities
kafka-avro-serializer Avro serialization for Kafka emitter
avro Apache Avro data serialization
httpClient Apache HTTP Client for REST communication
jackson-databind JSON serialization/deserialization
aws-s3 AWS S3 client for cloud storage
jna Java Native Access (runtime only)

Shadow JAR Configuration

The shadow JAR (Lines 130-200) relocates numerous third-party packages to avoid classpath conflicts:

  • com.fasterxml.jackson to datahub.shaded.jackson
  • org.springframework to datahub.shaded.org.springframework
  • com.google.common to datahub.shaded.com.google.common
  • org.apache.http to datahub.shaded.org.apache.http
  • org.apache.kafka to datahub.shaded.org.apache.kafka
  • software.amazon.awssdk to datahub.shaded.software.amazon.awssdk

The shadow JAR excludes slf4j and antlr from shading, allowing consumers to provide their own logging implementation.

I/O Contract

Input: A Gradle or Maven build file declaring the datahub-client dependency with a specific version.

Output: Access to the following SDK packages and classes:

  • datahub.client.v2.DataHubClientV2 -- Main client entry point
  • datahub.client.v2.entity.Dataset, Chart, Dashboard, etc. -- Entity builders
  • datahub.client.v2.entity.HasTags, HasOwners, HasGlossaryTerms, HasDomains -- Trait interfaces
  • datahub.client.v2.operations.EntityClient -- CRUD operations client
  • datahub.client.rest.RestEmitter -- REST-based metadata emission

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