001
014
015 package com.liferay.portal.spring.transaction;
016
017 import org.springframework.transaction.PlatformTransactionManager;
018 import org.springframework.transaction.support.CallbackPreferringPlatformTransactionManager;
019
020
023 public class TransactionExecutorFactory {
024
025 public static TransactionExecutor createTransactionExecutor(
026 PlatformTransactionManager platformTransactionManager,
027 boolean counter) {
028
029 if (counter) {
030 if (platformTransactionManager instanceof
031 CallbackPreferringPlatformTransactionManager) {
032
033 return new CounterCallbackPreferringTransactionExecutor();
034 }
035 else {
036 return new CounterTransactionExecutor();
037 }
038 }
039 else {
040 if (platformTransactionManager instanceof
041 CallbackPreferringPlatformTransactionManager) {
042
043 return new CallbackPreferringTransactionExecutor();
044 }
045 else {
046 return new DefaultTransactionExecutor();
047 }
048 }
049 }
050
051 }