All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.transaction.tm.DummyNoXaXid Maven / Gradle / Ivy

There is a newer version: 9.1.7.Final
Show newest version
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