2022-05-03 19:38:05 -05:00
|
|
|
import io.datahubproject.GenerateJsonSchemaTask
|
|
|
|
|
2023-12-15 13:28:33 -06:00
|
|
|
plugins {
|
|
|
|
id 'pegasus'
|
|
|
|
id 'java-library'
|
|
|
|
id 'org.hidetake.swagger.generator'
|
2022-09-25 10:39:22 -05:00
|
|
|
}
|
2021-06-03 13:24:33 -07:00
|
|
|
|
2024-12-03 06:57:43 +05:30
|
|
|
apply from: '../gradle/coverage/java-coverage.gradle'
|
2023-12-15 13:28:33 -06:00
|
|
|
|
2019-08-31 20:51:14 -07:00
|
|
|
dependencies {
|
2024-12-05 11:45:04 -06:00
|
|
|
constraints {
|
|
|
|
implementation('org.apache.commons:commons-text:1.10.0') {
|
|
|
|
because 'Vulnerability Issue'
|
2023-04-21 12:30:23 -05:00
|
|
|
}
|
2024-12-05 11:45:04 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
api(spec.product.pegasus.data) {
|
|
|
|
exclude group: 'javax.servlet', module: 'javax.servlet-api'
|
|
|
|
}
|
2023-09-01 09:06:01 -05:00
|
|
|
api project(':li-utils')
|
2023-10-25 10:54:55 -04:00
|
|
|
api project(path: ':li-utils', configuration: "dataTemplate")
|
2019-08-31 20:51:14 -07:00
|
|
|
dataModel project(':li-utils')
|
|
|
|
|
2024-01-23 17:49:23 -06:00
|
|
|
// Newer Spring libraries require JDK17 classes, allow for JDK11
|
|
|
|
compileOnly externalDependency.springBootAutoconfigureJdk11
|
|
|
|
compileOnly externalDependency.annotationApi
|
|
|
|
compileOnly externalDependency.javaxValidation
|
|
|
|
|
2023-09-07 17:09:52 -05:00
|
|
|
compileOnly externalDependency.lombok
|
|
|
|
annotationProcessor externalDependency.lombok
|
2024-12-05 11:45:04 -06:00
|
|
|
compileOnly externalDependency.swaggerAnnotations
|
2025-05-24 13:42:10 -05:00
|
|
|
compileOnly platform(externalDependency.jacksonBom)
|
2023-09-07 17:09:52 -05:00
|
|
|
compileOnly externalDependency.jacksonCore
|
|
|
|
compileOnly externalDependency.jacksonDataBind
|
|
|
|
|
|
|
|
swaggerCodegen externalDependency.swaggerCli
|
2023-09-01 09:06:01 -05:00
|
|
|
testImplementation externalDependency.guava
|
2023-12-15 13:28:33 -06:00
|
|
|
testImplementation externalDependency.testng
|
2019-08-31 20:51:14 -07:00
|
|
|
}
|
|
|
|
|
2023-09-07 17:09:52 -05:00
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
java {
|
|
|
|
srcDirs = ["$buildDir/openapi/generated/src/main/java"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-03-11 20:22:55 -05:00
|
|
|
mainAvroSchemaJar.dependsOn generateAvroSchema
|
|
|
|
|
2020-03-25 21:43:28 -07:00
|
|
|
pegasus.main.generationModes = [PegasusGenerationMode.PEGASUS, PegasusGenerationMode.AVRO]
|
2021-06-03 13:24:33 -07:00
|
|
|
|
2022-05-03 19:38:05 -05:00
|
|
|
|
2024-01-22 11:46:04 -06:00
|
|
|
task generateJsonSchema(type: GenerateJsonSchemaTask, dependsOn: 'generateAvroSchema') {
|
2022-05-03 19:38:05 -05:00
|
|
|
it.setInputDirectory("$projectDir/src/mainGeneratedAvroSchema")
|
|
|
|
it.setOutputDirectory("$projectDir/src/generatedJsonSchema")
|
2023-09-07 17:09:52 -05:00
|
|
|
it.setEntityRegistryYaml("${project(':metadata-models').projectDir}/src/main/resources/entity-registry.yml")
|
2023-04-21 12:30:23 -05:00
|
|
|
}
|
2023-08-14 09:09:20 +05:30
|
|
|
|
2023-09-07 17:09:52 -05:00
|
|
|
// https://github.com/int128/gradle-swagger-generator-plugin#task-type-generateswaggercode
|
|
|
|
task openApiGenerate(type: GenerateSwaggerCode, dependsOn: 'generateJsonSchema') {
|
|
|
|
inputFile = file("$projectDir/src/generatedJsonSchema/combined/open-api.yaml")
|
|
|
|
outputDir = file("$buildDir/openapi/generated")
|
|
|
|
language = "spring"
|
|
|
|
components = ["models"]
|
|
|
|
templateDir = file("$projectDir/src/main/resources/JavaSpring")
|
|
|
|
additionalProperties = [
|
|
|
|
'group-id' : "io.datahubproject",
|
|
|
|
'dateLibrary' : "java8",
|
|
|
|
'java11' : "true",
|
|
|
|
'modelPropertyNaming': "original",
|
|
|
|
'modelPackage' : "io.datahubproject.openapi.generated"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
tasks.getByName("compileJava").dependsOn(openApiGenerate)
|
|
|
|
|
2025-03-10 22:43:31 +05:30
|
|
|
clean {
|
2023-09-07 17:09:52 -05:00
|
|
|
delete "$projectDir/src/generatedJsonSchema"
|
|
|
|
}
|