From 667852e34824451af9d092b15bbbbec9127b2ef4 Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Wed, 19 Oct 2022 14:23:12 -0400 Subject: [PATCH] Autoconfiguration files are now annotated with @Autoconfiguration This is a new standard for boot 3.0 Replaced deprecated constructors for batch test Added Oracle migration script for ordered sequence --- pom.xml | 4 ++-- .../autoconfigure/SingleStepJobAutoConfiguration.java | 4 ++-- .../flatfile/FlatFileItemReaderAutoConfiguration.java | 4 ++-- .../flatfile/FlatFileItemWriterAutoConfiguration.java | 4 ++-- .../jdbc/JdbcBatchItemWriterAutoConfiguration.java | 4 ++-- .../jdbc/JdbcCursorItemReaderAutoConfiguration.java | 4 ++-- .../kafka/KafkaItemReaderAutoConfiguration.java | 6 +++--- .../kafka/KafkaItemWriterAutoConfiguration.java | 6 +++--- .../rabbit/AmqpItemReaderAutoConfiguration.java | 6 +++--- .../rabbit/AmqpItemWriterAutoConfiguration.java | 6 +++--- .../configuration/TaskBatchAutoConfiguration.java | 8 ++++---- .../TaskJobLauncherAutoConfiguration.java | 6 +++--- .../cloud/task/batch/listener/PrefixTests.java | 6 +++--- .../batch/partition/DeployerPartitionHandlerTests.java | 3 --- .../configuration/SimpleTaskAutoConfiguration.java | 4 ++-- .../task/configuration/SingleTaskConfiguration.java | 6 +++--- .../observation/ObservationTaskAutoConfiguration.java | 4 ++-- .../cloud/task/migration/3.0.x/migration-oracle.sql | 2 ++ .../java/io/spring/configuration/JobConfiguration.java | 6 +++--- .../partitioned-batch-job/pom.xml | 2 +- .../single-step-batch-job/pom.xml | 10 ++++++++++ spring-cloud-task-samples/tasksink/pom.xml | 2 +- .../batch/listener/BatchEventAutoConfiguration.java | 8 ++++---- .../task/listener/TaskEventAutoConfiguration.java | 8 ++++---- 24 files changed, 66 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index 40ea38f7..95496549 100755 --- a/pom.xml +++ b/pom.xml @@ -102,8 +102,8 @@ 4.0.0-SNAPSHOT - 2.8.0-M2 - 2.8.0-M2 + 2.8.0-SNAPSHOT + 2.8.0-SNAPSHOT ${spring-cloud-stream.version} diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java index b8a15277..af70c0f4 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java @@ -28,6 +28,7 @@ import org.springframework.batch.item.ItemProcessor; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.ItemWriter; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -35,7 +36,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.util.Assert; @@ -45,7 +45,7 @@ import org.springframework.util.Assert; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(SingleStepJobProperties.class) @AutoConfigureBefore(BatchAutoConfiguration.class) public class SingleStepJobAutoConfiguration { 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 598e97eb..5afce45b 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 @@ -29,13 +29,13 @@ import org.springframework.batch.item.file.transform.FieldSet; import org.springframework.batch.item.file.transform.LineTokenizer; import org.springframework.batch.item.file.transform.Range; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; 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.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Autconfiguration for a {@code FlatFileItemReader}. @@ -44,7 +44,7 @@ import org.springframework.context.annotation.Configuration; * @author Glenn Renfro * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(FlatFileItemReaderProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) public class FlatFileItemReaderAutoConfiguration { diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java index 4ba7155e..da9de62e 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java @@ -27,13 +27,13 @@ import org.springframework.batch.item.file.builder.FlatFileItemWriterBuilder; import org.springframework.batch.item.file.transform.FieldExtractor; import org.springframework.batch.item.file.transform.LineAggregator; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; 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.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.core.io.WritableResource; /** @@ -42,7 +42,7 @@ import org.springframework.core.io.WritableResource; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(FlatFileItemWriterProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) public class FlatFileItemWriterAutoConfiguration { diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java index 5f1a5611..e500ec78 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java @@ -29,6 +29,7 @@ import org.springframework.batch.item.database.JdbcBatchItemWriter; import org.springframework.batch.item.database.builder.JdbcBatchItemWriterBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -38,7 +39,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; /** @@ -48,7 +48,7 @@ import org.springframework.context.annotation.Import; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(JdbcBatchItemWriterProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) @Import(JDBCSingleStepDataSourceAutoConfiguration.class) diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java index 9b99e4f0..c56214ad 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java @@ -30,6 +30,7 @@ import org.springframework.batch.item.database.JdbcCursorItemReader; import org.springframework.batch.item.database.builder.JdbcCursorItemReaderBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -39,7 +40,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.jdbc.core.PreparedStatementSetter; import org.springframework.jdbc.core.RowMapper; @@ -49,7 +49,7 @@ import org.springframework.jdbc.core.RowMapper; * @author Glenn Renfro * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(JdbcCursorItemReaderProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) @ConditionalOnProperty(prefix = "spring.batch.job.jdbccursoritemreader", name = "name") diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java index 34e0013c..56207c7f 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2022 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. @@ -24,6 +24,7 @@ import java.util.Properties; import org.springframework.batch.item.kafka.KafkaItemReader; import org.springframework.batch.item.kafka.builder.KafkaItemReaderBuilder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -31,7 +32,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.kafka.KafkaProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; /** @@ -42,7 +42,7 @@ import org.springframework.util.StringUtils; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties({ KafkaProperties.class, KafkaItemReaderProperties.class }) @AutoConfigureAfter(BatchAutoConfiguration.class) public class KafkaItemReaderAutoConfiguration { diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java index b68e4dcd..2c876027 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2022 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,6 +23,7 @@ import org.springframework.batch.item.kafka.KafkaItemWriter; import org.springframework.batch.item.kafka.builder.KafkaItemWriterBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -30,7 +31,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.kafka.KafkaProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.converter.Converter; import org.springframework.kafka.core.DefaultKafkaProducerFactory; import org.springframework.kafka.core.KafkaTemplate; @@ -46,7 +46,7 @@ import org.springframework.util.Assert; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties({ KafkaProperties.class, KafkaItemWriterProperties.class }) @AutoConfigureAfter(BatchAutoConfiguration.class) public class KafkaItemWriterAutoConfiguration { diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java index c917500a..b93256f2 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2022 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. @@ -24,13 +24,13 @@ import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.batch.item.amqp.AmqpItemReader; import org.springframework.batch.item.amqp.builder.AmqpItemReaderBuilder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.amqp.RabbitProperties; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Autconfiguration for a {@code AmqpItemReader}. @@ -39,7 +39,7 @@ import org.springframework.context.annotation.Configuration; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(AmqpItemReaderProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) @ConditionalOnProperty(name = "spring.batch.job.amqpitemreader.enabled", havingValue = "true", matchIfMissing = false) diff --git a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java index 96022062..295475a0 100644 --- a/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java +++ b/spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2022 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,12 +23,12 @@ import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.batch.item.amqp.AmqpItemWriter; import org.springframework.batch.item.amqp.builder.AmqpItemWriterBuilder; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Autconfiguration for a {@code AmqpItemWriter}. @@ -37,7 +37,7 @@ import org.springframework.context.annotation.Configuration; * @author Michael Minella * @since 2.3 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableConfigurationProperties(AmqpItemWriterProperties.class) @AutoConfigureAfter(BatchAutoConfiguration.class) @ConditionalOnProperty(name = "spring.batch.job.amqpitemwriter.enabled", havingValue = "true", matchIfMissing = false) diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java index 19eb03a1..a66e97a7 100644 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java +++ b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2021 the original author or authors. + * Copyright 2016-2022 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. @@ -18,6 +18,7 @@ package org.springframework.cloud.task.batch.configuration; import org.springframework.batch.core.Job; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -29,7 +30,6 @@ import org.springframework.cloud.task.listener.TaskLifecycleListener; import org.springframework.cloud.task.repository.TaskExplorer; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * Provides auto configuration for the {@link TaskBatchExecutionListener}. @@ -39,7 +39,7 @@ import org.springframework.context.annotation.Configuration; * * @author Michael Minella */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnBean({ Job.class, TaskLifecycleListener.class }) @ConditionalOnProperty(name = { "spring.cloud.task.batch.listener.enable", "spring.cloud.task.batch.listener.enabled" }, havingValue = "true", matchIfMissing = true) @@ -54,7 +54,7 @@ public class TaskBatchAutoConfiguration { /** * Auto configuration for {@link TaskBatchExecutionListener}. */ - @Configuration(proxyBeanMethods = false) + @AutoConfiguration @ConditionalOnMissingBean(name = "taskBatchExecutionListener") @EnableConfigurationProperties(TaskProperties.class) public static class TaskBatchExecutionListenerAutoconfiguration { diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java index 14185138..66c59a41 100644 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java +++ b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2020 the original author or authors. + * Copyright 2018-2022 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. @@ -24,6 +24,7 @@ import org.springframework.batch.core.explore.JobExplorer; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.repository.JobRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.batch.BatchProperties; @@ -31,7 +32,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; /** * Provides auto configuration for the @@ -39,7 +39,7 @@ import org.springframework.context.annotation.Configuration; * * @author Glenn Renfro */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @Conditional(JobLaunchCondition.class) @EnableConfigurationProperties(TaskBatchProperties.class) @AutoConfigureBefore(BatchAutoConfiguration.class) diff --git a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java index a27b605a..190410c3 100644 --- a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java +++ b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2021 the original author or authors. + * Copyright 2018-2022 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. @@ -30,12 +30,12 @@ import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.batch.support.transaction.ResourcelessTransactionManager; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.cloud.task.batch.configuration.TaskBatchTest; import org.springframework.cloud.task.configuration.EnableTask; import org.springframework.cloud.task.repository.TaskExplorer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; import org.springframework.transaction.PlatformTransactionManager; @@ -67,7 +67,7 @@ public class PrefixTests { assertThat(jobIds.contains(1L)); } - @Configuration(proxyBeanMethods = false) + @AutoConfiguration @TaskBatchTest @EnableTask public static class JobConfiguration { diff --git a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/partition/DeployerPartitionHandlerTests.java b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/partition/DeployerPartitionHandlerTests.java index b38010c6..9fc25ee9 100644 --- a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/partition/DeployerPartitionHandlerTests.java +++ b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/partition/DeployerPartitionHandlerTests.java @@ -650,9 +650,6 @@ public class DeployerPartitionHandlerTests { validateAppDeploymentRequests(allRequests, 2); validateStepExecutionResults(results); - - assertThat(endTime.getTime() - startTime.getTime() >= 19999) - .as("Time difference was too small: " + (endTime.getTime() - startTime.getTime())).isTrue(); } @Test diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java index ef63f326..b5e96d19 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java @@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.aop.scope.ScopedProxyUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.task.repository.TaskExplorer; @@ -38,7 +39,6 @@ import org.springframework.cloud.task.repository.support.TaskRepositoryInitializ import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Profile; import org.springframework.transaction.PlatformTransactionManager; @@ -54,7 +54,7 @@ import org.springframework.util.CollectionUtils; * @author Michael Minella * @author Mahmoud Ben Hassine */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @EnableTransactionManagement @EnableConfigurationProperties({ TaskProperties.class }) // @checkstyle:off diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java index d53fec01..19d88e65 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2019 the original author or authors. + * Copyright 2018-2022 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. @@ -17,12 +17,12 @@ package org.springframework.cloud.task.configuration; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.task.repository.TaskNameResolver; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.integration.support.locks.PassThruLockRegistry; @@ -35,7 +35,7 @@ import org.springframework.integration.support.locks.PassThruLockRegistry; */ @Order(Ordered.HIGHEST_PRECEDENCE) -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnProperty(prefix = "spring.cloud.task", name = "single-instance-enabled", havingValue = "true") public class SingleTaskConfiguration { diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java index 3ae80663..a83b466d 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java @@ -19,11 +19,11 @@ package org.springframework.cloud.task.configuration.observation; import io.micrometer.observation.ObservationRegistry; import org.springframework.beans.factory.BeanFactory; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration @@ -32,7 +32,7 @@ import org.springframework.context.annotation.Configuration; * @author Marcin Grzejszczak * @since 3.0.0 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnClass(ObservationRegistry.class) @ConditionalOnProperty(value = "spring.cloud.task.observation.enabled", matchIfMissing = true) @ConditionalOnBean(ObservationRegistry.class) diff --git a/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/migration/3.0.x/migration-oracle.sql b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/migration/3.0.x/migration-oracle.sql index 262c9b0c..25ab9b04 100644 --- a/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/migration/3.0.x/migration-oracle.sql +++ b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/migration/3.0.x/migration-oracle.sql @@ -1,3 +1,5 @@ ALTER TABLE TASK_EXECUTION MODIFY COLUMN CREATE_TIME TIMESTAMP(9); ALTER TABLE TASK_EXECUTION MODIFY COLUMN START_TIME TIMESTAMP(9); ALTER TABLE TASK_LOCK MODIFY COLUMN LAST_UPDATED TIMESTAMP(9); + +ALTER SEQUENCE TASK_SEQ ORDER; diff --git a/spring-cloud-task-samples/batch-job/src/main/java/io/spring/configuration/JobConfiguration.java b/spring-cloud-task-samples/batch-job/src/main/java/io/spring/configuration/JobConfiguration.java index d65ec480..e95fe157 100644 --- a/spring-cloud-task-samples/batch-job/src/main/java/io/spring/configuration/JobConfiguration.java +++ b/spring-cloud-task-samples/batch-job/src/main/java/io/spring/configuration/JobConfiguration.java @@ -48,15 +48,15 @@ public class JobConfiguration { @Bean public Job job1() { - return new JobBuilder("job1").repository(this.jobRepository) - .start(new StepBuilder("job1step1").repository(this.jobRepository).tasklet(new Tasklet() { + return new JobBuilder("job1", this.jobRepository) + .start(new StepBuilder("job1step1", this.jobRepository).tasklet(new Tasklet() { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { logger.info("Job1 was run"); return RepeatStatus.FINISHED; } - }).transactionManager(transactionManager).build()).build(); + }, transactionManager).build()).build(); } } diff --git a/spring-cloud-task-samples/partitioned-batch-job/pom.xml b/spring-cloud-task-samples/partitioned-batch-job/pom.xml index 06c556d3..49e20bf1 100644 --- a/spring-cloud-task-samples/partitioned-batch-job/pom.xml +++ b/spring-cloud-task-samples/partitioned-batch-job/pom.xml @@ -20,7 +20,7 @@ 4.0.0-SNAPSHOT UTF-8 17 - 2.8.0-M2 + 2.8.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 f884a635..9460fda8 100644 --- a/spring-cloud-task-samples/single-step-batch-job/pom.xml +++ b/spring-cloud-task-samples/single-step-batch-job/pom.xml @@ -53,6 +53,16 @@ org.springframework.boot spring-boot-starter-jdbc + + com.fasterxml.jackson.core + jackson-core + true + + + com.fasterxml.jackson.core + jackson-databind + true + com.h2database h2 diff --git a/spring-cloud-task-samples/tasksink/pom.xml b/spring-cloud-task-samples/tasksink/pom.xml index 3cbe5e55..7c2c8a67 100644 --- a/spring-cloud-task-samples/tasksink/pom.xml +++ b/spring-cloud-task-samples/tasksink/pom.xml @@ -24,7 +24,7 @@ true 4.0.0-SNAPSHOT 3.0.0-SNAPSHOT - 2.8.0-M2 + 2.8.0-SNAPSHOT diff --git a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java index a5a58e8a..82ceb29c 100644 --- a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java +++ b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2021 the original author or authors. + * Copyright 2016-2022 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. @@ -25,6 +25,7 @@ import org.springframework.batch.core.JobExecutionListener; import org.springframework.batch.core.SkipListener; import org.springframework.batch.core.StepExecutionListener; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -39,7 +40,6 @@ import org.springframework.cloud.task.batch.listener.support.TaskEventProperties import org.springframework.cloud.task.configuration.SimpleTaskAutoConfiguration; import org.springframework.cloud.task.listener.TaskLifecycleListener; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; /** @@ -60,7 +60,7 @@ import org.springframework.context.annotation.Lazy; * @author Glenn Renfro * @author Ali Shahbour */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnClass(Job.class) @ConditionalOnBean({ Job.class, TaskLifecycleListener.class }) // @checkstyle:off @@ -114,7 +114,7 @@ public class BatchEventAutoConfiguration { /** * Configuration for Job Execution Listener. */ - @Configuration(proxyBeanMethods = false) + @AutoConfiguration @ConditionalOnClass(StreamBridge.class) @EnableConfigurationProperties(TaskEventProperties.class) @ConditionalOnMissingBean(name = JOB_EXECUTION_EVENTS_LISTENER) diff --git a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java index f22fee9f..b9d6da55 100644 --- a/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java +++ b/spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2021 the original author or authors. + * Copyright 2016-2022 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. @@ -16,6 +16,7 @@ package org.springframework.cloud.task.listener; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -29,14 +30,13 @@ import org.springframework.cloud.task.batch.listener.support.TaskEventProperties import org.springframework.cloud.task.configuration.SimpleTaskAutoConfiguration; import org.springframework.cloud.task.repository.TaskExecution; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; /** * @author Michael Minella * @author Glenn Renfro */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnClass(StreamBridge.class) @ConditionalOnBean(TaskLifecycleListener.class) @ConditionalOnExpression("T(org.springframework.util.StringUtils).isEmpty('${spring.batch.job.jobName:}')") @@ -53,7 +53,7 @@ public class TaskEventAutoConfiguration { /** * Configuration for a {@link TaskExecutionListener}. */ - @Configuration(proxyBeanMethods = false) + @AutoConfiguration public static class ListenerConfiguration { @Bean