|
23 | 23 |
|
24 | 24 | import org.springframework.aop.framework.AopProxyUtils; |
25 | 25 | import org.springframework.aop.scope.ScopedProxyUtils; |
| 26 | +import org.springframework.batch.support.transaction.ResourcelessTransactionManager; |
26 | 27 | import org.springframework.beans.factory.BeanCreationException; |
27 | 28 | import org.springframework.beans.factory.NoSuchBeanDefinitionException; |
28 | 29 | import org.springframework.beans.factory.annotation.Autowired; |
|
47 | 48 | import org.springframework.context.ConfigurableApplicationContext; |
48 | 49 | import org.springframework.context.annotation.Bean; |
49 | 50 | import org.springframework.context.annotation.Configuration; |
| 51 | +import org.springframework.transaction.PlatformTransactionManager; |
50 | 52 |
|
51 | 53 | import static org.assertj.core.api.Assertions.assertThat; |
52 | 54 | import static org.assertj.core.api.Assertions.assertThatExceptionOfType; |
@@ -173,6 +175,32 @@ public void testMultipleDataSources() { |
173 | 175 |
|
174 | 176 | } |
175 | 177 |
|
| 178 | + @Test |
| 179 | + void testSpecifyTransactionManager() { |
| 180 | + ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() |
| 181 | + .withConfiguration(AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, |
| 182 | + SimpleTaskAutoConfiguration.class, SingleTaskConfiguration.class)) |
| 183 | + .withBean("transactionManager", ResourcelessTransactionManager.class) |
| 184 | + .withPropertyValues("spring.cloud.task.transaction-manager=transactionManager"); |
| 185 | + applicationContextRunner.run((context) -> { |
| 186 | + assertThat(context.getBeanNamesForType(PlatformTransactionManager.class)).hasSize(1) |
| 187 | + .contains("transactionManager") |
| 188 | + .doesNotContain("springCloudTaskTransactionManager"); |
| 189 | + }); |
| 190 | + } |
| 191 | + |
| 192 | + @Test |
| 193 | + void testDefaultTransactionManager() { |
| 194 | + ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() |
| 195 | + .withConfiguration(AutoConfigurations.of(PropertyPlaceholderAutoConfiguration.class, |
| 196 | + SimpleTaskAutoConfiguration.class, SingleTaskConfiguration.class)); |
| 197 | + applicationContextRunner.run((context) -> { |
| 198 | + assertThat(context.getBeanNamesForType(PlatformTransactionManager.class)).hasSize(1) |
| 199 | + .contains("springCloudTaskTransactionManager") |
| 200 | + .doesNotContain("transactionManager"); |
| 201 | + }); |
| 202 | + } |
| 203 | + |
176 | 204 | public void verifyExceptionThrownDefaultExecutable(Class classToCheck, |
177 | 205 | ApplicationContextRunner applicationContextRunner) { |
178 | 206 | Executable executable = () -> { |
|
0 commit comments