apply plugin: 'java' apply plugin: 'org.hidetake.swagger.generator' configurations { enhance } dependencies { implementation externalDependency.jsonPatch compile project(':entity-registry') compile project(':metadata-utils') compile project(':metadata-events:mxe-avro-1.7') compile project(':metadata-events:mxe-registration') compile project(':metadata-events:mxe-utils-avro-1.7') compile project(path: ':metadata-models') compile project(':metadata-service:restli-client') compile spec.product.pegasus.data compile spec.product.pegasus.generator compile externalDependency.dgraph4j exclude group: 'com.google.guava', module: 'guava' implementation externalDependency.slf4jApi runtime externalDependency.logbackClassic compileOnly externalDependency.lombok implementation externalDependency.commonsCollections compile externalDependency.datastaxOssNativeProtocol compile externalDependency.datastaxOssCore compile externalDependency.datastaxOssQueryBuilder compile externalDependency.elasticSearchRest compile externalDependency.elasticSearchTransport compile externalDependency.javatuples compile externalDependency.javaxValidation runtimeOnly externalDependency.jna compile externalDependency.kafkaClients compile externalDependency.ebean enhance externalDependency.ebeanAgent compile externalDependency.opentelemetryAnnotations compile externalDependency.resilience4j compile externalDependency.springContext compile externalDependency.swaggerAnnotations swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.33' compile externalDependency.mixpanel annotationProcessor externalDependency.lombok testCompile externalDependency.testng testCompile externalDependency.h2 testCompile externalDependency.mysqlConnector testCompile externalDependency.neo4jHarness testCompile externalDependency.mockito testCompile externalDependency.mockitoInline testCompile externalDependency.iStackCommons testCompile externalDependency.resilience4j testCompile externalDependency.testContainers testCompile externalDependency.testContainersJunit testCompile externalDependency.testContainersElasticsearch testCompile externalDependency.testContainersCassandra testCompile externalDependency.lombok testCompile project(':test-models') testImplementation externalDependency.springBootTest 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") } } } test { // https://docs.gradle.org/current/userguide/performance.html maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 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') } } tasks.register('generateOpenApiPojos', GenerateSwaggerCode) { it.setInputFile( file( "${project(':metadata-models').projectDir}/src/generatedJsonSchema/combined/open-api.yaml" ) ) it.setOutputDir(file("$projectDir/generated")) it.setLanguage("spring") it.setComponents(['models']) it.setTemplateDir(file("$projectDir/src/main/resources/JavaSpring")) it.setAdditionalProperties([ "group-id" : "io.datahubproject", "dateLibrary" : "java8", "java11" : "true", "modelPropertyNaming" : "original", "modelPackage" : "io.datahubproject.openapi.generated"] as Map) dependsOn ':metadata-models:generateJsonSchema' } compileJava.dependsOn generateOpenApiPojos sourceSets.main.java.srcDir "${generateOpenApiPojos.outputDir}/src/main/java" sourceSets.main.resources.srcDir "${generateOpenApiPojos.outputDir}/src/main/resources" checkstyleMain.exclude '**/generated/**'