// for transactional caches, our first opportunity to set the providers
FluentConfiguration.TransactionConfig tx = configuration.fluent().transaction();
if (configuration.isTransactionalCache()) {
if (configuration.isInvocationBatchingEnabled()) {
tx.transactionManagerLookup(new TransactionManagerProvider(new ImmediateValue<TransactionManager>(BatchModeTransactionManager.getInstance())));
} else {
Value<TransactionManager> tm = this.configurationHelper.getTransactionManager();
if (tm != null) {
tx.transactionManagerLookup(new TransactionManagerProvider(tm));
}
if (configuration.isUseSynchronizationForTransactions()) {
Value<TransactionSynchronizationRegistry> txSyncRegistry = this.configurationHelper.getTransactionSynchronizationRegistry();
if (txSyncRegistry != null) {
tx.transactionSynchronizationRegistryLookup(new TransactionSynchronizationRegistryProvider(txSyncRegistry));