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 api(externalDependency.dgraph4j) { exclude group: 'com.google.guava', module: 'guava' exclude group: 'io.grpc', module: 'grpc-protobuf' } implementation externalDependency.dgraphNetty implementation externalDependency.dgraphShadedNetty 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 api externalDependency.elasticSearchJava 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') testImplementation project(':datahub-graphql-core') testImplementation project(path: ':metadata-integration:java:datahub-client', configuration: 'shadow') testImplementation project(':metadata-service:auth-impl') testImplementation project(':li-utils') testImplementation externalDependency.testng testImplementation externalDependency.h2 testImplementation externalDependency.mysqlConnector testImplementation externalDependency.neo4jHarness testImplementation (externalDependency.neo4jApocCore) { exclude group: 'org.yaml', module: 'snakeyaml' } testImplementation (externalDependency.neo4jApocCommon) { exclude group: 'org.yaml', module: 'snakeyaml' } 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 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" }