/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.test.transactional.connection;
import org.mule.runtime.core.util.queue.Queue;
import org.mule.runtime.core.util.queue.QueueSession;
import org.mule.runtime.core.util.xa.ResourceManagerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.transaction.xa.XAException;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
public class DummyXaResource implements XAResource, QueueSession {
private boolean commitStarted;
private boolean commitEnded;
private boolean rollbackExecuted;
private boolean isTxStarted;
protected static final Logger logger = LoggerFactory.getLogger(DummyXaResource.class);
@Override
public void commit(Xid xid, boolean b) throws XAException {
this.commitStarted = true;
logger.debug("Committing XA TX. {}, One Face: {}", xid, b);
}
@Override
public void end(Xid xid, int i) throws XAException {
this.commitEnded = true;
logger.debug("Committing XA TX. {}, Flags: {}", xid, i);
}
@Override
public void forget(Xid xid) throws XAException {
logger.debug("Forgetting XA TX. {}", xid);
}
@Override
public int getTransactionTimeout() throws XAException {
return 0;
}
@Override
public boolean isSameRM(XAResource xaResource) throws XAException {
return true;
}
@Override
public int prepare(Xid xid) throws XAException {
logger.debug("Preparing XA TX. {}", xid);
return 0;
}
@Override
public Xid[] recover(int i) throws XAException {
logger.debug("Recovering XA TX. {}", i);
return new Xid[0];
}
@Override
public void rollback(Xid xid) throws XAException {
this.rollbackExecuted = true;
logger.debug("Recovering XA TX. {}", xid);
}
@Override
public boolean setTransactionTimeout(int i) throws XAException {
logger.debug("Setting XA TX Timeout. {}", i);
return true;
}
@Override
public void start(Xid xid, int i) throws XAException {
logger.debug("Started XA TX. {} {}", xid, i);
this.isTxStarted = true;
}
@Override
public Queue getQueue(String name) {
return null;
}
@Override
public void begin() throws ResourceManagerException {
}
@Override
public void commit() throws ResourceManagerException {
}
@Override
public void rollback() throws ResourceManagerException {
}
public boolean isCommitStarted() {
return commitStarted;
}
public boolean isTxEnded() {
return commitEnded;
}
public boolean isRollbackExecuted() {
return rollbackExecuted;
}
public boolean isTxStarted() {
return isTxStarted;
}
}