1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.common.util.jta;
17
18 import javax.transaction.TransactionManager;
19
20 import org.apache.openjpa.ee.AbstractManagedRuntime;
21 import org.apache.openjpa.ee.ManagedRuntime;
22
23 public class AtomikosManagedRuntime extends AbstractManagedRuntime implements ManagedRuntime {
24
25 private static TransactionManager tm;
26 private Throwable cause;
27
28 public AtomikosManagedRuntime() {
29 super();
30 }
31
32 @Override
33 public Throwable getRollbackCause() throws Exception {
34 return cause;
35 }
36
37 @Override
38 public TransactionManager getTransactionManager() throws Exception {
39 if(tm==null){
40 Class<?> clazz = Class.forName("com.atomikos.icatch.jta.UserTransactionManager");
41 tm = (TransactionManager) clazz.newInstance();
42 }
43 return tm;
44 }
45
46 @Override
47 public void setRollbackOnly(Throwable cause) throws Exception {
48 this.cause=cause;
49 getTransactionManager().getTransaction().setRollbackOnly();
50 }
51
52 public static TransactionManager getTm() {
53 return tm;
54 }
55
56 public static void setTm(TransactionManager tm) {
57 AtomikosManagedRuntime.tm = tm;
58 }
59
60
61
62 }