datahub/metadata-io/build.gradle

157 lines
5.7 KiB
Groovy

plugins {
id 'java-library'
id 'pegasus'
id 'io.ebean' version "${ebeanVersion}" // Use the latest version from global build.gradle
id 'java-test-fixtures'
}
apply from: '../gradle/coverage/java-coverage.gradle'
configurations {
enhance
}
dependencies {
implementation project(':entity-registry')
implementation project(':metadata-service:auth-config')
api project(':metadata-io:metadata-io-api')
api project(':metadata-utils')
api project(':metadata-events:mxe-avro')
api project(':metadata-events:mxe-registration')
api project(':metadata-events:mxe-utils-avro')
api project(':metadata-models')
api project(':metadata-service:restli-client-api')
api project(':metadata-service:configuration')
api project(':metadata-service:services')
api project(':metadata-operation-context')
implementation spec.product.pegasus.restliServer
implementation spec.product.pegasus.data
implementation spec.product.pegasus.generator
implementation externalDependency.guava
implementation externalDependency.reflections
implementation externalDependency.neo4jJavaDriver
implementation externalDependency.graphqlJava
implementation externalDependency.slf4jApi
runtimeOnly externalDependency.logbackClassic
compileOnly externalDependency.lombok
compileOnly externalDependency.hazelcast
implementation externalDependency.commonsCollections
api externalDependency.datastaxOssNativeProtocol
api(externalDependency.datastaxOssCore) {
exclude group: 'com.fasterxml.jackson.core'
}
api externalDependency.datastaxOssQueryBuilder
api externalDependency.elasticSearchRest
implementation externalDependency.javatuples
api externalDependency.javaxValidation
runtimeOnly externalDependency.jna
api externalDependency.kafkaClients
api externalDependency.ebean
annotationProcessor externalDependency.ebeanQueryBean
implementation externalDependency.ebeanDdl
implementation externalDependency.ebeanAgent
implementation externalDependency.opentelemetryAnnotations
implementation externalDependency.opentelemetrySdkTrace
implementation externalDependency.opentelemetrySdkMetrics
implementation externalDependency.resilience4j
// Newer Spring libraries require JDK17 classes, allow for JDK11
compileOnly externalDependency.springBootAutoconfigureJdk11
implementation(externalDependency.mixpanel) {
exclude group: 'org.json', module: 'json'
}
annotationProcessor externalDependency.lombok
testImplementation project(':test-models')
testImplementation project(path: ':test-models', configuration: 'testDataTemplate')
testFixturesApi project(':datahub-graphql-core')
testImplementation project(path: ':metadata-integration:java:datahub-client', configuration: 'shadow')
testImplementation project(':metadata-service:auth-impl')
testFixturesApi project(':metadata-service:configuration')
testImplementation project(':li-utils')
testImplementation externalDependency.testng
testImplementation externalDependency.h2
testImplementation externalDependency.mysqlConnector
testImplementation externalDependency.mockito
testImplementation externalDependency.mockitoInline
testImplementation externalDependency.iStackCommons
testImplementation externalDependency.resilience4j
testImplementation externalDependency.testContainers
testImplementation externalDependency.testContainersJunit
testImplementation externalDependency.testContainersElasticsearch
testImplementation externalDependency.testContainersOpenSearch
testImplementation externalDependency.testContainersCassandra
testImplementation externalDependency.testContainersNeo4j
testImplementation externalDependency.lombok
testFixturesApi externalDependency.springBootTest
testImplementation spec.product.pegasus.restliServer
testImplementation externalDependency.ebeanTest
testImplementation externalDependency.opentelemetrySdk
// logback >=1.3 required due to `testcontainers` only
testImplementation 'ch.qos.logback:logback-classic:1.4.7'
testImplementation 'net.datafaker:datafaker:1.9.0'
testImplementation(testFixtures(project(":entity-registry")))
testAnnotationProcessor externalDependency.lombok
testImplementation project(':mock-entity-registry')
constraints {
implementation(externalDependency.log4jCore) {
because("previous versions are vulnerable to CVE-2021-45105")
}
implementation(externalDependency.log4jApi) {
because("previous versions are vulnerable to CVE-2021-45105")
}
implementation(externalDependency.commonsText) {
because("previous versions are vulnerable to CVE-2022-42889")
}
implementation(externalDependency.snakeYaml) {
because("previous versions are vulnerable to CVE-2022-25857")
}
implementation(externalDependency.woodstoxCore) {
because("previous versions are vulnerable to CVE-2022-40151-2")
}
implementation(externalDependency.jettison) {
because("previous versions are vulnerable")
}
implementation(externalDependency.snappy) {
because("previous versions are vulnerable to CVE-2023-34453 through CVE-2023-34455")
}
implementation(externalDependency.grpcProtobuf) {
because("CVE-2023-1428, CVE-2023-32731")
}
}
}
test {
doFirst {
// override, testng controlling parallelization
// increasing >1 will merely run all tests extra times
maxParallelForks = 1
}
useTestNG() {
suites 'src/test/resources/testng.xml'
}
testLogging.showStandardStreams = true
testLogging.exceptionFormat = 'full'
environment 'STRICT_URN_VALIDATION_ENABLED', 'true'
}
ebean {
debugLevel = 1 // 0 - 9
}
tasks.withType(Test) {
enableAssertions = false
}
clean {
//TODO: Is this really needed? dont see generated folder in projectDir. It is in build, but that doest need explicit clean
delete "$projectDir/generated"
}