From 145c31b86f0fd4cc656523837c2279e3cf1f27dd Mon Sep 17 00:00:00 2001 From: Tatiana Slednikova Date: Thu, 16 Mar 2023 00:58:37 +0300 Subject: [PATCH] Change JobParameters to HashMap Resolves #4179 --- .../batch/core/JobParameters.java | 8 +++---- .../batch/core/JobParametersBuilder.java | 10 ++++---- .../batch/core/JobParametersBuilderTests.java | 23 ++++++++----------- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java index 10982dedd..3589facb1 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,7 @@ import java.time.LocalTime; import java.util.ArrayList; import java.util.Collections; import java.util.Date; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -58,7 +58,7 @@ public class JobParameters implements Serializable { * Default constructor. */ public JobParameters() { - this.parameters = new LinkedHashMap<>(); + this.parameters = new HashMap<>(); } /** @@ -68,7 +68,7 @@ public class JobParameters implements Serializable { * {@link JobParameter} value. */ public JobParameters(Map> parameters) { - this.parameters = new LinkedHashMap<>(parameters); + this.parameters = new HashMap<>(parameters); } /** diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java index 1e954f2ba..cc230128f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,9 +21,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Date; import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.Map; -import java.util.Properties; import org.springframework.batch.core.explore.JobExplorer; import org.springframework.lang.NonNull; @@ -57,7 +55,7 @@ public class JobParametersBuilder { * Default constructor. Initializes the builder with empty parameters. */ public JobParametersBuilder() { - this.parameterMap = new LinkedHashMap<>(); + this.parameterMap = new HashMap<>(); } /** @@ -66,7 +64,7 @@ public class JobParametersBuilder { */ public JobParametersBuilder(JobExplorer jobExplorer) { this.jobExplorer = jobExplorer; - this.parameterMap = new LinkedHashMap<>(); + this.parameterMap = new HashMap<>(); } /** @@ -85,7 +83,7 @@ public class JobParametersBuilder { */ public JobParametersBuilder(JobParameters jobParameters, JobExplorer jobExplorer) { this.jobExplorer = jobExplorer; - this.parameterMap = new LinkedHashMap<>(jobParameters.getParameters()); + this.parameterMap = new HashMap<>(jobParameters.getParameters()); } /** diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java index 2ae248a82..53974931f 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2022 the original author or authors. + * Copyright 2008-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Properties; +import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -29,6 +29,7 @@ import org.springframework.batch.core.explore.JobExplorer; import org.springframework.batch.core.job.SimpleJob; import org.springframework.batch.core.launch.support.RunIdIncrementer; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -121,31 +122,27 @@ class JobParametersBuilderTests { } @Test - void testOrderedTypes() { + void testNotOrderedTypes() { this.parametersBuilder.addDate("SCHEDULE_DATE", date); this.parametersBuilder.addLong("LONG", 1L); this.parametersBuilder.addString("STRING", "string value"); - Iterator parameters = this.parametersBuilder.toJobParameters().getParameters().keySet().iterator(); - assertEquals("SCHEDULE_DATE", parameters.next()); - assertEquals("LONG", parameters.next()); - assertEquals("STRING", parameters.next()); + Set parameters = this.parametersBuilder.toJobParameters().getParameters().keySet(); + assertThat(parameters).containsExactlyInAnyOrder("STRING", "LONG", "SCHEDULE_DATE"); } @Test - void testOrderedStrings() { + void testNotOrderedStrings() { this.parametersBuilder.addString("foo", "value foo"); this.parametersBuilder.addString("bar", "value bar"); this.parametersBuilder.addString("spam", "value spam"); - Iterator parameters = this.parametersBuilder.toJobParameters().getParameters().keySet().iterator(); - assertEquals("foo", parameters.next()); - assertEquals("bar", parameters.next()); - assertEquals("spam", parameters.next()); + Set parameters = this.parametersBuilder.toJobParameters().getParameters().keySet(); + assertThat(parameters).containsExactlyInAnyOrder("foo", "bar", "spam"); } @Test void testAddJobParameter() { JobParameter jobParameter = new JobParameter("bar", String.class); - this.parametersBuilder.addParameter("foo", jobParameter); + this.parametersBuilder.addJobParameter("foo", jobParameter); Map> parameters = this.parametersBuilder.toJobParameters().getParameters(); assertEquals(1, parameters.size()); assertEquals("bar", parameters.get("foo").getValue());