This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 3c995f84f80ba046bda8cc1dbf8c591a06ab2bb1 Author: Nikita Timofeev <[email protected]> AuthorDate: Mon Jul 4 16:49:46 2022 +0300 CAY-2741 Cleanup TransactionDescriptor and deprecate DefaultTransactionDescriptor --- .../org/apache/cayenne/tx/CayenneTransaction.java | 2 +- .../cayenne/tx/DefaultTransactionDescriptor.java | 10 +++------- .../cayenne/tx/DefaultTransactionFactory.java | 2 +- .../cayenne/tx/DefaultTransactionManager.java | 4 ++-- .../org/apache/cayenne/tx/ExternalTransaction.java | 2 +- .../apache/cayenne/tx/TransactionDescriptor.java | 21 +++++++++++++++++++++ 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/CayenneTransaction.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/CayenneTransaction.java index 31903ee5a..873d55a24 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/CayenneTransaction.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/CayenneTransaction.java @@ -35,7 +35,7 @@ public class CayenneTransaction extends BaseTransaction { protected JdbcEventLogger logger; public CayenneTransaction(JdbcEventLogger logger) { - this(logger, DefaultTransactionDescriptor.getInstance()); + this(logger, TransactionDescriptor.defaultDescriptor()); } /** diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionDescriptor.java index 76fff71b3..a5046c806 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionDescriptor.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionDescriptor.java @@ -21,17 +21,13 @@ package org.apache.cayenne.tx; /** * @since 4.1 + * @deprecated since 4.2, use {@link TransactionDescriptor#defaultDescriptor()} */ +@Deprecated public class DefaultTransactionDescriptor extends TransactionDescriptor { - private static final TransactionDescriptor instance = TransactionDescriptor - .builder() - .isolation(TransactionDescriptor.ISOLATION_DEFAULT) - .propagation(TransactionPropagation.NESTED) - .build(); - public static TransactionDescriptor getInstance() { - return instance; + return TransactionDescriptor.defaultDescriptor(); } } diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionFactory.java index b85ec6aef..737fcfe06 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionFactory.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionFactory.java @@ -39,7 +39,7 @@ public class DefaultTransactionFactory implements TransactionFactory { @Override public Transaction createTransaction() { - return createTransaction(DefaultTransactionDescriptor.getInstance()); + return createTransaction(TransactionDescriptor.defaultDescriptor()); } /** diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionManager.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionManager.java index 62ef6f630..e906a3c05 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionManager.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/DefaultTransactionManager.java @@ -37,12 +37,12 @@ public class DefaultTransactionManager implements TransactionManager { @Override public <T> T performInTransaction(TransactionalOperation<T> op) { - return performInTransaction(op, DoNothingTransactionListener.getInstance(), DefaultTransactionDescriptor.getInstance()); + return performInTransaction(op, DoNothingTransactionListener.getInstance(), TransactionDescriptor.defaultDescriptor()); } @Override public <T> T performInTransaction(TransactionalOperation<T> op, TransactionListener callback) { - return performInTransaction(op, callback, DefaultTransactionDescriptor.getInstance()); + return performInTransaction(op, callback, TransactionDescriptor.defaultDescriptor()); } /** diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/ExternalTransaction.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/ExternalTransaction.java index d1e5bee3b..4eef31516 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/ExternalTransaction.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/ExternalTransaction.java @@ -31,7 +31,7 @@ public class ExternalTransaction extends BaseTransaction { protected JdbcEventLogger logger; public ExternalTransaction(JdbcEventLogger jdbcEventLogger) { - this(jdbcEventLogger, DefaultTransactionDescriptor.getInstance()); + this(jdbcEventLogger, TransactionDescriptor.defaultDescriptor()); } /** diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/TransactionDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/TransactionDescriptor.java index 54d769c26..c14b4eb2a 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/tx/TransactionDescriptor.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/TransactionDescriptor.java @@ -41,6 +41,11 @@ public class TransactionDescriptor { */ public static final int ISOLATION_DEFAULT = -1; + private static final TransactionDescriptor DEFAULT_DESCRIPTOR = builder() + .propagation(TransactionPropagation.NESTED) + .isolation(TransactionDescriptor.ISOLATION_DEFAULT) + .build(); + private int isolation; private TransactionPropagation propagation; @@ -66,17 +71,33 @@ public class TransactionDescriptor { /** * @return custom connection supplier, passed by user + * @since 4.2 */ public Supplier<Connection> getConnectionSupplier() { return connectionSupplier; } + /** + * @return TransactionDescriptor Builder + * @since 4.2 + */ public static Builder builder(){ return new Builder(); } + /** + * Returns descriptor with the {@link TransactionPropagation#NESTED} propagation + * and the {@link #ISOLATION_DEFAULT} isolation level + * @return default descriptor + * @since 4.2 + */ + public static TransactionDescriptor defaultDescriptor() { + return DEFAULT_DESCRIPTOR; + } + /** * Builder class for the TransactionDescriptor. + * @since 4.2 */ public static class Builder { private final TransactionDescriptor transactionDescriptor = new TransactionDescriptor();
