[Jboss-cvs] JBossAS SVN: r56512 - in trunk/connector/src/main/org/jboss/resource/connectionmanager: . xa

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 1 18:29:05 EDT 2006


Author: weston.price at jboss.com
Date: 2006-09-01 18:29:04 -0400 (Fri, 01 Sep 2006)
New Revision: 56512

Added:
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceManager.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
Log:
[JBAS-3183][JBAS-1405] [JBAS-397] Beginning work on XAResource improvements in conjunction with JMS work. 

Added: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java	2006-09-01 20:49:58 UTC (rev 56511)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/JcaXid.java	2006-09-01 22:29:04 UTC (rev 56512)
@@ -0,0 +1,63 @@
+package org.jboss.resource.connectionmanager.xa;
+
+import java.io.Serializable;
+
+import javax.transaction.xa.Xid;
+
+/**
+ * A JcaXid.
+ * 
+ * @author <a href="weston.price at jboss.com">Weston Price</a>
+ * @version $Revision: 1.1 $
+ */
+public class JcaXid implements Serializable, Xid
+{
+
+   /** The serialVersionUID */
+   private static final long serialVersionUID = 8226195409384804425L;
+
+   /** The formatId */
+   private int formatId;
+   
+   /** The globalTransactionId */
+   private byte[] globalTransactionId;
+   
+   /** The branchQualifier */
+   private byte[] branchQualifier;
+   
+   /** Whether or not to pad the id */
+   private boolean pad;
+   
+   public JcaXid(Xid xid)
+   {
+      this(false, xid);
+      
+   }
+   
+   public JcaXid(boolean pad, Xid xid)
+   {
+      this.pad = pad;
+      
+      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();
+      
+   }
+
+   public byte[] getBranchQualifier()
+   {
+      return this.branchQualifier;
+   }
+
+   public int getFormatId()
+   {
+      return this.formatId;
+   }
+
+   public byte[] getGlobalTransactionId()
+   {
+      return this.globalTransactionId;
+   }
+   
+}

Added: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceManager.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceManager.java	2006-09-01 20:49:58 UTC (rev 56511)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceManager.java	2006-09-01 22:29:04 UTC (rev 56512)
@@ -0,0 +1,24 @@
+package org.jboss.resource.connectionmanager.xa;
+
+import javax.transaction.xa.XAResource;
+
+/**
+ * A XAResourceManager.
+ * 
+ * @author <a href="weston.price at jboss.com">Weston Price</a>
+ * @version $Revision: 1.1 $
+ */
+public class XAResourceManager
+{
+   private boolean padXid;
+   
+   public XAResourceManager()
+   {      
+   }
+   
+   public XAResource getXAResource()
+   {
+      return null;      
+   }
+   
+}

Added: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-01 20:49:58 UTC (rev 56511)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-01 22:29:04 UTC (rev 56512)
@@ -0,0 +1,119 @@
+package org.jboss.resource.connectionmanager.xa;
+
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
+
+/**
+ * A XAResourceWrapper.
+ * 
+ * @author <a href="weston.price at jboss.com">Weston Price</a>
+ * @version $Revision: 1.1 $
+ */
+public class XAResourceWrapper implements XAResource
+{
+
+   private XAResource resource;
+
+   private boolean pad;
+
+   private boolean override;
+
+   private boolean rmOverride;
+
+   public XAResourceWrapper(XAResource resource)
+   {
+      this(false, false, resource);
+
+   }
+
+   public XAResourceWrapper(boolean pad, XAResource resource)
+   {
+      this(false, pad, resource);
+   }
+
+   public XAResourceWrapper(boolean override, boolean pad, XAResource resource)
+   {
+      this.override = override;
+      this.pad = pad;
+      this.resource = resource;
+
+   }
+
+   public void commit(Xid xid, boolean onePhase) throws XAException
+   {
+      xid = convertXid(xid);
+      resource.commit(xid, onePhase);
+   }
+
+   public void end(Xid xid, int flags) throws XAException
+   {
+      xid = convertXid(xid);
+      resource.end(xid, flags);
+
+   }
+
+   public void forget(Xid xid) throws XAException
+   {
+      xid = convertXid(xid);
+      resource.forget(xid);
+   }
+
+   public int getTransactionTimeout() throws XAException
+   {
+      return resource.getTransactionTimeout();
+   }
+
+   public boolean isSameRM(XAResource resource) throws XAException
+   {
+      if (override)
+      {
+         return rmOverride;
+
+      }
+      else
+      {
+         return resource.isSameRM(resource);
+
+      }
+
+   }
+
+   public int prepare(Xid xid) throws XAException
+   {
+      xid = convertXid(xid);
+      return resource.prepare(xid);
+   }
+
+   public Xid[] recover(int flag) throws XAException
+   {
+
+      return resource.recover(flag);
+   }
+
+   public void rollback(Xid xid) throws XAException
+   {
+      resource.rollback(xid);
+   }
+
+   public boolean setTransactionTimeout(int flag) throws XAException
+   {
+      return resource.setTransactionTimeout(flag);
+
+   }
+
+   public void start(Xid xid, int flags) throws XAException
+   {
+      resource.start(xid, flags);
+   }
+
+   private Xid convertXid(Xid xid)
+   {
+      if (xid instanceof JcaXid)
+         return xid;
+
+      else
+         return new JcaXid(pad, xid);
+
+   }
+}




More information about the jboss-cvs-commits mailing list