This is an automated email from the ASF dual-hosted git repository.
terrymanu 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 2867056486e Refactor SchemaMetaDataReviseEngine (#38889)
2867056486e is described below
commit 2867056486e289f8db185b3fcfcae9bfb42c7178
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 23 01:47:15 2026 +0800
Refactor SchemaMetaDataReviseEngine (#38889)
---
.../reviser/schema/SchemaMetaDataReviseEngine.java | 25 +++++++---------------
.../schema/SchemaMetaDataReviseEngineTest.java | 7 +++---
2 files changed, 12 insertions(+), 20 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngine.java
index 3de3069497a..ddabc02bfad 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngine.java
@@ -17,6 +17,7 @@
package
org.apache.shardingsphere.infra.metadata.database.schema.reviser.schema;
+import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.database.connector.core.metadata.data.model.IndexMetaData;
import
org.apache.shardingsphere.database.connector.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.database.connector.core.metadata.data.model.TableMetaData;
@@ -38,24 +39,14 @@ import java.util.stream.Collectors;
/**
* Schema meta data revise engine.
*/
+@RequiredArgsConstructor
public final class SchemaMetaDataReviseEngine {
private final Collection<ShardingSphereRule> rules;
private final ConfigurationProperties props;
- private final Collection<ShardingSphereSchema>
schemaMetaDataRevisionCandidateSchemas;
-
- public SchemaMetaDataReviseEngine(final Collection<ShardingSphereRule>
rules, final ConfigurationProperties props) {
- this(rules, props, Collections.emptyList());
- }
-
- public SchemaMetaDataReviseEngine(final Collection<ShardingSphereRule>
rules, final ConfigurationProperties props,
- final Collection<ShardingSphereSchema>
schemaMetaDataRevisionCandidateSchemas) {
- this.rules = rules;
- this.props = props;
- this.schemaMetaDataRevisionCandidateSchemas =
schemaMetaDataRevisionCandidateSchemas;
- }
+ private final Collection<ShardingSphereSchema> revisionCandidateSchemas;
/**
* Revise schema meta data.
@@ -74,20 +65,20 @@ public final class SchemaMetaDataReviseEngine {
private <T extends ShardingSphereRule> SchemaMetaData revise(final
SchemaMetaData originalMetaData, final T rule, final MetaDataReviseEntry<T>
reviseEntry) {
TableMetaDataReviseEngine<T> tableMetaDataReviseEngine = new
TableMetaDataReviseEngine<>(rule, reviseEntry);
- Collection<TableMetaData>
schemaMetaDataRevisionCandidateTableMetaDataList =
createSchemaMetaDataRevisionCandidateTableMetaDataList(originalMetaData);
+ Collection<TableMetaData> revisionCandidateTableMetaDataList =
createRevisionCandidateTableMetaDataList(originalMetaData);
Optional<? extends SchemaTableAggregationReviser<T>>
aggregationReviser = reviseEntry.getSchemaTableAggregationReviser(props);
if (!aggregationReviser.isPresent()) {
return new SchemaMetaData(originalMetaData.getName(),
originalMetaData.getTables().stream()
- .map(each -> tableMetaDataReviseEngine.revise(each,
originalMetaData.getTables(),
schemaMetaDataRevisionCandidateTableMetaDataList)).collect(Collectors.toList()));
+ .map(each -> tableMetaDataReviseEngine.revise(each,
originalMetaData.getTables(),
revisionCandidateTableMetaDataList)).collect(Collectors.toList()));
}
for (TableMetaData each : originalMetaData.getTables()) {
-
aggregationReviser.get().add(tableMetaDataReviseEngine.revise(each,
originalMetaData.getTables(),
schemaMetaDataRevisionCandidateTableMetaDataList));
+
aggregationReviser.get().add(tableMetaDataReviseEngine.revise(each,
originalMetaData.getTables(), revisionCandidateTableMetaDataList));
}
return new SchemaMetaData(originalMetaData.getName(),
aggregationReviser.get().aggregate(rule));
}
- private Collection<TableMetaData>
createSchemaMetaDataRevisionCandidateTableMetaDataList(final SchemaMetaData
originalMetaData) {
- return schemaMetaDataRevisionCandidateSchemas.stream().filter(each ->
each.getName().equalsIgnoreCase(originalMetaData.getName()))
+ private Collection<TableMetaData>
createRevisionCandidateTableMetaDataList(final SchemaMetaData originalMetaData)
{
+ return revisionCandidateSchemas.stream().filter(each ->
each.getName().equalsIgnoreCase(originalMetaData.getName()))
.flatMap(each ->
each.getAllTables().stream()).map(SchemaMetaDataReviseEngine::convertToTableMetaData).collect(Collectors.toList());
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
index ec6c637aa8c..d9b04bde2c8 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
@@ -59,7 +59,7 @@ class SchemaMetaDataReviseEngineTest {
@Test
void assertReviseWithoutMetaDataReviseEntry() {
SchemaMetaData schemaMetaData = new SchemaMetaData("foo_schema",
Collections.singleton(mock(TableMetaData.class)));
- SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.emptyList(), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
+ SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.emptyList(), new
ConfigurationProperties(new Properties()),
Collections.emptyList()).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
assertThat(actual.getTables(), is(schemaMetaData.getTables()));
}
@@ -67,7 +67,8 @@ class SchemaMetaDataReviseEngineTest {
@Test
void assertReviseWithMetaDataReviseEntry() {
SchemaMetaData schemaMetaData = new SchemaMetaData("foo_schema",
Collections.singletonList(createTableMetaData()));
- SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.singleton(new FixtureGlobalRule()), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
+ SchemaMetaData actual = new SchemaMetaDataReviseEngine(
+ Collections.singleton(new FixtureGlobalRule()), new
ConfigurationProperties(new Properties()),
Collections.emptyList()).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
assertThat(actual.getTables().size(),
is(schemaMetaData.getTables().size()));
Iterator<TableMetaData> expectedTableIterator =
schemaMetaData.getTables().iterator();
@@ -84,7 +85,7 @@ class SchemaMetaDataReviseEngineTest {
Map<ShardingSphereRule, MetaDataReviseEntry<?>> entries =
Collections.singletonMap(rule, reviseEntry);
try (MockedStatic<OrderedSPILoader> mocked =
mockStatic(OrderedSPILoader.class)) {
mocked.when(() ->
OrderedSPILoader.getServices(MetaDataReviseEntry.class,
Collections.singleton(rule))).thenReturn(entries);
- SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.singleton(rule), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
+ SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.singleton(rule), new
ConfigurationProperties(new Properties()),
Collections.emptyList()).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
assertThat(actual.getTables().size(),
is(schemaMetaData.getTables().size()));
}