00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 package org.objectweb.jonas.resource;
00027
00028 import javax.resource.ResourceException;
00029 import javax.transaction.Transaction;
00030 import javax.transaction.RollbackException;
00031 import javax.transaction.SystemException;
00032 import org.objectweb.transaction.jta.ResourceManagerEvent;
00033 import org.objectweb.util.monolog.api.BasicLevel;
00034 import org.objectweb.util.monolog.api.Logger;
00035
00044 class RMEImpl implements ResourceManagerEvent {
00048 private MCInfo mci = null;
00052 private Logger trace = null;
00059 protected boolean isValid = false;
00060
00068 public RMEImpl(MCInfo mci, Logger trace) {
00069 this.mci = mci;
00070 this.trace = trace;
00071 }
00072
00073
00079 public boolean equals(Object o) {
00080 return (o instanceof RMEImpl) && mci.equals(((RMEImpl) o).mci);
00081 }
00082
00083
00090 public void enlistConnection(Transaction tx) throws SystemException {
00091 try {
00092 if (isValid) {
00093 trace.log(BasicLevel.DEBUG, "Enlist the XA Resource " + mci.getXAResource()
00094 + " in Tx:" + tx);
00095 tx.enlistResource(mci.getXAResource());
00096 }
00097 } catch (RollbackException rbe) {
00098 throw new SystemException(rbe.getMessage());
00099 } catch (ResourceException re) {
00100 throw new SystemException(re.getMessage());
00101 }
00102 }
00103 }