org.infinispan.transaction.tm.DummyNoXaXid Maven / Gradle / Ivy
package org.infinispan.transaction.tm;
import javax.transaction.xa.Xid;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Xid to be used when no XAResource enlistment takes place. This is more efficient both creation and memory wise than
* {@link DummyXid}.
*
* @author Mircea Markus (C) 2011 Red Hat Inc.
* @since 5.1
*/
public final class DummyNoXaXid implements Xid {
private static final AtomicInteger txIdCounter = new AtomicInteger(0);
private final int id = txIdCounter.incrementAndGet();
@Override
public int getFormatId() {
return id;
}
@Override
public byte[] getGlobalTransactionId() {
throw new UnsupportedOperationException();
}
@Override
public byte[] getBranchQualifier() {
throw new UnsupportedOperationException();
}
@Override
public String toString() {
return "DummyXid{" +
"id=" + id +
'}';
}
/**
* Implementing an efficient hashCode is critical for performance:
*/
@Override
public final int hashCode() {
return id;
}
@Override
public final boolean equals(Object obj) {
return this == obj;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy