Skip to content

Commit fb5d4b6

Browse files
committed
SingleStepBatch Job can be used with spring-cloud-task-stream
resolves #799 Added config to reduce testcontainer logging Updated to use task starter
1 parent a785fb0 commit fb5d4b6

File tree

10 files changed

+51
-11
lines changed

10 files changed

+51
-11
lines changed

docs/src/main/asciidoc/README.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
= Spring Cloud Task image:https://build.spring.io/plugins/servlet/wittified/build-status/SCT-STASK[Build Status, link=https://build.spring.io/browse/SCT-STASK]
1+
= Spring Cloud Task
22

33
Is a project centered around the idea of processing on demand. A user is able to develop
44
a “task” that can be deployed, executed and removed on demand, yet the result of the

spring-cloud-starter-single-step-batch-job/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
1111

1212
<properties>
13-
<test.containers.version>1.16.0</test.containers.version>
14-
<test.rabbit.containers.version>1.16.0</test.rabbit.containers.version>
13+
<test.containers.version>1.16.1</test.containers.version>
14+
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
1515
<test.ducttape.version>1.0.8</test.ducttape.version>
1616
</properties>
1717

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<configuration>
2+
<include resource="org/springframework/boot/logging/logback/base.xml"/>
3+
<logger name="org.apache.http" level="WARN"/>
4+
<logger name="com.github.dockerjava" level="WARN"/>
5+
<logger name="org.zeroturnaround.exec" level="WARN"/>
6+
</configuration>

spring-cloud-task-integration-tests/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<artifactId>spring-cloud-task-integration-tests</artifactId>
1414

1515
<properties>
16-
<test.containers.version>1.16.0</test.containers.version>
17-
<test.rabbit.containers.version>1.16.0</test.rabbit.containers.version>
16+
<test.containers.version>1.16.1</test.containers.version>
17+
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
1818
<test.ducttape.version>1.0.8</test.ducttape.version>
1919
</properties>
2020

spring-cloud-task-samples/batch-events/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
<properties>
2121
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2222
<java.version>1.8</java.version>
23-
<test.containers.version>1.16.0</test.containers.version>
24-
<test.rabbit.containers.version>1.16.0</test.rabbit.containers.version>
23+
<test.containers.version>1.16.1</test.containers.version>
24+
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
2525
<test.ducttape.version>1.0.8</test.ducttape.version>
2626
<spring.cloud.stream>3.2.0-SNAPSHOT</spring.cloud.stream>
2727
</properties>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<configuration>
2+
<include resource="org/springframework/boot/logging/logback/base.xml"/>
3+
<logger name="org.apache.http" level="WARN"/>
4+
<logger name="com.github.dockerjava" level="WARN"/>
5+
<logger name="org.zeroturnaround.exec" level="WARN"/>
6+
</configuration>

spring-cloud-task-samples/single-step-batch-job/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
</dependency>
4242
<dependency>
4343
<groupId>org.springframework.cloud</groupId>
44-
<artifactId>spring-cloud-task-core</artifactId>
44+
<artifactId>spring-cloud-starter-task</artifactId>
45+
<version>${project.version}</version>
4546
</dependency>
4647
<dependency>
4748
<groupId>org.springframework.boot</groupId>

spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2019 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -28,6 +28,7 @@
2828
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
31+
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
3132
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3233
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3334
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -182,6 +183,7 @@ public interface BatchEventsChannels {
182183
@EnableBinding(BatchEventsChannels.class)
183184
@EnableConfigurationProperties(TaskEventProperties.class)
184185
@ConditionalOnMissingBean(name = JOB_EXECUTION_EVENTS_LISTENER)
186+
@ConditionalOnExpression("T(org.springframework.util.StringUtils).isEmpty('${spring.batch.job.jobName:}')")
185187
public static class JobExecutionListenerConfiguration {
186188

187189
@Autowired

spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2019 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
2020
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2121
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
23+
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
2324
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2425
import org.springframework.cloud.stream.annotation.EnableBinding;
2526
import org.springframework.cloud.stream.annotation.Output;
@@ -33,10 +34,12 @@
3334

3435
/**
3536
* @author Michael Minella
37+
* @author Glenn Renfro
3638
*/
3739
@Configuration(proxyBeanMethods = false)
3840
@ConditionalOnClass(EnableBinding.class)
3941
@ConditionalOnBean(TaskLifecycleListener.class)
42+
@ConditionalOnExpression("T(org.springframework.util.StringUtils).isEmpty('${spring.batch.job.jobName:}')")
4043
// @checkstyle:off
4144
@ConditionalOnProperty(prefix = "spring.cloud.task.events", name = "enabled",
4245
havingValue = "true", matchIfMissing = true)

spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2019 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@
2323
import java.util.List;
2424
import java.util.Map;
2525

26+
import org.junit.jupiter.api.Assertions;
2627
import org.junit.jupiter.api.BeforeEach;
2728
import org.junit.jupiter.api.Test;
2829

@@ -339,6 +340,27 @@ public void testOrderConfiguration() {
339340
});
340341
}
341342

343+
@Test
344+
public void singleStepBatchJobSkip() {
345+
ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner()
346+
.withConfiguration(AutoConfigurations.of(
347+
EventJobExecutionConfiguration.class,
348+
PropertyPlaceholderAutoConfiguration.class,
349+
TestSupportBinderAutoConfiguration.class,
350+
SimpleTaskAutoConfiguration.class, SingleTaskConfiguration.class))
351+
.withUserConfiguration(
352+
BatchEventAutoConfiguration.JobExecutionListenerConfiguration.class)
353+
.withPropertyValues("--spring.cloud.task.closecontext_enabled=false",
354+
"--spring.main.web-environment=false", "spring.batch.job.jobName=FOO");
355+
applicationContextRunner.run((context) -> {
356+
NoSuchBeanDefinitionException exception = Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> {
357+
context.getBean("jobExecutionEventsListener");
358+
});
359+
assertThat(exception.getMessage()).contains(
360+
String.format("No bean named 'jobExecutionEventsListener' available"));
361+
});
362+
}
363+
342364
private void testDisabledConfiguration(String property, String disabledListener) {
343365
String disabledPropertyArg = (property != null) ? "--" + property + "=false" : "";
344366
ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner()

0 commit comments

Comments
 (0)