From 10dee0be5ec354a6f62500e66eac967f83ac025c Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Fri, 7 Jul 2023 13:44:16 -0400 Subject: [PATCH] Updated 3.1 updates in sample apps Simplified usage of Ranges in single-step-batch-job for filereader --- .../cloud/task/batch/autoconfigure/RangeConverter.java | 4 ---- .../flatfile/FlatFileItemReaderAutoConfiguration.java | 8 +++++++- .../flatfile/FlatFileItemReaderProperties.java | 6 +++--- spring-cloud-task-samples/single-step-batch-job/pom.xml | 2 +- spring-cloud-task-samples/timestamp/pom.xml | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java index 9e2da5b9..84248729 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java @@ -17,9 +17,7 @@ package org.springframework.cloud.task.batch.autoconfigure; import org.springframework.batch.item.file.transform.Range; -import org.springframework.boot.context.properties.ConfigurationPropertiesBinding; import org.springframework.core.convert.converter.Converter; -import org.springframework.stereotype.Component; /** * Converter for taking properties of format {@code start-end} or {@code start} (where @@ -29,8 +27,6 @@ import org.springframework.stereotype.Component; * @author Michael Minella * @since 2.3 */ -@Component -@ConfigurationPropertiesBinding public class RangeConverter implements Converter { @Override diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java index 5afce45b..866795dd 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java @@ -16,7 +16,9 @@ package org.springframework.cloud.task.batch.autoconfigure.flatfile; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.springframework.batch.item.file.FlatFileItemReader; @@ -35,6 +37,7 @@ import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cloud.task.batch.autoconfigure.RangeConverter; import org.springframework.context.annotation.Bean; /** @@ -86,7 +89,10 @@ public class FlatFileItemReaderAutoConfiguration { .fieldSetMapper(new MapFieldSetMapper()); } else if (this.properties.isFixedLength()) { - mapFlatFileItemReaderBuilder.fixedLength().columns(this.properties.getRanges().toArray(new Range[0])) + RangeConverter rangeConverter = new RangeConverter(); + List ranges = new ArrayList<>(); + this.properties.getRanges().forEach(range -> ranges.add(rangeConverter.convert(range))); + mapFlatFileItemReaderBuilder.fixedLength().columns(ranges.toArray(new Range[0])) .names(this.properties.getNames()).fieldSetMapper(new MapFieldSetMapper()) .beanMapperStrict(this.properties.isParsingStrict()); } diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java index afebe18c..e30a7eef 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java @@ -113,7 +113,7 @@ public class FlatFileItemReaderProperties { /** * The column ranges to be used to parse a fixed width file. */ - private List ranges = new ArrayList<>(); + private List ranges = new ArrayList<>(); /** * The names of the fields to be parsed from the file. @@ -373,7 +373,7 @@ public class FlatFileItemReaderProperties { * The column ranges to be used to parsed a fixed width file. * @return a list of {@link Range} instances */ - public List getRanges() { + public List getRanges() { return this.ranges; } @@ -381,7 +381,7 @@ public class FlatFileItemReaderProperties { * Column ranges for each field. * @param ranges list of ranges in start-end format (end is optional) */ - public void setRanges(List ranges) { + public void setRanges(List ranges) { this.ranges = ranges; } diff --git a/spring-cloud-task-samples/single-step-batch-job/pom.xml b/spring-cloud-task-samples/single-step-batch-job/pom.xml index d11fe877..00b53e20 100644 --- a/spring-cloud-task-samples/single-step-batch-job/pom.xml +++ b/spring-cloud-task-samples/single-step-batch-job/pom.xml @@ -78,7 +78,7 @@ org.springframework.cloud spring-cloud-starter-single-step-batch-job - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT org.springframework.batch diff --git a/spring-cloud-task-samples/timestamp/pom.xml b/spring-cloud-task-samples/timestamp/pom.xml index 24bdac17..289dd57b 100644 --- a/spring-cloud-task-samples/timestamp/pom.xml +++ b/spring-cloud-task-samples/timestamp/pom.xml @@ -7,7 +7,7 @@ timestamp-task jar Timestamp Task - 3.0.0-SNAPSHOT + 3.1.0-SNAPSHOT Spring Cloud Timestamp Task