diff --git a/src/main/java/io/ebean/spring/txn/SpringJdbcTransaction.java b/src/main/java/io/ebean/spring/txn/SpringJdbcTransaction.java index f86433b53..7ef394b45 100644 --- a/src/main/java/io/ebean/spring/txn/SpringJdbcTransaction.java +++ b/src/main/java/io/ebean/spring/txn/SpringJdbcTransaction.java @@ -17,19 +17,17 @@ * along with Ebean; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ - package io.ebean.spring.txn; -import org.springframework.jdbc.datasource.ConnectionHolder; - import io.ebeaninternal.server.transaction.ExternalJdbcTransaction; import io.ebeaninternal.server.transaction.TransactionManager; +import org.springframework.jdbc.datasource.ConnectionHolder; -public class SpringJdbcTransaction extends ExternalJdbcTransaction { +final class SpringJdbcTransaction extends ExternalJdbcTransaction { private final ConnectionHolder holder; - public SpringJdbcTransaction(ConnectionHolder holder, TransactionManager manager) { + SpringJdbcTransaction(ConnectionHolder holder, TransactionManager manager) { super("s" + holder.hashCode(), true, holder.getConnection(), manager); this.holder = holder; } @@ -38,8 +36,4 @@ public class SpringJdbcTransaction extends ExternalJdbcTransaction { public boolean isActive() { return holder.isSynchronizedWithTransaction(); } - - public ConnectionHolder getConnectionHolder() { - return holder; - } } diff --git a/src/main/java/io/ebean/spring/txn/SpringJdbcTransactionManager.java b/src/main/java/io/ebean/spring/txn/SpringJdbcTransactionManager.java index cb478ce16..3dc6f0377 100644 --- a/src/main/java/io/ebean/spring/txn/SpringJdbcTransactionManager.java +++ b/src/main/java/io/ebean/spring/txn/SpringJdbcTransactionManager.java @@ -20,23 +20,15 @@ import static java.lang.System.Logger.Level.DEBUG; * A Spring-aware {@link ExternalTransactionManager}. *
* Will look for Spring transactions and use them if they exist. - *
* * @since 18.05.2009 * @author E Mc Greal */ -public class SpringJdbcTransactionManager implements ExternalTransactionManager { +public final class SpringJdbcTransactionManager implements ExternalTransactionManager { private static final System.Logger log = AppLog.getLogger(SpringJdbcTransactionManager.class); - /** - * The data source. - */ private DataSource dataSource; - - /** - * The Ebean transaction manager. - */ private TransactionManager transactionManager; /** @@ -59,8 +51,7 @@ public class SpringJdbcTransactionManager implements ExternalTransactionManager /** * Looks for a current Spring managed transaction and wraps/returns that as a Ebean transaction. *- * Returns null if there is no current spring transaction (lazy loading outside a spring txn etc). - *
+ * Returns null if there is no current spring transaction (lazy loading outside a spring txn). */ @Override public Object getCurrentTransaction() { @@ -76,17 +67,17 @@ public class SpringJdbcTransactionManager implements ExternalTransactionManager } } - SpringTxnListener springTxnLister = getSpringTxnListener(); + SpringTxnListener springTxnLister = listener(); if (springTxnLister != null) { // we have already seen this transaction - return springTxnLister.getTransaction(); + return springTxnLister.transaction(); } else { // This is a new spring transaction that we have not seen before. // "wrap" it in a SpringJdbcTransaction for use with Ebean SpringJdbcTransaction newTrans = new SpringJdbcTransaction(holder, transactionManager); // Create and register a Spring TransactionSynchronization for this transaction - springTxnLister = createSpringTxnListener(newTrans); + springTxnLister = createListener(newTrans); TransactionSynchronizationManager.registerSynchronization(springTxnLister); return transactionManager.externalBeginTransaction(newTrans, TxScope.required()); } @@ -96,9 +87,8 @@ public class SpringJdbcTransactionManager implements ExternalTransactionManager * Search for our specific transaction listener. ** If it exists then we have already seen and "wrapped" this transaction. - *
*/ - private SpringTxnListener getSpringTxnListener() { + private SpringTxnListener listener() { if (TransactionSynchronizationManager.isSynchronizationActive()) { List- * This is used by Ebean to notify it's appropriate listeners and maintain it's server - * cache etc. - *
+ * Create a listener to enable Ebean to be notified when transactions commit and rollback. */ - private SpringTxnListener createSpringTxnListener(SpringJdbcTransaction t) { - return new SpringTxnListener(transactionManager, t); + private SpringTxnListener createListener(SpringJdbcTransaction transaction) { + return new SpringTxnListener(transactionManager, transaction); } /** - * A Spring TransactionSynchronization that we register with Spring to get - * notified when a Spring managed transaction has been committed or rolled - * back. + * A Spring TransactionSynchronization that we register with Spring to get notified when + * a Spring managed transaction has been committed or rolled back. *- * When Ebean is notified (of the commit/rollback) it can then manage its - * cache, notify BeanPersistListeners etc. - *
+ * When Ebean is notified (of the commit/rollback) it can then manage its cache, notify + * BeanPersistListeners etc. */ private static class SpringTxnListener extends TransactionSynchronizationAdapter { @@ -145,10 +128,7 @@ public class SpringJdbcTransactionManager implements ExternalTransactionManager this.transaction = t; } - /** - * Return the associated Ebean wrapped transaction. - */ - SpringJdbcTransaction getTransaction() { + private SpringJdbcTransaction transaction() { return transaction; }