001
014
015 package com.liferay.portal.spring.transaction;
016
017 import com.liferay.portal.kernel.transaction.Isolation;
018 import com.liferay.portal.kernel.transaction.Propagation;
019 import com.liferay.portal.kernel.transaction.TransactionAttribute;
020 import com.liferay.portal.kernel.transaction.TransactionAttribute.Builder;
021 import com.liferay.portal.kernel.transaction.TransactionLifecycleManager;
022 import com.liferay.portal.kernel.transaction.TransactionStatus;
023
024
028 public abstract class BaseTransactionExecutor implements TransactionExecutor {
029
030 protected TransactionAttribute createTransactionAttribute(
031 org.springframework.transaction.interceptor.TransactionAttribute
032 transactionAttribute) {
033
034 Builder builder = new Builder();
035
036 builder.setIsolation(
037 Isolation.getIsolation(transactionAttribute.getIsolationLevel()));
038 builder.setPropagation(
039 Propagation.getPropagation(
040 transactionAttribute.getPropagationBehavior()));
041 builder.setReadOnly(transactionAttribute.isReadOnly());
042
043 return builder.build();
044 }
045
046 protected TransactionStatus createTransactionStatus(
047 org.springframework.transaction.TransactionStatus transactionStatus) {
048
049 return new TransactionStatus(
050 transactionStatus.isNewTransaction(),
051 transactionStatus.isRollbackOnly(),
052 transactionStatus.isCompleted());
053 }
054
055 protected void fireTransactionCommittedEvent(
056 org.springframework.transaction.interceptor.TransactionAttribute
057 transactionAttribute,
058 org.springframework.transaction.TransactionStatus transactionStatus) {
059
060 TransactionLifecycleManager.fireTransactionCommittedEvent(
061 createTransactionAttribute(transactionAttribute),
062 createTransactionStatus(transactionStatus));
063 }
064
065 protected void fireTransactionCreatedEvent(
066 org.springframework.transaction.interceptor.TransactionAttribute
067 transactionAttribute,
068 org.springframework.transaction.TransactionStatus transactionStatus) {
069
070 TransactionLifecycleManager.fireTransactionCreatedEvent(
071 createTransactionAttribute(transactionAttribute),
072 createTransactionStatus(transactionStatus));
073 }
074
075 protected void fireTransactionRollbackedEvent(
076 org.springframework.transaction.interceptor.TransactionAttribute
077 transactionAttribute,
078 org.springframework.transaction.TransactionStatus transactionStatus,
079 Throwable throwable) {
080
081 TransactionLifecycleManager.fireTransactionRollbackedEvent(
082 createTransactionAttribute(transactionAttribute),
083 createTransactionStatus(transactionStatus), throwable);
084 }
085
086 }