提交 7cd0abb7 编写于 作者: T terrymanu

remove core.internal package of sharding-transaction-core

上级 5f50147d
......@@ -30,10 +30,10 @@ import io.shardingsphere.spi.root.RootInvokeHook;
import io.shardingsphere.spi.root.SPIRootInvokeHook;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.api.TransactionTypeHolder;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.internal.context.SagaTransactionContext;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.TransactionOperationType;
import io.shardingsphere.transaction.core.context.SagaTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.core.loader.ShardingTransactionHandlerRegistry;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import lombok.Getter;
......
......@@ -22,7 +22,7 @@ import io.shardingsphere.core.bootstrap.ShardingBootstrap;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.util.ReflectiveUtil;
import io.shardingsphere.shardingjdbc.jdbc.unsupported.AbstractUnsupportedOperationDataSource;
import io.shardingsphere.transaction.core.datasource.ShardingTransactionalDataSources;
import io.shardingsphere.transaction.core.datasource.ShardingTransactionalDataSource;
import lombok.Getter;
import lombok.Setter;
......@@ -54,14 +54,14 @@ public abstract class AbstractDataSourceAdapter extends AbstractUnsupportedOpera
private final DatabaseType databaseType;
private final ShardingTransactionalDataSources shardingTransactionalDataSources;
private final ShardingTransactionalDataSource shardingTransactionalDataSources;
private PrintWriter logWriter = new PrintWriter(System.out);
public AbstractDataSourceAdapter(final Map<String, DataSource> dataSourceMap) throws SQLException {
this.dataSourceMap = dataSourceMap;
databaseType = getDatabaseType(dataSourceMap.values());
shardingTransactionalDataSources = new ShardingTransactionalDataSources(databaseType, dataSourceMap);
shardingTransactionalDataSources = new ShardingTransactionalDataSource(databaseType, dataSourceMap);
}
protected final DatabaseType getDatabaseType(final Collection<DataSource> dataSources) throws SQLException {
......
......@@ -29,7 +29,7 @@ import io.shardingsphere.shardingjdbc.jdbc.core.fixed.FixedBaseShardingTransacti
import io.shardingsphere.shardingjdbc.jdbc.core.fixed.FixedXAShardingTransactionHandler;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.api.TransactionTypeHolder;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.shardingjdbc.jdbc.core.fixed;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import java.util.HashMap;
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.shardingjdbc.jdbc.core.fixed;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import java.util.HashMap;
......
......@@ -28,7 +28,7 @@ import io.shardingsphere.core.parsing.parser.sql.dal.set.SetStatement;
import io.shardingsphere.shardingproxy.backend.jdbc.connection.BackendConnection;
import io.shardingsphere.shardingproxy.backend.sctl.ShardingCTLSetBackendHandler;
import io.shardingsphere.shardingproxy.backend.sctl.ShardingCTLShowBackendHandler;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
/**
* Com query backend handler factory.
......
......@@ -21,7 +21,7 @@ import io.shardingsphere.shardingproxy.backend.jdbc.connection.BackendConnection
import io.shardingsphere.shardingproxy.backend.jdbc.connection.BackendTransactionManager;
import io.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandResponsePackets;
import io.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
/**
* Do transaction operation.
......
......@@ -19,9 +19,9 @@ package io.shardingsphere.shardingproxy.backend.jdbc.connection;
import com.google.common.base.Preconditions;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.TransactionOperationType;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.core.loader.ShardingTransactionHandlerRegistry;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import lombok.RequiredArgsConstructor;
......
......@@ -17,7 +17,7 @@
package io.shardingsphere.shardingproxy.backend.jdbc.connection;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
......
......@@ -17,7 +17,7 @@
package io.shardingsphere.shardingproxy.backend.jdbc.connection;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import java.sql.SQLException;
......
......@@ -21,7 +21,7 @@ import io.shardingsphere.shardingproxy.backend.jdbc.connection.BackendConnection
import io.shardingsphere.shardingproxy.transport.mysql.packet.command.CommandResponsePackets;
import io.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
......
......@@ -22,7 +22,7 @@ import io.shardingsphere.core.exception.ShardingException;
import io.shardingsphere.shardingproxy.backend.MockGlobalRegistryUtil;
import io.shardingsphere.shardingproxy.backend.jdbc.datasource.JDBCBackendDataSource;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import lombok.SneakyThrows;
import org.junit.Before;
import org.junit.Test;
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.shardingproxy.backend.jdbc.connection;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import org.junit.Test;
import java.sql.Connection;
......
......@@ -34,7 +34,7 @@ import io.shardingsphere.shardingproxy.transport.mysql.packet.command.query.Fiel
import io.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.TextResultSetRowPacket;
import io.shardingsphere.shardingproxy.transport.mysql.packet.generic.OKPacket;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import lombok.SneakyThrows;
import org.hamcrest.CoreMatchers;
import org.junit.After;
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import java.util.HashMap;
......
......@@ -19,8 +19,8 @@ package io.shardingsphere.transaction.spi.xa;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.internal.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.core.manager.ShardingTransactionManager;
import javax.sql.DataSource;
import javax.sql.XADataSource;
......
......@@ -18,9 +18,9 @@
package io.shardingsphere.transaction.xa.handler;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.internal.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.core.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.xa.manager.XATransactionManagerSPILoader;
/**
......
......@@ -21,7 +21,7 @@ import com.atomikos.icatch.jta.UserTransactionManager;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.exception.ShardingException;
import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.spi.xa.XATransactionManager;
import javax.sql.DataSource;
......
......@@ -19,7 +19,7 @@ package io.shardingsphere.transaction.xa.fixture;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.spi.xa.XATransactionManager;
import javax.sql.DataSource;
......
......@@ -18,9 +18,9 @@
package io.shardingsphere.transaction.xa.handler;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.internal.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.core.TransactionOperationType;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.core.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.xa.manager.AtomikosTransactionManager;
import org.junit.Test;
......
......@@ -23,8 +23,8 @@ import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.exception.ShardingException;
import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.internal.context.XATransactionContext;
import io.shardingsphere.transaction.core.TransactionOperationType;
import io.shardingsphere.transaction.core.context.XATransactionContext;
import io.shardingsphere.transaction.xa.fixture.ReflectiveUtil;
import lombok.SneakyThrows;
import org.h2.jdbcx.JdbcDataSource;
......
......@@ -15,9 +15,9 @@
* </p>
*/
package io.shardingsphere.transaction.core.internal.context;
package io.shardingsphere.transaction.core.context;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import lombok.Getter;
import lombok.Setter;
......
......@@ -15,9 +15,9 @@
* </p>
*/
package io.shardingsphere.transaction.core.internal.context;
package io.shardingsphere.transaction.core.context;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
/**
* Sharding transaction context.
......
......@@ -15,9 +15,9 @@
* </p>
*/
package io.shardingsphere.transaction.core.internal.context;
package io.shardingsphere.transaction.core.context;
import io.shardingsphere.transaction.core.internal.TransactionOperationType;
import io.shardingsphere.transaction.core.TransactionOperationType;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
......
......@@ -19,29 +19,63 @@ package io.shardingsphere.transaction.core.datasource;
import com.google.common.base.Optional;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.util.ReflectiveUtil;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.api.TransactionTypeHolder;
import io.shardingsphere.transaction.core.loader.TransactionalDataSourceConverterSPILoader;
import io.shardingsphere.transaction.spi.TransactionalDataSourceConverter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
* Sharding transactional data source.
* Sharding transactional data sources.
*
* @author zhangliang
*/
@Getter
public final class ShardingTransactionalDataSource {
@RequiredArgsConstructor
public final class ShardingTransactionalDataSource implements AutoCloseable {
private final TransactionType type;
private final Map<String, DataSource> originalDataSourceMap;
private final Map<String, DataSource> dataSourceMap;
private final Map<TransactionType, Map<String, DataSource>> transactionalDataSourceMap;
public ShardingTransactionalDataSource(final DatabaseType databaseType, final TransactionType transactionType, final Map<String, DataSource> dataSourceMap) {
type = transactionType;
Optional<TransactionalDataSourceConverter> dataSourceConverter = TransactionalDataSourceConverterSPILoader.findConverter(type);
this.dataSourceMap = dataSourceConverter.isPresent() ? dataSourceConverter.get().convert(databaseType, dataSourceMap) : dataSourceMap;
public ShardingTransactionalDataSource(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) {
originalDataSourceMap = dataSourceMap;
transactionalDataSourceMap = new HashMap<>(TransactionType.values().length, 1);
for (TransactionType each : TransactionType.values()) {
Optional<TransactionalDataSourceConverter> converter = TransactionalDataSourceConverterSPILoader.findConverter(each);
if (converter.isPresent()) {
transactionalDataSourceMap.put(each, converter.get().convert(databaseType, dataSourceMap));
}
}
}
/**
* Get data source map via transaction type from threadlocal.
*
* @return data source map
*/
public Map<String, DataSource> getDataSourceMap() {
return transactionalDataSourceMap.containsKey(TransactionTypeHolder.get()) ? transactionalDataSourceMap.get(TransactionTypeHolder.get()) : originalDataSourceMap;
}
@Override
public void close() {
for (Entry<TransactionType, Map<String, DataSource>> entry : transactionalDataSourceMap.entrySet()) {
close(entry.getValue());
}
}
private void close(final Map<String, DataSource> dataSourceMap) {
for (DataSource each : dataSourceMap.values()) {
try {
ReflectiveUtil.findMethod(each, "close").invoke(each);
} catch (final ReflectiveOperationException ignored) {
}
}
}
}
/*
* Copyright 2016-2018 shardingsphere.io.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package io.shardingsphere.transaction.core.datasource;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.core.util.ReflectiveUtil;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.api.TransactionTypeHolder;
import lombok.RequiredArgsConstructor;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
* Sharding transactional data sources.
*
* @author zhangliang
*/
@RequiredArgsConstructor
public final class ShardingTransactionalDataSources implements AutoCloseable {
private final Map<TransactionType, ShardingTransactionalDataSource> shardingTransactionalDataSources;
private final Map<String, DataSource> originalDataSourceMap;
public ShardingTransactionalDataSources(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) {
shardingTransactionalDataSources = new HashMap<>(TransactionType.values().length, 1);
for (TransactionType each : TransactionType.values()) {
shardingTransactionalDataSources.put(each, new ShardingTransactionalDataSource(databaseType, each, dataSourceMap));
}
originalDataSourceMap = dataSourceMap;
}
/**
* Get data source map via transaction type from threadlocal.
*
* @return data source map
*/
public Map<String, DataSource> getDataSourceMap() {
return shardingTransactionalDataSources.get(TransactionTypeHolder.get()).getDataSourceMap();
}
@Override
public void close() {
for (Entry<TransactionType, ShardingTransactionalDataSource> entry : shardingTransactionalDataSources.entrySet()) {
if (originalDataSourceMap != entry.getValue().getDataSourceMap()) {
close(entry.getValue().getDataSourceMap());
}
}
}
private void close(final Map<String, DataSource> dataSourceMap) {
for (DataSource each : dataSourceMap.values()) {
try {
ReflectiveUtil.findMethod(each, "close").invoke(each);
} catch (final ReflectiveOperationException ignored) {
}
}
}
}
......@@ -17,8 +17,8 @@
package io.shardingsphere.transaction.core.handler;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.internal.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.manager.ShardingTransactionManager;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
/**
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.transaction.core.loader;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
import io.shardingsphere.transaction.spi.ShardingTransactionHandler;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
......
......@@ -15,9 +15,9 @@
* </p>
*/
package io.shardingsphere.transaction.core.internal.manager;
package io.shardingsphere.transaction.core.manager;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
/**
* BASE transaction manager.
......
......@@ -15,10 +15,10 @@
* </p>
*/
package io.shardingsphere.transaction.core.internal.manager;
package io.shardingsphere.transaction.core.manager;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.core.exception.ShardingException;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
/**
* Sharding transaction manager.
......
......@@ -18,7 +18,7 @@
package io.shardingsphere.transaction.spi;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.core.internal.context.ShardingTransactionContext;
import io.shardingsphere.transaction.core.context.ShardingTransactionContext;
/**
* Sharding transaction handler SPI.
......
......@@ -18,11 +18,17 @@
package io.shardingsphere.transaction;
import io.shardingsphere.transaction.api.TransactionTypeHolderTest;
import io.shardingsphere.transaction.core.datasource.ShardingTransactionalDataSourceTest;
import io.shardingsphere.transaction.core.loader.TransactionalDataSourceConverterSPILoaderTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses(TransactionTypeHolderTest.class)
@SuiteClasses({
TransactionTypeHolderTest.class,
TransactionalDataSourceConverterSPILoaderTest.class,
ShardingTransactionalDataSourceTest.class
})
public final class AllTransactionTests {
}
/*
* Copyright 2016-2018 shardingsphere.io.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package io.shardingsphere.transaction.core.datasource;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.api.TransactionTypeHolder;
import org.junit.Test;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertTrue;
public final class ShardingTransactionalDataSourceTest {
private Map<String, DataSource> dataSourceMap = new HashMap<>();
@Test
public void assertGetDataSourceMapWithConvertedDataSourceMap() {
ShardingTransactionalDataSource actual = new ShardingTransactionalDataSource(DatabaseType.H2, dataSourceMap);
TransactionTypeHolder.set(TransactionType.XA);
assertTrue(dataSourceMap != actual.getDataSourceMap());
}
@Test
public void assertGetDataSourceMapWithoutConvertedDataSourceMap() {
ShardingTransactionalDataSource actual = new ShardingTransactionalDataSource(DatabaseType.H2, dataSourceMap);
assertTrue(dataSourceMap == actual.getDataSourceMap());
}
}
......@@ -17,24 +17,25 @@
package io.shardingsphere.transaction.core.loader;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.transaction.api.TransactionType;
import io.shardingsphere.transaction.fixture.FixedDataSourceConverter;
import org.junit.Test;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public final class TransactionalDataSourceConverterSPILoaderTest {
private Map<String, DataSource> dataSourceMap = new HashMap<>();
@Test
public void assertCreateBackendDatasourceSuccess() {
public void assertFindConverter() {
assertTrue(TransactionalDataSourceConverterSPILoader.findConverter(TransactionType.XA).isPresent());
Map<String, DataSource> backendDatasourceMap = TransactionalDataSourceConverterSPILoader.findConverter(TransactionType.XA).get().convert(DatabaseType.MySQL, dataSourceMap);
assertTrue(backendDatasourceMap.isEmpty());
assertThat(TransactionalDataSourceConverterSPILoader.findConverter(TransactionType.XA).get(), instanceOf(FixedDataSourceConverter.class));
}
@Test
public void assertNotFindConverter() {
assertFalse(TransactionalDataSourceConverterSPILoader.findConverter(TransactionType.LOCAL).isPresent());
}
}
<?xml version="1.0"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="io.shardingsphere" level="info" additivity="false">
<appender-ref ref="console"/>
</logger>
<logger name="io.shardingsphere.core.executor.sql.execute.threadlocal.ExecutorExceptionHandler" level="off" />
<root>
<level value="error" />
<appender-ref ref="console" />
</root>
</configuration>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册