1
2
3
4
5
6
7
8
9
10 package org.mule.providers.jdbc.xa;
11
12 import java.lang.reflect.InvocationHandler;
13 import java.lang.reflect.InvocationTargetException;
14 import java.lang.reflect.Method;
15 import java.sql.Statement;
16
17
18 public class StatementInvocationHandler implements InvocationHandler
19 {
20
21 private Statement statement;
22 private ConnectionWrapper connectionWrapper;
23
24 public StatementInvocationHandler(ConnectionWrapper connectionWrapper, Statement statement)
25 {
26 this.connectionWrapper = connectionWrapper;
27 this.statement = statement;
28 }
29
30
31
32
33
34
35
36 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
37 {
38 if (method.getName().startsWith("execute"))
39 {
40 connectionWrapper.enlist();
41 }
42 try
43 {
44 return method.invoke(statement, args);
45 }
46 catch (InvocationTargetException ex)
47 {
48 throw ex.getCause();
49 }
50 }
51
52 }