apply plugin: 'java-library' apply plugin: 'org.hidetake.swagger.generator' configurations { enhance } dependencies { implementation project(':entity-registry') api project(':metadata-utils') api project(':metadata-events:mxe-avro-1.7') api project(':metadata-events:mxe-registration') api project(':metadata-events:mxe-utils-avro-1.7') api project(':metadata-models') api project(':metadata-service:restli-client') api project(':metadata-service:configuration') api project(':metadata-service:services') implementation spec.product.pegasus.data implementation spec.product.pegasus.generator implementation externalDependency.guava implementation externalDependency.reflections implementation externalDependency.jsonPatch api externalDependency.dgraph4j exclude group: 'com.google.guava', module: 'guava' implementation externalDependency.slf4jApi runtimeOnly externalDependency.logbackClassic compileOnly externalDependency.lombok implementation externalDependency.commonsCollections api externalDependency.datastaxOssNativeProtocol api externalDependency.datastaxOssCore api externalDependency.datastaxOssQueryBuilder api externalDependency.elasticSearchRest api externalDependency.elasticSearchJava implementation externalDependency.javatuples api externalDependency.javaxValidation runtimeOnly externalDependency.jna api externalDependency.kafkaClients api externalDependency.ebean enhance externalDependency.ebeanAgent implementation externalDependency.ebeanDdl implementation externalDependency.opentelemetryAnnotations implementation externalDependency.resilience4j api externalDependency.springContext implementation externalDependency.swaggerAnnotations implementation(externalDependency.mixpanel) { exclude group: 'org.json', module: 'json' } annotationProcessor externalDependency.lombok testImplementation project(':test-models') testImplementation project(path: ':test-models', configuration: 'testDataTemplate') testImplementation project(':datahub-graphql-core') testImplementation project(path: ':metadata-integration:java:datahub-client', configuration: 'shadow') testImplementation externalDependency.testng testImplementation externalDependency.h2 testImplementation externalDependency.mysqlConnector testImplementation externalDependency.neo4jHarness 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.lombok testImplementation externalDependency.springBootTest testImplementation spec.product.pegasus.restliServer // logback >=1.3 required due to `testcontainers` only testImplementation 'ch.qos.logback:logback-classic:1.4.7' testImplementation 'net.datafaker:datafaker:1.9.0' testAnnotationProcessor externalDependency.lombok 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") } } } 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' } tasks.withType(Test) { enableAssertions = false } project.compileJava { doLast { ant.taskdef(name: 'ebean', classname: 'io.ebean.enhance.ant.AntEnhanceTask', classpath: project.configurations.enhance.asPath) ant.ebean(classSource: "${project.buildDir}/classes/java/main", packages: 'com.linkedin.metadata.entity.ebean', transformArgs: 'debug=1') } } clean { project.delete("$projectDir/generated") }