1 17 18 package org.apache.geronimo.connector.outbound.connectionmanagerconfig; 19 20 import javax.transaction.TransactionManager ; 21 22 import org.apache.geronimo.connector.outbound.ConnectionInterceptor; 23 import org.apache.geronimo.connector.outbound.ThreadLocalCachingConnectionInterceptor; 24 import org.apache.geronimo.connector.outbound.TransactionCachingInterceptor; 25 import org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor; 26 import org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor; 27 28 34 public class XATransactions extends TransactionSupport { 35 private boolean useTransactionCaching; 36 private boolean useThreadCaching; 37 38 public XATransactions(boolean useTransactionCaching, boolean useThreadCaching) { 39 this.useTransactionCaching = useTransactionCaching; 40 this.useThreadCaching = useThreadCaching; 41 } 42 43 public boolean isUseTransactionCaching() { 44 return useTransactionCaching; 45 } 46 47 public void setUseTransactionCaching(boolean useTransactionCaching) { 48 this.useTransactionCaching = useTransactionCaching; 49 } 50 51 public boolean isUseThreadCaching() { 52 return useThreadCaching; 53 } 54 55 public void setUseThreadCaching(boolean useThreadCaching) { 56 this.useThreadCaching = useThreadCaching; 57 } 58 59 public ConnectionInterceptor addXAResourceInsertionInterceptor(ConnectionInterceptor stack, String name) { 60 return new XAResourceInsertionInterceptor(stack, name); 61 } 62 63 public ConnectionInterceptor addTransactionInterceptors(ConnectionInterceptor stack, TransactionManager transactionManager) { 64 if (isUseThreadCaching()) { 66 stack = new ThreadLocalCachingConnectionInterceptor(stack, false); 68 } 69 stack = new TransactionEnlistingInterceptor(stack, transactionManager); 70 if (isUseTransactionCaching()) { 71 stack = new TransactionCachingInterceptor(stack, transactionManager); 72 } 73 return stack; 74 } 75 } 76
| Popular Tags
|