1
2
3
4
5
6
7
8
9
10 package org.apache.commons.messenger;
11
12 import javax.jms.Session;
13 import javax.jms.XASession;
14 import javax.transaction.Transaction;
15 import javax.transaction.xa.XAResource;
16
17 import org.apache.commons.logging.Log;
18 import org.apache.commons.logging.LogFactory;
19
20
21
22
23
24
25
26
27
28
29
30 public class XAMessenger extends DefaultMessenger implements XACapable {
31
32
33 private static final Log log = LogFactory.getLog(XAMessenger.class);
34
35 public XAMessenger() {
36 }
37
38
39
40
41 public void enlistResources(Transaction transaction) throws Exception {
42 XAResource resource = getXAResource();
43 if (resource != null) {
44 transaction.enlistResource(resource);
45 }
46 }
47
48 public void delistResources(Transaction transaction, int flag) throws Exception {
49 XAResource resource = getXAResource();
50 if (resource != null) {
51 transaction.delistResource(resource, flag);
52 }
53 }
54
55
56
57
58
59
60
61 protected XAResource getXAResource() throws Exception {
62 Session session = getMessengerSession().getSession();
63 if (session instanceof XASession) {
64 XASession xaSession = (XASession) session;
65 return xaSession.getXAResource();
66 }
67 return null;
68 }
69 }