diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java index bce53a75..f1c72e3d 100644 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java +++ b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java @@ -197,10 +197,10 @@ public class TaskJobLauncherApplicationRunner extends JobLauncherApplicationRunn } private JobParameters removeNonIdentifying(JobParameters parameters) { - Map parameterMap = parameters.getParameters(); - HashMap copy = new HashMap<>(); + Map> parameterMap = parameters.getParameters(); + HashMap> copy = new HashMap<>(); - for (Map.Entry parameter : parameterMap.entrySet()) { + for (Map.Entry> parameter : parameterMap.entrySet()) { if (parameter.getValue().isIdentifying()) { copy.put(parameter.getKey(), parameter.getValue()); } @@ -215,7 +215,7 @@ public class TaskJobLauncherApplicationRunner extends JobLauncherApplicationRunn } private JobParameters merge(JobParameters parameters, JobParameters additionals) { - Map merged = new HashMap<>(); + Map> merged = new HashMap<>(); merged.putAll(parameters.getParameters()); merged.putAll(additionals.getParameters()); return new JobParameters(merged); diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java index 7078e4fe..11b729c2 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java @@ -19,9 +19,9 @@ package org.springframework.cloud.task.configuration.observation; import io.micrometer.common.docs.KeyName; import io.micrometer.observation.Observation; import io.micrometer.observation.ObservationConvention; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; -enum TaskDocumentedObservation implements DocumentedObservation { +enum TaskDocumentedObservation implements ObservationDocumentation { /** * Observation created when a task runner is executed. diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java index 707aa0db..dffd8015 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java @@ -16,6 +16,8 @@ package org.springframework.cloud.task.configuration.observation; +import java.util.function.Supplier; + import io.micrometer.observation.Observation; /** @@ -24,7 +26,7 @@ import io.micrometer.observation.Observation; * @author Marcin Grzejszczak * @since 3.0.0 */ -public class TaskObservationContext extends Observation.Context { +public class TaskObservationContext extends Observation.Context implements Supplier { private final String beanName; @@ -36,4 +38,9 @@ public class TaskObservationContext extends Observation.Context { return beanName; } + @Override + public TaskObservationContext get() { + return this; + } + } diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java index a5772067..e5a61c82 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java @@ -19,7 +19,7 @@ package org.springframework.cloud.task.listener; import io.micrometer.common.docs.KeyName; import io.micrometer.observation.Observation; import io.micrometer.observation.ObservationConvention; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * Enumeration for task execution observations. @@ -27,7 +27,7 @@ import io.micrometer.observation.docs.DocumentedObservation; * @author Glenn Renfro * @since 3.0.0 */ -public enum TaskExecutionObservation implements DocumentedObservation { +public enum TaskExecutionObservation implements ObservationDocumentation { /** * Metrics created around a task execution. diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java index 4ca36dba..84de4b18 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java @@ -16,6 +16,8 @@ package org.springframework.cloud.task.listener; +import java.util.function.Supplier; + import io.micrometer.observation.Observation; import io.micrometer.observation.ObservationHandler; @@ -27,7 +29,8 @@ import org.springframework.cloud.task.repository.TaskExecution; * @author Glenn Renfro * @since 3.0.0 */ -public class TaskExecutionObservationContext extends Observation.Context { +public class TaskExecutionObservationContext extends Observation.Context + implements Supplier { private final TaskExecution taskExecution; @@ -59,4 +62,9 @@ public class TaskExecutionObservationContext extends Observation.Context { this.status = status; } + @Override + public TaskExecutionObservationContext get() { + return this; + } + } diff --git a/spring-cloud-task-core/src/test/java/org/springframework/cloud/task/micrometer/TaskObservationsTests.java b/spring-cloud-task-core/src/test/java/org/springframework/cloud/task/micrometer/TaskObservationsTests.java index a4c3b65f..3533fb2c 100644 --- a/spring-cloud-task-core/src/test/java/org/springframework/cloud/task/micrometer/TaskObservationsTests.java +++ b/spring-cloud-task-core/src/test/java/org/springframework/cloud/task/micrometer/TaskObservationsTests.java @@ -51,6 +51,9 @@ import static org.springframework.cloud.task.listener.TaskObservations.UNKNOWN; */ public class TaskObservationsTests { + /** + * Prefix for the spring cloud task project. + */ public static final String PREFIX = "spring.cloud.task"; private TaskObservations taskObservations; diff --git a/spring-cloud-task-samples/batch-events/pom.xml b/spring-cloud-task-samples/batch-events/pom.xml index 8fa30d7c..de34c641 100644 --- a/spring-cloud-task-samples/batch-events/pom.xml +++ b/spring-cloud-task-samples/batch-events/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -96,14 +96,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/batch-job/pom.xml b/spring-cloud-task-samples/batch-job/pom.xml index 33b76e57..e5191665 100644 --- a/spring-cloud-task-samples/batch-job/pom.xml +++ b/spring-cloud-task-samples/batch-job/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -109,14 +109,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/jpa-sample/pom.xml b/spring-cloud-task-samples/jpa-sample/pom.xml index af58bf1d..5840b2ed 100644 --- a/spring-cloud-task-samples/jpa-sample/pom.xml +++ b/spring-cloud-task-samples/jpa-sample/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -111,14 +111,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/multiple-datasources/pom.xml b/spring-cloud-task-samples/multiple-datasources/pom.xml index 5e93729c..3bd26ec5 100644 --- a/spring-cloud-task-samples/multiple-datasources/pom.xml +++ b/spring-cloud-task-samples/multiple-datasources/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -116,14 +116,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/partitioned-batch-job/pom.xml b/spring-cloud-task-samples/partitioned-batch-job/pom.xml index 4c1143a7..06c556d3 100644 --- a/spring-cloud-task-samples/partitioned-batch-job/pom.xml +++ b/spring-cloud-task-samples/partitioned-batch-job/pom.xml @@ -12,7 +12,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT 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 0ef0dd5f..f884a635 100644 --- a/spring-cloud-task-samples/single-step-batch-job/pom.xml +++ b/spring-cloud-task-samples/single-step-batch-job/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT diff --git a/spring-cloud-task-samples/task-events/pom.xml b/spring-cloud-task-samples/task-events/pom.xml index 8c0a7b23..32e7732e 100644 --- a/spring-cloud-task-samples/task-events/pom.xml +++ b/spring-cloud-task-samples/task-events/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -69,14 +69,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/task-observations/pom.xml b/spring-cloud-task-samples/task-observations/pom.xml index 33249f98..0af885ab 100644 --- a/spring-cloud-task-samples/task-observations/pom.xml +++ b/spring-cloud-task-samples/task-observations/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT diff --git a/spring-cloud-task-samples/taskprocessor/pom.xml b/spring-cloud-task-samples/taskprocessor/pom.xml index 78512438..665cb8db 100644 --- a/spring-cloud-task-samples/taskprocessor/pom.xml +++ b/spring-cloud-task-samples/taskprocessor/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -122,14 +122,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/tasksink/pom.xml b/spring-cloud-task-samples/tasksink/pom.xml index ad1f3647..3cbe5e55 100644 --- a/spring-cloud-task-samples/tasksink/pom.xml +++ b/spring-cloud-task-samples/tasksink/pom.xml @@ -15,7 +15,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -81,14 +81,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-samples/timestamp/pom.xml b/spring-cloud-task-samples/timestamp/pom.xml index 91b10655..7d588705 100644 --- a/spring-cloud-task-samples/timestamp/pom.xml +++ b/spring-cloud-task-samples/timestamp/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.0-M5 + 3.0.0-SNAPSHOT @@ -127,14 +127,6 @@ org.springframework.boot spring-boot-maven-plugin - - - process-aot - - process-aot - - - org.apache.maven.plugins diff --git a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParameterEvent.java b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParameterEvent.java index c9f8f988..212a164c 100644 --- a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParameterEvent.java +++ b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParameterEvent.java @@ -17,6 +17,7 @@ package org.springframework.cloud.task.batch.listener.support; import java.util.Date; +import java.util.Objects; import org.springframework.batch.core.JobParameter; @@ -31,8 +32,6 @@ public class JobParameterEvent { private Object parameter; - private JobParameterEvent.ParameterType parameterType; - private boolean identifying; public JobParameterEvent() { @@ -40,7 +39,6 @@ public class JobParameterEvent { public JobParameterEvent(JobParameter jobParameter) { this.parameter = jobParameter.getValue(); - this.parameterType = ParameterType.convert(jobParameter.getType()); this.identifying = jobParameter.isIdentifying(); } @@ -61,13 +59,6 @@ public class JobParameterEvent { } } - /** - * @return a ParameterType representing the type of this parameter. - */ - public JobParameterEvent.ParameterType getType() { - return this.parameterType; - } - @Override public boolean equals(Object obj) { if (!(obj instanceof JobParameterEvent)) { @@ -79,51 +70,19 @@ public class JobParameterEvent { } JobParameterEvent rhs = (JobParameterEvent) obj; - return this.parameter == null ? rhs.parameter == null && this.parameterType == rhs.parameterType - : this.parameter.equals(rhs.parameter); + return Objects.equals(this.parameter, rhs.parameter); } @Override public String toString() { - return this.parameter == null ? null : (this.parameterType == JobParameterEvent.ParameterType.DATE - ? "" + ((Date) this.parameter).getTime() : this.parameter.toString()); + return this.parameter == null ? null : this.parameter.toString(); } @Override public int hashCode() { final int BASE_HASH = 7; final int MULTIPLIER_HASH = 21; - return BASE_HASH + MULTIPLIER_HASH - * (this.parameter == null ? this.parameterType.hashCode() : this.parameter.hashCode()); - } - - /** - * Enumeration representing the type of a JobParameter. - */ - public enum ParameterType { - - // @checkstyle:off - STRING, DATE, LONG, DOUBLE; - // @checkstyle:on - - public static ParameterType convert(JobParameter.ParameterType type) { - if (JobParameter.ParameterType.DATE.equals(type)) { - return DATE; - } - else if (JobParameter.ParameterType.DOUBLE.equals(type)) { - return DOUBLE; - } - else if (JobParameter.ParameterType.LONG.equals(type)) { - return LONG; - } - else if (JobParameter.ParameterType.STRING.equals(type)) { - return STRING; - } - else { - throw new IllegalArgumentException("Unable to convert type"); - } - } - + return BASE_HASH + MULTIPLIER_HASH * this.parameter.hashCode(); } } diff --git a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParametersEvent.java b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParametersEvent.java index 7fdf8044..c8fc1250 100644 --- a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParametersEvent.java +++ b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParametersEvent.java @@ -38,9 +38,9 @@ public class JobParametersEvent { this.parameters = new LinkedHashMap<>(); } - public JobParametersEvent(Map jobParameters) { + public JobParametersEvent(Map> jobParameters) { this.parameters = new LinkedHashMap<>(); - for (Map.Entry entry : jobParameters.entrySet()) { + for (Map.Entry> entry : jobParameters.entrySet()) { if (entry.getValue().getValue() instanceof String) { this.parameters.put(entry.getKey(), new JobParameterEvent(entry.getValue())); } diff --git a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java index 86712451..0def2faa 100644 --- a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java +++ b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java @@ -99,10 +99,10 @@ public class JobExecutionEventTests { public void testJobParameters() { String[] JOB_PARAM_KEYS = { "A", "B", "C", "D" }; Date testDate = new Date(); - JobParameter[] PARAMETERS = { new JobParameter("FOO", true), new JobParameter(1L, true), - new JobParameter(1D, true), new JobParameter(testDate, false) }; + JobParameter[] PARAMETERS = { new JobParameter("FOO", String.class), new JobParameter(1L, Long.class), + new JobParameter(1D, Double.class), new JobParameter(testDate, Date.class) }; - Map jobParamMap = new LinkedHashMap<>(); + Map> jobParamMap = new LinkedHashMap<>(); for (int paramCount = 0; paramCount < JOB_PARAM_KEYS.length; paramCount++) { jobParamMap.put(JOB_PARAM_KEYS[paramCount], PARAMETERS[paramCount]); } diff --git a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParameterEventTests.java b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParameterEventTests.java index d46da8a4..f4e50c33 100644 --- a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParameterEventTests.java +++ b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParameterEventTests.java @@ -34,7 +34,6 @@ public class JobParameterEventTests { public void testDefaultConstructor() { JobParameterEvent jobParameterEvent = new JobParameterEvent(); assertThat(jobParameterEvent.getValue()).isNull(); - assertThat(jobParameterEvent.getType()).isNull(); assertThat(jobParameterEvent.isIdentifying()).isFalse(); assertThat(jobParameterEvent).isEqualTo(new JobParameterEvent()); } @@ -43,16 +42,14 @@ public class JobParameterEventTests { public void testConstructor() { final String EXPECTED_VALUE = "FOO"; final Date EXPECTED_DATE_VALUE = new Date(); - JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, true); + JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, String.class); JobParameterEvent jobParameterEvent = new JobParameterEvent(jobParameter); assertThat(jobParameterEvent.getValue()).isEqualTo(EXPECTED_VALUE); - assertThat(jobParameterEvent.getType()).isEqualTo(JobParameterEvent.ParameterType.STRING); assertThat(jobParameterEvent.isIdentifying()).isTrue(); - jobParameter = new JobParameter(EXPECTED_DATE_VALUE, true); + jobParameter = new JobParameter(EXPECTED_DATE_VALUE, Date.class); jobParameterEvent = new JobParameterEvent(jobParameter); assertThat(jobParameterEvent.getValue()).isEqualTo(EXPECTED_DATE_VALUE); - assertThat(jobParameterEvent.getType()).isEqualTo(JobParameterEvent.ParameterType.DATE); assertThat(jobParameterEvent.isIdentifying()).isTrue(); assertThat(new JobParameterEvent(jobParameter).equals(jobParameterEvent)).isTrue(); } @@ -60,7 +57,7 @@ public class JobParameterEventTests { @Test public void testEquals() { final String EXPECTED_VALUE = "FOO"; - JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, true); + JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, String.class); JobParameterEvent jobParameterEvent = new JobParameterEvent(jobParameter); JobParameterEvent anotherJobParameterEvent = new JobParameterEvent(jobParameter); @@ -72,7 +69,7 @@ public class JobParameterEventTests { @Test public void testValidHashCode() { final String EXPECTED_VALUE = "FOO"; - JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, true); + JobParameter jobParameter = new JobParameter(EXPECTED_VALUE, String.class); JobParameterEvent jobParameterEvent = new JobParameterEvent(jobParameter); assertThat(jobParameterEvent.hashCode()).isNotNull(); } diff --git a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParametersEventTests.java b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParametersEventTests.java index 2f786f06..732b5c4c 100644 --- a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParametersEventTests.java +++ b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParametersEventTests.java @@ -33,13 +33,13 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class JobParametersEventTests { - private final static JobParameter STRING_PARAM = new JobParameter("FOO", true); + private final static JobParameter STRING_PARAM = new JobParameter("FOO", String.class); - private final static JobParameter DATE_PARAM = new JobParameter(new Date(), true); + private final static JobParameter DATE_PARAM = new JobParameter(new Date(), Date.class); - private final static JobParameter LONG_PARAM = new JobParameter(1L, true); + private final static JobParameter LONG_PARAM = new JobParameter(1L, Long.class); - private final static JobParameter DOUBLE_PARAM = new JobParameter(2D, true); + private final static JobParameter DOUBLE_PARAM = new JobParameter(2D, Double.class); private final static String DATE_KEY = "DATE_KEY"; @@ -120,7 +120,7 @@ public class JobParametersEventTests { } public JobParametersEvent getPopulatedParametersEvent() { - Map jobParameters = new HashMap<>(); + Map> jobParameters = new HashMap<>(); jobParameters.put(DATE_KEY, DATE_PARAM); jobParameters.put(STRING_KEY, STRING_PARAM); jobParameters.put(LONG_KEY, LONG_PARAM);