Skip to content

Commit fed13b0

Browse files
committed
Back off if DataSource is not on the classpath
Closes gh-41082
1 parent 847ff50 commit fed13b0

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
*/
5050
@AutoConfiguration(before = TransactionAutoConfiguration.class,
5151
after = TransactionManagerCustomizationAutoConfiguration.class)
52-
@ConditionalOnClass({ JdbcTemplate.class, TransactionManager.class })
52+
@ConditionalOnClass({ DataSource.class, JdbcTemplate.class, TransactionManager.class })
5353
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
5454
@EnableConfigurationProperties(DataSourceProperties.class)
5555
public class DataSourceTransactionManagerAutoConfiguration {

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfigurationTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.boot.autoconfigure.AutoConfigurations;
2626
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
2727
import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizationAutoConfiguration;
28+
import org.springframework.boot.test.context.FilteredClassLoader;
2829
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2930
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
3031
import org.springframework.jdbc.support.JdbcTransactionManager;
@@ -40,6 +41,7 @@
4041
* @author Stephane Nicoll
4142
* @author Kazuki Shimizu
4243
* @author Davin Byeon
44+
* @author Moritz Halbritter
4345
*/
4446
class DataSourceTransactionManagerAutoConfigurationTests {
4547

@@ -124,4 +126,10 @@ void transactionWithMultipleDataSourcesAndPrimaryCandidateIsConfigured() {
124126
});
125127
}
126128

129+
@Test
130+
void shouldNotUseDataSourcePropertiesIfDataSourceIsNotOnTheClasspath() {
131+
this.contextRunner.withClassLoader(new FilteredClassLoader(DataSource.class))
132+
.run((context) -> assertThat(context).doesNotHaveBean(DataSourceProperties.class));
133+
}
134+
127135
}

0 commit comments

Comments
 (0)