[jboss-cvs] JBossAS SVN: r57119 -	trunk/connector/src/main/org/jboss/resource/connectionmanager/xa
    jboss-cvs-commits at lists.jboss.org 
    jboss-cvs-commits at lists.jboss.org
       
    Sun Sep 24 16:44:23 EDT 2006
    
    
  
Author: weston.price at jboss.com
Date: 2006-09-24 16:44:22 -0400 (Sun, 24 Sep 2006)
New Revision: 57119
Modified:
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
Log:
[JBAS-3183] [JBAS-1405] [JBAS-397] Continued work on XAResourceWrapper and JcaXid. Moving
previous handling of Xid padding and isSameRM from XidFactory and
BaseWrapperManagedConnectionFactory respectively. Made XAResoruceWrapper
configurable option from XSLT.
Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java	2006-09-24 14:12:18 UTC (rev 57118)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java	2006-09-24 20:44:22 UTC (rev 57119)
@@ -22,6 +22,7 @@
 package org.jboss.resource.connectionmanager.xa;
 
 import java.io.Serializable;
+import java.util.Arrays;
 
 import javax.transaction.xa.Xid;
 
@@ -46,6 +47,12 @@
    /** The branchQualifier */
    private byte[] branchQualifier;
    
+   /** Cached toString() */
+   private transient String cachedToString;
+
+   /** Cached hashCode() */
+   private transient int cachedHashCode;
+
    /** Whether or not to pad the id */
    private boolean pad;
    
@@ -61,7 +68,6 @@
       
       branchQualifier = (pad) ? new byte[Xid.MAXBQUALSIZE] : new byte[xid.getBranchQualifier().length];      
       System.arraycopy(xid.getBranchQualifier(), 0, branchQualifier, 0, xid.getBranchQualifier().length);      
-
       this.globalTransactionId = xid.getGlobalTransactionId();
       this.formatId = xid.getFormatId();
       
@@ -82,4 +88,47 @@
       return this.globalTransactionId;
    }
    
+   public boolean equals(Object object)
+   {
+      if (object == null || (object instanceof Xid) == false)
+         return false;
+
+      Xid other = (Xid) object;
+      return
+      (
+         formatId == other.getFormatId() && 
+         Arrays.equals(globalTransactionId, other.getGlobalTransactionId()) &&
+         Arrays.equals(branchQualifier, other.getBranchQualifier())
+      );
+   }
+
+   public int hashCode()
+   {
+      if (cachedHashCode == 0)
+      {
+         cachedHashCode = formatId;
+         for (int i = 0; i < globalTransactionId.length; ++i)
+            cachedHashCode += globalTransactionId[i];
+      }
+      return cachedHashCode;
+   }
+
+   public String toString()
+   {
+      if (cachedToString == null)
+      {
+         StringBuffer buffer = new StringBuffer();
+         buffer.append("JcaXid[FormatId=").append(getFormatId());
+         buffer.append(" GlobalId=").append(new String(getGlobalTransactionId()).trim());
+         byte[] branchQualifer = getBranchQualifier();
+         buffer.append(" BranchQual=");
+         if (branchQualifer == null)
+            buffer.append("null");
+         else
+            buffer.append(new String(getBranchQualifier()).trim());
+         buffer.append(']');
+         cachedToString = buffer.toString();
+      }
+      return cachedToString;
+   }
 }
Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-24 14:12:18 UTC (rev 57118)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-24 20:44:22 UTC (rev 57119)
@@ -22,6 +22,8 @@
 
 package org.jboss.resource.connectionmanager.xa;
 
+import java.io.Serializable;
+
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
@@ -34,8 +36,12 @@
  * @author <a href="weston.price at jboss.com">Weston Price</a>
  * @version $Revision: 1.1 $
  */
-public class XAResourceWrapper implements XAResource
+public class XAResourceWrapper implements XAResource, Serializable
 {
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 4551722165222496828L;
+
    private static final Logger log = Logger.getLogger(XAResourceWrapper.class);
    
    /** The xaResource */
@@ -167,7 +173,6 @@
    
    public String toString()
    {
-      // TODO Auto-generated method stub
       return super.toString();
    }
 
    
    
More information about the jboss-cvs-commits
mailing list