public void afterCompletion(int status) {
   if (Status.STATUS_ROLLEDBACK == status
       && TransactionState.ROLLED_BACK.equals(transactionState)) {
     transactionListener.execute(commandContext);
   } else if (Status.STATUS_COMMITTED == status
       && TransactionState.COMMITTED.equals(transactionState)) {
     transactionListener.execute(commandContext);
   }
 }
 public void beforeCompletion() {
   if (TransactionState.COMMITTING.equals(transactionState)
       || TransactionState.ROLLINGBACK.equals(transactionState)) {
     transactionListener.execute(commandContext);
   }
 }