Skip to content

Commit 7cbee70

Browse files
committed
Allow user-provided ExecuteListenerProvider to go after Boot's
Closes gh-14598
1 parent 7e4b22d commit 7cbee70

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4646
import org.springframework.context.annotation.Bean;
4747
import org.springframework.context.annotation.Configuration;
48+
import org.springframework.core.annotation.Order;
4849
import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
4950
import org.springframework.transaction.PlatformTransactionManager;
5051

@@ -79,6 +80,7 @@ public SpringTransactionProvider transactionProvider(
7980
}
8081

8182
@Bean
83+
@Order(0)
8284
public DefaultExecuteListenerProvider jooqExceptionTranslatorExecuteListenerProvider() {
8385
return new DefaultExecuteListenerProvider(new JooqExceptionTranslator());
8486
}

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,15 @@
3838
import org.jooq.TransactionalRunnable;
3939
import org.jooq.VisitListener;
4040
import org.jooq.VisitListenerProvider;
41+
import org.jooq.impl.DefaultExecuteListenerProvider;
4142
import org.junit.Test;
4243

4344
import org.springframework.boot.autoconfigure.AutoConfigurations;
4445
import org.springframework.boot.jdbc.DataSourceBuilder;
4546
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
4647
import org.springframework.context.annotation.Bean;
4748
import org.springframework.context.annotation.Configuration;
49+
import org.springframework.core.annotation.Order;
4850
import org.springframework.dao.DataIntegrityViolationException;
4951
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
5052
import org.springframework.transaction.PlatformTransactionManager;
@@ -150,8 +152,13 @@ public void customProvidersArePickedUp() {
150152
.isEqualTo(TestExecutorProvider.class);
151153
assertThat(dsl.configuration().recordListenerProviders().length)
152154
.isEqualTo(1);
153-
assertThat(dsl.configuration().executeListenerProviders().length)
154-
.isEqualTo(2);
155+
ExecuteListenerProvider[] executeListenerProviders = dsl
156+
.configuration().executeListenerProviders();
157+
assertThat(executeListenerProviders.length).isEqualTo(2);
158+
assertThat(executeListenerProviders[0])
159+
.isInstanceOf(DefaultExecuteListenerProvider.class);
160+
assertThat(executeListenerProviders[1])
161+
.isInstanceOf(TestExecuteListenerProvider.class);
155162
assertThat(dsl.configuration().visitListenerProviders().length)
156163
.isEqualTo(1);
157164
assertThat(dsl.configuration().transactionListenerProviders().length)
@@ -260,6 +267,7 @@ public RecordListener provide() {
260267

261268
}
262269

270+
@Order(100)
263271
protected static class TestExecuteListenerProvider
264272
implements ExecuteListenerProvider {
265273

0 commit comments

Comments
 (0)