anchor.diff:  
   [section 2]
   TRACE [com.arjuna.ats.jta] (default task-1) TransactionImple.enlistResource ( TestXAResource(TestXAResourceCommon(id:944, xid:null, timeout:299, prepareReturn:0)) )
  -TRACE [com.arjuna.ats.jta] (default task-1) TransactionImple.getStatus: javax.transaction.Status.STATUS_ACTIVE
  +TRACE [com.arjuna.ats.jta] (default task-1) TransactionImple.getStatus: jakarta.transaction.Status.STATUS_ACTIVE
   TRACE [com.arjuna.ats.arjuna] (default task-1) OutputObjectState::OutputObjectState()
   TRACE [com.arjuna.ats.arjuna] (default task-1) FileSystemStore.write_committed(0:ffff0a28050c:-a09a5fe:5c598d64:43, EISNAME)
   TRACE [com.arjuna.ats.arjuna] (default task-1) ShadowingStore.write_state(0:ffff0a28050c:-a09a5fe:5c598d64:43, EISNAME, StateType.OS_ORIGINAL)
  
positive.code: [source,java,options="nowrap"]
  ----
  public class MySynchronization
          implements javax.transaction.Synchronization {
    @Override
    public void beforeCompletion() {
      System.out.println("Transaction is about to be finished"):
  
negative.code: 
  If you start using CDI beans then you can manage transactions either programmatically
  or you can use annotations.
  The https://jakarta.ee/specifications/transactions/2.0/apidocs/jakarta/transaction/transactional[`@Transactional`]
  defines transaction boundaries
  (start of the method starts the transaction, while the transaction is finished at its end).
  If the method finishes sucessfully the transaction is committed.
  