[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