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 <[email protected]>
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()));
}
}