1 17 18 package org.apache.geronimo.connector.outbound; 19 20 import javax.resource.ResourceException ; 21 import javax.resource.spi.ManagedConnectionFactory ; 22 import javax.resource.spi.ConnectionManager ; 23 import javax.transaction.xa.XAException ; 24 import javax.transaction.xa.XAResource ; 25 import javax.transaction.xa.Xid ; 26 27 import org.apache.geronimo.transaction.manager.NamedXAResource; 28 29 34 public interface ConnectionManagerContainer { 35 36 Object createConnectionFactory(ManagedConnectionFactory mcf) throws ResourceException ; 37 38 ReturnableXAResource getRecoveryXAResource(ManagedConnectionFactory managedConnectionFactory) throws ResourceException ; 39 40 ConnectionManager getConnectionManager(); 41 42 public class ReturnableXAResource implements NamedXAResource { 43 private final ConnectionInterceptor stack; 44 private final ConnectionInfo connectionInfo; 45 private final NamedXAResource delegate; 46 47 public ReturnableXAResource(NamedXAResource delegate, ConnectionInterceptor stack, ConnectionInfo connectionInfo) { 48 this.delegate = delegate; 49 this.stack = stack; 50 this.connectionInfo = connectionInfo; 51 } 52 53 public void returnConnection() { 54 stack.returnConnection(connectionInfo, ConnectionReturnAction.DESTROY); 55 } 56 57 public String getName() { 58 return delegate.getName(); 59 } 60 61 public void commit(Xid xid, boolean onePhase) throws XAException { 62 delegate.commit(xid, onePhase); 63 } 64 65 public void end(Xid xid, int flags) throws XAException { 66 delegate.end(xid, flags); 67 } 68 69 public void forget(Xid xid) throws XAException { 70 delegate.forget(xid); 71 } 72 73 public int getTransactionTimeout() throws XAException { 74 return delegate.getTransactionTimeout(); 75 } 76 77 public boolean isSameRM(XAResource other) throws XAException { 78 if (other instanceof ReturnableXAResource) { 79 return delegate.isSameRM(((ReturnableXAResource)other).delegate); 80 } 81 return delegate.isSameRM(other); 82 } 83 84 public int prepare(Xid xid) throws XAException { 85 return delegate.prepare(xid); 86 } 87 88 public Xid [] recover(int flag) throws XAException { 89 return delegate.recover(flag); 90 } 91 92 public void rollback(Xid xid) throws XAException { 93 delegate.rollback(xid); 94 } 95 96 public boolean setTransactionTimeout(int seconds) throws XAException { 97 return delegate.setTransactionTimeout(seconds); 98 } 99 100 public void start(Xid xid, int flags) throws XAException { 101 delegate.start(xid, flags); 102 } 103 104 105 } 106 107 } 108 | Popular Tags |