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 7e0745f  Refactor table addressing mapper (#8102)
7e0745f is described below

commit 7e0745f6d3bb50fd899ef88aa8c170756687d570
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Nov 9 21:05:17 2020 +0800

    Refactor table addressing mapper (#8102)
    
    * Remove TableAddressingMetaData
    
    * Rename TableAddressingMapperDataLoader
    
    * Rename TableAddressingMapperDecorator
---
 ...=> ShardingTableAddressingMapperDecorator.java} | 19 +++++++------
 ...hema.loader.spi.TableAddressingMapperDecorator} |  2 +-
 .../metadata/GovernanceMetaDataContexts.java       |  2 +-
 .../schema/loader/SchemaMetaDataLoader.java        | 14 ++++-----
 ...r.java => TableAddressingMapperDataLoader.java} | 33 +++++++++++-----------
 ...or.java => TableAddressingMapperDecorator.java} | 14 +++++----
 .../model/addressing/TableAddressingMetaData.java  | 33 ----------------------
 7 files changed, 44 insertions(+), 73 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMetaDataDecorator.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
similarity index 67%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMetaDataDecorator.java
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
index 5ad6a45..d07ea2e 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMetaDataDecorator.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingTableAddressingMapperDecorator.java
@@ -18,32 +18,33 @@
 package org.apache.shardingsphere.sharding.metadata;
 
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import 
org.apache.shardingsphere.infra.metadata.schema.model.addressing.TableAddressingMetaData;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMetaDataDecorator;
+import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.TableRule;
 
+import java.util.Collection;
 import java.util.LinkedList;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * Table addressing meta data decorator of sharding.
+ * Table addressing mapper decorator of sharding.
  */
