Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
8b01530
Bump versions for Spring Batch 6.0.3 support
acktsap May 15, 2026
40aeadf
Migrate Java module imports for Spring Batch 6.0.3
acktsap May 15, 2026
e93e422
Bump test dependencies for JUnit Jupiter 6 and Spring Boot 4
acktsap May 15, 2026
f18b67c
Rewrite Java tests for Spring Batch 6.0 API
acktsap May 15, 2026
9f040de
Migrate Java module to JSpecify nullability annotations
acktsap May 18, 2026
3745b46
Replace Spring Batch 6.0 deprecated APIs in Java tests
acktsap May 18, 2026
e9fdb21
Migrate Java samples to Spring Batch 6.0 and Boot 4.0
acktsap May 20, 2026
2e68150
Bump Kotlin toolchain to 2.2.21 for Spring Batch 6
acktsap May 20, 2026
9fc0e1d
Migrate Kotlin module imports for Spring Batch 6.0.3
acktsap May 20, 2026
385670d
Reformat Kotlin sources with ktlint 14
acktsap May 20, 2026
0d646f9
Remove DSL methods for APIs removed in Spring Batch 6.0
acktsap May 20, 2026
c46919e
Add Java bridge for F-bound capture in JobBuilderDsl
acktsap May 22, 2026
95fc930
Route SimpleStepBuilder/PartitionStepBuilder construction through bridge
acktsap May 22, 2026
36348fb
Add ChunkListener generic type arguments
acktsap May 22, 2026
3211214
Remove throttleLimit DSL (removed in Spring Batch 6.0)
acktsap May 22, 2026
13300cf
Replace JobStepBuilder.launcher with operator (Spring Batch 6.0)
acktsap May 22, 2026
76ab747
Migrate Kotlin tests to Spring Batch 6 JobExecution/StepExecution APIs
acktsap May 22, 2026
377b209
Split @EnableJdbcJobRepository from @EnableBatchProcessing (Spring Ba…
acktsap May 26, 2026
3089a65
Register StepExecutions with JobExecution explicitly (Spring Batch 6.0)
acktsap May 26, 2026
8b76c0c
Format Kotlin tests with ktlint
acktsap May 26, 2026
55aaf51
Propagate Spring Batch 6.0 deprecations to Kotlin DSL
acktsap May 27, 2026
bdbc9f1
Drop stale @Deprecated on tasklet DSL methods (un-deprecated in Sprin…
acktsap Jun 1, 2026
1477a43
Add ChunkOrientedStepBuilderDsl
acktsap Jun 2, 2026
5d9cd64
Bump Spring Batch to 6.0.4
acktsap Jun 5, 2026
d71fe2e
Document PartitionStepBuilderDsl scoping design with KDoc
acktsap Jun 8, 2026
40b1b38
Bump Spring Boot to 4.0.7
acktsap Jun 12, 2026
5dbd804
Bump Gradle wrapper to 9.5.1
acktsap Jun 12, 2026
1a64a34
Migrate Kotlin autoconfigure to Spring Boot 4
acktsap Jun 12, 2026
de7d0d2
Migrate Kotlin samples to Spring Boot 4 + Spring Batch 6 imports
acktsap Jun 15, 2026
81526f0
Remove Kotlin sample directories for APIs removed in Spring Batch 6.0
acktsap Jun 15, 2026
ac894ed
Add ChunkListener type arguments in Kotlin samples
acktsap Jun 15, 2026
2e587aa
Migrate StepExecutionSplitter sample to Spring Batch 6.0 API
acktsap Jun 23, 2026
f44c24a
Remove kotlin-dsl-sample directories for APIs absent in ChunkOriented…
acktsap Jun 24, 2026
c04cb5a
Remove kotlin-dsl-sample directories for APIs absent in ChunkOriented…
acktsap Jun 24, 2026
a5f66e1
Migrate kotlin-dsl-sample chunkorientedstep samples to ChunkOrientedS…
acktsap Jun 24, 2026
b99a336
Add JobStepBuilderDsl.operator sample
acktsap Jun 24, 2026
05ebe47
Reformat chunklistener and operator samples to satisfy ktlint
acktsap Jun 26, 2026
4454ce0
Remove kotlin-dsl-sample taskletstep listenerannotation sample
acktsap Jun 26, 2026
91cad98
Polish jobStep tests, samples
acktsap Jun 28, 2026
429c816
Polish flowStep tests, samples
acktsap Jun 28, 2026
ae332a2
Move step integration tests into step package
acktsap Jun 28, 2026
d42eff3
Polish taskletStep tests, samples
acktsap Jun 28, 2026
4747c26
Document step sample invariants
acktsap Jun 28, 2026
014a3df
Polish partitionStep tests, samples
acktsap Jul 6, 2026
7098111
Move taskletStep redundancy check to integration test
acktsap Jul 6, 2026
21c069a
Polish chunkorientedStep tests, samples
acktsap Jul 7, 2026
cbfa78d
Polish Kotlin formatting
acktsap Jul 8, 2026
467c18d
Polish stepBuilderDsl tests, samples
acktsap Jul 12, 2026
a8b7579
Polish jobBuilderDsl tests, samples
acktsap Jul 12, 2026
5f02628
Document job and flow DSL boundaries
acktsap Jul 12, 2026
2f2cbf9
Split transition DSL integration tests
acktsap Jul 12, 2026
da7f385
Cover taskletBean transaction manager paths
acktsap Jul 13, 2026
82ebb28
Polish Kotlin job DSL integration tests
acktsap Sep 6, 2026
8713871
Polish Kotlin DSL unit tests
acktsap Sep 6, 2026
48455d4
Clarify Kotlin job DSL builder construction
acktsap Sep 6, 2026
a99f5e9
Reorganize Kotlin DSL job samples
acktsap Sep 6, 2026
19065d3
Split job step creation integration tests
acktsap Sep 6, 2026
84f2346
Clarify adapter contracts
acktsap Sep 6, 2026
090cf74
Polish adapter tests
acktsap Sep 6, 2026
fd41377
Cover optional delegate lifecycles
acktsap Sep 6, 2026
ef7e9fe
Cover flow initial step bean selection
acktsap Sep 6, 2026
83f07ca
Polish adapter samples for Spring Batch 6
acktsap Sep 6, 2026
47104ed
Polish ClearRunIdIncrementer
acktsap Sep 7, 2026
c4f5f1b
Polish ClearRunIdIncrementer samples
acktsap Sep 7, 2026
8a85a47
Standardize Java logger declarations
acktsap Sep 7, 2026
9a765a1
Open metadata job internals for extension
acktsap Sep 7, 2026
3a1ccd1
Fix Kotlin module Javadoc generation
acktsap Sep 7, 2026
3634fe0
Polish metadata deletion job
acktsap Sep 7, 2026
84a8d7e
Hold deletion upper bound in step execution context
acktsap Sep 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ repositories {

dependencies {
// see also (compatibility matrix) : https://docs.gradle.org/current/userguide/compatibility.html
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20")
implementation("org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin:11.6.1")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.21")
implementation("org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin:14.2.0")
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ plugins {
id("org.jlleitschuh.gradle.ktlint")
}


/* kotlin */

kotlin {
Expand All @@ -21,7 +20,7 @@ kotlin {
"-Xjsr305=strict", // enable jsr305 null-safety in kotlin
)
jvmTarget = JvmTarget.JVM_17 // make class files for this version
languageVersion = KotlinVersion.KOTLIN_1_6 // language feature level
apiVersion = KotlinVersion.KOTLIN_1_6 // std api level
languageVersion = KotlinVersion.KOTLIN_2_2 // language feature level
apiVersion = KotlinVersion.KOTLIN_2_2 // std api level
}
}
28 changes: 19 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,31 +1,41 @@
[versions]
spring-boot = "3.4.0"
spring-batch = "5.2.0"
spring-boot = "4.0.7"
spring-batch = "6.0.4"
# spring-jdbc version should follow minor version described in 'spring-framework.version'
# https://github.com/spring-projects/spring-batch/blob/main/pom.xml
spring-jdbc = "6.2.0"
spring-jdbc = "7.0.6"
# spring-data-mongodb / mongodb-driver versions should follow what 'spring-batch.version' pins
# https://github.com/spring-projects/spring-batch/blob/main/pom.xml
spring-data-mongodb = "5.0.6"
mongodb-driver = "5.6.5"
slf4j = "2.0.17"
reactor-core = "3.5.0"
reactor-core = "3.8.4"
findbugs-jsr305 = "3.0.2"
jspecify = "1.0.0"

# test-only
junit = "5.11.+"
junit = "6.0.+"
assertj = "3.27.+"
mockito = "5.15.+"
mockk = "1.13.+"
h2 = "2.3.+"
log4j = "2.24.+"
mockito = "5.20.+"
mockk = "1.14.+"
h2 = "2.4.+"
log4j = "2.25.+"

[libraries]
spring-boot-autoconfigure = { module = "org.springframework.boot:spring-boot-autoconfigure", version.ref = "spring-boot" }
spring-boot-batch-jdbc = { module = "org.springframework.boot:spring-boot-batch-jdbc", version.ref = "spring-boot" }
spring-data-mongodb = { module = "org.springframework.data:spring-data-mongodb", version.ref = "spring-data-mongodb" }
mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "mongodb-driver" }
spring-batch-core = { module = "org.springframework.batch:spring-batch-core", version.ref = "spring-batch" }
spring-jdbc = { module = "org.springframework:spring-jdbc", version.ref = "spring-jdbc" }
slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "reactor-core" }
findbugs-jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "findbugs-jsr305" }
jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" }

# test-only
junit = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit" }
assertj = { module = "org.assertj:assertj-core", version.ref = "assertj" }
mockito = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
6 changes: 6 additions & 0 deletions spring-batch-plus-kotlin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ plugins {
id("spring.batch.plus.maven-publish-conventions")
}

tasks.javadoc {
// Java sources only bridge Kotlin compiler limitations and expose no public API to document.
exclude("**/*.java")
}

dependencies {
api(project(":spring-batch-plus"))

Expand All @@ -14,6 +19,7 @@ dependencies {
testImplementation(libs.spring.batch.core)
testImplementation(libs.spring.jdbc)
testImplementation(libs.reactor.core)
testRuntimeOnly(libs.junit.platform.launcher)
testRuntimeOnly(libs.h2)
testRuntimeOnly(libs.log4j)
}
Loading
Loading