From 2a5414af0fd7aa645cd4b426169405d5464f30ca Mon Sep 17 00:00:00 2001 From: wesley Date: Sun, 24 Nov 2024 17:24:43 +0900 Subject: [PATCH 1/3] Add function that accepts StepExecution parameter to-Partitioner-API --- .../batch/core/partition/support/Partitioner.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java index 2df66d1adb..9c9b7639a2 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java @@ -18,6 +18,7 @@ import java.util.Map; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.item.ExecutionContext; /** @@ -30,7 +31,7 @@ * @author Taeik Lim * @since 2.0 */ -@FunctionalInterface +// @FunctionalInterface public interface Partitioner { /** @@ -42,4 +43,8 @@ public interface Partitioner { */ Map partition(int gridSize); + default Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } + } From 04750d2ea186fa9be0326836ef973ac0074b7d11 Mon Sep 17 00:00:00 2001 From: wesley Date: Tue, 26 Nov 2024 09:21:29 +0900 Subject: [PATCH 2/3] Add function that accepts StepExecution parameter to Partitioner API --- .../batch/core/partition/support/Partitioner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java index 9c9b7639a2..fd19353602 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/Partitioner.java @@ -31,7 +31,7 @@ * @author Taeik Lim * @since 2.0 */ -// @FunctionalInterface +@FunctionalInterface public interface Partitioner { /** From 5ea810290b1fd095a2ff0df2f9336cc0b96a2387 Mon Sep 17 00:00:00 2001 From: wesley Date: Fri, 29 Nov 2024 19:37:34 +0900 Subject: [PATCH 3/3] Add Functions in the callers --- .../core/partition/support/MultiResourcePartitioner.java | 7 ++++++- .../batch/core/partition/support/SimplePartitioner.java | 6 ++++++ .../batch/core/partition/MinMaxPartitioner.java | 5 +++++ .../batch/samples/common/ColumnRangePartitioner.java | 5 +++++ .../samples/partitioning/remote/BasicPartitioner.java | 5 +++++ 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/MultiResourcePartitioner.java b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/MultiResourcePartitioner.java index 32cfe6f066..6cec0c308f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/MultiResourcePartitioner.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/MultiResourcePartitioner.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.Map; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.item.ExecutionContext; import org.springframework.core.io.Resource; import org.springframework.util.Assert; @@ -65,7 +66,7 @@ public void setKeyName(String keyName) { * Assign the filename of each of the injected resources to an * {@link ExecutionContext}. * - * @see Partitioner#partition(int) + * @see Partitioner#partition(StepExecution, int) */ @Override public Map partition(int gridSize) { @@ -86,4 +87,8 @@ public Map partition(int gridSize) { return map; } + @Override + public Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/SimplePartitioner.java b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/SimplePartitioner.java index 9e3ebbaa10..621ae88625 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/SimplePartitioner.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/partition/support/SimplePartitioner.java @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.Map; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.item.ExecutionContext; /** @@ -43,4 +44,9 @@ public Map partition(int gridSize) { return map; } + @Override + public Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } + } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/partition/MinMaxPartitioner.java b/spring-batch-core/src/test/java/org/springframework/batch/core/partition/MinMaxPartitioner.java index d46112f34c..4ff8f016de 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/partition/MinMaxPartitioner.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/partition/MinMaxPartitioner.java @@ -18,6 +18,7 @@ import java.util.Map; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.partition.support.SimplePartitioner; import org.springframework.batch.item.ExecutionContext; @@ -42,4 +43,8 @@ public Map partition(int gridSize) { return partition; } + @Override + public Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/samples/common/ColumnRangePartitioner.java b/spring-batch-samples/src/main/java/org/springframework/batch/samples/common/ColumnRangePartitioner.java index 0707873df0..a70a937b26 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/samples/common/ColumnRangePartitioner.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/samples/common/ColumnRangePartitioner.java @@ -20,6 +20,7 @@ import javax.sql.DataSource; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.partition.support.Partitioner; import org.springframework.batch.item.ExecutionContext; import org.springframework.jdbc.core.JdbcOperations; @@ -100,4 +101,8 @@ public Map partition(int gridSize) { return result; } + @Override + public Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/samples/partitioning/remote/BasicPartitioner.java b/spring-batch-samples/src/main/java/org/springframework/batch/samples/partitioning/remote/BasicPartitioner.java index 99a5b50b60..b1846904ce 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/samples/partitioning/remote/BasicPartitioner.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/samples/partitioning/remote/BasicPartitioner.java @@ -18,6 +18,7 @@ import java.util.Map; +import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.partition.support.SimplePartitioner; import org.springframework.batch.item.ExecutionContext; @@ -40,4 +41,8 @@ public Map partition(int gridSize) { return partitions; } + @Override + public Map partition(StepExecution stepExecution, int gridSize) { + return partition(gridSize); + } }