diff --git a/pom.xml b/pom.xml index 451a548b..01281c86 100755 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-build - 3.0.4-SNAPSHOT + 3.1.0-SNAPSHOT diff --git a/spring-cloud-starter-single-step-batch-job/pom.xml b/spring-cloud-starter-single-step-batch-job/pom.xml index b8a95ee5..b2ed141b 100644 --- a/spring-cloud-starter-single-step-batch-job/pom.xml +++ b/spring-cloud-starter-single-step-batch-job/pom.xml @@ -10,10 +10,10 @@ spring-cloud-starter-single-step-batch-job - 1.15.2 - 1.15.2 + 1.15.3 + 1.15.3 1.0.8 - 2.6.6 + 2.8.0-M1 3.1.4-SNAPSHOT diff --git a/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java b/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java index d2c4255f..ba27a532 100644 --- a/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java +++ b/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java @@ -99,8 +99,9 @@ public class JdbcBatchItemWriterAutoConfigurationTests { public void baseTest() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() .withUserConfiguration( - JdbcBatchItemWriterAutoConfigurationTests.DelimitedJobConfiguration.class, - TaskLauncherConfiguration.class) + TaskLauncherConfiguration.class, + JdbcBatchItemWriterAutoConfigurationTests.DelimitedJobConfiguration.class + ) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, @@ -115,8 +116,8 @@ public class JdbcBatchItemWriterAutoConfigurationTests { public void customSqlParameterSourceTest() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() .withUserConfiguration( - JdbcBatchItemWriterAutoConfigurationTests.DelimitedDifferentKeyNameJobConfiguration.class, TaskLauncherConfiguration.class, + JdbcBatchItemWriterAutoConfigurationTests.DelimitedDifferentKeyNameJobConfiguration.class, CustomSqlParameterSourceProviderConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, @@ -132,8 +133,8 @@ public class JdbcBatchItemWriterAutoConfigurationTests { public void preparedStatementSetterTest() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() .withUserConfiguration( - JdbcBatchItemWriterAutoConfigurationTests.DelimitedJobConfiguration.class, TaskLauncherConfiguration.class, + JdbcBatchItemWriterAutoConfigurationTests.DelimitedJobConfiguration.class, ItemPreparedStatementSetterConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, diff --git a/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java b/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java index 29049289..76112f38 100644 --- a/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java +++ b/spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java @@ -91,8 +91,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests { @Test public void testIntegration() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(BaseConfiguration.class, - TaskLauncherConfiguration.class) + .withUserConfiguration(TaskLauncherConfiguration.class, BaseConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, @@ -129,8 +128,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests { @Test public void testCustomRowMapper() { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(RowMapperConfiguration.class, - TaskLauncherConfiguration.class) + .withUserConfiguration(TaskLauncherConfiguration.class, RowMapperConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, @@ -167,8 +165,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests { @Test public void testRoseyScenario() { final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(BaseConfiguration.class, - TaskLauncherConfiguration.class) + .withUserConfiguration(TaskLauncherConfiguration.class, BaseConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, @@ -231,8 +228,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests { @Test public void testNoName() { final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(BaseConfiguration.class, - TaskLauncherConfiguration.class) + .withUserConfiguration(TaskLauncherConfiguration.class, BaseConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, @@ -251,8 +247,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests { @Test public void testSqlName() { final ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withUserConfiguration(BaseConfiguration.class, - TaskLauncherConfiguration.class) + .withUserConfiguration(TaskLauncherConfiguration.class, BaseConfiguration.class) .withConfiguration( AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, BatchAutoConfiguration.class, 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 9e98ca9c..8a9e3b1c 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 @@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration; import org.springframework.boot.autoconfigure.batch.BatchProperties; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; @@ -36,7 +35,7 @@ import org.springframework.context.annotation.Configuration; /** * Provides auto configuration for the - * {@link org.springframework.cloud.task.batch.handler.TaskJobLauncherCommandLineRunner}. + * {@link org.springframework.cloud.task.batch.handler.TaskJobLauncherApplicationRunner}. * * @author Glenn Renfro */ @@ -49,20 +48,6 @@ public class TaskJobLauncherAutoConfiguration { @Autowired private TaskBatchProperties properties; - @Bean - @ConditionalOnMissingClass("org.springframework.boot.autoconfigure.batch.JobLauncherApplicationRunner") - public TaskJobLauncherCommandLineRunnerFactoryBean jobLauncherCommandLineRunner( - JobLauncher jobLauncher, JobExplorer jobExplorer, List jobs, - JobRegistry jobRegistry, JobRepository jobRepository, - BatchProperties batchProperties) { - TaskJobLauncherCommandLineRunnerFactoryBean taskJobLauncherCommandLineRunnerFactoryBean; - taskJobLauncherCommandLineRunnerFactoryBean = new TaskJobLauncherCommandLineRunnerFactoryBean( - jobLauncher, jobExplorer, jobs, this.properties, jobRegistry, - jobRepository, batchProperties); - - return taskJobLauncherCommandLineRunnerFactoryBean; - } - @Bean @ConditionalOnClass( name = "org.springframework.boot.autoconfigure.batch.JobLauncherApplicationRunner") diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherCommandLineRunnerFactoryBean.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherCommandLineRunnerFactoryBean.java deleted file mode 100644 index 54f3bf64..00000000 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherCommandLineRunnerFactoryBean.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2018-2020 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. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.task.batch.configuration; - -import java.util.List; - -import org.springframework.batch.core.Job; -import org.springframework.batch.core.configuration.JobRegistry; -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.FactoryBean; -import org.springframework.boot.autoconfigure.batch.BatchProperties; -import org.springframework.cloud.task.batch.handler.TaskJobLauncherCommandLineRunner; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * Factory bean for creating an instance of {@link TaskJobLauncherCommandLineRunner}. - * - * @author Glenn Renfro - * @deprecated Use - * {@link org.springframework.cloud.task.batch.handler.TaskJobLauncherApplicationRunner} - */ -public class TaskJobLauncherCommandLineRunnerFactoryBean - implements FactoryBean { - - private JobLauncher jobLauncher; - - private JobExplorer jobExplorer; - - private List jobs; - - private String jobNames; - - private JobRegistry jobRegistry; - - private Integer order = 0; - - private TaskBatchProperties taskBatchProperties; - - private JobRepository jobRepository; - - public TaskJobLauncherCommandLineRunnerFactoryBean(JobLauncher jobLauncher, - JobExplorer jobExplorer, List jobs, - TaskBatchProperties taskBatchProperties, JobRegistry jobRegistry, - JobRepository jobRepository, BatchProperties batchProperties) { - Assert.notNull(taskBatchProperties, "taskBatchProperties must not be null"); - Assert.notNull(batchProperties, "batchProperties must not be null"); - this.jobLauncher = jobLauncher; - this.jobExplorer = jobExplorer; - Assert.notEmpty(jobs, "jobs must not be null nor empty"); - this.jobs = jobs; - this.jobNames = taskBatchProperties.getJobNames(); - this.jobRegistry = jobRegistry; - this.taskBatchProperties = taskBatchProperties; - if (StringUtils.hasText(batchProperties.getJob().getNames())) { - this.jobNames = batchProperties.getJob().getNames(); - } - else { - this.jobNames = taskBatchProperties.getJobNames(); - } - this.order = taskBatchProperties.getCommandLineRunnerOrder(); - this.jobRepository = jobRepository; - } - - public void setOrder(int order) { - this.order = order; - } - - @Override - public TaskJobLauncherCommandLineRunner getObject() { - TaskJobLauncherCommandLineRunner taskJobLauncherCommandLineRunner = new TaskJobLauncherCommandLineRunner( - this.jobLauncher, this.jobExplorer, this.jobRepository, - this.taskBatchProperties); - taskJobLauncherCommandLineRunner.setJobs(this.jobs); - if (StringUtils.hasText(this.jobNames)) { - taskJobLauncherCommandLineRunner.setJobNames(this.jobNames); - } - taskJobLauncherCommandLineRunner.setJobRegistry(this.jobRegistry); - - if (this.order != null) { - taskJobLauncherCommandLineRunner.setOrder(this.order); - } - return taskJobLauncherCommandLineRunner; - } - - @Override - public Class getObjectType() { - return TaskJobLauncherCommandLineRunner.class; - } - -} diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunner.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunner.java deleted file mode 100644 index b8166d6f..00000000 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunner.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2018-2020 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. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.task.batch.handler; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionException; -import org.springframework.batch.core.JobParameter; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.JobParametersIncrementer; -import org.springframework.batch.core.JobParametersInvalidException; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException; -import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.JobRestartException; -import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.batch.repeat.support.RepeatTemplate; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.autoconfigure.batch.JobExecutionEvent; -import org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner; -import org.springframework.cloud.task.batch.configuration.TaskBatchProperties; -import org.springframework.cloud.task.listener.TaskException; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.core.task.TaskExecutor; -import org.springframework.util.StringUtils; - -/** - * {@link CommandLineRunner} to {@link JobLauncher launch} Spring Batch jobs. Runs all - * jobs in the surrounding context by default and throws an exception upon the first job - * that returns an {@link BatchStatus} of FAILED if a {@link TaskExecutor} in the - * {@link JobLauncher} is not specified. If a {@link TaskExecutor} is specified in the - * {@link JobLauncher} then all Jobs are launched and an exception is thrown if one or - * more of the jobs has an {@link BatchStatus} of FAILED. TaskJobLauncherCommandLineRunner - * can also be used to launch a specific job by providing a jobName. The - * TaskJobLaunchercommandLineRunner takes the place of the - * {@link org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner} when - * it is in use. - * - * @author Glenn Renfro - * @since 2.0.0 - * @deprecated Use {@link TaskJobLauncherApplicationRunner} - */ -public class TaskJobLauncherCommandLineRunner extends JobLauncherCommandLineRunner { - - private static final Log logger = LogFactory - .getLog(TaskJobLauncherCommandLineRunner.class); - - private JobLauncher taskJobLauncher; - - private JobExplorer taskJobExplorer; - - private JobRepository taskJobRepository; - - private List jobExecutionList = new ArrayList<>(); - - private ApplicationEventPublisher taskApplicationEventPublisher; - - private TaskBatchProperties taskBatchProperties; - - /** - * Create a new {@link TaskJobLauncherCommandLineRunner}. - * @param jobLauncher to launch jobs - * @param jobExplorer to check the job repository for previous executions - * @param jobRepository to check if a job instance exists with the given parameters - * when running a job - * @param taskBatchProperties the properties used to configure the - * taskBatchProperties. - */ - public TaskJobLauncherCommandLineRunner(JobLauncher jobLauncher, - JobExplorer jobExplorer, JobRepository jobRepository, - TaskBatchProperties taskBatchProperties) { - super(jobLauncher, jobExplorer, jobRepository); - this.taskJobLauncher = jobLauncher; - this.taskJobExplorer = jobExplorer; - this.taskJobRepository = jobRepository; - this.taskBatchProperties = taskBatchProperties; - } - - public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { - super.setApplicationEventPublisher(publisher); - this.taskApplicationEventPublisher = publisher; - } - - @Override - public void run(String... args) throws JobExecutionException { - logger.info("Running default command line with: " + Arrays.asList(args)); - launchJobFromProperties(StringUtils.splitArrayElementsIntoProperties(args, "=")); - monitorJobExecutions(); - } - - protected void execute(Job job, JobParameters jobParameters) - throws JobExecutionAlreadyRunningException, JobRestartException, - JobInstanceAlreadyCompleteException, JobParametersInvalidException { - String jobName = job.getName(); - JobParameters parameters = jobParameters; - boolean jobInstanceExists = this.taskJobRepository.isJobInstanceExists(jobName, - parameters); - if (jobInstanceExists) { - JobExecution lastJobExecution = this.taskJobRepository - .getLastJobExecution(jobName, jobParameters); - if (lastJobExecution != null && isStoppedOrFailed(lastJobExecution) - && job.isRestartable()) { - // Retry a failed or stopped execution with previous parameters - JobParameters previousParameters = lastJobExecution.getJobParameters(); - /* - * remove Non-identifying parameters from the previous execution's - * parameters since there is no way to remove them programmatically. If - * they are required (or need to be modified) on a restart, they need to - * be (re)specified. - */ - JobParameters previousIdentifyingParameters = removeNonIdentifying( - previousParameters); - // merge additional parameters with previous ones (overriding those with - // the same key) - parameters = merge(previousIdentifyingParameters, jobParameters); - } - } - else { - JobParametersIncrementer incrementer = job.getJobParametersIncrementer(); - if (incrementer != null) { - JobParameters nextParameters = new JobParametersBuilder(jobParameters, - this.taskJobExplorer).getNextJobParameters(job).toJobParameters(); - parameters = merge(nextParameters, jobParameters); - } - } - JobExecution execution = this.taskJobLauncher.run(job, parameters); - if (this.taskApplicationEventPublisher != null) { - this.taskApplicationEventPublisher - .publishEvent(new JobExecutionEvent(execution)); - } - this.jobExecutionList.add(execution); - if (execution.getStatus().equals(BatchStatus.FAILED)) { - throwJobFailedException(Collections.singletonList(execution)); - } - } - - private void monitorJobExecutions() { - RepeatTemplate template = new RepeatTemplate(); - - Date startDate = new Date(); - - template.iterate(context -> { - - List failedJobExecutions = new ArrayList<>(); - RepeatStatus repeatStatus = RepeatStatus.FINISHED; - for (JobExecution jobExecution : this.jobExecutionList) { - JobExecution currentJobExecution = this.taskJobExplorer - .getJobExecution(jobExecution.getId()); - BatchStatus batchStatus = currentJobExecution.getStatus(); - if (batchStatus.isRunning()) { - repeatStatus = RepeatStatus.CONTINUABLE; - } - if (batchStatus.equals(BatchStatus.FAILED)) { - failedJobExecutions.add(jobExecution); - } - } - Thread.sleep(this.taskBatchProperties.getFailOnJobFailurePollInterval()); - - if (repeatStatus.equals(RepeatStatus.FINISHED) - && failedJobExecutions.size() > 0) { - throwJobFailedException(failedJobExecutions); - } - return repeatStatus; - }); - } - - private void throwJobFailedException(List failedJobExecutions) { - StringBuilder message = new StringBuilder("The following Jobs have failed: \n"); - for (JobExecution failedJobExecution : failedJobExecutions) { - message.append(String.format("Job %s failed during " - + "execution for job instance id %s with jobExecutionId of %s \n", - failedJobExecution.getJobInstance().getJobName(), - failedJobExecution.getJobId(), failedJobExecution.getId())); - } - - logger.error(message); - - throw new TaskException(message.toString()); - - } - - private JobParameters removeNonIdentifying(JobParameters parameters) { - Map parameterMap = parameters.getParameters(); - HashMap copy = new HashMap<>(parameterMap); - - for (Map.Entry parameter : copy.entrySet()) { - if (!parameter.getValue().isIdentifying()) { - parameterMap.remove(parameter.getKey()); - } - } - - return new JobParameters(parameterMap); - } - - private boolean isStoppedOrFailed(JobExecution execution) { - BatchStatus status = execution.getStatus(); - return (status == BatchStatus.STOPPED || status == BatchStatus.FAILED); - } - - private JobParameters merge(JobParameters parameters, JobParameters additionals) { - Map merged = new HashMap<>(); - merged.putAll(parameters.getParameters()); - merged.putAll(additionals.getParameters()); - return new JobParameters(merged); - } - -} diff --git a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java index d00fc345..f478a9a8 100644 --- a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java +++ b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java @@ -26,7 +26,6 @@ import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfigurati import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.cloud.task.batch.handler.TaskJobLauncherApplicationRunner; -import org.springframework.cloud.task.batch.handler.TaskJobLauncherCommandLineRunner; import org.springframework.cloud.task.batch.listener.TaskBatchExecutionListenerTests; import org.springframework.test.util.ReflectionTestUtils; @@ -102,7 +101,7 @@ public class TaskJobLauncherAutoConfigurationTests { public void testAutoBuiltDataSourceWithTaskJobLauncherCLRDisabled() { this.contextRunner.run(context -> { assertThat(context).hasSingleBean(JobLauncherApplicationRunner.class); - assertThat(context).doesNotHaveBean(TaskJobLauncherCommandLineRunner.class); + assertThat(context).doesNotHaveBean(TaskJobLauncherApplicationRunner.class); }); } diff --git a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerCoreTests.java b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerCoreTests.java similarity index 97% rename from spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerCoreTests.java rename to spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerCoreTests.java index 980ce3fa..545f07b6 100644 --- a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerCoreTests.java +++ b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerCoreTests.java @@ -60,8 +60,8 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; */ @ExtendWith(SpringExtension.class) @ContextConfiguration( - classes = { TaskJobLauncherCommandLineRunnerCoreTests.BatchConfiguration.class }) -public class TaskJobLauncherCommandLineRunnerCoreTests { + classes = { TaskJobLauncherApplicationRunnerCoreTests.BatchConfiguration.class }) +public class TaskJobLauncherApplicationRunnerCoreTests { @Autowired private JobRepository jobRepository; @@ -75,7 +75,7 @@ public class TaskJobLauncherCommandLineRunnerCoreTests { @Autowired private PlatformTransactionManager transactionManager; - private TaskJobLauncherCommandLineRunner runner; + private TaskJobLauncherApplicationRunner runner; private JobBuilderFactory jobs; @@ -92,7 +92,7 @@ public class TaskJobLauncherCommandLineRunnerCoreTests { Tasklet tasklet = (contribution, chunkContext) -> RepeatStatus.FINISHED; this.step = this.steps.get("step").tasklet(tasklet).build(); this.job = this.jobs.get("job").start(this.step).build(); - this.runner = new TaskJobLauncherCommandLineRunner(this.jobLauncher, + this.runner = new TaskJobLauncherApplicationRunner(this.jobLauncher, this.jobExplorer, this.jobRepository, new TaskBatchProperties()); } diff --git a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerTests.java b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerTests.java similarity index 94% rename from spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerTests.java rename to spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerTests.java index e8f215ac..679cbdff 100644 --- a/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherCommandLineRunnerTests.java +++ b/spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerTests.java @@ -67,7 +67,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; /** * @author Glenn Renfro */ -public class TaskJobLauncherCommandLineRunnerTests { +public class TaskJobLauncherApplicationRunnerTests { private static final String DEFAULT_ERROR_MESSAGE = "The following Jobs have failed: \n" + "Job jobA failed during execution for job instance id 1 with jobExecutionId of 1 \n"; @@ -86,7 +86,7 @@ public class TaskJobLauncherCommandLineRunnerTests { String[] enabledArgs = new String[] { "--spring.cloud.task.batch.failOnJobFailure=true" }; validateForFail(DEFAULT_ERROR_MESSAGE, - TaskJobLauncherCommandLineRunnerTests.JobWithFailureConfiguration.class, + TaskJobLauncherApplicationRunnerTests.JobWithFailureConfiguration.class, enabledArgs); } @@ -99,7 +99,7 @@ public class TaskJobLauncherCommandLineRunnerTests { String[] enabledArgs = new String[] { "--spring.cloud.task.batch.failOnJobFailure=true" }; validateForFail(DEFAULT_ERROR_MESSAGE, - TaskJobLauncherCommandLineRunnerTests.JobWithFailureAnnotatedConfiguration.class, + TaskJobLauncherApplicationRunnerTests.JobWithFailureAnnotatedConfiguration.class, enabledArgs); } @@ -109,7 +109,7 @@ public class TaskJobLauncherCommandLineRunnerTests { "--spring.cloud.task.batch.failOnJobFailure=true", "--spring.cloud.task.batch.failOnJobFailurePollInterval=500" }; validateForFail(DEFAULT_ERROR_MESSAGE, - TaskJobLauncherCommandLineRunnerTests.JobWithFailureTaskExecutorConfiguration.class, + TaskJobLauncherApplicationRunnerTests.JobWithFailureTaskExecutorConfiguration.class, enabledArgs); } @@ -120,7 +120,7 @@ public class TaskJobLauncherCommandLineRunnerTests { "--spring.cloud.task.batch.failOnJobFailurePollInterval=500", "--spring.batch.job.enabled=false" }; this.applicationContext = SpringApplication.run(new Class[] { - TaskJobLauncherCommandLineRunnerTests.JobWithFailureConfiguration.class }, + TaskJobLauncherApplicationRunnerTests.JobWithFailureConfiguration.class }, enabledArgs); JobExplorer jobExplorer = this.applicationContext.getBean(JobExplorer.class); assertThat(jobExplorer.getJobNames().size()).isEqualTo(0); @@ -134,7 +134,7 @@ public class TaskJobLauncherCommandLineRunnerTests { boolean isExceptionThrown = false; try { this.applicationContext = SpringApplication.run(new Class[] { - TaskJobLauncherCommandLineRunnerTests.JobWithFailureConfiguration.class }, + TaskJobLauncherApplicationRunnerTests.JobWithFailureConfiguration.class }, enabledArgs); } catch (IllegalStateException exception) { @@ -145,22 +145,22 @@ public class TaskJobLauncherCommandLineRunnerTests { } @Test - public void testCommandLineRunnerSetToFalse() { + public void testApplicationRunnerSetToFalse() { String[] enabledArgs = new String[] {}; this.applicationContext = SpringApplication.run( new Class[] { - TaskJobLauncherCommandLineRunnerTests.JobConfiguration.class }, + TaskJobLauncherApplicationRunnerTests.JobConfiguration.class }, enabledArgs); validateContext(); assertThat(this.applicationContext.getBean(JobLauncherApplicationRunner.class)) .isNotNull(); Executable executable = () -> this.applicationContext - .getBean(TaskJobLauncherCommandLineRunner.class); + .getBean(TaskJobLauncherApplicationRunner.class); assertThatExceptionOfType(NoSuchBeanDefinitionException.class) .isThrownBy(executable::execute).withMessage("No qualifying bean of type " - + "'org.springframework.cloud.task.batch.handler.TaskJobLauncherCommandLineRunner' available"); + + "'org.springframework.cloud.task.batch.handler.TaskJobLauncherApplicationRunner' available"); validateContext(); } diff --git a/spring-cloud-task-integration-tests/pom.xml b/spring-cloud-task-integration-tests/pom.xml index 403cc2ad..027ba358 100644 --- a/spring-cloud-task-integration-tests/pom.xml +++ b/spring-cloud-task-integration-tests/pom.xml @@ -13,8 +13,8 @@ spring-cloud-task-integration-tests - 1.15.2 - 1.15.2 + 1.15.3 + 1.15.3 1.0.8 diff --git a/spring-cloud-task-samples/batch-events/pom.xml b/spring-cloud-task-samples/batch-events/pom.xml index b84ce774..74cfed7b 100644 --- a/spring-cloud-task-samples/batch-events/pom.xml +++ b/spring-cloud-task-samples/batch-events/pom.xml @@ -13,17 +13,17 @@ org.springframework.boot spring-boot-starter-parent - 2.4.7 + 2.6.0-M1 UTF-8 1.8 - 1.15.2 - 1.15.2 + 1.15.3 + 1.15.3 1.0.8 - 3.1.1-SNAPSHOT + 3.1.4-SNAPSHOT diff --git a/spring-cloud-task-samples/batch-job/pom.xml b/spring-cloud-task-samples/batch-job/pom.xml index d8eab260..11084659 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/jpa-sample/pom.xml b/spring-cloud-task-samples/jpa-sample/pom.xml index adbea7c7..33246134 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/multiple-datasources/pom.xml b/spring-cloud-task-samples/multiple-datasources/pom.xml index 39fa2f09..2869541d 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/partitioned-batch-job/pom.xml b/spring-cloud-task-samples/partitioned-batch-job/pom.xml index f806add8..fea6d243 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 - 2.4.7 + 2.6.0-M1 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 eff4f491..b48e9f9f 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/task-events/pom.xml b/spring-cloud-task-samples/task-events/pom.xml index 62d6bba3..4d5ac6ee 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/taskprocessor/pom.xml b/spring-cloud-task-samples/taskprocessor/pom.xml index 81ab2f5a..8769e1bd 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/tasksink/pom.xml b/spring-cloud-task-samples/tasksink/pom.xml index c942036a..e30abb4a 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 - 2.4.7 + 2.6.0-M1 diff --git a/spring-cloud-task-samples/timestamp/pom.xml b/spring-cloud-task-samples/timestamp/pom.xml index 0d80cfbc..dc77fec3 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 - 2.4.7 + 2.6.0-M1