package com.github.witoldsz.ultm; import java.sql.Connection; import java.util.function.Consumer; import com.github.witoldsz.ultm.internal.ManagedDataSource; import com.github.witoldsz.ultm.internal.ThreadLocalTxManager; import javax.sql.DataSource; /** * * @author witoldsz */ public class ULTM { private final Consumer<Connection> noopTuner = c -> {}; private final DataSource managedDataSource; private final ThreadLocalTxManager threadLocalTxManager; public ULTM(DataSource rawDataSource) { threadLocalTxManager = new ThreadLocalTxManager(rawDataSource, noopTuner); managedDataSource = new ManagedDataSource(rawDataSource, threadLocalTxManager); } public ULTM(DataSource rawDataSource, Consumer<Connection> connectionTuner) { threadLocalTxManager = new ThreadLocalTxManager(rawDataSource, connectionTuner); managedDataSource = new ManagedDataSource(rawDataSource, threadLocalTxManager); } public DataSource getManagedDataSource() { return managedDataSource; } public TxManager getTxManager() { return threadLocalTxManager; } }