plugins { id 'java' id 'org.hidetake.swagger.generator' } apply from: '../../gradle/coverage/java-coverage.gradle' dependencies { implementation project(':metadata-auth:auth-api') implementation project(':metadata-service:auth-impl') implementation project(':metadata-service:factories') implementation project(':metadata-service:schema-registry-api') implementation project (':metadata-service:openapi-servlet:models') implementation project(':metadata-service:events-service') implementation externalDependency.reflections implementation externalDependency.springBoot implementation externalDependency.springCore implementation externalDependency.springBootAutoconfigure implementation(externalDependency.springDocUI) { exclude group: 'org.springframework.boot' } implementation externalDependency.springWeb implementation externalDependency.springWebMVC implementation externalDependency.springBeans implementation externalDependency.springContext implementation externalDependency.servletApi implementation externalDependency.slf4jApi compileOnly externalDependency.lombok implementation externalDependency.antlr4Runtime implementation externalDependency.antlr4 implementation externalDependency.swaggerAnnotations implementation externalDependency.guava implementation('io.acryl:json-schema-avro:0.2.3') implementation externalDependency.jsonSchemaValidator implementation group: 'io.github.deblockt', name: 'json-diff', version: '1.1.0' annotationProcessor externalDependency.lombok implementation externalDependency.opentelemetryApi implementation externalDependency.opentelemetrySdk implementation externalDependency.opentelemetrySdkTrace implementation externalDependency.opentelemetrySdkMetrics testImplementation externalDependency.springBootTest testImplementation project(':mock-entity-registry') testImplementation externalDependency.springBoot testImplementation externalDependency.testContainers testImplementation externalDependency.springKafka testImplementation externalDependency.testng testImplementation externalDependency.mockito testImplementation externalDependency.logbackClassic testImplementation externalDependency.jacksonCore testImplementation externalDependency.jacksonDataBind testImplementation externalDependency.springBootStarterWeb testImplementation externalDependency.swaggerParser // Openlineage Specific Dependencies implementation "io.openlineage:openlineage-java:$openLineageVersion" implementation project(':metadata-integration:java:openlineage-converter') implementation project(':metadata-integration:java:datahub-event') swaggerCodegen externalDependency.swaggerCli } sourceSets { main { java { srcDirs = ["$buildDir/openapi/generated/src/main/java", 'src/main/java'] } } } // https://github.com/int128/gradle-swagger-generator-plugin#task-type-generateswaggercode task openApiGenerate(type: GenerateSwaggerCode) { inputFile = file("$projectDir/src/main/resources/openlineage/openlineage.json") outputDir = file("$buildDir/openapi/generated") language = "spring" components = ["apis"] additionalProperties = [ 'group-id' : "io.datahubproject", 'dateLibrary' : "java8", 'java11' : "true", 'interfaceOnly' : 'true', 'modelPropertyNaming': "original", 'modelPackage' : "io.datahubproject.openlineage.model", 'apiPackage' : "io.datahubproject.openlineage.generated.controller", 'delegatePattern' : "true" ] } tasks.getByName("compileJava").dependsOn(openApiGenerate)