@@ -19,7 +19,6 @@ dependencies {
1919
2020 implementation(platform(libs.micronaut.platform))
2121 implementation(libs.bundles.micronaut)
22- implementation(libs.commons.io)
2322 implementation(libs.jakarta.annotation.api)
2423 implementation(libs.jakarta.ws.rs.api)
2524 implementation(libs.jakarta.validation.api)
@@ -44,7 +43,8 @@ dependencies {
4443
4544val airbyteApiProblemsSpecFile = " $projectDir /src/main/openapi/api-problems.yaml"
4645
47- val genAirbyteApiProblems = tasks.register<GenerateTask >(" genAirbyteApiProblems" ) {
46+ val genAirbyteApiProblems =
47+ tasks.register<GenerateTask >(" genAirbyteApiProblems" ) {
4848 val serverOutputDir = " ${getLayout().buildDirectory.get()} /generated/api/problems"
4949
5050 inputs.file(airbyteApiProblemsSpecFile)
@@ -61,21 +61,22 @@ val genAirbyteApiProblems = tasks.register<GenerateTask>("genAirbyteApiProblems"
6161
6262 generateApiDocumentation = false
6363
64- configOptions = mapOf (
65- " enumPropertyNaming" to " UPPERCASE" ,
66- " generatePom" to " false" ,
67- " interfaceOnly" to " true" ,
68- " useJakartaEe" to " true" ,
69- )
64+ configOptions =
65+ mapOf (
66+ " enumPropertyNaming" to " UPPERCASE" ,
67+ " generatePom" to " false" ,
68+ " interfaceOnly" to " true" ,
69+ " useJakartaEe" to " true" ,
70+ )
7071
7172 doLast {
72- // Remove unnecessary invoker classes to avoid Micronaut picking them up and registering them as beans
73- delete(" ${outputDir.get()} /src/gen/java/${invokerPackage.get().replace(" ." , " /" ).replace(" -" ," _" )} " )
73+ // Remove unnecessary invoker classes to avoid Micronaut picking them up and registering them as beans
74+ delete(" ${outputDir.get()} /src/gen/java/${invokerPackage.get().replace(" ." , " /" ).replace(" -" ," _" )} " )
7475
75- val generatedModelPath = " ${outputDir.get()} /src/gen/java/${modelPackage.get().replace(" ." , " /" ).replace(" -" , " _" )} "
76- generateProblemThrowables(generatedModelPath)
76+ val generatedModelPath = " ${outputDir.get()} /src/gen/java/${modelPackage.get().replace(" ." , " /" ).replace(" -" , " _" )} "
77+ generateProblemThrowables(generatedModelPath)
7778 }
78- }
79+ }
7980
8081sourceSets {
8182 main {
@@ -97,13 +98,12 @@ sourceSets {
9798 }
9899}
99100
100-
101101tasks.withType<JavaCompile >().configureEach {
102102 options.compilerArgs = listOf (" -parameters" )
103103}
104104
105105tasks.named(" compileKotlin" ) {
106- dependsOn(genAirbyteApiProblems)
106+ dependsOn(genAirbyteApiProblems)
107107}
108108
109109// uses afterEvaluate because at configuration time, the kspKotlin task does not exist.
@@ -117,41 +117,43 @@ afterEvaluate {
117117// still runs into spotbug issues. Working theory is that
118118// generated code is being picked up. Disable as a short-term fix.
119119tasks.named(" spotbugsMain" ) {
120- enabled = false
120+ enabled = false
121121}
122122
123123private fun generateProblemThrowables (problemsOutputDir : String ) {
124- val dir = file(problemsOutputDir)
124+ val dir = file(problemsOutputDir)
125125
126- val throwableDir = File (" ${getLayout().buildDirectory.get()} /generated/api/problems/src/gen/kotlin/throwable" )
127- if (! throwableDir.exists()) {
128- throwableDir.mkdirs()
129- }
126+ val throwableDir = File (" ${getLayout().buildDirectory.get()} /generated/api/problems/src/gen/kotlin/throwable" )
127+ if (! throwableDir.exists()) {
128+ throwableDir.mkdirs()
129+ }
130130
131- dir.walk().forEach { errorFile ->
132- if (errorFile.name.endsWith(" ProblemResponse.java" )) {
133- val errorFileText = errorFile.readText()
134- val problemName: String = " public class (\\ S+)ProblemResponse " .toRegex().find(errorFileText)!! .destructured.component1()
135- var dataFieldType: String = " private (@Valid )?\n (\\ S+) data;" .toRegex().find(errorFileText)!! .destructured.component2()
136- var dataFieldImport = " import io.airbyte.api.problems.model.generated.$dataFieldType "
137-
138- if (dataFieldType == " Object" ) {
139- dataFieldType = " Any"
140- dataFieldImport = " "
141- }
142-
143- val responseClassName = " ${problemName} ProblemResponse"
144- val throwableClassName = " ${problemName} Problem"
145-
146- val template = File (" $projectDir /src/main/resources/templates/ThrowableProblem.kt.txt" )
147- val throwableText = template.readText()
148- .replace(" <problem-class-name>" , responseClassName)
149- .replace(" <problem-throwable-class-name>" , throwableClassName)
150- .replace(" <problem-data-class-import>" , dataFieldImport)
151- .replace(" <problem-data-class-name>" , dataFieldType)
152-
153- val throwableFile = File (throwableDir, " $throwableClassName .kt" )
154- throwableFile.writeText(throwableText)
155- }
131+ dir.walk().forEach { errorFile ->
132+ if (errorFile.name.endsWith(" ProblemResponse.java" )) {
133+ val errorFileText = errorFile.readText()
134+ val problemName: String = " public class (\\ S+)ProblemResponse " .toRegex().find(errorFileText)!! .destructured.component1()
135+ var dataFieldType: String = " private (@Valid )?\n (\\ S+) data;" .toRegex().find(errorFileText)!! .destructured.component2()
136+ var dataFieldImport = " import io.airbyte.api.problems.model.generated.$dataFieldType "
137+
138+ if (dataFieldType == " Object" ) {
139+ dataFieldType = " Any"
140+ dataFieldImport = " "
141+ }
142+
143+ val responseClassName = " ${problemName} ProblemResponse"
144+ val throwableClassName = " ${problemName} Problem"
145+
146+ val template = File (" $projectDir /src/main/resources/templates/ThrowableProblem.kt.txt" )
147+ val throwableText =
148+ template
149+ .readText()
150+ .replace(" <problem-class-name>" , responseClassName)
151+ .replace(" <problem-throwable-class-name>" , throwableClassName)
152+ .replace(" <problem-data-class-import>" , dataFieldImport)
153+ .replace(" <problem-data-class-name>" , dataFieldType)
154+
155+ val throwableFile = File (throwableDir, " $throwableClassName .kt" )
156+ throwableFile.writeText(throwableText)
156157 }
158+ }
157159}
0 commit comments