From 961126d95dcbfb5176117aea283f17ec5e99dc15 Mon Sep 17 00:00:00 2001 From: PeppaO <39424591+PeppaO@users.noreply.github.com> Date: Tue, 20 Jun 2023 20:55:50 +0800 Subject: [PATCH 01/47] bugfix: fix the timeout is null when the connectionProxyXA connection is reused (#5661) --- changes/en-us/2.0.0.md | 2 +- changes/zh-cn/2.0.0.md | 2 +- .../io/seata/rm/datasource/xa/ConnectionProxyXA.java | 11 ++--------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/changes/en-us/2.0.0.md b/changes/en-us/2.0.0.md index d635603e9ed..dd4b9bb22fa 100644 --- a/changes/en-us/2.0.0.md +++ b/changes/en-us/2.0.0.md @@ -59,7 +59,7 @@ The version is updated as follows: - [[#5577](https://github.com/seata/seata/pull/5577)] fix grpc interceptor xid unbinding problem - [[#5594](https://github.com/seata/seata/pull/5594)] fix log in participant transaction role - [[#5604](https://github.com/seata/seata/pull/5604)] fix the `asyncCommit` and `queueToRetryCommit` always failed in db mode - +- [[#5661](https://github.com/seata/seata/pull/5661)] bugfix: the timeout is null when the connectionProxyXA connection is reused ### optimize: - [[#5208](https://github.com/seata/seata/pull/5208)] optimize throwable getCause once more diff --git a/changes/zh-cn/2.0.0.md b/changes/zh-cn/2.0.0.md index f6a2ad8c99b..f3a2eeaf4cb 100644 --- a/changes/zh-cn/2.0.0.md +++ b/changes/zh-cn/2.0.0.md @@ -58,7 +58,7 @@ Seata 是一款开源的分布式事务解决方案,提供高性能和简单 - [[#5577](https://github.com/seata/seata/pull/5577)] 修复 grpc拦截器解绑xid失败问题 - [[#5594](https://github.com/seata/seata/pull/5594)] 修复participant情况下的重复日志 - [[#5604](https://github.com/seata/seata/pull/5604)] 修复在DB模式下 `asyncCommit` 和 `queueToRetryCommit` 两个方法总是失败的问题 - +- [[#5661](https://github.com/seata/seata/pull/5661)] 修复connectionProxyXA连接复用时timeout为null ### optimize: - [[#5208](https://github.com/seata/seata/pull/5208)] 优化多次重复获取Throwable#getCause问题 diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ConnectionProxyXA.java b/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ConnectionProxyXA.java index c3162d64908..c229f782a36 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ConnectionProxyXA.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/xa/ConnectionProxyXA.java @@ -26,7 +26,6 @@ import io.seata.common.DefaultValues; import io.seata.common.util.StringUtils; import io.seata.config.ConfigurationFactory; -import io.seata.core.context.RootContext; import io.seata.core.exception.TransactionException; import io.seata.core.model.BranchStatus; import io.seata.core.model.BranchType; @@ -64,7 +63,7 @@ public class ConnectionProxyXA extends AbstractConnectionProxyXA implements Hold private volatile Long prepareTime = null; - private volatile Integer timeout = null; + private static final Integer TIMEOUT = Math.max(BRANCH_EXECUTION_TIMEOUT, DefaultValues.DEFAULT_GLOBAL_TRANSACTION_TIMEOUT); private boolean shouldBeHeld = false; @@ -89,11 +88,6 @@ public void init() { if (!currentAutoCommitStatus) { throw new IllegalStateException("Connection[autocommit=false] as default is NOT supported"); } - Integer transactionTimeout = RootContext.getTimeout(); - if (transactionTimeout == null) { - transactionTimeout = DefaultValues.DEFAULT_GLOBAL_TRANSACTION_TIMEOUT; - } - timeout = Math.max(BRANCH_EXECUTION_TIMEOUT, transactionTimeout); } catch (SQLException e) { throw new RuntimeException(e); } @@ -292,7 +286,6 @@ private synchronized void end(int flags) throws XAException, SQLException { private void cleanXABranchContext() { branchRegisterTime = null; prepareTime = null; - timeout = null; xaActive = false; if (!isHeld()) { xaBranchXid = null; @@ -300,7 +293,7 @@ private void cleanXABranchContext() { } private void checkTimeout(Long now) throws XAException { - if (now - branchRegisterTime > timeout) { + if (now - branchRegisterTime > TIMEOUT) { xaRollback(xaBranchXid); throw new XAException("XA branch timeout error"); } From 18d8905bf5b90d1649d88f47d4b8da4a038ff094 Mon Sep 17 00:00:00 2001 From: FUNKYE <364176773@qq.com> Date: Tue, 27 Jun 2023 11:42:04 +0800 Subject: [PATCH 02/47] bugfix: fix escaped characters for upper and lower case column names (#5658) --- .../datasource/AbstractConnectionProxy.java | 2 +- .../seata/rm/datasource/DataCompareUtils.java | 2 +- .../datasource/exec/BaseInsertExecutor.java | 2 +- .../exec/BaseTransactionalExecutor.java | 2 +- .../rm/datasource/exec/DeleteExecutor.java | 2 +- .../datasource/exec/MultiDeleteExecutor.java | 2 +- .../datasource/exec/MultiUpdateExecutor.java | 2 +- .../rm/datasource/exec/UpdateExecutor.java | 14 +++++------ .../exec/mysql/MySQLInsertExecutor.java | 2 +- .../MySQLInsertOnDuplicateUpdateExecutor.java | 6 ++--- .../exec/mysql/MySQLUpdateJoinExecutor.java | 2 +- .../postgresql/PostgresqlInsertExecutor.java | 2 +- .../sqlserver/SqlServerDeleteExecutor.java | 2 +- .../sqlserver/SqlServerInsertExecutor.java | 2 +- .../SqlServerMultiDeleteExecutor.java | 2 +- .../sqlserver/SqlServerUpdateExecutor.java | 2 +- .../sql/struct/TableMetaCacheFactory.java | 1 + .../datasource/sql/struct/TableRecords.java | 3 +++ .../struct/cache/AbstractTableMetaCache.java | 4 ++-- .../sql/struct/cache/MysqlTableMetaCache.java | 8 +++---- .../struct/cache/OracleTableMetaCache.java | 8 +++---- .../cache/PostgresqlTableMetaCache.java | 8 +++---- .../struct/cache/SqlServerTableMetaCache.java | 8 +++---- .../datasource/undo/AbstractUndoExecutor.java | 2 +- .../undo/AbstractUndoLogManager.java | 2 +- .../seata/rm/datasource/undo/SQLUndoLog.java | 2 +- ... io.seata.sqlparser.struct.TableMetaCache} | 0 .../rm/datasource/DataCompareUtilsTest.java | 2 +- .../exec/AbstractDMLBaseExecutorTest.java | 2 +- .../exec/BaseTransactionalExecutorTest.java | 2 +- .../exec/BatchInsertExecutorTest.java | 2 +- .../exec/MariadbInsertExecutorTest.java | 2 +- .../exec/MySQLInsertExecutorTest.java | 4 ++-- ...QLInsertOnDuplicateUpdateExecutorTest.java | 8 +++---- .../exec/OracleInsertExecutorTest.java | 4 ++-- .../exec/PostgresqlInsertExecutorTest.java | 4 ++-- .../exec/SqlServerInsertExecutorTest.java | 4 ++-- .../datasource/exec/UpdateExecutorTest.java | 6 +++-- .../rm/datasource/mock/MockResultSet.java | 2 +- .../mock/MockResultSetMetaData.java | 2 +- .../datasource/sql/struct/ColumnMetaTest.java | 1 + .../datasource/sql/struct/IndexMetaTest.java | 3 +++ .../datasource/sql/struct/IndexTypeTest.java | 1 + .../datasource/sql/struct/TableMetaTest.java | 4 ++++ .../sql/struct/TableRecordsTest.java | 1 + .../struct/cache/MysqlTableMetaCacheTest.java | 10 ++++---- .../cache/OracleTableMetaCacheTest.java | 4 ++-- .../cache/PostgresqlTableMetaCacheTest.java | 4 ++-- .../cache/SqlServerTableMetaCacheTest.java | 10 ++++---- .../undo/AbstractUndoExecutorTest.java | 2 +- .../seata/rm/datasource/undo/BaseH2Test.java | 5 ++-- .../undo/BaseUndoLogParserTest.java | 2 +- .../rm/datasource/undo/BranchUndoLogTest.java | 2 +- .../rm/datasource/undo/UndoExecutorTest.java | 2 +- .../mysql/MySQLUndoDeleteExecutorTest.java | 4 +--- .../mysql/MySQLUndoInsertExecutorTest.java | 2 +- .../undo/mysql/MySQLUndoLogManagerTest.java | 2 +- .../mysql/MySQLUndoUpdateExecutorTest.java | 2 +- .../oracle/OracleUndoDeleteExecutorTest.java | 3 +-- .../oracle/OracleUndoInsertExecutorTest.java | 3 +-- .../oracle/OracleUndoUpdateExecutorTest.java | 3 +-- .../SqlServerUndoDeleteExecutorTest.java | 2 +- .../SqlServerUndoInsertExecutorTest.java | 2 +- .../SqlServerUndoUpdateExecutorTest.java | 2 +- .../io/seata/sqlparser/EscapeHandler.java | 24 ++++++++++++++++--- .../seata/sqlparser}/struct/ColumnMeta.java | 2 +- .../io/seata/sqlparser}/struct/IndexMeta.java | 2 +- .../io/seata/sqlparser}/struct/IndexType.java | 2 +- .../io/seata/sqlparser}/struct/TableMeta.java | 2 +- .../sqlparser}/struct/TableMetaCache.java | 2 +- .../io/seata/sqlparser/util/ColumnUtils.java | 18 +++++++++++--- .../at/ATModeSupportDataBaseDataTypeTest.java | 2 +- .../seata/at/mysql/MysqlUpdateJoinTest.java | 2 +- .../at/oracle/SupportOracleDataTypeTest.java | 4 +--- 74 files changed, 156 insertions(+), 118 deletions(-) rename rm-datasource/src/main/resources/META-INF/services/{io.seata.rm.datasource.sql.struct.TableMetaCache => io.seata.sqlparser.struct.TableMetaCache} (100%) rename {rm-datasource/src/main/java/io/seata/rm/datasource/sql => sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser}/struct/ColumnMeta.java (99%) mode change 100755 => 100644 rename {rm-datasource/src/main/java/io/seata/rm/datasource/sql => sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser}/struct/IndexMeta.java (99%) mode change 100755 => 100644 rename {rm-datasource/src/main/java/io/seata/rm/datasource/sql => sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser}/struct/IndexType.java (97%) mode change 100755 => 100644 rename {rm-datasource/src/main/java/io/seata/rm/datasource/sql => sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser}/struct/TableMeta.java (99%) mode change 100755 => 100644 rename {rm-datasource/src/main/java/io/seata/rm/datasource/sql => sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser}/struct/TableMetaCache.java (96%) mode change 100755 => 100644 diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/AbstractConnectionProxy.java b/rm-datasource/src/main/java/io/seata/rm/datasource/AbstractConnectionProxy.java index ef8c8107211..4d0109e379c 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/AbstractConnectionProxy.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/AbstractConnectionProxy.java @@ -18,7 +18,7 @@ import io.seata.core.context.RootContext; import io.seata.core.model.BranchType; import io.seata.rm.datasource.sql.SQLVisitorFactory; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.SQLType; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/DataCompareUtils.java b/rm-datasource/src/main/java/io/seata/rm/datasource/DataCompareUtils.java index ef2af6a9ab2..5d66094fecc 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/DataCompareUtils.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/DataCompareUtils.java @@ -20,7 +20,7 @@ import io.seata.core.model.Result; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.AbstractUndoLogManager; import io.seata.rm.datasource.undo.parser.FastjsonUndoLogParser; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseInsertExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseInsertExecutor.java index 63dbcbf18f7..9432af0995c 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseInsertExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseInsertExecutor.java @@ -34,7 +34,7 @@ import io.seata.sqlparser.util.ColumnUtils; import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.SQLRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseTransactionalExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseTransactionalExecutor.java index a1cc2e1c175..0b8cf57cc4f 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseTransactionalExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/BaseTransactionalExecutor.java @@ -39,7 +39,7 @@ import io.seata.rm.datasource.SqlGenerateUtils; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.sql.struct.Field; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.SQLUndoLog; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/DeleteExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/DeleteExecutor.java index 0419ec2870a..5093843ad03 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/DeleteExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/DeleteExecutor.java @@ -24,7 +24,7 @@ import io.seata.common.util.StringUtils; import io.seata.sqlparser.util.ColumnUtils; import io.seata.rm.datasource.StatementProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLDeleteRecognizer; import io.seata.sqlparser.SQLRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiDeleteExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiDeleteExecutor.java index 3606b049511..42345605075 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiDeleteExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiDeleteExecutor.java @@ -21,7 +21,7 @@ import io.seata.sqlparser.util.ColumnUtils; import io.seata.rm.datasource.StatementProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLDeleteRecognizer; import io.seata.sqlparser.SQLRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiUpdateExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiUpdateExecutor.java index f3eed8af488..7145ed38c3e 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiUpdateExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/MultiUpdateExecutor.java @@ -35,7 +35,7 @@ import io.seata.sqlparser.util.ColumnUtils; import io.seata.rm.datasource.SqlGenerateUtils; import io.seata.rm.datasource.StatementProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.SQLUpdateRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/UpdateExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/UpdateExecutor.java index 23d55d58f70..6e498d9a367 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/UpdateExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/UpdateExecutor.java @@ -33,7 +33,7 @@ import io.seata.sqlparser.util.ColumnUtils; import io.seata.rm.datasource.SqlGenerateUtils; import io.seata.rm.datasource.StatementProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.SQLUpdateRecognizer; @@ -134,19 +134,19 @@ protected List getNeedUpdateColumns(String table, String tableAlias, Lis needUpdateColumns.add(getColumnNamesWithTablePrefix(table,tableAlias,pkNameList)); } } - needUpdateColumns.addAll(unescapeUpdateColumns.parallelStream() - .map(unescapeUpdateColumn -> ColumnUtils.addEscape(unescapeUpdateColumn, getDbType())) + needUpdateColumns.addAll(unescapeUpdateColumns.stream() + .map(unescapeUpdateColumn -> ColumnUtils.addEscape(unescapeUpdateColumn, getDbType(), tableMeta)) .collect(Collectors.toList())); // The on update xxx columns will be auto update by db, so it's also the actually updated columns List onUpdateColumns = tableMeta.getOnUpdateColumnsOnlyName(); onUpdateColumns.removeAll(unescapeUpdateColumns); - needUpdateColumns.addAll(onUpdateColumns.parallelStream() - .map(onUpdateColumn -> ColumnUtils.addEscape(onUpdateColumn, getDbType())) + needUpdateColumns.addAll(onUpdateColumns.stream() + .map(onUpdateColumn -> ColumnUtils.addEscape(onUpdateColumn, getDbType(), tableMeta)) .collect(Collectors.toList())); } else { - needUpdateColumns.addAll(tableMeta.getAllColumns().keySet().parallelStream() - .map(columnName -> ColumnUtils.addEscape(columnName, getDbType())).collect(Collectors.toList())); + needUpdateColumns.addAll(tableMeta.getAllColumns().keySet().stream() + .map(columnName -> ColumnUtils.addEscape(columnName, getDbType(), tableMeta)).collect(Collectors.toList())); } return needUpdateColumns; } diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertExecutor.java index 41c7f7dd5ac..a5bbac2febc 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertExecutor.java @@ -36,7 +36,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.BaseInsertExecutor; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.struct.Defaultable; import io.seata.sqlparser.struct.Null; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertOnDuplicateUpdateExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertOnDuplicateUpdateExecutor.java index 1c66a1eef6d..c3047e77c40 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertOnDuplicateUpdateExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLInsertOnDuplicateUpdateExecutor.java @@ -41,12 +41,12 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; -import io.seata.rm.datasource.sql.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexMeta; import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.SQLRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLUpdateJoinExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLUpdateJoinExecutor.java index 555f9f5239e..52f8eeb860c 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLUpdateJoinExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/mysql/MySQLUpdateJoinExecutor.java @@ -41,7 +41,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.StatementCallback; import io.seata.rm.datasource.exec.UpdateExecutor; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.SQLUpdateRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/postgresql/PostgresqlInsertExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/postgresql/PostgresqlInsertExecutor.java index 9f6ff0f8ef9..f8a25a49def 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/postgresql/PostgresqlInsertExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/postgresql/PostgresqlInsertExecutor.java @@ -23,7 +23,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.BaseInsertExecutor; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.struct.Defaultable; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerDeleteExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerDeleteExecutor.java index ad5bcfa07b5..08a21478376 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerDeleteExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerDeleteExecutor.java @@ -24,7 +24,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.DeleteExecutor; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLDeleteRecognizer; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.util.ColumnUtils; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerInsertExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerInsertExecutor.java index 2893c0c01a8..b00aef526d2 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerInsertExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerInsertExecutor.java @@ -33,7 +33,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.BaseInsertExecutor; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.struct.Defaultable; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerMultiDeleteExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerMultiDeleteExecutor.java index 1a9589b717c..3fd99932ddb 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerMultiDeleteExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerMultiDeleteExecutor.java @@ -26,7 +26,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.MultiDeleteExecutor; import io.seata.rm.datasource.exec.StatementCallback; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLDeleteRecognizer; import io.seata.sqlparser.SQLRecognizer; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerUpdateExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerUpdateExecutor.java index 17b5cd6eb31..90582efbbc5 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerUpdateExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/exec/sqlserver/SqlServerUpdateExecutor.java @@ -26,7 +26,7 @@ import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.StatementCallback; import io.seata.rm.datasource.exec.UpdateExecutor; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLRecognizer; import io.seata.sqlparser.SQLUpdateRecognizer; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCacheFactory.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCacheFactory.java index 1a71aeefdf4..848ce378084 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCacheFactory.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCacheFactory.java @@ -30,6 +30,7 @@ import io.seata.common.util.CollectionUtils; import io.seata.config.ConfigurationFactory; import io.seata.rm.datasource.DataSourceProxy; +import io.seata.sqlparser.struct.TableMetaCache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableRecords.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableRecords.java index 7c9f5420725..219ceb6db1a 100755 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableRecords.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableRecords.java @@ -36,6 +36,9 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.rm.datasource.exception.TableMetaException; import io.seata.rm.datasource.sql.serial.SerialArray; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.TableMeta; + import static io.seata.rm.datasource.exec.oracle.OracleJdbcType.TIMESTAMP_WITH_LOCAL_TIME_ZONE; import static io.seata.rm.datasource.exec.oracle.OracleJdbcType.TIMESTAMP_WITH_TIME_ZONE; import static io.seata.rm.datasource.util.OffsetTimeUtils.convertOffSetTime; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/AbstractTableMetaCache.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/AbstractTableMetaCache.java index 2c1470447a7..cbae2e9ad10 100755 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/AbstractTableMetaCache.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/AbstractTableMetaCache.java @@ -26,8 +26,8 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.util.StringUtils; import io.seata.core.context.RootContext; -import io.seata.rm.datasource.sql.struct.TableMeta; -import io.seata.rm.datasource.sql.struct.TableMetaCache; +import io.seata.sqlparser.struct.TableMeta; +import io.seata.sqlparser.struct.TableMetaCache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCache.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCache.java index 8dba04d4375..fdce71e3e32 100755 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCache.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCache.java @@ -26,10 +26,10 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.loader.LoadLevel; import io.seata.sqlparser.util.ColumnUtils; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.util.JdbcConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCache.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCache.java index 009aedfeb52..b00bc9bfb76 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCache.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCache.java @@ -24,10 +24,10 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.loader.LoadLevel; import io.seata.common.util.StringUtils; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.util.JdbcConstants; import java.util.ArrayList; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCache.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCache.java index c3312c6367c..a87c2f6adff 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCache.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCache.java @@ -24,10 +24,10 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.loader.LoadLevel; import io.seata.common.util.StringUtils; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.util.JdbcConstants; /** diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCache.java b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCache.java index 7942a194282..68f80c6145c 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCache.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCache.java @@ -24,10 +24,10 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.loader.LoadLevel; import io.seata.common.util.StringUtils; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.util.ColumnUtils; import io.seata.sqlparser.util.JdbcConstants; import org.slf4j.Logger; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoExecutor.java b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoExecutor.java index ba55e254d03..9210f507e76 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoExecutor.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoExecutor.java @@ -42,7 +42,7 @@ import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.KeyType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoLogManager.java b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoLogManager.java index 5d681518ab6..3f6d640fe22 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoLogManager.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/AbstractUndoLogManager.java @@ -39,7 +39,7 @@ import io.seata.rm.datasource.ConnectionContext; import io.seata.rm.datasource.ConnectionProxy; import io.seata.rm.datasource.DataSourceProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/SQLUndoLog.java b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/SQLUndoLog.java index 69915c26ac5..61efb55bdbd 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/undo/SQLUndoLog.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/undo/SQLUndoLog.java @@ -16,7 +16,7 @@ package io.seata.rm.datasource.undo; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLType; diff --git a/rm-datasource/src/main/resources/META-INF/services/io.seata.rm.datasource.sql.struct.TableMetaCache b/rm-datasource/src/main/resources/META-INF/services/io.seata.sqlparser.struct.TableMetaCache similarity index 100% rename from rm-datasource/src/main/resources/META-INF/services/io.seata.rm.datasource.sql.struct.TableMetaCache rename to rm-datasource/src/main/resources/META-INF/services/io.seata.sqlparser.struct.TableMetaCache diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/DataCompareUtilsTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/DataCompareUtilsTest.java index 52ced27106c..dfcfbf92e2c 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/DataCompareUtilsTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/DataCompareUtilsTest.java @@ -17,7 +17,7 @@ import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/AbstractDMLBaseExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/AbstractDMLBaseExecutorTest.java index 60ea7b27316..f2d1a73e08f 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/AbstractDMLBaseExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/AbstractDMLBaseExecutorTest.java @@ -21,7 +21,7 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor; import io.seata.rm.datasource.exec.oracle.OracleInsertExecutor; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BaseTransactionalExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BaseTransactionalExecutorTest.java index ece25afe305..37e3dbabf83 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BaseTransactionalExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BaseTransactionalExecutorTest.java @@ -21,7 +21,7 @@ import io.seata.rm.datasource.ConnectionProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.sql.struct.Field; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLRecognizer; import org.junit.jupiter.api.Assertions; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BatchInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BatchInsertExecutorTest.java index a014f156a2f..b6bf45b7cbc 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BatchInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/BatchInsertExecutorTest.java @@ -25,7 +25,7 @@ import io.seata.rm.datasource.ConnectionProxy; import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.struct.Null; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MariadbInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MariadbInsertExecutorTest.java index 51f1a6df8ba..949c2b9cc71 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MariadbInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MariadbInsertExecutorTest.java @@ -24,7 +24,7 @@ import io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor; import io.seata.rm.datasource.mock.MockMariadbDataSource; import io.seata.rm.datasource.mock.MockResultSet; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.util.JdbcConstants; import org.junit.jupiter.api.Assertions; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertExecutorTest.java index c7eed40b50f..b7ba7ccfdb7 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertExecutorTest.java @@ -34,9 +34,9 @@ import io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor; import io.seata.rm.datasource.mock.MockDataSource; import io.seata.rm.datasource.mock.MockResultSet; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.struct.Null; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertOnDuplicateUpdateExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertOnDuplicateUpdateExecutorTest.java index e0de214e551..069c499970b 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertOnDuplicateUpdateExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MySQLInsertOnDuplicateUpdateExecutorTest.java @@ -30,10 +30,10 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.mysql.MySQLInsertOnDuplicateUpdateExecutor; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/OracleInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/OracleInsertExecutorTest.java index b6dcdde79bf..906b87ceb3d 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/OracleInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/OracleInsertExecutorTest.java @@ -20,8 +20,8 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.oracle.OracleInsertExecutor; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.struct.Null; import io.seata.sqlparser.struct.SqlSequenceExpr; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/PostgresqlInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/PostgresqlInsertExecutorTest.java index 1acad8d40ab..b10d703e2e5 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/PostgresqlInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/PostgresqlInsertExecutorTest.java @@ -19,8 +19,8 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.postgresql.PostgresqlInsertExecutor; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.struct.SqlDefaultExpr; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/SqlServerInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/SqlServerInsertExecutorTest.java index 058d667d7f2..45d536cd07f 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/SqlServerInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/SqlServerInsertExecutorTest.java @@ -27,8 +27,8 @@ import io.seata.rm.datasource.PreparedStatementProxy; import io.seata.rm.datasource.StatementProxy; import io.seata.rm.datasource.exec.sqlserver.SqlServerInsertExecutor; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.sqlparser.SQLInsertRecognizer; import io.seata.sqlparser.struct.Null; import io.seata.sqlparser.struct.SqlSequenceExpr; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/UpdateExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/UpdateExecutorTest.java index 07d353effe4..c25df6f4e37 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/UpdateExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/UpdateExecutorTest.java @@ -57,7 +57,7 @@ public static void init() { Object[][] columnMetas = new Object[][] { new Object[] {"", "", "table_update_executor_test", "id", Types.INTEGER, "INTEGER", 64, 0, 10, 1, "", "", 0, 0, 64, 1, "NO", "YES"}, new Object[] {"", "", "table_update_executor_test", "name", Types.VARCHAR, "VARCHAR", 64, 0, 10, 0, "", "", 0, 0, 64, 2, "YES", "NO"}, - new Object[] {"", "", "table_update_executor_test", "all", Types.VARCHAR, "VARCHAR", 64, 0, 10, 0, "", "", 0, 0, 64, 2, "YES", "NO"}, + new Object[] {"", "", "table_update_executor_test", "ALL", Types.VARCHAR, "VARCHAR", 64, 0, 10, 0, "", "", 0, 0, 64, 2, "YES", "NO"}, }; Object[][] indexMetas = new Object[][] { new Object[] {"PRIMARY", "id", false, "", 3, 1, "A", 34}, @@ -104,7 +104,9 @@ public void testKeyword() throws SQLException { List asts = SQLUtils.parseStatements(sql, JdbcConstants.MYSQL); MySQLUpdateRecognizer recognizer = new MySQLUpdateRecognizer(sql, asts.get(0)); updateExecutor = new UpdateExecutor(statementProxy, (statement, args) -> null, recognizer); - Assertions.assertNotNull(updateExecutor.beforeImage()); + TableRecords beforeImage = updateExecutor.beforeImage(); + Assertions.assertNotNull(beforeImage); + Assertions.assertNotNull(updateExecutor.afterImage(beforeImage)); } @Test diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSet.java b/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSet.java index 8f29b2dcf7c..78f3f8cf69b 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSet.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSet.java @@ -26,7 +26,7 @@ import com.alibaba.druid.util.jdbc.ResultSetBase; import com.google.common.collect.Lists; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSetMetaData.java b/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSetMetaData.java index 17e394cd847..802b9d25e01 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSetMetaData.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/mock/MockResultSetMetaData.java @@ -20,7 +20,7 @@ import java.util.List; import io.seata.common.util.ReflectionUtil; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; /** * @author will diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/ColumnMetaTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/ColumnMetaTest.java index a47c183ca79..1200e07a738 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/ColumnMetaTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/ColumnMetaTest.java @@ -15,6 +15,7 @@ */ package io.seata.rm.datasource.sql.struct; +import io.seata.sqlparser.struct.ColumnMeta; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexMetaTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexMetaTest.java index 2b3eb99552c..657c5c4114f 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexMetaTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexMetaTest.java @@ -16,6 +16,9 @@ package io.seata.rm.datasource.sql.struct; import com.google.common.collect.Lists; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexTypeTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexTypeTest.java index 840d3a4068e..9adb04602bd 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexTypeTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/IndexTypeTest.java @@ -15,6 +15,7 @@ */ package io.seata.rm.datasource.sql.struct; +import io.seata.sqlparser.struct.IndexType; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableMetaTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableMetaTest.java index 55ad004a203..85c43c60223 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableMetaTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableMetaTest.java @@ -17,6 +17,10 @@ import com.google.common.collect.Lists; import io.seata.common.exception.NotSupportYetException; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableRecordsTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableRecordsTest.java index 556f60fdcbf..61714ca7778 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableRecordsTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/TableRecordsTest.java @@ -21,6 +21,7 @@ import java.util.List; import io.seata.rm.datasource.exception.TableMetaException; +import io.seata.sqlparser.struct.TableMeta; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCacheTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCacheTest.java index dcec3e420e4..4a24a2b143a 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCacheTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/MysqlTableMetaCacheTest.java @@ -27,11 +27,11 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.mock.MockDriver; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; -import io.seata.rm.datasource.sql.struct.TableMetaCache; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; +import io.seata.sqlparser.struct.TableMetaCache; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCacheTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCacheTest.java index ff7e39cb0d3..8d3aa2abccd 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCacheTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/OracleTableMetaCacheTest.java @@ -25,8 +25,8 @@ import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.mock.MockDriver; -import io.seata.rm.datasource.sql.struct.TableMeta; -import io.seata.rm.datasource.sql.struct.TableMetaCache; +import io.seata.sqlparser.struct.TableMeta; +import io.seata.sqlparser.struct.TableMetaCache; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCacheTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCacheTest.java index d65e2b43007..2098629e824 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCacheTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/PostgresqlTableMetaCacheTest.java @@ -25,8 +25,8 @@ import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.mock.MockDriver; -import io.seata.rm.datasource.sql.struct.TableMeta; -import io.seata.rm.datasource.sql.struct.TableMetaCache; +import io.seata.sqlparser.struct.TableMeta; +import io.seata.sqlparser.struct.TableMetaCache; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.sqlparser.util.JdbcConstants; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCacheTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCacheTest.java index f5b4de726c8..17d8bf3c136 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCacheTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/sql/struct/cache/SqlServerTableMetaCacheTest.java @@ -23,11 +23,11 @@ import io.seata.common.exception.ShouldNeverHappenException; import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.mock.MockDriver; -import io.seata.rm.datasource.sql.struct.ColumnMeta; -import io.seata.rm.datasource.sql.struct.IndexMeta; -import io.seata.rm.datasource.sql.struct.IndexType; -import io.seata.rm.datasource.sql.struct.TableMeta; -import io.seata.rm.datasource.sql.struct.TableMetaCache; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.IndexMeta; +import io.seata.sqlparser.struct.IndexType; +import io.seata.sqlparser.struct.TableMeta; +import io.seata.sqlparser.struct.TableMetaCache; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.sqlparser.util.JdbcConstants; import org.junit.jupiter.api.Assertions; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/AbstractUndoExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/AbstractUndoExecutorTest.java index d668885a93e..3ff4b4d0844 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/AbstractUndoExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/AbstractUndoExecutorTest.java @@ -19,7 +19,7 @@ import io.seata.sqlparser.SQLType; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseH2Test.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseH2Test.java index ed3bab07f02..9a84c5e08e5 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseH2Test.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseH2Test.java @@ -18,11 +18,11 @@ import io.seata.common.util.IOUtil; import io.seata.rm.datasource.ConnectionProxy; import io.seata.rm.datasource.DataSourceProxy; -import io.seata.rm.datasource.sql.struct.ColumnMeta; +import io.seata.sqlparser.struct.ColumnMeta; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.KeyType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.apache.commons.dbcp2.BasicDataSource; import org.h2.store.fs.FileUtils; @@ -31,7 +31,6 @@ import org.junit.jupiter.api.BeforeEach; import org.mockito.Mockito; -import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseUndoLogParserTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseUndoLogParserTest.java index 2d8974769c8..cca60178642 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseUndoLogParserTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BaseUndoLogParserTest.java @@ -25,7 +25,7 @@ import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.KeyType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.SQLType; import org.junit.jupiter.api.Assertions; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BranchUndoLogTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BranchUndoLogTest.java index df2010ba133..9b8138772c4 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BranchUndoLogTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/BranchUndoLogTest.java @@ -21,7 +21,7 @@ import io.seata.sqlparser.SQLType; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/UndoExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/UndoExecutorTest.java index 43ccb10c595..6d95e6b898b 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/UndoExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/UndoExecutorTest.java @@ -56,7 +56,7 @@ import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.KeyType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.sqlparser.util.JdbcConstants; import org.junit.jupiter.api.Assertions; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoDeleteExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoDeleteExecutorTest.java index 7866781fa3a..c0ef428748e 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoDeleteExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoDeleteExecutorTest.java @@ -19,7 +19,7 @@ import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; @@ -30,8 +30,6 @@ import java.util.Arrays; import java.util.List; -import static org.mockito.Mockito.when; - /** * @author Geng Zhang */ diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoInsertExecutorTest.java index 37a48dbe995..1fbcf5311e3 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoInsertExecutorTest.java @@ -19,7 +19,7 @@ import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoLogManagerTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoLogManagerTest.java index b0741ace6ae..367dc94a82e 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoLogManagerTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoLogManagerTest.java @@ -35,7 +35,7 @@ import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.mock.MockDriver; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.AbstractUndoLogManager; import io.seata.rm.datasource.undo.BranchUndoLog; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoUpdateExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoUpdateExecutorTest.java index 11c6ffc4195..5c90dc64a8c 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoUpdateExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/mysql/MySQLUndoUpdateExecutorTest.java @@ -19,7 +19,7 @@ import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoDeleteExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoDeleteExecutorTest.java index 279a33cb853..b67b3618df0 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoDeleteExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoDeleteExecutorTest.java @@ -16,13 +16,12 @@ package io.seata.rm.datasource.undo.oracle; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoInsertExecutorTest.java index 74e67da6e30..ac55b953ff9 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoInsertExecutorTest.java @@ -16,13 +16,12 @@ package io.seata.rm.datasource.undo.oracle; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoUpdateExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoUpdateExecutorTest.java index 3848669843b..1533f9af962 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoUpdateExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/oracle/OracleUndoUpdateExecutorTest.java @@ -16,13 +16,12 @@ package io.seata.rm.datasource.undo.oracle; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; import io.seata.sqlparser.SQLType; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoDeleteExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoDeleteExecutorTest.java index 29b3f53bac1..898ad52f52d 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoDeleteExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoDeleteExecutorTest.java @@ -20,7 +20,7 @@ import java.util.List; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoInsertExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoInsertExecutorTest.java index 87788dfe33d..d95454210e3 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoInsertExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoInsertExecutorTest.java @@ -25,7 +25,7 @@ import io.seata.rm.datasource.mock.MockDriver; import io.seata.rm.datasource.sql.struct.Field; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoUpdateExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoUpdateExecutorTest.java index e3bbe5d799f..73d94566e6a 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoUpdateExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/undo/sqlserver/SqlServerUndoUpdateExecutorTest.java @@ -20,7 +20,7 @@ import java.util.List; import io.seata.rm.datasource.sql.struct.Row; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.rm.datasource.undo.BaseExecutorTest; import io.seata.rm.datasource.undo.SQLUndoLog; diff --git a/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeHandler.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeHandler.java index 6eea96a2d92..63f42a1c445 100644 --- a/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeHandler.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/EscapeHandler.java @@ -16,6 +16,8 @@ package io.seata.sqlparser; import io.seata.common.util.StringUtils; +import io.seata.sqlparser.struct.ColumnMeta; +import io.seata.sqlparser.struct.TableMeta; /** * The interface Keyword checker. @@ -49,7 +51,7 @@ default EscapeSymbol getEscapeSymbol() { /** * check fieldOrTableName if contains escape - * @param fieldOrTableName + * @param fieldOrTableName fieldOrTableName * @return true if contains,otherwise return false */ default boolean containsEscape(String fieldOrTableName) { @@ -60,14 +62,30 @@ default boolean containsEscape(String fieldOrTableName) { /** * add escape if colName is keywords - * @param colName - * @return + * @param colName colName + * @return colName */ default String addColNameEscape(String colName) { + return addColNameEscape(colName, null); + } + + /** + * add escape if colName is keywords + * @param colName colName + * @param tableMeta tableMeta + * @return colName + */ + default String addColNameEscape(String colName, TableMeta tableMeta) { boolean needEscape = checkIfNeedEscape(colName); if (!needEscape) { return colName; } + if (tableMeta != null) { + ColumnMeta columnMeta = tableMeta.getColumnMeta(colName); + if (columnMeta != null) { + colName = columnMeta.getColumnName(); + } + } EscapeSymbol escapeChar = getEscapeSymbol(); if (colName.contains(DOT)) { // like "scheme".id `scheme`.id diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/ColumnMeta.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/ColumnMeta.java old mode 100755 new mode 100644 similarity index 99% rename from rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/ColumnMeta.java rename to sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/ColumnMeta.java index 6b0694043b5..6cff6eeaaee --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/ColumnMeta.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/ColumnMeta.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.seata.rm.datasource.sql.struct; +package io.seata.sqlparser.struct; import java.util.Objects; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexMeta.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexMeta.java old mode 100755 new mode 100644 similarity index 99% rename from rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexMeta.java rename to sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexMeta.java index 6d1618c2552..a55055c3ad0 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexMeta.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexMeta.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.seata.rm.datasource.sql.struct; +package io.seata.sqlparser.struct; import java.util.ArrayList; import java.util.List; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexType.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexType.java old mode 100755 new mode 100644 similarity index 97% rename from rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexType.java rename to sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexType.java index 7c435979bfc..ae0109d60c2 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/IndexType.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/IndexType.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.seata.rm.datasource.sql.struct; +package io.seata.sqlparser.struct; /** * The enum Index type. diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMeta.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMeta.java old mode 100755 new mode 100644 similarity index 99% rename from rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMeta.java rename to sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMeta.java index b3a46d85470..2e093b78e51 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMeta.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMeta.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.seata.rm.datasource.sql.struct; +package io.seata.sqlparser.struct; import java.util.ArrayList; import java.util.HashMap; diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCache.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMetaCache.java old mode 100755 new mode 100644 similarity index 96% rename from rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCache.java rename to sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMetaCache.java index c7605d8c4da..f4999ade230 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/sql/struct/TableMetaCache.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/struct/TableMetaCache.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.seata.rm.datasource.sql.struct; +package io.seata.sqlparser.struct; import java.sql.Connection; diff --git a/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/util/ColumnUtils.java b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/util/ColumnUtils.java index 237badce4f3..17529a239ff 100644 --- a/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/util/ColumnUtils.java +++ b/sqlparser/seata-sqlparser-core/src/main/java/io/seata/sqlparser/util/ColumnUtils.java @@ -22,6 +22,7 @@ import io.seata.common.util.StringUtils; import io.seata.sqlparser.EscapeHandler; import io.seata.sqlparser.EscapeHandlerFactory; +import io.seata.sqlparser.struct.TableMeta; /** * column utils @@ -97,14 +98,25 @@ public static List addEscape(List cols, String dbType) { * * @param colName the column name * @param dbType the dbType - * @return + * @return colName */ public static String addEscape(String colName, String dbType) { + return addEscape(colName, dbType, null); + } + + /** + * if necessary, add escape + * + * @param colName the column name + * @param dbType the dbType + * @param tableMeta the tableMeta + * @return colName + */ + public static String addEscape(String colName, String dbType, TableMeta tableMeta) { if (StringUtils.isBlank(colName)) { return colName; } EscapeHandler escapeHandler = EscapeHandlerFactory.getEscapeHandler(dbType); - return escapeHandler.addColNameEscape(colName); + return escapeHandler.addColNameEscape(colName, tableMeta); } - } diff --git a/test/src/test/java/io/seata/at/ATModeSupportDataBaseDataTypeTest.java b/test/src/test/java/io/seata/at/ATModeSupportDataBaseDataTypeTest.java index 6718f9efd36..0effa63c06c 100644 --- a/test/src/test/java/io/seata/at/ATModeSupportDataBaseDataTypeTest.java +++ b/test/src/test/java/io/seata/at/ATModeSupportDataBaseDataTypeTest.java @@ -33,7 +33,7 @@ import io.seata.rm.datasource.DataCompareUtils; import io.seata.rm.datasource.DataSourceManager; import io.seata.rm.datasource.DataSourceProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.rm.datasource.sql.struct.TableRecords; import static io.seata.at.DruidDataSourceUtils.ORACLE; diff --git a/test/src/test/java/io/seata/at/mysql/MysqlUpdateJoinTest.java b/test/src/test/java/io/seata/at/mysql/MysqlUpdateJoinTest.java index 6bd9820b846..20a697b1654 100644 --- a/test/src/test/java/io/seata/at/mysql/MysqlUpdateJoinTest.java +++ b/test/src/test/java/io/seata/at/mysql/MysqlUpdateJoinTest.java @@ -29,7 +29,7 @@ import io.seata.rm.datasource.DataCompareUtils; import io.seata.rm.datasource.DataSourceManager; import io.seata.rm.datasource.DataSourceProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.rm.datasource.sql.struct.TableRecords; import io.seata.server.UUIDGenerator; diff --git a/test/src/test/java/io/seata/at/oracle/SupportOracleDataTypeTest.java b/test/src/test/java/io/seata/at/oracle/SupportOracleDataTypeTest.java index 783ae45b9c2..4b6fce14850 100644 --- a/test/src/test/java/io/seata/at/oracle/SupportOracleDataTypeTest.java +++ b/test/src/test/java/io/seata/at/oracle/SupportOracleDataTypeTest.java @@ -16,7 +16,6 @@ package io.seata.at.oracle; import com.alibaba.druid.pool.DruidDataSource; -import io.seata.common.exception.NotSupportYetException; import io.seata.core.context.RootContext; import io.seata.core.exception.TransactionException; import io.seata.core.model.BranchStatus; @@ -25,7 +24,7 @@ import io.seata.rm.datasource.DataCompareUtils; import io.seata.rm.datasource.DataSourceManager; import io.seata.rm.datasource.DataSourceProxy; -import io.seata.rm.datasource.sql.struct.TableMeta; +import io.seata.sqlparser.struct.TableMeta; import io.seata.rm.datasource.sql.struct.TableMetaCacheFactory; import io.seata.rm.datasource.sql.struct.TableRecords; import org.junit.jupiter.api.Assertions; @@ -39,7 +38,6 @@ import java.sql.Statement; import static io.seata.at.DruidDataSourceUtils.ORACLE; -import static io.seata.at.DruidDataSourceUtils.POSTGRESQL; import static io.seata.at.DruidDataSourceUtils.createNewDruidDataSource; import static io.seata.at.oracle.OracleSqlConstant.BINARY_TABLE_NAME; import static io.seata.at.oracle.OracleSqlConstant.BINARY_TYPE; From 8e030e679b2f154ac6515af8a5b44a96bbb1c9ac Mon Sep 17 00:00:00 2001 From: liuqiufeng <775038282@qq.com> Date: Tue, 27 Jun 2023 13:43:23 +0800 Subject: [PATCH 03/47] feature: console integration saga-statemachine-designer (#5357) --- .../resources/static/console-fe/.eslintrc | 3 +- .../resources/static/console-fe/.gitignore | 3 +- .../static/console-fe/build/copyDesigner.js | 50 +++++ .../static/console-fe/build/copyFile.js | 21 ++- .../resources/static/console-fe/package.json | 4 +- .../resources/static/console-fe/src/app.tsx | 174 +++++++++--------- .../src/components/Header/Header.tsx | 71 ++++--- .../src/components/Iframe/Iframe.tsx | 59 ++++++ .../src/components/Iframe/index.scss | 15 ++ .../console-fe/src/components/Iframe/index.ts | 18 ++ .../static/console-fe/src/locales/en-us.ts | 1 + .../static/console-fe/src/locales/zh-cn.ts | 1 + .../static/console-fe/src/router.tsx | 4 +- .../static/console-fe/src/utils/request.ts | 2 +- .../src/main/resources/static/css/main.css | 7 +- console/src/main/resources/static/js/main.js | 34 ++-- .../saga-statemachine-designer/designer.html | 22 +++ .../saga-statemachine-designer/dist/bundle.js | 42 +++++ 18 files changed, 399 insertions(+), 132 deletions(-) create mode 100644 console/src/main/resources/static/console-fe/build/copyDesigner.js create mode 100644 console/src/main/resources/static/console-fe/src/components/Iframe/Iframe.tsx create mode 100644 console/src/main/resources/static/console-fe/src/components/Iframe/index.scss create mode 100644 console/src/main/resources/static/console-fe/src/components/Iframe/index.ts create mode 100644 console/src/main/resources/static/saga-statemachine-designer/designer.html create mode 100644 console/src/main/resources/static/saga-statemachine-designer/dist/bundle.js diff --git a/console/src/main/resources/static/console-fe/.eslintrc b/console/src/main/resources/static/console-fe/.eslintrc index bbb6e5c046a..1064957e137 100644 --- a/console/src/main/resources/static/console-fe/.eslintrc +++ b/console/src/main/resources/static/console-fe/.eslintrc @@ -30,6 +30,7 @@ "generator-star-spacing": "off", "wrap-iife": "off", "arrow-parens": "off", - "indent": "off" + "indent": "off", + "react/jsx-filename-extension": [2, { "extensions": [".js", ".jsx", ".ts", ".tsx"] }] } } diff --git a/console/src/main/resources/static/console-fe/.gitignore b/console/src/main/resources/static/console-fe/.gitignore index 5539ad8a506..03cbb7cf655 100644 --- a/console/src/main/resources/static/console-fe/.gitignore +++ b/console/src/main/resources/static/console-fe/.gitignore @@ -13,4 +13,5 @@ npm-debug.log* # test test/uirecorder.log test/reports -test/screenshots/* \ No newline at end of file +test/screenshots/* +/public/saga-statemachine-designer/ diff --git a/console/src/main/resources/static/console-fe/build/copyDesigner.js b/console/src/main/resources/static/console-fe/build/copyDesigner.js new file mode 100644 index 00000000000..32408fab96e --- /dev/null +++ b/console/src/main/resources/static/console-fe/build/copyDesigner.js @@ -0,0 +1,50 @@ +/** + * Copyright 1999-2019 Seata.io Group. + * + * 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. + */ + +const fs = require('fs'); +const path = require('path'); +const childProcess = require('child_process') + +const mkdir = dir => { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } +}; + +// copy seata-saga-statemachine-designer to console +const designerDir = path.join(__dirname, '../../../../../../../saga/seata-saga-statemachine-designer'); +if (!fs.existsSync(path.join(designerDir, "dist"))) { + // if seata-saga-statemachine-designer not build, build this + childProcess.execSync('cd ' + designerDir + '&& npm install && npm run build') +} + +// copy file +const designerDestDir = path.join(__dirname,'../public/saga-statemachine-designer'); +const designerHtmlFileName = path.join(designerDestDir, 'designer.html'); +const designerBundleFileName = path.join(designerDestDir, 'dist/bundle.js'); + +mkdir(path.dirname(designerHtmlFileName)); +mkdir(path.dirname(designerBundleFileName)); + +fs.createReadStream(path.join(designerDir, 'index.html')) +.pipe( + fs.createWriteStream(designerHtmlFileName) + ); + +fs.createReadStream(path.join(designerDir, 'dist/bundle.js')) +.pipe( + fs.createWriteStream(designerBundleFileName) + ); \ No newline at end of file diff --git a/console/src/main/resources/static/console-fe/build/copyFile.js b/console/src/main/resources/static/console-fe/build/copyFile.js index af4cfcb1bde..41a486ceeac 100644 --- a/console/src/main/resources/static/console-fe/build/copyFile.js +++ b/console/src/main/resources/static/console-fe/build/copyFile.js @@ -42,4 +42,23 @@ copyList.forEach(_fileName => { const readStream = fs.createReadStream(srcFileName); const writeStream = fs.createWriteStream(destFileName); readStream.pipe(writeStream); -}); \ No newline at end of file +}); + +// copy seata-saga-statemachine-designer from console-fe/public to console resource folder +const designerDir = path.join(__dirname, '../public/saga-statemachine-designer'); +const designerDestDir = path.join(destDir, 'saga-statemachine-designer'); +const designerHtmlFileName = path.join(designerDestDir, 'designer.html'); +const designerBundleFileName = path.join(designerDestDir, 'dist/bundle.js'); + +mkdir(path.dirname(designerHtmlFileName)); +mkdir(path.dirname(designerBundleFileName)); + +fs.createReadStream(path.join(designerDir, 'designer.html')) +.pipe( + fs.createWriteStream(designerHtmlFileName) + ); + +fs.createReadStream(path.join(designerDir, 'dist/bundle.js')) +.pipe( + fs.createWriteStream(designerBundleFileName) + ); \ No newline at end of file diff --git a/console/src/main/resources/static/console-fe/package.json b/console/src/main/resources/static/console-fe/package.json index 27e9cb09c69..37a9f39dea4 100644 --- a/console/src/main/resources/static/console-fe/package.json +++ b/console/src/main/resources/static/console-fe/package.json @@ -4,8 +4,8 @@ "description": "console fe", "main": "index.js", "scripts": { - "start": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.dev.conf.js", - "build": "cross-env NODE_ENV=production webpack --config build/webpack.prod.conf.js && node build/copyFile.js", + "start": "node build/copyDesigner.js && cross-env NODE_ENV=development webpack-dev-server --config build/webpack.dev.conf.js", + "build": "node build/copyDesigner.js && cross-env NODE_ENV=production webpack --config build/webpack.prod.conf.js && node build/copyFile.js", "eslint": "eslint --ext .js src/", "eslint-fix": "eslint --ext .js --fix src/" }, diff --git a/console/src/main/resources/static/console-fe/src/app.tsx b/console/src/main/resources/static/console-fe/src/app.tsx index b0b134f64ab..08e6c7254a9 100644 --- a/console/src/main/resources/static/console-fe/src/app.tsx +++ b/console/src/main/resources/static/console-fe/src/app.tsx @@ -19,13 +19,14 @@ import { connect } from 'react-redux'; import { Dispatch } from 'redux'; import { Router, Route, Switch, Redirect, RouteComponentProps } from 'react-router-dom'; import { ConfigProvider, Loading } from '@alicloud/console-components'; -import { createHashHistory, History } from "history"; +import { createHashHistory, History } from 'history'; import CCConsoleMenu from '@alicloud/console-components-console-menu'; import { GlobalStateModel } from '@/reducers'; import { changeLanguage, LocaleStateModel, getCurrentLanguage } from '@/reducers/locale'; import Layout from '@/layout'; import Login from '@/pages/Login'; import router from '@/router'; +import Iframe from './components/Iframe'; export const history: History = createHashHistory(); (window as any).globalHistory = history; @@ -35,100 +36,109 @@ export type OwnProps = any; export type StateToPropsType = LocaleStateModel; export type DispathToPropsType = { - changeLanguage: (lang: string) => void + changeLanguage: (lang: string) => void; }; export type AppPropsType = StateToPropsType & DispathToPropsType & RouteComponentProps & OwnProps; export type AppStateType = { - loading: object; -} + loading: object; +}; class App extends React.Component { - static propTypes = { - locale: PropTypes.object, - changeLanguage: PropTypes.func, - }; - - state: AppStateType = { - loading: {}, + static propTypes = { + locale: PropTypes.object, + changeLanguage: PropTypes.func, + }; + + state: AppStateType = { + loading: {}, + }; + + constructor(props: AppPropsType) { + super(props); + } + + componentDidMount() { + console.log('this.props: ', this.props, history); + const language: string = getCurrentLanguage(); + this.props.changeLanguage(language); + } + + get menu() { + const { locale }: AppPropsType = this.props; + const { MenuRouter = {} } = locale; + const { overview, transactionInfo, globalLockInfo, sagaStatemachineDesigner } = MenuRouter; + return { + items: [ + // { + // key: '/Overview', + // label: overview, + // }, + { + key: '/transaction/list', + label: transactionInfo, + }, + { + key: '/globallock/list', + label: globalLockInfo, + }, + { + key: '/sagastatemachinedesigner', + label: sagaStatemachineDesigner, + }, + ], + header: 'Seata', + onItemClick: (key: string) => history.push(key), }; - - constructor(props: AppPropsType) { - super(props); - } - - componentDidMount() { - console.log('this.props: ', this.props, history); - const language: string = getCurrentLanguage(); - this.props.changeLanguage(language); - } - - get menu() { - const { locale }: AppPropsType = this.props; - const { MenuRouter = {} } = locale; - const { overview,transactionInfo,globalLockInfo } = MenuRouter; - return { - items: [ - // { - // key: '/Overview', - // label: overview, - // }, - { - key: '/TransactionInfo', - label: transactionInfo, - }, - { - key:'/GlobalLockInfo', - label: globalLockInfo, - } - ], - header: 'Seata', - onItemClick: (key: string) => history.push(key) - } - } - - get router() { - return ( - - - - }> - } /> - {router.map(item => ( - - ))} - - - - ); - } - - render() { - const { locale } = this.props; - const { loading } = this.state; - return ( - - - {this.router} - - - ); - } + } + + get router() { + return ( + + + + ( + + )} + > + } /> + ( +