This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit b4f6322044027ae83ab28aa321f2778e4af44198
Author: Nikita Timofeev <[email protected]>
AuthorDate: Mon Jul 4 16:49:46 2022 +0300

    CAY-2741 Cleanup TransactionDescriptor and deprecate 
DefaultTransactionDescriptor
---
 RELEASE-NOTES.txt                                   | 11 +++++++++++
 .../org/apache/cayenne/tx/CayenneTransaction.java   |  2 +-
 .../cayenne/tx/DefaultTransactionDescriptor.java    |  6 +++---
 .../cayenne/tx/DefaultTransactionFactory.java       |  2 +-
 .../cayenne/tx/DefaultTransactionManager.java       |  4 ++--
 .../org/apache/cayenne/tx/ExternalTransaction.java  |  2 +-
 .../apache/cayenne/tx/TransactionDescriptor.java    | 21 +++++++++++++++++++++
 7 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 40adf9e5f..f1704aef6 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -7,6 +7,17 @@ https://cayenne.apache.org/
 To browse individual bug reports check out project issue tracker:
 https://issues.apache.org/jira/browse/CAY
 
+----------------------------------
+Release: 4.2.RC2
+Date:
+----------------------------------
+Changes/New Features:
+
+CAY-2741 Cleanup TransactionDescriptor and deprecate 
DefaultTransactionDescriptor
+
+Bug Fixes:
+
+
 ----------------------------------
 Release: 4.2.RC1
 Date: June 3, 2022
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 b5933164c..e9ab90ee7 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,13 +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 DefaultTransactionDescriptor instance = new 
DefaultTransactionDescriptor();
-
     public static TransactionDescriptor getInstance() {
-        return instance;
+        return TransactionDescriptor.defaultDescriptor();
     }
 
     private DefaultTransactionDescriptor() {
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 734132a9f..bba721da5 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;
@@ -109,17 +114,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();

Reply via email to