
org.infinispan.transaction.tm.EmbeddedTransactionManager Maven / Gradle / Ivy
package org.infinispan.transaction.tm;
import javax.transaction.xa.XAResource;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
/**
* Simple transaction manager implementation that maintains transaction state in memory only.
*
* See {@link EmbeddedBaseTransactionManager} for details about which features are supported.
*
* @author bela
* @author Pedro Ruivo
* @see EmbeddedBaseTransactionManager
* @since 9.0
*/
public class EmbeddedTransactionManager extends EmbeddedBaseTransactionManager {
protected static final Log log = LogFactory.getLog(EmbeddedTransactionManager.class);
private EmbeddedTransactionManager() {
}
public static EmbeddedTransactionManager getInstance() {
return LazyInitializeHolder.TM_INSTANCE;
}
public static EmbeddedUserTransaction getUserTransaction() {
return LazyInitializeHolder.USER_TX_INSTANCE;
}
public static void destroy() {
dissociateTransaction();
}
public XAResource firstEnlistedResource() {
return getTransaction().firstEnlistedResource();
}
private static class LazyInitializeHolder {
static final EmbeddedTransactionManager TM_INSTANCE = new EmbeddedTransactionManager();
static final EmbeddedUserTransaction USER_TX_INSTANCE = new EmbeddedUserTransaction(TM_INSTANCE);
}
}