Commit ee158df9 authored by Stephane Nicoll's avatar Stephane Nicoll

Merge branch '2.0.x'

parents d0ce919d 9e871816
...@@ -24,6 +24,7 @@ import org.jooq.ExecuteListenerProvider; ...@@ -24,6 +24,7 @@ import org.jooq.ExecuteListenerProvider;
import org.jooq.RecordListenerProvider; import org.jooq.RecordListenerProvider;
import org.jooq.RecordMapperProvider; import org.jooq.RecordMapperProvider;
import org.jooq.RecordUnmapperProvider; import org.jooq.RecordUnmapperProvider;
import org.jooq.TransactionListenerProvider;
import org.jooq.TransactionProvider; import org.jooq.TransactionProvider;
import org.jooq.VisitListenerProvider; import org.jooq.VisitListenerProvider;
import org.jooq.conf.Settings; import org.jooq.conf.Settings;
...@@ -51,6 +52,7 @@ import org.springframework.transaction.PlatformTransactionManager; ...@@ -51,6 +52,7 @@ import org.springframework.transaction.PlatformTransactionManager;
* *
* @author Andreas Ahlenstorf * @author Andreas Ahlenstorf
* @author Michael Simons * @author Michael Simons
* @author Dmytro Nosan
* @since 1.3.0 * @since 1.3.0
*/ */
@Configuration @Configuration
...@@ -105,6 +107,8 @@ public class JooqAutoConfiguration { ...@@ -105,6 +107,8 @@ public class JooqAutoConfiguration {
private final VisitListenerProvider[] visitListenerProviders; private final VisitListenerProvider[] visitListenerProviders;
private final TransactionListenerProvider[] transactionListenerProviders;
public DslContextConfiguration(JooqProperties properties, public DslContextConfiguration(JooqProperties properties,
ConnectionProvider connectionProvider, DataSource dataSource, ConnectionProvider connectionProvider, DataSource dataSource,
ObjectProvider<TransactionProvider> transactionProvider, ObjectProvider<TransactionProvider> transactionProvider,
...@@ -113,7 +117,8 @@ public class JooqAutoConfiguration { ...@@ -113,7 +117,8 @@ public class JooqAutoConfiguration {
ObjectProvider<Settings> settings, ObjectProvider<Settings> settings,
ObjectProvider<RecordListenerProvider[]> recordListenerProviders, ObjectProvider<RecordListenerProvider[]> recordListenerProviders,
ExecuteListenerProvider[] executeListenerProviders, ExecuteListenerProvider[] executeListenerProviders,
ObjectProvider<VisitListenerProvider[]> visitListenerProviders) { ObjectProvider<VisitListenerProvider[]> visitListenerProviders,
ObjectProvider<TransactionListenerProvider[]> transactionListenerProviders) {
this.properties = properties; this.properties = properties;
this.connection = connectionProvider; this.connection = connectionProvider;
this.dataSource = dataSource; this.dataSource = dataSource;
...@@ -124,6 +129,8 @@ public class JooqAutoConfiguration { ...@@ -124,6 +129,8 @@ public class JooqAutoConfiguration {
this.recordListenerProviders = recordListenerProviders.getIfAvailable(); this.recordListenerProviders = recordListenerProviders.getIfAvailable();
this.executeListenerProviders = executeListenerProviders; this.executeListenerProviders = executeListenerProviders;
this.visitListenerProviders = visitListenerProviders.getIfAvailable(); this.visitListenerProviders = visitListenerProviders.getIfAvailable();
this.transactionListenerProviders = transactionListenerProviders
.getIfAvailable();
} }
@Bean @Bean
...@@ -152,6 +159,8 @@ public class JooqAutoConfiguration { ...@@ -152,6 +159,8 @@ public class JooqAutoConfiguration {
configuration.set(this.recordListenerProviders); configuration.set(this.recordListenerProviders);
configuration.set(this.executeListenerProviders); configuration.set(this.executeListenerProviders);
configuration.set(this.visitListenerProviders); configuration.set(this.visitListenerProviders);
configuration
.setTransactionListenerProvider(this.transactionListenerProviders);
return configuration; return configuration;
} }
......
...@@ -30,6 +30,8 @@ import org.jooq.RecordType; ...@@ -30,6 +30,8 @@ import org.jooq.RecordType;
import org.jooq.RecordUnmapper; import org.jooq.RecordUnmapper;
import org.jooq.RecordUnmapperProvider; import org.jooq.RecordUnmapperProvider;
import org.jooq.SQLDialect; import org.jooq.SQLDialect;
import org.jooq.TransactionListener;
import org.jooq.TransactionListenerProvider;
import org.jooq.TransactionalRunnable; import org.jooq.TransactionalRunnable;
import org.jooq.VisitListener; import org.jooq.VisitListener;
import org.jooq.VisitListenerProvider; import org.jooq.VisitListenerProvider;
...@@ -56,6 +58,7 @@ import static org.junit.Assert.fail; ...@@ -56,6 +58,7 @@ import static org.junit.Assert.fail;
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Dmytro Nosan
*/ */
public class JooqAutoConfigurationTests { public class JooqAutoConfigurationTests {
...@@ -137,8 +140,8 @@ public class JooqAutoConfigurationTests { ...@@ -137,8 +140,8 @@ public class JooqAutoConfigurationTests {
this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class, this.contextRunner.withUserConfiguration(JooqDataSourceConfiguration.class,
TxManagerConfiguration.class, TestRecordMapperProvider.class, TxManagerConfiguration.class, TestRecordMapperProvider.class,
TestRecordUnmapperProvider.class, TestRecordListenerProvider.class, TestRecordUnmapperProvider.class, TestRecordListenerProvider.class,
TestExecuteListenerProvider.class, TestVisitListenerProvider.class) TestExecuteListenerProvider.class, TestVisitListenerProvider.class,
.run((context) -> { TestTransactionListenerProvider.class).run((context) -> {
DSLContext dsl = context.getBean(DSLContext.class); DSLContext dsl = context.getBean(DSLContext.class);
assertThat(dsl.configuration().recordMapperProvider().getClass()) assertThat(dsl.configuration().recordMapperProvider().getClass())
.isEqualTo(TestRecordMapperProvider.class); .isEqualTo(TestRecordMapperProvider.class);
...@@ -150,6 +153,8 @@ public class JooqAutoConfigurationTests { ...@@ -150,6 +153,8 @@ public class JooqAutoConfigurationTests {
.isEqualTo(2); .isEqualTo(2);
assertThat(dsl.configuration().visitListenerProviders().length) assertThat(dsl.configuration().visitListenerProviders().length)
.isEqualTo(1); .isEqualTo(1);
assertThat(dsl.configuration().transactionListenerProviders().length)
.isEqualTo(1);
}); });
} }
...@@ -273,4 +278,14 @@ public class JooqAutoConfigurationTests { ...@@ -273,4 +278,14 @@ public class JooqAutoConfigurationTests {
} }
protected static class TestTransactionListenerProvider
implements TransactionListenerProvider {
@Override
public TransactionListener provide() {
return null;
}
}
} }
...@@ -3773,6 +3773,7 @@ following jOOQ Types: ...@@ -3773,6 +3773,7 @@ following jOOQ Types:
* `RecordListenerProvider` * `RecordListenerProvider`
* `ExecuteListenerProvider` * `ExecuteListenerProvider`
* `VisitListenerProvider` * `VisitListenerProvider`
* `TransactionListenerProvider`
You can also create your own `org.jooq.Configuration` `@Bean` if you want to take You can also create your own `org.jooq.Configuration` `@Bean` if you want to take
complete control of the jOOQ configuration. complete control of the jOOQ configuration.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment