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 jakarta.transaction.UserTransaction;
24
25 import java.sql.SQLException;
26 import java.util.Properties;
27
28 import javax.naming.InitialContext;
29 import javax.naming.NamingException;
30
31
32
33
34 public class JakartaTransactionConfig extends BaseTransactionConfig {
35
36
37 private UserTransaction userTransaction;
38
39 @Override
40 public Transaction newTransaction(int transactionIsolation) throws SQLException, TransactionException {
41 return new JakartaTransaction(userTransaction, dataSource, transactionIsolation);
42 }
43
44
45
46
47
48
49 public UserTransaction getUserTransaction() {
50 return userTransaction;
51 }
52
53
54
55
56
57
58
59 public void setUserTransaction(UserTransaction userTransaction) {
60 this.userTransaction = userTransaction;
61 }
62
63 @Override
64 public void setProperties(Properties props) throws SQLException, TransactionException {
65 String utxName = null;
66 try {
67 utxName = (String) props.get("UserTransaction");
68 InitialContext initCtx = new InitialContext();
69 userTransaction = (UserTransaction) initCtx.lookup(utxName);
70 } catch (NamingException e) {
71 throw new SqlMapException(
72 "Error initializing JtaTransactionConfig while looking up UserTransaction (" + utxName + "). Cause: " + e);
73 }
74 }
75
76 }