1 17 18 package org.apache.geronimo.connector.outbound.connectiontracking; 19 20 import org.apache.geronimo.gbean.GBeanInfo; 21 import org.apache.geronimo.gbean.GBeanInfoBuilder; 22 import org.apache.geronimo.gbean.GBeanLifecycle; 23 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 24 import org.apache.geronimo.transaction.manager.MonitorableTransactionManager; 25 26 30 public class ConnectionTrackingCoordinatorGBean extends ConnectionTrackingCoordinator implements GBeanLifecycle { 31 private final MonitorableTransactionManager monitorableTm; 32 private final GeronimoTransactionListener listener; 33 34 public ConnectionTrackingCoordinatorGBean(MonitorableTransactionManager monitorableTm) { 35 this.monitorableTm = monitorableTm; 36 listener = new GeronimoTransactionListener(this); 37 } 38 39 public void doStart() throws Exception { 40 monitorableTm.addTransactionAssociationListener(listener); 41 } 42 43 public void doStop() throws Exception { 44 monitorableTm.removeTransactionAssociationListener(listener); 45 } 46 47 public void doFail() { 48 monitorableTm.removeTransactionAssociationListener(listener); 49 } 50 51 public final static GBeanInfo GBEAN_INFO; 52 53 static { 54 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(ConnectionTrackingCoordinatorGBean.class, NameFactory.JCA_CONNECTION_TRACKER); 55 56 infoFactory.addReference("TransactionManager", MonitorableTransactionManager.class, NameFactory.TRANSACTION_MANAGER); 57 58 infoFactory.addInterface(TrackedConnectionAssociator.class); 59 infoFactory.addInterface(ConnectionTracker.class); 60 61 infoFactory.setConstructor(new String [] {"TransactionManager"}); 62 GBEAN_INFO = infoFactory.getBeanInfo(); 63 } 64 65 public static GBeanInfo getGBeanInfo() { 66 return GBEAN_INFO; 67 } 68 69 } 70 | Popular Tags |