Skip to content

Commit 0a2d2e6

Browse files
committed
Merge pull request #14471 from Davin Kevin
* gh-14471: Polish "Use ExecutorProvider bean if available when auto-configuring jOOQ" Use ExecutorProvider bean if available when auto-configuring jOOQ
2 parents 637f697 + a1d1a73 commit 0a2d2e6

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.jooq.ConnectionProvider;
2222
import org.jooq.DSLContext;
2323
import org.jooq.ExecuteListenerProvider;
24+
import org.jooq.ExecutorProvider;
2425
import org.jooq.RecordListenerProvider;
2526
import org.jooq.RecordMapperProvider;
2627
import org.jooq.RecordUnmapperProvider;
@@ -109,6 +110,8 @@ public static class DslContextConfiguration {
109110

110111
private final TransactionListenerProvider[] transactionListenerProviders;
111112

113+
private final ExecutorProvider executorProvider;
114+
112115
public DslContextConfiguration(JooqProperties properties,
113116
ConnectionProvider connectionProvider, DataSource dataSource,
114117
ObjectProvider<TransactionProvider> transactionProvider,
@@ -118,7 +121,8 @@ public DslContextConfiguration(JooqProperties properties,
118121
ObjectProvider<RecordListenerProvider[]> recordListenerProviders,
119122
ExecuteListenerProvider[] executeListenerProviders,
120123
ObjectProvider<VisitListenerProvider[]> visitListenerProviders,
121-
ObjectProvider<TransactionListenerProvider[]> transactionListenerProviders) {
124+
ObjectProvider<TransactionListenerProvider[]> transactionListenerProviders,
125+
ObjectProvider<ExecutorProvider> executorProvider) {
122126
this.properties = properties;
123127
this.connection = connectionProvider;
124128
this.dataSource = dataSource;
@@ -131,6 +135,7 @@ public DslContextConfiguration(JooqProperties properties,
131135
this.visitListenerProviders = visitListenerProviders.getIfAvailable();
132136
this.transactionListenerProviders = transactionListenerProviders
133137
.getIfAvailable();
138+
this.executorProvider = executorProvider.getIfAvailable();
134139
}
135140

136141
@Bean
@@ -156,6 +161,9 @@ public DefaultConfiguration jooqConfiguration() {
156161
if (this.settings != null) {
157162
configuration.set(this.settings);
158163
}
164+
if (this.executorProvider != null) {
165+
configuration.set(this.executorProvider);
166+
}
159167
configuration.set(this.recordListenerProviders);
160168
configuration.set(this.executeListenerProviders);
161169
configuration.set(this.visitListenerProviders);

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616

1717
package org.springframework.boot.autoconfigure.jooq;
1818

19+
import java.util.concurrent.Executor;
20+
1921
import javax.sql.DataSource;
2022

2123
import org.jooq.DSLContext;
2224
import org.jooq.ExecuteListener;
2325
import org.jooq.ExecuteListenerProvider;
26+
import org.jooq.ExecutorProvider;
2427
import org.jooq.Record;
2528
import org.jooq.RecordListener;
2629
import org.jooq.RecordListenerProvider;
@@ -141,12 +144,15 @@ public void customProvidersArePickedUp() {
141144
TxManagerConfiguration.class, TestRecordMapperProvider.class,
142145
TestRecordUnmapperProvider.class, TestRecordListenerProvider.class,
143146
TestExecuteListenerProvider.class, TestVisitListenerProvider.class,
144-
TestTransactionListenerProvider.class).run((context) -> {
147+
TestTransactionListenerProvider.class, TestExecutorProvider.class)
148+
.run((context) -> {
145149
DSLContext dsl = context.getBean(DSLContext.class);
146150
assertThat(dsl.configuration().recordMapperProvider().getClass())
147151
.isEqualTo(TestRecordMapperProvider.class);
148152
assertThat(dsl.configuration().recordUnmapperProvider().getClass())
149153
.isEqualTo(TestRecordUnmapperProvider.class);
154+
assertThat(dsl.configuration().executorProvider().getClass())
155+
.isEqualTo(TestExecutorProvider.class);
150156
assertThat(dsl.configuration().recordListenerProviders().length)
151157
.isEqualTo(1);
152158
assertThat(dsl.configuration().executeListenerProviders().length)
@@ -288,4 +294,13 @@ public TransactionListener provide() {
288294

289295
}
290296

297+
protected static class TestExecutorProvider implements ExecutorProvider {
298+
299+
@Override
300+
public Executor provide() {
301+
return null;
302+
}
303+
304+
}
305+
291306
}

spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3966,6 +3966,7 @@ which is used when the jOOQ `Configuration` is created. You can define beans for
39663966
following jOOQ Types:
39673967

39683968
* `ConnectionProvider`
3969+
* `ExecutorProvider`
39693970
* `TransactionProvider`
39703971
* `RecordMapperProvider`
39713972
* `RecordUnmapperProvider`

0 commit comments

Comments
 (0)