Commit 119a8ae5 authored by terrymanu's avatar terrymanu
Browse files

add XATransactionManagerSPILoader

parent d8449fbc
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -19,9 +19,10 @@ package io.shardingsphere.proxy.backend.jdbc.transaction;

import com.google.common.base.Optional;
import io.shardingsphere.core.constant.TCLType;
import io.shardingsphere.core.constant.TransactionType;
import io.shardingsphere.core.util.EventBusInstance;
import io.shardingsphere.proxy.config.RuleRegistry;
import io.shardingsphere.transaction.common.TransactionContextFactory;
import io.shardingsphere.transaction.common.TransactionContext;
import io.shardingsphere.transaction.common.TransactionContextHolder;
import io.shardingsphere.transaction.common.event.XaTransactionEvent;

@@ -45,7 +46,7 @@ public final class XaTransactionEngine extends TransactionEngine {
    public boolean execute() throws SQLException {
        Optional<TCLType> tclType = parseSQL();
        if (tclType.isPresent() && isInTransaction(tclType.get())) {
            TransactionContextHolder.set(TransactionContextFactory.newXAContext(RULE_REGISTRY.getTransactionManager()));
            TransactionContextHolder.set(new TransactionContext(RULE_REGISTRY.getTransactionManager(), TransactionType.XA));
            EventBusInstance.getInstance().post(new XaTransactionEvent(tclType.get(), getSql()));
            return true;
        }
+2 −2
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import io.shardingsphere.core.rule.ShardingRule;
import io.shardingsphere.jdbc.orchestration.internal.OrchestrationProxyConfiguration;
import io.shardingsphere.jdbc.orchestration.internal.eventbus.ProxyEventBusEvent;
import io.shardingsphere.proxy.backend.jdbc.datasource.JDBCBackendDataSource;
import io.shardingsphere.transaction.api.TransactionManager;
import io.shardingsphere.transaction.api.ShardingTransactionManager;
import io.shardingsphere.transaction.common.config.ProxyTransactionConfiguration;
import lombok.AccessLevel;
import lombok.Getter;
@@ -80,7 +80,7 @@ public final class RuleRegistry {
    
    private TransactionType transactionType;
    
    private TransactionManager transactionManager;
    private ShardingTransactionManager transactionManager;
    
    private ProxyAuthority proxyAuthority;
    
+0 −0

File moved.

+3 −2
Original line number Diff line number Diff line
@@ -21,11 +21,12 @@ import io.shardingsphere.transaction.common.event.TransactionEvent;
import java.sql.SQLException;

/**
 * Transaction manager.
 * Sharding transaction manager.
 *
 * @author zhaojun
 * @author zhangliang
 */
public interface TransactionManager {
public interface ShardingTransactionManager {
    
    /**
     * Begin transaction.
+2 −2
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@

package io.shardingsphere.transaction.api.base;

import io.shardingsphere.transaction.api.TransactionManager;
import io.shardingsphere.transaction.api.ShardingTransactionManager;
import io.shardingsphere.transaction.common.event.TransactionEvent;

import javax.transaction.Status;
@@ -27,7 +27,7 @@ import javax.transaction.Status;
 *
 * @author zhaojun
 */
public final class SagaTransactionManager implements TransactionManager {
public final class SagaTransactionManager implements ShardingTransactionManager {
    
    @Override
    public void begin(final TransactionEvent transactionEvent) {
Loading