code: public static DataSource initializeTxCustom(DataSource dataSource, TransactionManager txManager, UserTransaction userTx) {
        TransactionElf.setTransactionManager(txManager);
        TransactionElf.setUserTransaction(userTx);
        return initializeTxNone(dataSource);
     }
docs: Use this one if you have custom/provided {@link TransactionManager}, e.g. to run within web app container.
  
  @param dataSource the {@link DataSource} to use by the default
  @param txManager the {@link TransactionManager} to use for tx management
  @param userTx the {@link UserTransaction} to use for tx management together with txManager
  @return dataSource that will be used for queries