You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/11/10 08:06:42 UTC
[shardingsphere] branch master updated: Refactor schema.refersher
package (#8114)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new a8b0bd5 Refactor schema.refersher package (#8114)
a8b0bd5 is described below
commit a8b0bd56b28c95b0ded4e56ef2b291919170c789
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Nov 10 16:05:48 2020 +0800
Refactor schema.refersher package (#8114)
* Rename refresher package
* Rename SchemaRefreshStrategy
* Rename SchemaRefresher
* Refactor test cases
* Rename SchemaRefresherFactory
* Rename refresher.type package
* Remove useless parameter from SchemaRefresher
* Rename schemaRefresher
---
.../SchemaRefresher.java} | 14 ++-
.../SchemaRefresherFactory.java} | 42 ++++-----
.../TableMetaDataLoaderCallback.java | 2 +-
.../spi/SchemaChangedNotifier.java | 2 +-
.../type/AlterTableStatementSchemaRefresher.java} | 16 ++--
.../type/CreateIndexStatementSchemaRefresher.java} | 17 ++--
.../type/CreateTableStatementSchemaRefresher.java} | 15 ++-
.../type/CreateViewStatementSchemaRefresher.java} | 15 ++-
.../type/DropIndexStatementSchemaRefresher.java} | 15 ++-
.../type/DropTableStatementSchemaRefresher.java} | 15 ++-
.../type/DropViewStatementSchemaRefresher.java} | 15 ++-
...eIndexStatementMetaDataRefreshStrategyTest.java | 98 -------------------
...pTableStatementMetaDataRefreshStrategyTest.java | 105 ---------------------
.../SchemaRefresherFactoryTest.java} | 16 ++--
.../AlterTableStatementSchemaRefresherTest.java} | 39 ++++----
.../CreateIndexStatementSchemaRefresherTest.java | 98 +++++++++++++++++++
.../CreateTableStatementSchemaRefresherTest.java} | 86 +++++++++--------
.../CreateViewStatementSchemaRefresherTest.java} | 22 ++---
.../DropIndexStatementSchemaRefresherTest.java} | 40 ++++----
.../DropTableStatementSchemaRefresherTest.java | 104 ++++++++++++++++++++
.../DropViewStatementSchemaRefresherTest.java} | 24 ++---
.../type/ShardingSphereSchemaBuildUtil.java} | 27 +++---
.../driver/executor/AbstractStatementExecutor.java | 12 +--
.../metadata/GovernanceSchemaChangedNotifier.java | 2 +-
...ata.schema.refresher.spi.SchemaChangedNotifier} | 0
.../jdbc/JDBCDatabaseCommunicationEngine.java | 11 +--
26 files changed, 414 insertions(+), 438 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresher.java
similarity index 70%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresher.java
index d456beb..bd44bd9 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresher.java
@@ -15,9 +15,8 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh;
+package org.apache.shardingsphere.infra.metadata.schema.refresher;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -25,21 +24,20 @@ import java.sql.SQLException;
import java.util.Collection;
/**
- * Meta data refresh strategy.
+ * ShardingSphere schema refresher.
*
* @param <T> type of SQL statement
*/
-public interface MetaDataRefreshStrategy<T extends SQLStatement> {
+public interface SchemaRefresher<T extends SQLStatement> {
/**
- * Refresh meta data.
+ * Refresh ShardingSphere schema.
*
- * @param schema ShardingSphere schema
- * @param databaseType database type
+ * @param schema ShardingSphere schema to be refreshed
* @param routeDataSourceNames route dataSource names
* @param sqlStatement SQL statement
* @param callback callback
* @throws SQLException SQL exception
*/
- void refreshMetaData(ShardingSphereSchema schema, DatabaseType databaseType, Collection<String> routeDataSourceNames, T sqlStatement, TableMetaDataLoaderCallback callback) throws SQLException;
+ void refresh(ShardingSphereSchema schema, Collection<String> routeDataSourceNames, T sqlStatement, TableMetaDataLoaderCallback callback) throws SQLException;
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactory.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactory.java
similarity index 62%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactory.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactory.java
index d30ff8c..afebd78 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactory.java
@@ -15,17 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh;
+package org.apache.shardingsphere.infra.metadata.schema.refresher;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.CreateIndexStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.CreateTableStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.CreateViewStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.DropIndexStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.AlterTableStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.DropTableStatementMetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.impl.DropViewStatementMetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.CreateIndexStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.CreateTableStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.CreateViewStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropIndexStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.AlterTableStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropTableStatementSchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropViewStatementSchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
@@ -41,30 +41,30 @@ import java.util.Map.Entry;
import java.util.Optional;
/**
- * Meta data refresh strategy factory.
+ * ShardingSphere schema refresher factory.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class MetaDataRefreshStrategyFactory {
+public final class SchemaRefresherFactory {
- private static final Map<Class<?>, MetaDataRefreshStrategy<?>> REGISTRY = new HashMap<>();
+ private static final Map<Class<?>, SchemaRefresher<?>> REGISTRY = new HashMap<>();
static {
- REGISTRY.put(CreateTableStatement.class, new CreateTableStatementMetaDataRefreshStrategy());
- REGISTRY.put(AlterTableStatement.class, new AlterTableStatementMetaDataRefreshStrategy());
- REGISTRY.put(DropTableStatement.class, new DropTableStatementMetaDataRefreshStrategy());
- REGISTRY.put(CreateIndexStatement.class, new CreateIndexStatementMetaDataRefreshStrategy());
- REGISTRY.put(DropIndexStatement.class, new DropIndexStatementMetaDataRefreshStrategy());
- REGISTRY.put(CreateViewStatement.class, new CreateViewStatementMetaDataRefreshStrategy());
- REGISTRY.put(DropViewStatement.class, new DropViewStatementMetaDataRefreshStrategy());
+ REGISTRY.put(CreateTableStatement.class, new CreateTableStatementSchemaRefresher());
+ REGISTRY.put(AlterTableStatement.class, new AlterTableStatementSchemaRefresher());
+ REGISTRY.put(DropTableStatement.class, new DropTableStatementSchemaRefresher());
+ REGISTRY.put(CreateIndexStatement.class, new CreateIndexStatementSchemaRefresher());
+ REGISTRY.put(DropIndexStatement.class, new DropIndexStatementSchemaRefresher());
+ REGISTRY.put(CreateViewStatement.class, new CreateViewStatementSchemaRefresher());
+ REGISTRY.put(DropViewStatement.class, new DropViewStatementSchemaRefresher());
}
/**
- * Create new instance of meta data refresh strategy.
+ * Create new instance of schema refresher.
*
* @param sqlStatement SQL statement
- * @return meta data refresh strategy
+ * @return instance of schema refresher
*/
- public static Optional<MetaDataRefreshStrategy> newInstance(final SQLStatement sqlStatement) {
+ public static Optional<SchemaRefresher> newInstance(final SQLStatement sqlStatement) {
return REGISTRY.entrySet().stream().filter(entry -> entry.getKey().isAssignableFrom(sqlStatement.getClass())).findFirst().map(Entry::getValue);
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/TableMetaDataLoaderCallback.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/TableMetaDataLoaderCallback.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/TableMetaDataLoaderCallback.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/TableMetaDataLoaderCallback.java
index f243bf1..88cb82c 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/TableMetaDataLoaderCallback.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/TableMetaDataLoaderCallback.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh;
+package org.apache.shardingsphere.infra.metadata.schema.refresher;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaChangedNotifier.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/spi/SchemaChangedNotifier.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaChangedNotifier.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/spi/SchemaChangedNotifier.java
index ec091a9..04cf132 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/spi/SchemaChangedNotifier.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/spi/SchemaChangedNotifier.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.spi;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.spi;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.spi.ordered.OrderedSPI;
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
similarity index 63%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
index 81bff96..abe1ad8 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresher.java
@@ -15,29 +15,27 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
import java.sql.SQLException;
import java.util.Collection;
/**
- * Alter table statement meta data refresh strategy.
+ * ShardingSphere schema refresher for alter table statement.
*/
-public final class AlterTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<AlterTableStatement> {
+public final class AlterTableStatementSchemaRefresher implements SchemaRefresher<AlterTableStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final AlterTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final AlterTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException {
String tableName = sqlStatement.getTable().getTableName().getIdentifier().getValue();
if (null != schema && schema.containsTable(tableName)) {
callback.load(tableName).ifPresent(tableMetaData -> schema.put(tableName, tableMetaData));
}
}
-
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresher.java
similarity index 65%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresher.java
index c71ce4e..c188455 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresher.java
@@ -15,25 +15,24 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
import java.util.Collection;
/**
- * Create index statement meta data refresh strategy.
+ * ShardingSphere schema refresher for create index statement.
*/
-public final class CreateIndexStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<CreateIndexStatement> {
+public final class CreateIndexStatementSchemaRefresher implements SchemaRefresher<CreateIndexStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final CreateIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final CreateIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
if (null == sqlStatement.getIndex()) {
return;
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
similarity index 67%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
index b7cda31..438a637 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresher.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
import java.sql.SQLException;
@@ -29,13 +28,13 @@ import java.util.Collection;
import java.util.Optional;
/**
- * Create table statement meta data refresh strategy.
+ * ShardingSphere schema refresher for create table statement.
*/
-public final class CreateTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<CreateTableStatement> {
+public final class CreateTableStatementSchemaRefresher implements SchemaRefresher<CreateTableStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final CreateTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final CreateTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) throws SQLException {
String tableName = sqlStatement.getTable().getTableName().getIdentifier().getValue();
Optional<TableMetaData> tableMetaData = callback.load(tableName);
if (tableMetaData.isPresent()) {
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
similarity index 63%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
index a45c812..f1d5d58 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresher.java
@@ -15,25 +15,24 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateViewStatement;
import java.util.Collection;
/**
- * Create view statement meta data refresh strategy.
+ * ShardingSphere schema refresher for create view statement.
*/
-public final class CreateViewStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<CreateViewStatement> {
+public final class CreateViewStatementSchemaRefresher implements SchemaRefresher<CreateViewStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final CreateViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final CreateViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
String viewName = sqlStatement.getView().getTableName().getIdentifier().getValue();
schema.put(viewName, new TableMetaData());
schema.get(viewName).getAddressingDataSources().addAll(routeDataSourceNames);
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresher.java
similarity index 77%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresher.java
index ce33f20..05dd433 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresher.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropIndexStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.handler.ddl.DropIndexStatementHandler;
@@ -32,13 +31,13 @@ import java.util.Optional;
import java.util.stream.Collectors;
/**
- * Drop index statement meta data refresh strategy.
+ * ShardingSphere schema refresher for drop index statement.
*/
-public final class DropIndexStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<DropIndexStatement> {
+public final class DropIndexStatementSchemaRefresher implements SchemaRefresher<DropIndexStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final DropIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final DropIndexStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
Collection<String> indexNames = getIndexNames(sqlStatement);
Optional<SimpleTableSegment> simpleTableSegment = DropIndexStatementHandler.getSimpleTableSegment(sqlStatement);
String tableName = simpleTableSegment.map(tableSegment -> tableSegment.getTableName().getIdentifier().getValue()).orElse("");
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
similarity index 60%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
index 8ed85fb..ae29f71 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresher.java
@@ -15,24 +15,23 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
import java.util.Collection;
/**
- * Drop table statement meta data refresh strategy.
+ * ShardingSphere schema refresher for drop table statement.
*/
-public final class DropTableStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<DropTableStatement> {
+public final class DropTableStatementSchemaRefresher implements SchemaRefresher<DropTableStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final DropTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final DropTableStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
sqlStatement.getTables().forEach(each -> schema.remove(each.getTableName().getIdentifier().getValue()));
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
similarity index 60%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
index f8430bd..ae140ec 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategy.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresher.java
@@ -15,24 +15,23 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.TableMetaDataLoaderCallback;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.TableMetaDataLoaderCallback;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropViewStatement;
import java.util.Collection;
/**
- * Drop view statement meta data refresh strategy.
+ * ShardingSphere schema refresher for drop view statement.
*/
-public final class DropViewStatementMetaDataRefreshStrategy implements MetaDataRefreshStrategy<DropViewStatement> {
+public final class DropViewStatementSchemaRefresher implements SchemaRefresher<DropViewStatement> {
@Override
- public void refreshMetaData(final ShardingSphereSchema schema, final DatabaseType databaseType, final Collection<String> routeDataSourceNames,
- final DropViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
+ public void refresh(final ShardingSphereSchema schema, final Collection<String> routeDataSourceNames,
+ final DropViewStatement sqlStatement, final TableMetaDataLoaderCallback callback) {
sqlStatement.getViews().forEach(each -> schema.remove(each.getTableName().getIdentifier().getValue()));
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategyTest.java
deleted file mode 100644
index 67168f4..0000000
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateIndexStatementMetaDataRefreshStrategyTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
-
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.ddl.MySQLCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateIndexStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl.SQLServerCreateIndexStatement;
-import org.junit.Test;
-
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.Optional;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-
-public final class CreateIndexStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
-
- @Test
- public void refreshMetaDataForMySQL() throws SQLException {
- refreshMetaData(new MySQLCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataForOracle() throws SQLException {
- refreshMetaData(new OracleCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataForPostgreSQL() throws SQLException {
- refreshMetaData(new PostgreSQLCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataForSQLServer() throws SQLException {
- refreshMetaData(new SQLServerCreateIndexStatement());
- }
-
- private void refreshMetaData(final CreateIndexStatement createIndexStatement) throws SQLException {
- MetaDataRefreshStrategy<CreateIndexStatement> metaDataRefreshStrategy = new CreateIndexStatementMetaDataRefreshStrategy();
- createIndexStatement.setIndex(new IndexSegment(1, 2, new IdentifierValue("t_order_index")));
- createIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), createIndexStatement, tableName -> Optional.empty());
- assertTrue(getSchema().get("t_order").getIndexes().containsKey("t_order_index"));
- }
-
- @Test
- public void refreshMetaDataIfIndexIsNullForMySQL() throws SQLException {
- refreshMetaDataIfIndexIsNull(new MySQLCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataIfIndexIsNullForOracle() throws SQLException {
- refreshMetaDataIfIndexIsNull(new OracleCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataIfIndexIsNullForPostgreSQL() throws SQLException {
- refreshMetaDataIfIndexIsNull(new PostgreSQLCreateIndexStatement());
- }
-
- @Test
- public void refreshMetaDataIfIndexIsNullForSQLServer() throws SQLException {
- refreshMetaDataIfIndexIsNull(new SQLServerCreateIndexStatement());
- }
-
- private void refreshMetaDataIfIndexIsNull(final CreateIndexStatement createIndexStatement) throws SQLException {
- MetaDataRefreshStrategy<CreateIndexStatement> metaDataRefreshStrategy = new CreateIndexStatementMetaDataRefreshStrategy();
- createIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), createIndexStatement, tableName -> Optional.empty());
- assertFalse(getSchema().get("t_order").getIndexes().containsKey("t_order_index"));
- }
-}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategyTest.java
deleted file mode 100644
index 7d4badc..0000000
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropTableStatementMetaDataRefreshStrategyTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
-
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
-import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.ddl.MySQLDropTableStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropTableStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropTableStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sql92.ddl.SQL92DropTableStatement;
-import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl.SQLServerDropTableStatement;
-import org.junit.Test;
-
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.Optional;
-
-import static org.junit.Assert.assertFalse;
-import static org.mockito.Mockito.mock;
-
-public final class DropTableStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
-
- @Test
- public void refreshDropTableMetaDataForMySQL() throws SQLException {
- refreshMetaData(new MySQLDropTableStatement());
- }
-
- @Test
- public void refreshDropTableMetaDataForOracle() throws SQLException {
- refreshMetaData(new OracleDropTableStatement());
- }
-
- @Test
- public void refreshDropTableMetaDataForPostgreSQL() throws SQLException {
- refreshMetaData(new PostgreSQLDropTableStatement());
- }
-
- @Test
- public void refreshDropTableMetaDataForSQL92() throws SQLException {
- refreshMetaData(new SQL92DropTableStatement());
- }
-
- @Test
- public void refreshDropTableMetaDataForSQLServer() throws SQLException {
- refreshMetaData(new SQLServerDropTableStatement());
- }
-
- private void refreshMetaData(final DropTableStatement dropTableStatement) throws SQLException {
- MetaDataRefreshStrategy<DropTableStatement> metaDataRefreshStrategy = new DropTableStatementMetaDataRefreshStrategy();
- dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), dropTableStatement, tableName -> Optional.empty());
- assertFalse(getSchema().containsTable("t_order"));
- }
-
- @Test
- public void refreshMetaDataWithUnConfiguredForMySQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new MySQLDropTableStatement());
- }
-
- @Test
- public void refreshMetaDataWithUnConfiguredForOracle() throws SQLException {
- refreshMetaDataWithUnConfigured(new OracleDropTableStatement());
- }
-
- @Test
- public void refreshMetaDataWithUnConfiguredForPostgreSQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new PostgreSQLDropTableStatement());
- }
-
- @Test
- public void refreshMetaDataWithUnConfiguredForSQL92() throws SQLException {
- refreshMetaDataWithUnConfigured(new SQL92DropTableStatement());
- }
-
- @Test
- public void refreshMetaDataWithUnConfiguredForSQLServer() throws SQLException {
- refreshMetaDataWithUnConfigured(new SQLServerDropTableStatement());
- }
-
- private void refreshMetaDataWithUnConfigured(final DropTableStatement dropTableStatement) throws SQLException {
- MetaDataRefreshStrategy<DropTableStatement> metaDataRefreshStrategy = new DropTableStatementMetaDataRefreshStrategy();
- dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_item"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.singletonList("t_order_item"), dropTableStatement, tableName -> Optional.empty());
- }
-}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactoryTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactoryTest.java
similarity index 73%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactoryTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactoryTest.java
index acb820e..5ea623a 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/MetaDataRefreshStrategyFactoryTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/SchemaRefresherFactoryTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh;
+package org.apache.shardingsphere.infra.metadata.schema.refresher;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterIndexStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
@@ -32,35 +32,35 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
@RunWith(MockitoJUnitRunner.class)
-public final class MetaDataRefreshStrategyFactoryTest {
+public final class SchemaRefresherFactoryTest {
@Test
public void assertNewInstanceWithCreateTableStatement() {
- assertTrue(MetaDataRefreshStrategyFactory.newInstance(mock(CreateTableStatement.class)).isPresent());
+ assertTrue(SchemaRefresherFactory.newInstance(mock(CreateTableStatement.class)).isPresent());
}
@Test
public void assertNewInstanceWithAlterTableStatement() {
- assertTrue(MetaDataRefreshStrategyFactory.newInstance(mock(AlterTableStatement.class)).isPresent());
+ assertTrue(SchemaRefresherFactory.newInstance(mock(AlterTableStatement.class)).isPresent());
}
@Test
public void assertNewInstanceWithDropTableStatement() {
- assertTrue(MetaDataRefreshStrategyFactory.newInstance(mock(DropTableStatement.class)).isPresent());
+ assertTrue(SchemaRefresherFactory.newInstance(mock(DropTableStatement.class)).isPresent());
}
@Test
public void assertNewInstanceWithCreateIndexStatement() {
- assertTrue(MetaDataRefreshStrategyFactory.newInstance(mock(CreateIndexStatement.class)).isPresent());
+ assertTrue(SchemaRefresherFactory.newInstance(mock(CreateIndexStatement.class)).isPresent());
}
@Test
public void assertNewInstanceWithDropIndexStatement() {
- assertTrue(MetaDataRefreshStrategyFactory.newInstance(mock(DropIndexStatement.class)).isPresent());
+ assertTrue(SchemaRefresherFactory.newInstance(mock(DropIndexStatement.class)).isPresent());
}
@Test
public void assertNewInstanceWithSQLStatementNotNeedRefresh() {
- assertFalse(MetaDataRefreshStrategyFactory.newInstance(mock(AlterIndexStatement.class)).isPresent());
+ assertFalse(SchemaRefresherFactory.newInstance(mock(AlterIndexStatement.class)).isPresent());
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresherTest.java
similarity index 60%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresherTest.java
index e176407..c65a34e 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/AlterTableStatementMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/AlterTableStatementSchemaRefresherTest.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
@@ -39,41 +38,41 @@ import java.util.Collections;
import java.util.Optional;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-public final class AlterTableStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
+public final class AlterTableStatementSchemaRefresherTest {
@Test
- public void refreshMetaDataForMySQL() throws SQLException {
- refreshMetaData(new MySQLAlterTableStatement());
+ public void refreshForMySQL() throws SQLException {
+ refresh(new MySQLAlterTableStatement());
}
@Test
- public void refreshMetaDataForOracle() throws SQLException {
- refreshMetaData(new OracleAlterTableStatement());
+ public void refreshForOracle() throws SQLException {
+ refresh(new OracleAlterTableStatement());
}
@Test
- public void refreshMetaDataForPostgreSQL() throws SQLException {
- refreshMetaData(new PostgreSQLAlterTableStatement());
+ public void refreshForPostgreSQL() throws SQLException {
+ refresh(new PostgreSQLAlterTableStatement());
}
@Test
- public void refreshMetaDataForSQL92() throws SQLException {
- refreshMetaData(new SQL92AlterTableStatement());
+ public void refreshForSQL92() throws SQLException {
+ refresh(new SQL92AlterTableStatement());
}
@Test
- public void refreshMetaDataForSQLServer() throws SQLException {
- refreshMetaData(new SQLServerAlterTableStatement());
+ public void refreshForSQLServer() throws SQLException {
+ refresh(new SQLServerAlterTableStatement());
}
- private void refreshMetaData(final AlterTableStatement alterTableStatement) throws SQLException {
- MetaDataRefreshStrategy<AlterTableStatement> metaDataRefreshStrategy = new AlterTableStatementMetaDataRefreshStrategy();
+ private void refresh(final AlterTableStatement alterTableStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
+ SchemaRefresher<AlterTableStatement> schemaRefresher = new AlterTableStatementSchemaRefresher();
alterTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), alterTableStatement, tableName -> Optional.of(new TableMetaData(
+ schemaRefresher.refresh(schema, Collections.emptyList(), alterTableStatement, tableName -> Optional.of(new TableMetaData(
Collections.singletonList(new ColumnMetaData("order_id", 1, "String", true, false, false)),
Collections.singletonList(new IndexMetaData("index_alter")))));
- assertTrue(getSchema().get("t_order").getIndexes().containsKey("index_alter"));
+ assertTrue(schema.get("t_order").getIndexes().containsKey("index_alter"));
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresherTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresherTest.java
new file mode 100644
index 0000000..bca4a51
--- /dev/null
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateIndexStatementSchemaRefresherTest.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
+
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.ddl.MySQLCreateIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleCreateIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl.SQLServerCreateIndexStatement;
+import org.junit.Test;
+
+import java.sql.SQLException;
+import java.util.Collections;
+import java.util.Optional;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public final class CreateIndexStatementSchemaRefresherTest {
+
+ @Test
+ public void refreshForMySQL() throws SQLException {
+ refresh(new MySQLCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshForOracle() throws SQLException {
+ refresh(new OracleCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshForPostgreSQL() throws SQLException {
+ refresh(new PostgreSQLCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshForSQLServer() throws SQLException {
+ refresh(new SQLServerCreateIndexStatement());
+ }
+
+ private void refresh(final CreateIndexStatement createIndexStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
+ SchemaRefresher<CreateIndexStatement> schemaRefresher = new CreateIndexStatementSchemaRefresher();
+ createIndexStatement.setIndex(new IndexSegment(1, 2, new IdentifierValue("t_order_index")));
+ createIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
+ schemaRefresher.refresh(schema, Collections.emptyList(), createIndexStatement, tableName -> Optional.empty());
+ assertTrue(schema.get("t_order").getIndexes().containsKey("t_order_index"));
+ }
+
+ @Test
+ public void refreshIfIndexIsNullForMySQL() throws SQLException {
+ refreshIfIndexIsNull(new MySQLCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshIfIndexIsNullForOracle() throws SQLException {
+ refreshIfIndexIsNull(new OracleCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshIfIndexIsNullForPostgreSQL() throws SQLException {
+ refreshIfIndexIsNull(new PostgreSQLCreateIndexStatement());
+ }
+
+ @Test
+ public void refreshIfIndexIsNullForSQLServer() throws SQLException {
+ refreshIfIndexIsNull(new SQLServerCreateIndexStatement());
+ }
+
+ private void refreshIfIndexIsNull(final CreateIndexStatement createIndexStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
+ SchemaRefresher<CreateIndexStatement> schemaRefresher = new CreateIndexStatementSchemaRefresher();
+ createIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
+ schemaRefresher.refresh(schema, Collections.emptyList(), createIndexStatement, tableName -> Optional.empty());
+ assertFalse(schema.get("t_order").getIndexes().containsKey("t_order_index"));
+ }
+}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresherTest.java
similarity index 58%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresherTest.java
index 0dafadc..7100373 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateTableStatementMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateTableStatementSchemaRefresherTest.java
@@ -15,15 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
@@ -40,86 +38,86 @@ import java.util.Collections;
import java.util.Optional;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-public final class CreateTableStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
+public final class CreateTableStatementSchemaRefresherTest {
@Test
- public void refreshMetaDataForMySQL() throws SQLException {
+ public void refreshForMySQL() throws SQLException {
MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
createTableStatement.setNotExisted(false);
- refreshMetaData(createTableStatement);
+ refresh(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataForOracle() throws SQLException {
+ public void refreshForOracle() throws SQLException {
OracleCreateTableStatement createTableStatement = new OracleCreateTableStatement();
- refreshMetaData(createTableStatement);
+ refresh(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataForPostgreSQL() throws SQLException {
+ public void refreshForPostgreSQL() throws SQLException {
PostgreSQLCreateTableStatement createTableStatement = new PostgreSQLCreateTableStatement();
createTableStatement.setNotExisted(false);
- refreshMetaData(createTableStatement);
+ refresh(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataForSQL92() throws SQLException {
+ public void refreshForSQL92() throws SQLException {
SQL92CreateTableStatement createTableStatement = new SQL92CreateTableStatement();
- refreshMetaData(createTableStatement);
+ refresh(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataForSQLServer() throws SQLException {
+ public void refreshForSQLServer() throws SQLException {
SQLServerCreateTableStatement createTableStatement = new SQLServerCreateTableStatement();
- refreshMetaData(createTableStatement);
+ refresh(createTableStatement);
}
-
- private void refreshMetaData(final CreateTableStatement createTableStatement) throws SQLException {
+
+ private void refresh(final CreateTableStatement createTableStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_0"))));
- MetaDataRefreshStrategy<CreateTableStatement> metaDataRefreshStrategy = new CreateTableStatementMetaDataRefreshStrategy();
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), createTableStatement, tableName -> Optional.of(new TableMetaData(
+ SchemaRefresher<CreateTableStatement> schemaRefresher = new CreateTableStatementSchemaRefresher();
+ schemaRefresher.refresh(schema, Collections.emptyList(), createTableStatement, tableName -> Optional.of(new TableMetaData(
Collections.singletonList(new ColumnMetaData("order_id", 1, "String", true, false, false)),
Collections.singletonList(new IndexMetaData("index")))));
- assertTrue(getSchema().containsTable("t_order_0"));
+ assertTrue(schema.containsTable("t_order_0"));
}
@Test
- public void refreshMetaDataWithUnConfiguredForMySQL() throws SQLException {
+ public void refreshWithUnConfiguredForMySQL() throws SQLException {
MySQLCreateTableStatement createTableStatement = new MySQLCreateTableStatement();
createTableStatement.setNotExisted(false);
- refreshMetaDataWithUnConfigured(createTableStatement);
+ refreshWithUnConfigured(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataWithUnConfiguredForOracle() throws SQLException {
+ public void refreshWithUnConfiguredForOracle() throws SQLException {
OracleCreateTableStatement createTableStatement = new OracleCreateTableStatement();
- refreshMetaDataWithUnConfigured(createTableStatement);
+ refreshWithUnConfigured(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataWithUnConfiguredForPostgreSQL() throws SQLException {
+ public void refreshWithUnConfiguredForPostgreSQL() throws SQLException {
PostgreSQLCreateTableStatement createTableStatement = new PostgreSQLCreateTableStatement();
createTableStatement.setNotExisted(false);
- refreshMetaDataWithUnConfigured(createTableStatement);
+ refreshWithUnConfigured(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataWithUnConfiguredForSQL92() throws SQLException {
+ public void refreshWithUnConfiguredForSQL92() throws SQLException {
SQL92CreateTableStatement createTableStatement = new SQL92CreateTableStatement();
- refreshMetaDataWithUnConfigured(createTableStatement);
+ refreshWithUnConfigured(createTableStatement);
}
-
+
@Test
- public void refreshMetaDataWithUnConfiguredForSQLServer() throws SQLException {
+ public void refreshWithUnConfiguredForSQLServer() throws SQLException {
SQLServerCreateTableStatement createTableStatement = new SQLServerCreateTableStatement();
- refreshMetaDataWithUnConfigured(createTableStatement);
+ refreshWithUnConfigured(createTableStatement);
}
-
- private void refreshMetaDataWithUnConfigured(final CreateTableStatement createTableStatement) throws SQLException {
+
+ private void refreshWithUnConfigured(final CreateTableStatement createTableStatement) throws SQLException {
createTableStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_item_0"))));
- MetaDataRefreshStrategy<CreateTableStatement> metaDataRefreshStrategy = new CreateTableStatementMetaDataRefreshStrategy();
- metaDataRefreshStrategy.refreshMetaData(getSchema(), new MySQLDatabaseType(), Collections.singletonList("t_order_item"), createTableStatement, tableName -> Optional.empty());
+ SchemaRefresher<CreateTableStatement> schemaRefresher = new CreateTableStatementSchemaRefresher();
+ schemaRefresher.refresh(ShardingSphereSchemaBuildUtil.buildSchema(), Collections.singletonList("t_order_item"), createTableStatement, tableName -> Optional.empty());
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresherTest.java
similarity index 58%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresherTest.java
index f1b6eae..953fab2 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/CreateViewStatementMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/CreateViewStatementSchemaRefresherTest.java
@@ -15,11 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateViewStatement;
@@ -32,21 +30,21 @@ import java.sql.SQLException;
import java.util.Collections;
import java.util.Optional;
-public final class CreateViewStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
+public final class CreateViewStatementSchemaRefresherTest {
@Test
- public void refreshMetaDataWithUnConfiguredForMySQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new MySQLCreateViewStatement());
+ public void refreshWithUnConfiguredForMySQL() throws SQLException {
+ refreshWithUnConfigured(new MySQLCreateViewStatement());
}
@Test
- public void refreshMetaDataWithUnConfiguredForPostgreSQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new PostgreSQLCreateViewStatement());
+ public void refreshWithUnConfiguredForPostgreSQL() throws SQLException {
+ refreshWithUnConfigured(new PostgreSQLCreateViewStatement());
}
- private void refreshMetaDataWithUnConfigured(final CreateViewStatement createViewStatement) throws SQLException {
+ private void refreshWithUnConfigured(final CreateViewStatement createViewStatement) throws SQLException {
createViewStatement.setView(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_item_0"))));
- MetaDataRefreshStrategy<CreateViewStatement> metaDataRefreshStrategy = new CreateViewStatementMetaDataRefreshStrategy();
- metaDataRefreshStrategy.refreshMetaData(getSchema(), new MySQLDatabaseType(), Collections.singletonList("t_order_item"), createViewStatement, tableName -> Optional.empty());
+ SchemaRefresher<CreateViewStatement> schemaRefresher = new CreateViewStatementSchemaRefresher();
+ schemaRefresher.refresh(ShardingSphereSchemaBuildUtil.buildSchema(), Collections.singletonList("t_order_item"), createViewStatement, tableName -> Optional.empty());
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresherTest.java
similarity index 66%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresherTest.java
index 4626340..04d1b19 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropIndexStatementMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropIndexStatementSchemaRefresherTest.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
@@ -36,29 +35,29 @@ import java.util.Map;
import java.util.Optional;
import static org.junit.Assert.assertFalse;
-import static org.mockito.Mockito.mock;
-public final class DropIndexStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
+public final class DropIndexStatementSchemaRefresherTest {
@Test
- public void refreshMetaDataForMySQL() throws SQLException {
+ public void refreshForMySQL() throws SQLException {
MySQLDropIndexStatement dropIndexStatement = new MySQLDropIndexStatement();
dropIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- refreshMetaData(dropIndexStatement);
+ refresh(dropIndexStatement);
}
@Test
- public void refreshMetaDataForSQLServer() throws SQLException {
+ public void refreshForSQLServer() throws SQLException {
SQLServerDropIndexStatement dropIndexStatement = new SQLServerDropIndexStatement();
dropIndexStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
- refreshMetaData(dropIndexStatement);
+ refresh(dropIndexStatement);
}
- private void refreshMetaData(final DropIndexStatement dropIndexStatement) throws SQLException {
+ private void refresh(final DropIndexStatement dropIndexStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
dropIndexStatement.getIndexes().add(new IndexSegment(1, 2, new IdentifierValue("index")));
- MetaDataRefreshStrategy<DropIndexStatement> metaDataRefreshStrategy = new DropIndexStatementMetaDataRefreshStrategy();
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), dropIndexStatement, tableName -> Optional.empty());
- assertFalse(getSchema().get("t_order").getIndexes().containsKey("index"));
+ SchemaRefresher<DropIndexStatement> metaDataRefreshStrategy = new DropIndexStatementSchemaRefresher();
+ metaDataRefreshStrategy.refresh(schema, Collections.emptyList(), dropIndexStatement, tableName -> Optional.empty());
+ assertFalse(schema.get("t_order").getIndexes().containsKey("index"));
}
@Test
@@ -76,16 +75,17 @@ public final class DropIndexStatementMetaDataRefreshStrategyTest extends Abstrac
}
private void assertRemoveIndexes(final DropIndexStatement dropIndexStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
dropIndexStatement.getIndexes().add(new IndexSegment(1, 2, new IdentifierValue("index")));
dropIndexStatement.getIndexes().add(new IndexSegment(2, 3, new IdentifierValue("t_order_index")));
dropIndexStatement.getIndexes().add(new IndexSegment(3, 4, new IdentifierValue("order_id_index")));
- Map<String, IndexMetaData> actualIndex = getSchema().get("t_order").getIndexes();
+ Map<String, IndexMetaData> actualIndex = schema.get("t_order").getIndexes();
actualIndex.put("t_order_index", new IndexMetaData("t_order_index"));
actualIndex.put("order_id_index", new IndexMetaData("order_id_index"));
- MetaDataRefreshStrategy<DropIndexStatement> metaDataRefreshStrategy = new DropIndexStatementMetaDataRefreshStrategy();
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.emptyList(), dropIndexStatement, tableName -> Optional.empty());
- assertFalse(getSchema().get("t_order").getIndexes().containsKey("index"));
- assertFalse(getSchema().get("t_order").getIndexes().containsKey("t_order_index"));
- assertFalse(getSchema().get("t_order").getIndexes().containsKey("order_id_index"));
+ SchemaRefresher<DropIndexStatement> schemaRefresher = new DropIndexStatementSchemaRefresher();
+ schemaRefresher.refresh(schema, Collections.emptyList(), dropIndexStatement, tableName -> Optional.empty());
+ assertFalse(schema.get("t_order").getIndexes().containsKey("index"));
+ assertFalse(schema.get("t_order").getIndexes().containsKey("t_order_index"));
+ assertFalse(schema.get("t_order").getIndexes().containsKey("order_id_index"));
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresherTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresherTest.java
new file mode 100644
index 0000000..f23ed4f
--- /dev/null
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropTableStatementSchemaRefresherTest.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
+
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.ddl.MySQLDropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sql92.ddl.SQL92DropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl.SQLServerDropTableStatement;
+import org.junit.Test;
+
+import java.sql.SQLException;
+import java.util.Collections;
+import java.util.Optional;
+
+import static org.junit.Assert.assertFalse;
+
+public final class DropTableStatementSchemaRefresherTest {
+
+ @Test
+ public void refreshForMySQL() throws SQLException {
+ refresh(new MySQLDropTableStatement());
+ }
+
+ @Test
+ public void refreshForOracle() throws SQLException {
+ refresh(new OracleDropTableStatement());
+ }
+
+ @Test
+ public void refreshForPostgreSQL() throws SQLException {
+ refresh(new PostgreSQLDropTableStatement());
+ }
+
+ @Test
+ public void refreshForSQL92() throws SQLException {
+ refresh(new SQL92DropTableStatement());
+ }
+
+ @Test
+ public void refreshForSQLServer() throws SQLException {
+ refresh(new SQLServerDropTableStatement());
+ }
+
+ private void refresh(final DropTableStatement dropTableStatement) throws SQLException {
+ ShardingSphereSchema schema = ShardingSphereSchemaBuildUtil.buildSchema();
+ SchemaRefresher<DropTableStatement> schemaRefresher = new DropTableStatementSchemaRefresher();
+ dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order"))));
+ schemaRefresher.refresh(schema, Collections.emptyList(), dropTableStatement, tableName -> Optional.empty());
+ assertFalse(schema.containsTable("t_order"));
+ }
+
+ @Test
+ public void refreshWithUnConfiguredForMySQL() throws SQLException {
+ refreshWithUnConfigured(new MySQLDropTableStatement());
+ }
+
+ @Test
+ public void refreshWithUnConfiguredForOracle() throws SQLException {
+ refreshWithUnConfigured(new OracleDropTableStatement());
+ }
+
+ @Test
+ public void refreshWithUnConfiguredForPostgreSQL() throws SQLException {
+ refreshWithUnConfigured(new PostgreSQLDropTableStatement());
+ }
+
+ @Test
+ public void refreshWithUnConfiguredForSQL92() throws SQLException {
+ refreshWithUnConfigured(new SQL92DropTableStatement());
+ }
+
+ @Test
+ public void refreshWithUnConfiguredForSQLServer() throws SQLException {
+ refreshWithUnConfigured(new SQLServerDropTableStatement());
+ }
+
+ private void refreshWithUnConfigured(final DropTableStatement dropTableStatement) throws SQLException {
+ SchemaRefresher<DropTableStatement> schemaRefresher = new DropTableStatementSchemaRefresher();
+ dropTableStatement.getTables().add(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_item"))));
+ schemaRefresher.refresh(ShardingSphereSchemaBuildUtil.buildSchema(), Collections.singletonList("t_order_item"), dropTableStatement, tableName -> Optional.empty());
+ }
+}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresherTest.java
similarity index 58%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresherTest.java
index 447f6a6..6322a64 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/impl/DropViewStatementMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/DropViewStatementSchemaRefresherTest.java
@@ -15,11 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh.impl;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.AbstractMetaDataRefreshStrategyTest;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropViewStatement;
@@ -32,23 +30,21 @@ import java.sql.SQLException;
import java.util.Collections;
import java.util.Optional;
-import static org.mockito.Mockito.mock;
-
-public final class DropViewStatementMetaDataRefreshStrategyTest extends AbstractMetaDataRefreshStrategyTest {
+public final class DropViewStatementSchemaRefresherTest {
@Test
- public void refreshMetaDataWithUnConfiguredForMySQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new MySQLDropViewStatement());
+ public void refreshWithUnConfiguredForMySQL() throws SQLException {
+ refreshWithUnConfigured(new MySQLDropViewStatement());
}
@Test
- public void refreshMetaDataWithUnConfiguredForPostgreSQL() throws SQLException {
- refreshMetaDataWithUnConfigured(new PostgreSQLDropViewStatement());
+ public void refreshWithUnConfiguredForPostgreSQL() throws SQLException {
+ refreshWithUnConfigured(new PostgreSQLDropViewStatement());
}
- private void refreshMetaDataWithUnConfigured(final DropViewStatement dropViewStatement) throws SQLException {
- MetaDataRefreshStrategy<DropViewStatement> metaDataRefreshStrategy = new DropViewStatementMetaDataRefreshStrategy();
+ private void refreshWithUnConfigured(final DropViewStatement dropViewStatement) throws SQLException {
+ SchemaRefresher<DropViewStatement> schemaRefresher = new DropViewStatementSchemaRefresher();
dropViewStatement.getViews().add(new SimpleTableSegment(new TableNameSegment(1, 3, new IdentifierValue("t_order_item"))));
- metaDataRefreshStrategy.refreshMetaData(getSchema(), mock(DatabaseType.class), Collections.singletonList("t_order_item"), dropViewStatement, tableName -> Optional.empty());
+ schemaRefresher.refresh(ShardingSphereSchemaBuildUtil.buildSchema(), Collections.singletonList("t_order_item"), dropViewStatement, tableName -> Optional.empty());
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/ShardingSphereSchemaBuildUtil.java
similarity index 79%
rename from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/ShardingSphereSchemaBuildUtil.java
index f9c5297..34db801 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresh/AbstractMetaDataRefreshStrategyTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/refresher/type/ShardingSphereSchemaBuildUtil.java
@@ -15,31 +15,28 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.refresh;
+package org.apache.shardingsphere.infra.metadata.schema.refresher.type;
import com.google.common.collect.ImmutableMap;
-import lombok.Getter;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.junit.Before;
import java.util.Collections;
-@Getter
-public abstract class AbstractMetaDataRefreshStrategyTest {
-
- private ShardingSphereSchema schema;
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShardingSphereSchemaBuildUtil {
- @Before
- public void setUp() {
- schema = buildSchema();
- }
-
- private ShardingSphereSchema buildSchema() {
+ /**
+ * Build schema.
+ *
+ * @return ShardingSphere schema
+ */
+ public static ShardingSphereSchema buildSchema() {
return new ShardingSphereSchema(ImmutableMap.of("t_order", new TableMetaData(
Collections.singletonList(new ColumnMetaData("order_id", 1, "String", false, false, false)), Collections.singletonList(new IndexMetaData("index")))));
}
}
-
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
index 2ab84a6..caef5a0 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/AbstractStatementExecutor.java
@@ -30,9 +30,9 @@ import org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.executor.SQLE
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategyFactory;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaChangedNotifier;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresherFactory;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.spi.SchemaChangedNotifier;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
import org.apache.shardingsphere.infra.rule.type.DataNodeContainedRule;
@@ -80,10 +80,10 @@ public abstract class AbstractStatementExecutor {
if (null == sqlStatement) {
return;
}
- Optional<MetaDataRefreshStrategy> refreshStrategy = MetaDataRefreshStrategyFactory.newInstance(sqlStatement);
- if (refreshStrategy.isPresent()) {
+ Optional<SchemaRefresher> schemaRefresher = SchemaRefresherFactory.newInstance(sqlStatement);
+ if (schemaRefresher.isPresent()) {
Collection<String> routeDataSourceNames = routeUnits.stream().map(RouteUnit::getDataSourceMapper).map(RouteMapper::getLogicName).collect(Collectors.toList());
- refreshStrategy.get().refreshMetaData(metaData.getSchema(), metaDataContexts.getDatabaseType(), routeDataSourceNames, sqlStatement,
+ schemaRefresher.get().refresh(metaData.getSchema(), routeDataSourceNames, sqlStatement,
tableName -> TableMetaDataBuilder.build(tableName, metaDataContexts.getDatabaseType(), dataSourceMap, metaData.getRuleMetaData().getRules(), metaDataContexts.getProps()));
notifyPersistSchema(DefaultSchema.LOGIC_NAME, metaData.getSchema());
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaChangedNotifier.java b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaChangedNotifier.java
index bed05b4..1a6f104 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaChangedNotifier.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/metadata/GovernanceSchemaChangedNotifier.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.driver.governance.internal.metadata;
import org.apache.shardingsphere.governance.core.event.GovernanceEventBus;
import org.apache.shardingsphere.governance.core.event.model.schema.SchemaPersistEvent;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaChangedNotifier;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.spi.SchemaChangedNotifier;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
/**
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaChangedNotifier b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.refresher.spi.SchemaChangedNotifier
similarity index 100%
rename from shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.refresh.spi.SchemaChangedNotifier
rename to shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.refresher.spi.SchemaChangedNotifier
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index 7bded78..50ed521 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -33,8 +33,8 @@ import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategy;
-import org.apache.shardingsphere.infra.metadata.schema.refresh.MetaDataRefreshStrategyFactory;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
+import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresherFactory;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
import org.apache.shardingsphere.infra.rule.type.DataNodeContainedRule;
@@ -102,10 +102,9 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
if (null == sqlStatement) {
return;
}
- Optional<MetaDataRefreshStrategy> refreshStrategy = MetaDataRefreshStrategyFactory.newInstance(sqlStatement);
- if (refreshStrategy.isPresent()) {
- refreshStrategy.get().refreshMetaData(
- metaData.getSchema(), ProxyContext.getInstance().getMetaDataContexts().getDatabaseType(), routeDataSourceNames, sqlStatement, this::buildTableMetaData);
+ Optional<SchemaRefresher> schemaRefresher = SchemaRefresherFactory.newInstance(sqlStatement);
+ if (schemaRefresher.isPresent()) {
+ schemaRefresher.get().refresh(metaData.getSchema(), routeDataSourceNames, sqlStatement, this::buildTableMetaData);
GovernanceEventBus.getInstance().post(new SchemaPersistEvent(metaData.getName(), metaData.getSchema()));
}
}