Author: gnodet
Date: Fri Oct 10 07:05:57 2014
New Revision: 1630667
URL: http://svn.apache.org/r1630667
Log:
[ARIES-1250] Make sure the TransactionManager is really optional
Modified:
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/RecoverableDataSource.java
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/ConnectionManagerFactory.java
Modified:
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/RecoverableDataSource.java
URL:
http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/RecoverableDataSource.java?rev=1630667&r1=1630666&r2=1630667&view=diff
==============================================================================
---
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/RecoverableDataSource.java
(original)
+++
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/RecoverableDataSource.java
Fri Oct 10 07:05:57 2014
@@ -192,7 +192,13 @@ public class RecoverableDataSource imple
*/
public void start() throws Exception {
AbstractMCFFactory mcf;
- if (dataSource instanceof XADataSource) {
+ if (("xa".equals(transaction) || "local".equals(transaction)) &&
transactionManager == null) {
+ throw new IllegalArgumentException("xa or local transactions
specified, but no TransactionManager set");
+ }
+ if ("xa".equals(transaction) && !(dataSource instanceof XADataSource))
{
+ throw new IllegalArgumentException("xa transactions specified, but
DataSource does not implement javax.sql.XADataSource");
+ }
+ if ("xa".equals(transaction) || (transactionManager != null &&
dataSource instanceof XADataSource)) {
mcf = new XADataSourceMCFFactory();
if (transaction == null) {
transaction = "xa";
@@ -200,7 +206,7 @@ public class RecoverableDataSource imple
} else if (dataSource instanceof DataSource) {
mcf = new DataSourceMCFFactory();
if (transaction == null) {
- transaction = "local";
+ transaction = "none";
}
} else {
throw new IllegalArgumentException("dataSource must be of type
javax.sql.DataSource/XADataSource");
Modified:
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/ConnectionManagerFactory.java
URL:
http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/ConnectionManagerFactory.java?rev=1630667&r1=1630666&r2=1630667&view=diff
==============================================================================
---
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/ConnectionManagerFactory.java
(original)
+++
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/ConnectionManagerFactory.java
Fri Oct 10 07:05:57 2014
@@ -71,7 +71,7 @@ public class ConnectionManagerFactory {
}
public void init() throws Exception {
- if (transactionManager == null) {
+ if (transactionManager == null && ("xa".equals(transaction) ||
"local".equals(transaction))) {
throw new IllegalArgumentException("transactionManager must be
set");
}
if (managedConnectionFactory == null) {
@@ -138,7 +138,7 @@ public class ConnectionManagerFactory {
if (connectionTracker == null) {
connectionTracker = new ConnectionTrackingCoordinator();
}
- if (transactionManagerMonitor == null) {
+ if (transactionManagerMonitor == null && transactionManager != null) {
transactionManagerMonitor = new
GeronimoTransactionListener(connectionTracker);
transactionManager.addTransactionAssociationListener(transactionManagerMonitor);
}