diff --git a/docs/pom.xml b/docs/pom.xml index 28c4fb63..2eaf21fc 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -17,7 +17,6 @@ 1.5.0-alpha.16 - 1.0.0-M6 ${maven.multiModuleProjectDirectory}/spring-cloud-task-core/ .* ${maven.multiModuleProjectDirectory}/target/ @@ -94,16 +93,12 @@ io.micrometer micrometer-docs-generator-spans - ${micrometer-docs-generator.version} - jar io.micrometer micrometer-docs-generator-metrics - ${micrometer-docs-generator.version} - jar diff --git a/spring-cloud-task-core/pom.xml b/spring-cloud-task-core/pom.xml index 2ef20c63..ea5cc192 100755 --- a/spring-cloud-task-core/pom.xml +++ b/spring-cloud-task-core/pom.xml @@ -148,6 +148,7 @@ io.micrometer micrometer-tracing-bridge-brave test + 1.0.0-SNAPSHOT io.zipkin.brave diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java index f89a4130..edce6576 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java @@ -29,7 +29,7 @@ public class DefaultTaskObservationConvention implements TaskObservationConventi @Override public KeyValues getLowCardinalityKeyValues(TaskObservationContext context) { - return KeyValues.of(TaskDocumentedObservation.TaskRunnerTags.BEAN_NAME.of(context.getBeanName())); + return KeyValues.of(TaskDocumentedObservation.TaskRunnerTags.BEAN_NAME.withValue(context.getBeanName())); } @Override 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 38133630..c81c9a57 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 @@ -53,7 +53,7 @@ enum TaskDocumentedObservation implements DocumentedObservation { */ BEAN_NAME { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.runner.bean-name"; } } diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java index 45341c0d..9d6ab865 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java @@ -40,10 +40,10 @@ public class DefaultTaskExecutionObservationConvention implements TaskExecutionO private KeyValues getKeyValuesForTaskExecution(TaskExecutionObservationContext context) { TaskExecution execution = context.getTaskExecution(); - return KeyValues.of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.getKeyName(), context.getStatus(), - TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.getKeyName(), + return KeyValues.of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.asString(), context.getStatus(), + TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.asString(), String.valueOf(execution.getExitCode()), - TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName(), + TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString(), String.valueOf(execution.getExecutionId())); } 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 d2f51360..fc59b1dd 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 @@ -54,8 +54,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { * Task name measurement. */ TASK_NAME { - @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.name"; } }, @@ -65,7 +64,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_EXECUTION_ID { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.execution.id"; } }, @@ -75,7 +74,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_PARENT_EXECUTION_ID { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.parent.execution.id"; } }, @@ -85,7 +84,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_EXTERNAL_EXECUTION_ID { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.external.execution.id"; } }, @@ -94,7 +93,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_EXIT_CODE { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.exit.code"; } }, @@ -104,7 +103,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_STATUS { @Override - public String getKeyName() { + public String asString() { return "spring.cloud.task.status"; } }, @@ -114,7 +113,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_ORG_NAME { @Override - public String getKeyName() { + public String asString() { return "cf.org.name"; } }, @@ -124,7 +123,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_SPACE_ID { @Override - public String getKeyName() { + public String asString() { return "cf.space.id"; } }, @@ -134,7 +133,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_SPACE_NAME { @Override - public String getKeyName() { + public String asString() { return "cf.space.name"; } }, @@ -144,7 +143,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_APP_NAME { @Override - public String getKeyName() { + public String asString() { return "cf.app.name"; } }, @@ -154,7 +153,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_APP_ID { @Override - public String getKeyName() { + public String asString() { return "cf.app.id"; } }, @@ -164,7 +163,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_APP_VERSION { @Override - public String getKeyName() { + public String asString() { return "cf.app.version"; } }, @@ -174,7 +173,7 @@ public enum TaskExecutionObservation implements DocumentedObservation { */ TASK_CF_INSTANCE_INDEX { @Override - public String getKeyName() { + public String asString() { return "cf.instance.index"; } } diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java index ca0622b3..fb28ceca 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java @@ -75,31 +75,30 @@ public class TaskObservations { .observation(this.customObservationConvention, new DefaultTaskExecutionObservationConvention(), this.taskObservationContext, this.observationRegistry) .contextualName(String.valueOf(taskExecution.getExecutionId())) - .keyValuesProvider(this.observationsProvider) - .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), + .observationConvention(this.observationsProvider) + .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), getValueOrDefault(taskExecution.getTaskName())) - .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName(), + .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString(), "" + taskExecution.getExecutionId()) - .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.getKeyName(), + .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.asString(), (getValueOrDefault(taskExecution.getParentExecutionId()))) - .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_EXTERNAL_EXECUTION_ID.getKeyName(), + .lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_EXTERNAL_EXECUTION_ID.asString(), (getValueOrDefault(taskExecution.getExternalExecutionId()))); if (taskObservationCloudKeyValues != null) { - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.asString(), this.taskObservationCloudKeyValues.getOrganizationName()); - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.asString(), this.taskObservationCloudKeyValues.getSpaceId()); - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.asString(), this.taskObservationCloudKeyValues.getSpaceName()); - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.asString(), this.taskObservationCloudKeyValues.getApplicationId()); - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.asString(), this.taskObservationCloudKeyValues.getApplicationName()); - observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.asString(), this.taskObservationCloudKeyValues.getApplicationVersion()); - observation.lowCardinalityKeyValue( - TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.getKeyName(), + observation.lowCardinalityKeyValue(TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.asString(), this.taskObservationCloudKeyValues.getInstanceIndex()); } observation.start(); 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 1ccec9f8..a4c3b65f 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 @@ -21,7 +21,7 @@ import java.util.Date; import io.micrometer.core.instrument.LongTaskTimer; import io.micrometer.core.instrument.Tags; -import io.micrometer.core.instrument.observation.TimerObservationHandler; +import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler; import io.micrometer.core.instrument.simple.SimpleMeterRegistry; import io.micrometer.core.tck.MeterRegistryAssert; import io.micrometer.observation.Observation; @@ -63,7 +63,7 @@ public class TaskObservationsTests { public void before() { this.simpleMeterRegistry = new SimpleMeterRegistry(); this.observationRegistry = TestObservationRegistry.create(); - ObservationHandler timerObservationHandler = new TimerObservationHandler( + ObservationHandler timerObservationHandler = new DefaultMeterObservationHandler( this.simpleMeterRegistry); this.observationRegistry.observationConfig().observationHandler(timerObservationHandler); this.taskObservations = new TaskObservations(this.observationRegistry, null, null); @@ -88,7 +88,7 @@ public class TaskObservationsTests { verifyDefaultKeyValues(); TaskExecutionObservation.TASK_ACTIVE.getDefaultConvention(); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags("spring.cloud.task", Tags - .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.getKeyName(), TaskObservations.STATUS_SUCCESS)); + .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.asString(), TaskObservations.STATUS_SUCCESS)); verifyLongTaskTimerAfterStop(longTaskTimer, "myTask72", "123"); } @@ -109,22 +109,22 @@ public class TaskObservationsTests { // Test Timer MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName(), "123")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString(), "123")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXTERNAL_EXECUTION_ID.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXTERNAL_EXECUTION_ID.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.getKeyName(), "0")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.asString(), "0")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, Tags - .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.getKeyName(), TaskObservations.STATUS_SUCCESS)); + .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.asString(), TaskObservations.STATUS_SUCCESS)); verifyLongTaskTimerAfterStop(longTaskTimer, "unknown", "123"); @@ -146,19 +146,19 @@ public class TaskObservationsTests { taskObservations.onTaskEnd(taskExecution); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), "myTask72")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), "myTask72")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName(), "123")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString(), "123")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.getKeyName(), "-1")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.asString(), "-1")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.getKeyName(), "1")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.asString(), "1")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, Tags - .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.getKeyName(), TaskObservations.STATUS_FAILURE)); + .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.asString(), TaskObservations.STATUS_FAILURE)); verifyLongTaskTimerAfterStop(longTaskTimer, "myTask72", "123"); } @@ -192,29 +192,29 @@ public class TaskObservationsTests { verifyDefaultKeyValues(); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.getKeyName(), ORGANIZATION_NAME)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.asString(), ORGANIZATION_NAME)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.getKeyName(), SPACE_ID)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.asString(), SPACE_ID)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.getKeyName(), SPACE_NAME)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.asString(), SPACE_NAME)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.getKeyName(), APPLICATION_NAME)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.asString(), APPLICATION_NAME)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.getKeyName(), APPLICATION_ID)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.asString(), APPLICATION_ID)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.getKeyName(), APPLICATION_VERSION)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.asString(), APPLICATION_VERSION)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.getKeyName(), INSTANCE_INDEX)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.asString(), INSTANCE_INDEX)); // Test Timer MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), "myTask72")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), "myTask72")); verifyLongTaskTimerAfterStop(longTaskTimer, "myTask72", "123"); } @@ -242,29 +242,29 @@ public class TaskObservationsTests { verifyDefaultKeyValues(); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.getKeyName(), "default")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_ORG_NAME.asString(), "default")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_ID.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_SPACE_NAME.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_NAME.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_ID.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.getKeyName(), UNKNOWN)); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_APP_VERSION.asString(), UNKNOWN)); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.getKeyName(), "0")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_CF_INSTANCE_INDEX.asString(), "0")); // Test Timer MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), "myTask72")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), "myTask72")); verifyLongTaskTimerAfterStop(longTaskTimer, "myTask72", "123"); }); @@ -286,9 +286,9 @@ public class TaskObservationsTests { System.out.println(simpleMeterRegistry.getMetersAsString()); assertThat(longTaskTimer).withFailMessage("LongTask timer should be created on Task start").isNotNull(); assertThat(longTaskTimer.activeTasks()).isEqualTo(1); - assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName())) + assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString())) .isEqualTo(taskName); - assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName())) + assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString())) .isEqualTo(executionId); return longTaskTimer; } @@ -296,27 +296,27 @@ public class TaskObservationsTests { private void verifyDefaultKeyValues() { // Test Timer MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName(), "myTask72")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString(), "myTask72")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName(), "123")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString(), "123")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.getKeyName(), "-1")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_PARENT_EXECUTION_ID.asString(), "-1")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, - Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.getKeyName(), "0")); + Tags.of(TaskExecutionObservation.TaskKeyValues.TASK_EXIT_CODE.asString(), "0")); MeterRegistryAssert.assertThat(this.simpleMeterRegistry).hasTimerWithNameAndTags(PREFIX, Tags - .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.getKeyName(), TaskObservations.STATUS_SUCCESS)); + .of(TaskExecutionObservation.TaskKeyValues.TASK_STATUS.asString(), TaskObservations.STATUS_SUCCESS)); } private void verifyLongTaskTimerAfterStop(LongTaskTimer longTaskTimer, String taskName, String executionId) { // Test Long Task Timer after the task has completed. assertThat(longTaskTimer.activeTasks()).isEqualTo(0); - assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_NAME.getKeyName())) + assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_NAME.asString())) .isEqualTo(taskName); - assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.getKeyName())) + assertThat(longTaskTimer.getId().getTag(TaskExecutionObservation.TaskKeyValues.TASK_EXECUTION_ID.asString())) .isEqualTo(executionId); } diff --git a/spring-cloud-task-integration-tests/src/test/java/configuration/JobConfiguration.java b/spring-cloud-task-integration-tests/src/test/java/configuration/JobConfiguration.java index 2afcbdeb..860b8eae 100644 --- a/spring-cloud-task-integration-tests/src/test/java/configuration/JobConfiguration.java +++ b/spring-cloud-task-integration-tests/src/test/java/configuration/JobConfiguration.java @@ -17,7 +17,6 @@ package configuration; import java.util.Arrays; -import java.util.List; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; @@ -27,6 +26,7 @@ import org.springframework.batch.core.configuration.annotation.JobBuilderFactory import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; +import org.springframework.batch.item.Chunk; import org.springframework.batch.item.ItemProcessor; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.item.support.ListItemReader; @@ -79,7 +79,7 @@ public class JobConfiguration { } }).writer(new ItemWriter() { @Override - public void write(List items) throws Exception { + public void write(Chunk items) throws Exception { for (Object item : items) { System.out.println(">> " + item); } diff --git a/spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemWriter.java b/spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemWriter.java index 7965f45c..36dd4d84 100644 --- a/spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemWriter.java +++ b/spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemWriter.java @@ -16,8 +16,7 @@ package configuration; -import java.util.List; - +import org.springframework.batch.item.Chunk; import org.springframework.batch.item.ItemWriter; /** @@ -28,7 +27,7 @@ public class SkipItemWriter implements ItemWriter { int failCount = 0; @Override - public void write(List items) throws Exception { + public void write(Chunk items) throws Exception { if (this.failCount < 2) { this.failCount++; throw new IllegalStateException("Writer FOOBAR"); diff --git a/spring-cloud-task-samples/batch-events/src/main/java/io/spring/cloud/BatchEventsApplication.java b/spring-cloud-task-samples/batch-events/src/main/java/io/spring/cloud/BatchEventsApplication.java index 01aa2fbd..e81dfa75 100644 --- a/spring-cloud-task-samples/batch-events/src/main/java/io/spring/cloud/BatchEventsApplication.java +++ b/spring-cloud-task-samples/batch-events/src/main/java/io/spring/cloud/BatchEventsApplication.java @@ -27,6 +27,7 @@ import org.springframework.batch.core.configuration.annotation.JobBuilderFactory import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; +import org.springframework.batch.item.Chunk; import org.springframework.batch.item.ItemProcessor; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.item.support.ListItemReader; @@ -80,7 +81,7 @@ public class BatchEventsApplication { } }).writer(new ItemWriter() { @Override - public void write(List items) throws Exception { + public void write(Chunk items) throws Exception { for (String item : items) { System.out.println(">> " + item); } diff --git a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemWriteListener.java b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemWriteListener.java index 9900fc0d..9da01aa7 100644 --- a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemWriteListener.java +++ b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemWriteListener.java @@ -16,12 +16,11 @@ package org.springframework.cloud.task.batch.listener; -import java.util.List; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.batch.core.ItemWriteListener; +import org.springframework.batch.item.Chunk; import org.springframework.cloud.task.batch.listener.support.BatchJobHeaders; import org.springframework.cloud.task.batch.listener.support.MessagePublisher; import org.springframework.cloud.task.batch.listener.support.TaskEventProperties; @@ -33,7 +32,7 @@ import org.springframework.util.Assert; * channel. * * Each method provides an informational message. - * {@link ItemWriteListener#onWriteError(Exception, List)} provides a message as well as + * {@link ItemWriteListener#onWriteError(Exception, Chunk)} provides a message as well as * the exception's message via the {@link BatchJobHeaders#BATCH_EXCEPTION} message header. * * @author Glenn Renfro @@ -64,13 +63,13 @@ public class EventEmittingItemWriteListener implements ItemWriteListener, Ordere } @Override - public void beforeWrite(List items) { + public void beforeWrite(Chunk items) { this.messagePublisher.publish(this.properties.getItemWriteEventBindingName(), items.size() + " items to be written."); } @Override - public void afterWrite(List items) { + public void afterWrite(Chunk items) { if (logger.isDebugEnabled()) { logger.debug("Executing afterWrite: " + items); } @@ -79,7 +78,7 @@ public class EventEmittingItemWriteListener implements ItemWriteListener, Ordere } @Override - public void onWriteError(Exception exception, List items) { + public void onWriteError(Exception exception, Chunk items) { if (logger.isDebugEnabled()) { logger.debug("Executing onWriteError: " + exception.getMessage(), exception); } diff --git a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/EventListenerTests.java b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/EventListenerTests.java index 2a2d3da1..f79f2b3d 100644 --- a/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/EventListenerTests.java +++ b/spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/EventListenerTests.java @@ -33,6 +33,7 @@ import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.scope.context.StepContext; +import org.springframework.batch.item.Chunk; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @@ -285,12 +286,12 @@ public class EventListenerTests { return new JobExecution(jobInstance, 1L, new JobParameters()); } - private List getSampleList() { + private Chunk getSampleList() { List testList = new ArrayList<>(3); testList.add("Hello"); testList.add("World"); testList.add("foo"); - return testList; + return new Chunk(testList); } private ChunkContext getChunkContext() {