Skip to content

Commit f0953fb

Browse files
authored
Fix more Java SDK build edge cases (#69628)
1 parent 4d56e6c commit f0953fb

4 files changed

Lines changed: 26 additions & 22 deletions

File tree

java-sdk/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,14 +419,14 @@ manager, before sending the vote — should run against the source package in
419419
```bash
420420
cd apache-airflow-java-sdk-<VERSION>
421421
gradle wrapper \
422-
--gradle-version <GRADLE-VERSION> \
422+
--gradle-distribution-url <GRADLE-DISTRIBUTION-URL> \
423423
--gradle-distribution-sha256-sum <GRADLE-DISTRIBUTION-SHA>
424424
./gradlew build
425425
```
426426

427-
Use the values for `<GRADLE-VERSION>` and `<GRADLE-DISTRIBUTION-SHA>` from
428-
`distributionUrl` and `distributionSha256Sum` in the bundled
429-
`gradle/wrapper/gradle-wrapper.properties`.
427+
Use values from `distributionUrl` and `distributionSha256Sum` in the bundled
428+
`gradle/wrapper/gradle-wrapper.properties` to fill in
429+
`<GRADLE-DISTRIBUTION-URL>` and `<GRADLE-DISTRIBUTION-SHA>`.
430430

431431
6. **Staged-binary smoke test.** Resolve the staged Nexus artifacts from a
432432
throwaway project to confirm they're actually consumable, following the

java-sdk/bom/build.gradle.kts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,13 @@ val publishedArtifacts =
7878
val verifyBomCoverage by tasks.registering {
7979
group = "verification"
8080
description = "Fail if airflow-sdk-bom does not constrain the same set of published Java SDK artifacts."
81+
82+
// Capture early to keep compatibility to the Gradle configuration cache.
83+
val published = publishedArtifacts
84+
val bom = bomArtifacts
8185
doLast {
82-
val missing = (publishedArtifacts - bomArtifacts).sorted()
83-
val stale = (bomArtifacts - publishedArtifacts).sorted()
86+
val missing = (published - bom).sorted()
87+
val stale = (bom - published).sorted()
8488
if (missing.isNotEmpty() || stale.isNotEmpty()) {
8589
throw GradleException(
8690
buildString {

java-sdk/buildSrc/build.gradle.kts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
* under the License.
1818
*/
1919

20+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
21+
2022
plugins {
2123
`kotlin-dsl`
2224
}
@@ -26,6 +28,15 @@ repositories {
2628
gradlePluginPortal()
2729
}
2830

31+
// Pin Java and Kotlin bytecode targets so they stay aligned to avoid warning on
32+
// misaligned Java and Kotlin target versions. (This is for the build logic and
33+
// unrelated to the Java 11 target set in the SDK modules.)
34+
java {
35+
sourceCompatibility = JavaVersion.VERSION_11
36+
targetCompatibility = JavaVersion.VERSION_11
37+
}
38+
kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_11 } }
39+
2940
dependencies {
3041
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0")
3142
implementation("com.diffplug.spotless:spotless-plugin-gradle:7.2.1")

java-sdk/sdk/build.gradle.kts

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ val schemaBaseUrl = "https://airflow.staged.apache.org/schemas/supervisor-schema
3939
val schemaInput = layout.projectDirectory.file("schema/schema.json")
4040
val pointersDir = layout.buildDirectory.dir("schema-pointers/main")
4141
val jsonSchemaPackage = "org.apache.airflow.sdk.execution.comm"
42+
val schemaModelsDir = layout.buildDirectory.dir("generate-resources/main/src/main/java")
4243
val discriminatorDir = layout.buildDirectory.dir("generated-resources/main/src/main/kotlin")
4344

4445
dependencies {
@@ -241,11 +242,7 @@ val javadocJar by tasks.registering(Jar::class) {
241242
jsonSchema2Pojo {
242243
setSource(listOf(pointersDir.get().asFile))
243244
targetPackage = jsonSchemaPackage
244-
targetDirectory =
245-
layout.buildDirectory
246-
.dir("generate-resources/main/src/main/java")
247-
.get()
248-
.asFile
245+
targetDirectory = schemaModelsDir.get().asFile
249246
setAnnotationStyle("jackson")
250247
dateTimeType = "java.time.OffsetDateTime"
251248
generateBuilders = false
@@ -261,8 +258,8 @@ jsonSchema2Pojo {
261258

262259
sourceSets {
263260
main {
264-
java.srcDir(layout.buildDirectory.dir("generate-resources/main/src/main/java"))
265-
kotlin.srcDir(discriminatorDir)
261+
java.srcDir(tasks.named("generateJsonSchema2Pojo").map { schemaModelsDir })
262+
kotlin.srcDir(tasks.named("generateDiscriminator").map { discriminatorDir })
266263
}
267264
}
268265

@@ -286,16 +283,8 @@ tasks.named("generateJsonSchema2Pojo") {
286283
dependsOn("generatePointers")
287284
}
288285

289-
tasks.named("compileJava") {
290-
dependsOn("generateJsonSchema2Pojo")
291-
}
292-
293286
tasks.named("compileKotlin") {
294-
dependsOn("generateJsonSchema2Pojo", "generateDiscriminator")
295-
}
296-
297-
tasks.named("runKtlintCheckOverMainSourceSet") {
298-
dependsOn("generateJsonSchema2Pojo", "generateDiscriminator")
287+
dependsOn("generateJsonSchema2Pojo")
299288
}
300289

301290
tasks.matching { it.name.startsWith("dokkaGenerate") }.configureEach {

0 commit comments

Comments
 (0)