From 7cbee701cdbc02483198735bf44a13df4b9952ce Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 3 Oct 2018 16:55:48 +0100 Subject: [PATCH] Allow user-provided ExecuteListenerProvider to go after Boot's Closes gh-14598 --- .../autoconfigure/jooq/JooqAutoConfiguration.java | 2 ++ .../jooq/JooqAutoConfigurationTests.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration.java index 9074078aacc..bc239df595e 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfiguration.java @@ -45,6 +45,7 @@ import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfigu import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy; import org.springframework.transaction.PlatformTransactionManager; @@ -79,6 +80,7 @@ public class JooqAutoConfiguration { } @Bean + @Order(0) public DefaultExecuteListenerProvider jooqExceptionTranslatorExecuteListenerProvider() { return new DefaultExecuteListenerProvider(new JooqExceptionTranslator()); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfigurationTests.java index 3dfdb17a6f0..020025f4563 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jooq/JooqAutoConfigurationTests.java @@ -38,6 +38,7 @@ import org.jooq.TransactionListenerProvider; import org.jooq.TransactionalRunnable; import org.jooq.VisitListener; import org.jooq.VisitListenerProvider; +import org.jooq.impl.DefaultExecuteListenerProvider; import org.junit.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -45,6 +46,7 @@ import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; @@ -150,8 +152,13 @@ public class JooqAutoConfigurationTests { .isEqualTo(TestExecutorProvider.class); assertThat(dsl.configuration().recordListenerProviders().length) .isEqualTo(1); - assertThat(dsl.configuration().executeListenerProviders().length) - .isEqualTo(2); + ExecuteListenerProvider[] executeListenerProviders = dsl + .configuration().executeListenerProviders(); + assertThat(executeListenerProviders.length).isEqualTo(2); + assertThat(executeListenerProviders[0]) + .isInstanceOf(DefaultExecuteListenerProvider.class); + assertThat(executeListenerProviders[1]) + .isInstanceOf(TestExecuteListenerProvider.class); assertThat(dsl.configuration().visitListenerProviders().length) .isEqualTo(1); assertThat(dsl.configuration().transactionListenerProviders().length) @@ -260,6 +267,7 @@ public class JooqAutoConfigurationTests { } + @Order(100) protected static class TestExecuteListenerProvider implements ExecuteListenerProvider {