001
014
015 package com.liferay.portal.dao.jdbc.aop;
016
017 import com.liferay.portal.kernel.dao.jdbc.aop.DynamicDataSourceTargetSource;
018 import com.liferay.portal.kernel.util.InfrastructureUtil;
019 import com.liferay.portal.spring.transaction.TransactionInterceptor;
020
021 import org.aopalliance.intercept.MethodInterceptor;
022
023
026 public class DynamicDataSourceAdviceFactoryUtil {
027
028 public static MethodInterceptor createDynamicDataSourceAdvice(
029 TransactionInterceptor transactionInterceptor) {
030
031 DynamicDataSourceTargetSource dynamicDataSourceTargetSource =
032 InfrastructureUtil.getDynamicDataSourceTargetSource();
033
034 if (dynamicDataSourceTargetSource == null) {
035 return transactionInterceptor;
036 }
037
038 DynamicDataSourceAdvice dynamicDataSourceAdvice =
039 new DynamicDataSourceAdvice();
040
041 dynamicDataSourceAdvice.setDynamicDataSourceTargetSource(
042 dynamicDataSourceTargetSource);
043 dynamicDataSourceAdvice.setNextMethodInterceptor(
044 transactionInterceptor);
045 dynamicDataSourceAdvice.setTransactionAttributeSource(
046 transactionInterceptor.getTransactionAttributeSource());
047
048 return dynamicDataSourceAdvice;
049 }
050
051 }