Skip to content

Commit dcc0ca0

Browse files
committed
Polish contribution
See gh-24862
1 parent 3aea8b3 commit dcc0ca0

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public DefaultDSLContext dslContext(org.jooq.Configuration configuration) {
9595
@Bean
9696
@ConditionalOnMissingBean(org.jooq.Configuration.class)
9797
public DefaultConfiguration jooqConfiguration(JooqProperties properties, ConnectionProvider connectionProvider,
98-
ObjectProvider<ExecuteListenerProvider> executeListenerProviders, DataSource dataSource,
98+
DataSource dataSource, ObjectProvider<ExecuteListenerProvider> executeListenerProviders,
9999
ObjectProvider<DefaultConfigurationCustomizer> configurationCustomizers) {
100100
DefaultConfiguration configuration = new DefaultConfiguration();
101101
configuration.set(properties.determineSqlDialect(dataSource));
@@ -107,7 +107,7 @@ public DefaultConfiguration jooqConfiguration(JooqProperties properties, Connect
107107

108108
@Bean
109109
@Deprecated
110-
public DefaultConfigurationCustomizer jooQProviderDefaultConfigurationCustomizer(
110+
public DefaultConfigurationCustomizer jooqProvidersDefaultConfigurationCustomizer(
111111
ObjectProvider<TransactionProvider> transactionProvider,
112112
ObjectProvider<RecordMapperProvider> recordMapperProvider,
113113
ObjectProvider<RecordUnmapperProvider> recordUnmapperProvider, ObjectProvider<Settings> settings,

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

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import javax.sql.DataSource;
2020

2121
import org.jooq.CharsetProvider;
22+
import org.jooq.ConnectionProvider;
2223
import org.jooq.ConverterProvider;
2324
import org.jooq.DSLContext;
2425
import org.jooq.ExecuteListener;
@@ -31,6 +32,7 @@
3132
import org.jooq.TransactionListenerProvider;
3233
import org.jooq.TransactionalRunnable;
3334
import org.jooq.VisitListenerProvider;
35+
import org.jooq.impl.DataSourceConnectionProvider;
3436
import org.jooq.impl.DefaultExecuteListenerProvider;
3537
import org.junit.jupiter.api.Test;
3638

@@ -42,6 +44,7 @@
4244
import org.springframework.core.annotation.Order;
4345
import org.springframework.dao.DataIntegrityViolationException;
4446
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
47+
import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
4548
import org.springframework.transaction.PlatformTransactionManager;
4649

4750
import static org.assertj.core.api.Assertions.assertThat;
@@ -101,7 +104,37 @@ void jooqWithTx() {
101104
"insert into jooqtest (name) values ('foo');")));
102105
dsl.transaction(new AssertFetch(dsl, "select count(*) as total from jooqtest_tx;", "1"));
103106
});
107+
}
108+
109+
@Test
110+
void jooqWithDefaultConnectionProvider() {
111+
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class).run((context) -> {
112+
DSLContext dsl = context.getBean(DSLContext.class);
113+
ConnectionProvider connectionProvider = dsl.configuration().connectionProvider();
114+
assertThat(connectionProvider).isInstanceOf(DataSourceConnectionProvider.class);
115+
DataSource connectionProviderDataSource = ((DataSourceConnectionProvider) connectionProvider).dataSource();
116+
assertThat(connectionProviderDataSource).isInstanceOf(TransactionAwareDataSourceProxy.class);
117+
});
118+
}
119+
120+
@Test
121+
void jooqWithDefaultExecuteListenerProvider() {
122+
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class).run((context) -> {
123+
DSLContext dsl = context.getBean(DSLContext.class);
124+
assertThat(dsl.configuration().executeListenerProviders()).hasSize(1);
125+
});
126+
}
104127

128+
@Test
129+
void jooqWithSeveralExecuteListenerProviders() {
130+
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class, TestExecuteListenerProvider.class)
131+
.run((context) -> {
132+
DSLContext dsl = context.getBean(DSLContext.class);
133+
ExecuteListenerProvider[] executeListenerProviders = dsl.configuration().executeListenerProviders();
134+
assertThat(executeListenerProviders).hasSize(2);
135+
assertThat(executeListenerProviders[0]).isInstanceOf(DefaultExecuteListenerProvider.class);
136+
assertThat(executeListenerProviders[1]).isInstanceOf(TestExecuteListenerProvider.class);
137+
});
105138
}
106139

107140
@Test
@@ -129,9 +162,7 @@ void customProvidersArePickedUp() {
129162
VisitListenerProvider visitListenerProvider = mock(VisitListenerProvider.class);
130163
TransactionListenerProvider transactionListenerProvider = mock(TransactionListenerProvider.class);
131164
ExecutorProvider executorProvider = mock(ExecutorProvider.class);
132-
this.contextRunner
133-
.withUserConfiguration(JooqDataSourceConfiguration.class, TxManagerConfiguration.class,
134-
TestExecuteListenerProvider.class)
165+
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class, TxManagerConfiguration.class)
135166
.withBean(RecordMapperProvider.class, () -> recordMapperProvider)
136167
.withBean(RecordUnmapperProvider.class, () -> recordUnmapperProvider)
137168
.withBean(RecordListenerProvider.class, () -> recordListenerProvider)
@@ -143,10 +174,6 @@ void customProvidersArePickedUp() {
143174
assertThat(dsl.configuration().recordUnmapperProvider()).isSameAs(recordUnmapperProvider);
144175
assertThat(dsl.configuration().executorProvider()).isSameAs(executorProvider);
145176
assertThat(dsl.configuration().recordListenerProviders()).containsExactly(recordListenerProvider);
146-
ExecuteListenerProvider[] executeListenerProviders = dsl.configuration().executeListenerProviders();
147-
assertThat(executeListenerProviders).hasSize(2);
148-
assertThat(executeListenerProviders[0]).isInstanceOf(DefaultExecuteListenerProvider.class);
149-
assertThat(executeListenerProviders[1]).isInstanceOf(TestExecuteListenerProvider.class);
150177
assertThat(dsl.configuration().visitListenerProviders()).containsExactly(visitListenerProvider);
151178
assertThat(dsl.configuration().transactionListenerProviders())
152179
.containsExactly(transactionListenerProvider);

0 commit comments

Comments
 (0)