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 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 externalDependency.awaitility 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 { events "failed", "skipped" exceptionFormat "full" showStandardStreams = false } 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" }