|
|||||||||
Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |
org.activemq.message
Class ActiveMQXid

java.lang.Objectorg.activemq.message.ActiveMQXid
- All Implemented Interfaces:
- java.lang.Comparable, java.io.Externalizable, java.io.Serializable, javax.transaction.xa.Xid
- public class ActiveMQXid
- extends java.lang.Object
- implements javax.transaction.xa.Xid, java.io.Externalizable, java.lang.Comparable
- extends java.lang.Object
A ActiveMQXid
object holds the distributed
transaction id that is passed around in an ActiveMQ system.
Eventhough a Transaction Manager (TM) has his own Xid implementation that he uses when he talks to the our ActiveMQXAResource, we need to send the Xid data down to the server in our format.
ActiveMQ uses Strings as the transaction id. This class coverts an Xid to and from a string.
- Version:
- $Revision: 1.1.1.1 $
Field Summary | |
private byte[] |
branchQualifier
|
private int |
formatId
|
private byte[] |
globalTransactionId
|
private int |
hash
|
private static java.lang.String[] |
HEX_TABLE
|
private static org.apache.commons.logging.Log |
log
|
private static long |
serialVersionUID
|
Fields inherited from interface javax.transaction.xa.Xid |
MAXBQUALSIZE, MAXGTRIDSIZE |
Constructor Summary | |
ActiveMQXid()
This constructor is only used for serialization |
|
ActiveMQXid(byte[] data)
|
|
ActiveMQXid(int formatId,
byte[] branchQualifier,
byte[] globalTransactionId)
|
|
ActiveMQXid(java.lang.String txid)
Creates a new ActiveMQXid object. |
|
ActiveMQXid(javax.transaction.xa.Xid xid)
Creates a new ActiveMQXid object with the Xid data contained in xid |
Method Summary | |
protected int |
compareTo(byte[] left,
byte[] right)
|
int |
compareTo(java.lang.Object object)
Compares this object with another, and returns a numerical result based on the comparison. |
static boolean |
equals(byte[] left,
byte[] right)
|
boolean |
equals(java.lang.Object that)
Determine whether this Object is semantically equal to another Object. |
static boolean |
equals(javax.transaction.xa.Xid tis,
javax.transaction.xa.Xid that)
Test for equivlance between two Xid |
static ActiveMQXid |
fromBytes(byte[] data)
Deserializes the data into an Xid |
byte[] |
getBranchQualifier()
|
int |
getFormatId()
|
byte[] |
getGlobalTransactionId()
|
protected int |
hash(byte[] bytes,
int hash)
|
int |
hashCode()
Get a value that represents this Object, as uniquely as possible within the confines of an int. |
static ActiveMQXid |
read(java.io.DataInput dataIn)
Reads the Xid from a stream |
protected static byte[] |
readBytes(java.io.DataInput dataIn)
|
void |
readExternal(java.io.ObjectInput in)
This method restores an object's state by reading in the instance data for the object from the passed in stream. |
void |
readState(java.io.DataInput dataIn)
|
byte[] |
toBytes()
|
static byte[] |
toBytesFromHex(java.lang.String hex)
|
static java.lang.String |
toHexFromBytes(byte[] bytes)
|
java.lang.String |
toLocalTransactionId()
|
java.lang.String |
toString()
Convert this Object to a human-readable String. |
static java.lang.Object |
transactionIDFromString(java.lang.String text)
A helper method for the OpenWire protocol to convert a local or XA transaction ID string into an object |
static java.lang.String |
transactionIDToString(java.lang.Object transactionID)
A helper method for the OpenWire protocol to convert a local or XA transaction ID object into a String |
void |
write(java.io.DataOutput dataOut)
Writes the Xid to a stream |
protected void |
writeBytes(java.io.DataOutput dataOut,
byte[] data)
|
void |
writeExternal(java.io.ObjectOutput out)
This method is responsible for writing the instance data of an object to the passed in stream. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
log
private static final org.apache.commons.logging.Log log
formatId
private int formatId
branchQualifier
private byte[] branchQualifier
globalTransactionId
private byte[] globalTransactionId
hash
private transient int hash
HEX_TABLE
private static final java.lang.String[] HEX_TABLE
Constructor Detail |
ActiveMQXid
public ActiveMQXid()
- This constructor is only used for serialization
ActiveMQXid
public ActiveMQXid(javax.transaction.xa.Xid xid)
- Creates a new ActiveMQXid object with the Xid data
contained in
xid
ActiveMQXid
public ActiveMQXid(int formatId, byte[] branchQualifier, byte[] globalTransactionId)
ActiveMQXid
public ActiveMQXid(byte[] data) throws java.io.IOException
ActiveMQXid
public ActiveMQXid(java.lang.String txid) throws javax.jms.JMSException
- Creates a new ActiveMQXid object.
Method Detail |
fromBytes
public static ActiveMQXid fromBytes(byte[] data) throws java.io.IOException
- Deserializes the data into an Xid
transactionIDToString
public static java.lang.String transactionIDToString(java.lang.Object transactionID) throws java.io.IOException
- A helper method for the OpenWire protocol to convert a local or XA transaction ID object into a String
transactionIDFromString
public static java.lang.Object transactionIDFromString(java.lang.String text) throws java.io.IOException
- A helper method for the OpenWire protocol to convert a local or XA transaction ID string into an object
hashCode
public int hashCode()
- Description copied from class:
java.lang.Object
- Get a value that represents this Object, as uniquely as
possible within the confines of an int.
There are some requirements on this method which subclasses must follow:
- Semantic equality implies identical hashcodes. In other
words, if
a.equals(b)
is true, thena.hashCode() == b.hashCode()
must be as well. However, the reverse is not necessarily true, and two objects may have the same hashcode without being equal. - It must be consistent. Whichever value o.hashCode() returns on the first invocation must be the value returned on all later invocations as long as the object exists. Notice, however, that the result of hashCode may change between separate executions of a Virtual Machine, because it is not invoked on the same object.
Notice that since
hashCode
is used in java.util.Hashtable and other hashing classes, a poor implementation will degrade the performance of hashing (so don't blindly implement it as returning a constant!). Also, if calculating the hash is time-consuming, a class may consider caching the results.The default implementation returns
System.identityHashCode(this)
- Semantic equality implies identical hashcodes. In other
words, if
equals
public boolean equals(java.lang.Object that)
- Description copied from class:
java.lang.Object
- Determine whether this Object is semantically equal
to another Object.
There are some fairly strict requirements on this method which subclasses must follow:
- It must be transitive. If
a.equals(b)
andb.equals(c)
, thena.equals(c)
must be true as well. - It must be symmetric.
a.equals(b)
andb.equals(a)
must have the same value. - It must be reflexive.
a.equals(a)
must always be true. - It must be consistent. Whichever value a.equals(b) returns on the first invocation must be the value returned on all later invocations.
a.equals(null)
must be false.- It must be consistent with hashCode(). That is,
a.equals(b)
must implya.hashCode() == b.hashCode()
. The reverse is not true; two objects that are not equal may have the same hashcode, but that has the potential to harm hashing performance.
This is typically overridden to throw a java.lang.ClassCastException if the argument is not comparable to the class performing the comparison, but that is not a requirement. It is legal for
a.equals(b)
to be true even thougha.getClass() != b.getClass()
. Also, it is typical to never cause a java.lang.NullPointerException.In general, the Collections API (
java.util
) use theequals
method rather than the==
operator to compare objects. However, java.util.IdentityHashMap is an exception to this rule, for its own good reasons.The default implementation returns
this == o
. - It must be transitive. If
equals
public static boolean equals(javax.transaction.xa.Xid tis, javax.transaction.xa.Xid that)
- Test for equivlance between two Xid
compareTo
public int compareTo(java.lang.Object object)
- Description copied from interface:
java.lang.Comparable
- Compares this object with another, and returns a numerical result based
on the comparison. If the result is negative, this object sorts less
than the other; if 0, the two are equal, and if positive, this object
sorts greater than the other. To translate this into boolean, simply
perform
o1.compareTo(o2) <op> 0
, where op is one of <, <=, =, !=, >, or >=.You must make sure that the comparison is mutual, ie.
sgn(x.compareTo(y)) == -sgn(y.compareTo(x))
(where sgn() is defined as -1, 0, or 1 based on the sign). This includes throwing an exception in either direction if the two are not comparable; hence,compareTo(null)
should always throw an Exception.You should also ensure transitivity, in two forms:
x.compareTo(y) > 0 && y.compareTo(z) > 0
impliesx.compareTo(z) > 0
; andx.compareTo(y) == 0
impliesx.compareTo(z) == y.compareTo(z)
.- Specified by:
compareTo
in interfacejava.lang.Comparable
toLocalTransactionId
public java.lang.String toLocalTransactionId()
getBranchQualifier
public byte[] getBranchQualifier()
- Specified by:
getBranchQualifier
in interfacejavax.transaction.xa.Xid
getFormatId
public int getFormatId()
- Specified by:
getFormatId
in interfacejavax.transaction.xa.Xid
getGlobalTransactionId
public byte[] getGlobalTransactionId()
- Specified by:
getGlobalTransactionId
in interfacejavax.transaction.xa.Xid
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object
- Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string concatenation with this object. If the result is
null
, string concatenation will instead use"null"
.The default implementation returns
getClass().getName() + "@" + Integer.toHexString(hashCode())
.
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
- Description copied from interface:
java.io.Externalizable
- This method is responsible for writing the instance data of an object
to the passed in stream. Note that this stream is not a subclass of
OutputStream
, but rather is a class that implements theObjectOutput
interface. That interface provides a number of methods for writing Java data values to a stream.Not that the implementation of this method must be coordinated with the implementation of
readExternal
.- Specified by:
writeExternal
in interfacejava.io.Externalizable
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
- Description copied from interface:
java.io.Externalizable
- This method restores an object's state by reading in the instance data
for the object from the passed in stream. Note that this stream is not
a subclass of
InputStream
, but rather is a class that implements theObjectInput
interface. That interface provides a mechanism for reading in Java data types from a stream.Note that this method must be compatible with
writeExternal
. It must read back the exact same types that were written by that method in the exact order they were written.If this method needs to read back an object instance, then the class for that object must be found and loaded. If that operation fails, then this method throws a
ClassNotFoundException
- Specified by:
readExternal
in interfacejava.io.Externalizable
readState
public void readState(java.io.DataInput dataIn) throws java.io.IOException
read
public static ActiveMQXid read(java.io.DataInput dataIn) throws java.io.IOException
- Reads the Xid from a stream
toBytes
public byte[] toBytes() throws java.io.IOException
write
public void write(java.io.DataOutput dataOut) throws java.io.IOException
- Writes the Xid to a stream
writeBytes
protected void writeBytes(java.io.DataOutput dataOut, byte[] data) throws java.io.IOException
readBytes
protected static byte[] readBytes(java.io.DataInput dataIn) throws java.io.IOException
equals
public static boolean equals(byte[] left, byte[] right)
compareTo
protected int compareTo(byte[] left, byte[] right)
hash
protected int hash(byte[] bytes, int hash)
toBytesFromHex
public static byte[] toBytesFromHex(java.lang.String hex)
toHexFromBytes
public static java.lang.String toHexFromBytes(byte[] bytes)
|
|||||||||
Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |