package com.yiqiniu.easytrans.datasource; import javax.sql.DataSource; import org.springframework.transaction.PlatformTransactionManager; import com.yiqiniu.easytrans.protocol.EasyTransRequest; /** * get the using JDBC-DataSource for specific * */ public interface DataSourceSelector { /** * for the use of master transaction * @param appId * @param busCode * @param trxId * @return */ DataSource selectDataSource(String appId,String busCode,String trxId); /** * for the use of slave transaction * @param appId * @param busCode * @param parentTrxId * @return */ DataSource selectDataSource(String appId,String busCode,EasyTransRequest<?, ?> request); /** * for the use of master transaction * @param appId * @param busCode * @param trxId * @return */ PlatformTransactionManager selectTransactionManager(String appId,String busCode,String trxId); /** * for the use of master transaction * @param appId * @param busCode * @param parentTrxId * @return */ PlatformTransactionManager selectTransactionManager(String appId,String busCode,EasyTransRequest<?, ?> request); }