1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.ibatis.sqlmap.engine.transaction.jta;
17
18 import com.ibatis.sqlmap.client.SqlMapException;
19 import com.ibatis.sqlmap.engine.transaction.BaseTransactionConfig;
20 import com.ibatis.sqlmap.engine.transaction.Transaction;
21 import com.ibatis.sqlmap.engine.transaction.TransactionException;
22
23 import java.sql.SQLException;
24 import java.util.Properties;
25
26 import javax.naming.InitialContext;
27 import javax.naming.NamingException;
28 import javax.transaction.UserTransaction;
29
30
31
32
33 public class JavaxTransactionConfig extends BaseTransactionConfig {
34
35
36 private UserTransaction userTransaction;
37
38 @Override
39 public Transaction newTransaction(int transactionIsolation) throws SQLException, TransactionException {
40 return new JavaxTransaction(userTransaction, dataSource, transactionIsolation);
41 }
42
43
44
45
46
47
48 public UserTransaction getUserTransaction() {
49 return userTransaction;
50 }
51
52
53
54
55
56
57
58 public void setUserTransaction(UserTransaction userTransaction) {
59 this.userTransaction = userTransaction;
60 }
61
62 @Override
63 public void setProperties(Properties props) throws SQLException, TransactionException {
64 String utxName = null;
65 try {
66 utxName = (String) props.get("UserTransaction");
67 InitialContext initCtx = new InitialContext();
68 userTransaction = (UserTransaction) initCtx.lookup(utxName);
69 } catch (NamingException e) {
70 throw new SqlMapException(
71 "Error initializing JtaTransactionConfig while looking up UserTransaction (" + utxName + "). Cause: " + e);
72 }
73 }
74
75 }