Skip to content

Commit b2a8c8b

Browse files
ath0swilkinsona
authored andcommitted
Configure jOOQ with TransactionProvider bean when available
See gh-33979
1 parent b28369d commit b2a8c8b

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ public DefaultDSLContext dslContext(org.jooq.Configuration configuration) {
8787
@Bean
8888
@ConditionalOnMissingBean(org.jooq.Configuration.class)
8989
public DefaultConfiguration jooqConfiguration(JooqProperties properties, ConnectionProvider connectionProvider,
90-
DataSource dataSource, ObjectProvider<ExecuteListenerProvider> executeListenerProviders,
90+
DataSource dataSource, ObjectProvider<TransactionProvider> transactionProvider,
91+
ObjectProvider<ExecuteListenerProvider> executeListenerProviders,
9192
ObjectProvider<DefaultConfigurationCustomizer> configurationCustomizers) {
9293
DefaultConfiguration configuration = new DefaultConfiguration();
9394
configuration.set(properties.determineSqlDialect(dataSource));
9495
configuration.set(connectionProvider);
96+
transactionProvider.ifAvailable(configuration::set);
9597
configuration.set(executeListenerProviders.orderedStream().toArray(ExecuteListenerProvider[]::new));
9698
configurationCustomizers.orderedStream().forEach((customizer) -> customizer.customize(configuration));
9799
return configuration;

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfigurationTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ void jooqWithDefaultConnectionProvider() {
113113
});
114114
}
115115

116+
@Test
117+
void jooqWithDefaultTransactionProvider() {
118+
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class, TxManagerConfiguration.class)
119+
.run((context) -> {
120+
DSLContext dsl = context.getBean(DSLContext.class);
121+
TransactionProvider expectedTransactionProvider = context.getBean(TransactionProvider.class);
122+
TransactionProvider transactionProvider = dsl.configuration().transactionProvider();
123+
assertThat(transactionProvider).isSameAs(expectedTransactionProvider);
124+
});
125+
}
126+
116127
@Test
117128
void jooqWithDefaultExecuteListenerProvider() {
118129
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class).run((context) -> {

0 commit comments

Comments
 (0)