-public final class ShardingTableAddressingMetaDataDecorator implements 
TableAddressingMetaDataDecorator<ShardingRule> {
+public final class ShardingTableAddressingMapperDecorator implements 
TableAddressingMapperDecorator<ShardingRule> {
     
     @Override
-    public void decorate(final ShardingRule rule, final 
TableAddressingMetaData metaData) {
-        rule.getTableRules().forEach(each -> decorate(each, metaData));
+    public void decorate(final ShardingRule rule, final Map<String, 
Collection<String>> tableAddressingMapper) {
+        rule.getTableRules().forEach(each -> decorate(each, 
tableAddressingMapper));
     }
     
-    private void decorate(final TableRule tableRule, final 
TableAddressingMetaData metaData) {
+    private void decorate(final TableRule tableRule, final Map<String, 
Collection<String>> tableDataSourceNamesMapper) {
         boolean found = false;
         for (String each : 
tableRule.getActualDataNodes().stream().map(DataNode::getTableName).collect(Collectors.toSet()))
 {
-            found = null != 
metaData.getTableDataSourceNamesMapper().remove(each) || found;
+            found = null != tableDataSourceNamesMapper.remove(each) || found;
         }
         if (found) {
-            
metaData.getTableDataSourceNamesMapper().put(tableRule.getLogicTable(), new 
LinkedList<>(tableRule.getActualDatasourceNames()));
+            tableDataSourceNamesMapper.put(tableRule.getLogicTable(), new 
LinkedList<>(tableRule.getActualDatasourceNames()));
         }
     }
     
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMetaDataDecorator
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator
similarity index 97%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMetaDataDecorator
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator
index 984236d..2fdcde4 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMetaDataDecorator
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.sharding.metadata.ShardingTableAddressingMetaDataDecorator
+org.apache.shardingsphere.sharding.metadata.ShardingTableAddressingMapperDecorator
diff --git 
a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
 
b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index b371412..e21cf97 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-core/shardingsphere-governance-core-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -301,7 +301,7 @@ public final class GovernanceMetaDataContexts implements 
MetaDataContexts {
     }
     
     private ShardingSphereMetaData getChangedMetaData(final 
ShardingSphereMetaData oldMetaData, final ShardingSphereSchema schema, final 
String schemaName) {
-        // TODO refresh tableAddressingMetaData
+        // TODO refresh table addressing mapper
         return new ShardingSphereMetaData(schemaName, 
oldMetaData.getResource(), oldMetaData.getRuleMetaData(), schema);
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
index 87f204f..9427e96 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
@@ -21,7 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.addressing.TableAddressingMetaDataLoader;
+import 
org.apache.shardingsphere.infra.metadata.schema.loader.addressing.TableAddressingMapperDataLoader;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.schema.model.physical.PhysicalTableMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -51,13 +51,13 @@ public final class SchemaMetaDataLoader {
      */
     public static ShardingSphereSchema load(final DatabaseType databaseType, 
final Map<String, DataSource> dataSourceMap,
                                             final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
-        ShardingSphereSchema result = loadSchemaMetaData(databaseType, 
dataSourceMap, rules, props);
-        setAddressingDataSources(databaseType, dataSourceMap, rules, result);
+        ShardingSphereSchema result = loadSchema(databaseType, dataSourceMap, 
rules, props);
+        setTableAddressingMapper(databaseType, dataSourceMap, rules, result);
         return result;
     }
     
-    private static ShardingSphereSchema loadSchemaMetaData(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap,
-                                                           final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
+    private static ShardingSphereSchema loadSchema(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap,
+                                                   final 
Collection<ShardingSphereRule> rules, final ConfigurationProperties props) 
throws SQLException {
         ShardingSphereSchema result = new ShardingSphereSchema();
         for (ShardingSphereRule rule : rules) {
             if (rule instanceof TableContainedRule) {
@@ -71,9 +71,9 @@ public final class SchemaMetaDataLoader {
         return result;
     }
     
-    private static void setAddressingDataSources(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap, 
+    private static void setTableAddressingMapper(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap,
                                                  final 
Collection<ShardingSphereRule> rules, final ShardingSphereSchema schema) throws 
SQLException {
-        for (Entry<String, Collection<String>> entry : 
TableAddressingMetaDataLoader.load(databaseType, dataSourceMap, 
rules).getTableDataSourceNamesMapper().entrySet()) {
+        for (Entry<String, Collection<String>> entry : 
TableAddressingMapperDataLoader.load(databaseType, dataSourceMap, 
rules).entrySet()) {
             String tableName = entry.getKey();
             if (!schema.containsTable(tableName)) {
                 schema.put(tableName, new PhysicalTableMetaData());
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
similarity index 60%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMetaDataLoader.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
index 0bea7cf..9889281 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
@@ -20,9 +20,8 @@ package 
org.apache.shardingsphere.infra.metadata.schema.loader.addressing;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.metadata.schema.model.addressing.TableAddressingMetaData;
 import 
org.apache.shardingsphere.infra.metadata.schema.loader.physical.PhysicalSchemaMetaDataLoader;
-import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMetaDataDecorator;
+import 
org.apache.shardingsphere.infra.metadata.schema.loader.spi.TableAddressingMapperDecorator;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry;
@@ -31,52 +30,54 @@ import javax.sql.DataSource;
 import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Map.Entry;
 
 /**
- * Table addressing meta data loader.
+ * Table addressing mapper loader.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class TableAddressingMetaDataLoader {
+public final class TableAddressingMapperDataLoader {
     
     static {
-        
ShardingSphereServiceLoader.register(TableAddressingMetaDataDecorator.class);
+        
ShardingSphereServiceLoader.register(TableAddressingMapperDecorator.class);
     }
     
     /**
-     * Load table addressing meta data.
+     * Load table addressing mapper with related data sources.
      *
      * @param databaseType database type
      * @param dataSourceMap data source map
      * @param rules ShardingSphere rules
-     * @return table addressing meta data
+     * @return table addressing mapper
      * @throws SQLException SQL exception
      */
     @SuppressWarnings({"unchecked", "rawtypes"})
-    public static TableAddressingMetaData load(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap, final 
Collection<ShardingSphereRule> rules) throws SQLException {
-        TableAddressingMetaData result = initializeMetaData(databaseType, 
dataSourceMap);
-        for (Entry<ShardingSphereRule, TableAddressingMetaDataDecorator> entry 
: OrderedSPIRegistry.getRegisteredServices(rules, 
TableAddressingMetaDataDecorator.class).entrySet()) {
+    public static Map<String, Collection<String>> load(final DatabaseType 
databaseType, final Map<String, DataSource> dataSourceMap, final 
Collection<ShardingSphereRule> rules) throws SQLException {
+        Map<String, Collection<String>> result = 
initializeTableAddressingMapper(databaseType, dataSourceMap);
+        for (Entry<ShardingSphereRule, TableAddressingMapperDecorator> entry : 
OrderedSPIRegistry.getRegisteredServices(rules, 
TableAddressingMapperDecorator.class).entrySet()) {
             entry.getValue().decorate(entry.getKey(), result);
         }
         return result;
     }
     
-    private static TableAddressingMetaData initializeMetaData(final 
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) throws 
SQLException {
-        TableAddressingMetaData result = new TableAddressingMetaData();
+    private static Map<String, Collection<String>> 
initializeTableAddressingMapper(final DatabaseType databaseType, final 
Map<String, DataSource> dataSourceMap) throws SQLException {
+        Map<String, Collection<String>> result = new HashMap<>();
         for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) {
             appendMetaData(result, databaseType, entry.getKey(), 
entry.getValue());
         }
         return result;
     }
     
-    private static void appendMetaData(final TableAddressingMetaData metaData, 
final DatabaseType databaseType, final String dataSourceName, final DataSource 
dataSource) throws SQLException {
+    private static void appendMetaData(final Map<String, Collection<String>> 
tableAddressingMapper, 
+                                       final DatabaseType databaseType, final 
String dataSourceName, final DataSource dataSource) throws SQLException {
         for (String each : 
PhysicalSchemaMetaDataLoader.loadTableNames(dataSource, databaseType, 
Collections.emptyList())) {
-            if (!metaData.getTableDataSourceNamesMapper().containsKey(each)) {
-                metaData.getTableDataSourceNamesMapper().put(each, new 
LinkedHashSet<>());
+            if (!tableAddressingMapper.containsKey(each)) {
+                tableAddressingMapper.put(each, new LinkedHashSet<>());
             }
-            
metaData.getTableDataSourceNamesMapper().get(each).add(dataSourceName);
+            tableAddressingMapper.get(each).add(dataSourceName);
         }
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMetaDataDecorator.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
similarity index 73%
rename from 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMetaDataDecorator.java
rename to 
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
index 1b6b38d..18e0705 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMetaDataDecorator.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/TableAddressingMapperDecorator.java
@@ -17,22 +17,24 @@
 
 package org.apache.shardingsphere.infra.metadata.schema.loader.spi;
 
-import 
org.apache.shardingsphere.infra.metadata.schema.model.addressing.TableAddressingMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.spi.ordered.OrderedSPI;
 
+import java.util.Collection;
+import java.util.Map;
+
 /**
- * Table addressing meta data decorator.
+ * Table addressing mapper decorator.
  * 
  * @param <T> type of ShardingSphere rule
  */
-public interface TableAddressingMetaDataDecorator<T extends 
ShardingSphereRule> extends OrderedSPI<T> {
+public interface TableAddressingMapperDecorator<T extends ShardingSphereRule> 
extends OrderedSPI<T> {
     
     /**
-     * Build ShardingSphere rule.
+     * Decorate table addressing mapper with data source names.
      *
      * @param rule ShardingSphere rule
-     * @param metaData table addressing meta data
+     * @param tableAddressingMapper decorated table addressing mapper
      */
-    void decorate(T rule, TableAddressingMetaData metaData);
+    void decorate(T rule, Map<String, Collection<String>> 
tableAddressingMapper);
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/addressing/TableAddressingMetaData.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/addressing/TableAddressingMetaData.java
deleted file mode 100644
index e738768..0000000
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/model/addressing/TableAddressingMetaData.java
+++ /dev/null
@@ -1,33 +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.model.addressing;
-
-import lombok.Getter;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Table addressing meta data.
- */
-@Getter
-public final class TableAddressingMetaData {
-    
-    private final Map<String, Collection<String>> tableDataSourceNamesMapper = 
new ConcurrentHashMap<>();
-}

Reply via email to