You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2017/01/02 13:55:01 UTC
cayenne git commit: CAY-2165 Explicit "contribution" API for easier
expansion of DI collections and map
Repository: cayenne
Updated Branches:
refs/heads/master 36e70f4e7 -> 50d4fbf50
CAY-2165 Explicit "contribution" API for easier expansion of DI collections and map
* adding a method to flip external TX property
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/50d4fbf5
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/50d4fbf5
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/50d4fbf5
Branch: refs/heads/master
Commit: 50d4fbf50047e87a99b67a3ac4d9e577e9522a87
Parents: 36e70f4
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Mon Jan 2 16:54:43 2017 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Mon Jan 2 16:54:43 2017 +0300
----------------------------------------------------------------------
.../cayenne/configuration/server/ServerModule.java | 13 ++++++++++++-
.../java/org/apache/cayenne/tx/BaseTransaction.java | 1 +
.../org/apache/cayenne/tx/ExternalTransaction.java | 1 +
3 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/50d4fbf5/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
index 1e32efc..e8314c0 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
@@ -97,6 +97,17 @@ public class ServerModule implements Module {
protected String[] configurationLocations;
/**
+ * Sets transaction management to either external or internal transactions. Default is internally-managed transactions.
+ *
+ * @param binder DI binder passed to the module during injector startup.
+ * @param useExternal whether external (true) or internal (false) transaction management should be used.
+ * @since 4.0
+ */
+ public static void useExternalTransactions(Binder binder, boolean useExternal) {
+ contributeProperties(binder).put(Constants.SERVER_EXTERNAL_TX_PROPERTY, String.valueOf(useExternal));
+ }
+
+ /**
* Provides access to a DI collection builder for String locations that allows downstream modules to
* "contribute" their own Cayenne project locations.
*
@@ -207,7 +218,7 @@ public class ServerModule implements Module {
this.configurationLocations = new String[configurationLocations.length + 1];
this.configurationLocations[0] = firstConfigLocation;
- if(configurationLocations.length > 0) {
+ if (configurationLocations.length > 0) {
System.arraycopy(configurationLocations, 0, this.configurationLocations, 1, configurationLocations.length);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/50d4fbf5/cayenne-server/src/main/java/org/apache/cayenne/tx/BaseTransaction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/tx/BaseTransaction.java b/cayenne-server/src/main/java/org/apache/cayenne/tx/BaseTransaction.java
index 6281b01..9b7ac0f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/tx/BaseTransaction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/tx/BaseTransaction.java
@@ -223,6 +223,7 @@ public abstract class BaseTransaction implements Transaction {
}
if (connections == null) {
+ // transaction is single-threaded, so using a non-concurrent map...
connections = new HashMap<>();
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/50d4fbf5/cayenne-server/src/main/java/org/apache/cayenne/tx/ExternalTransaction.java
----------------------------------------------------------------------
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 168a2bc..8fd4316 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
@@ -39,6 +39,7 @@ public class ExternalTransaction extends BaseTransaction {
logger.logCommitTransaction("no commit - transaction controlled externally.");
}
+ @Override
protected void processRollback() {
logger.logRollbackTransaction("no rollback - transaction controlled externally.");
}