You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/04/28 15:06:56 UTC

[shardingsphere] branch master updated: Remove ReadwriteSplittingDataSourceProcessor.getDataSources() (#17185)

This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 8ea39e4b803 Remove ReadwriteSplittingDataSourceProcessor.getDataSources() (#17185)
8ea39e4b803 is described below

commit 8ea39e4b8039e2bc459e07df64754e78b7a468b8
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Apr 28 23:06:40 2022 +0800

    Remove ReadwriteSplittingDataSourceProcessor.getDataSources() (#17185)
    
    * Refactor ReadwriteSplittingDataSourceProcessor
    
    * Remove ReadwriteSplittingDataSourceProcessor.getDataSources()
    
    * Remove ReadwriteSplittingDataSourceProcessor.getDataSources()
    
    * Remove ReadwriteSplittingDataSourceProcessor.getDataSources()
    
    * Remove ReadwriteSplittingDataSourceProcessor.getDataSources()
---
 .../rule/ReadwriteSplittingDataSourceRule.java     | 32 +++++++++-------------
 .../ReadwriteSplittingDataSourceProcessor.java     |  7 -----
 ...namicReadwriteSplittingDataSourceProcessor.java | 17 +-----------
 ...taticReadwriteSplittingDataSourceProcessor.java | 10 -------
 4 files changed, 14 insertions(+), 52 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
index f7c9793377c..e554579e9f3 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.readwritesplitting.rule;
 
 import com.google.common.base.Preconditions;
-import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.Getter;
@@ -34,7 +33,6 @@ import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
@@ -107,24 +105,20 @@ public final class ReadwriteSplittingDataSourceRule {
      * @return data sources
      */
     public Map<String, String> getDataSources(final boolean removeDisabled) {
-        Map<String, String> result = new LinkedHashMap<>();
-        for (Entry<String, String> entry : dataSourceProcessor.getDataSources().entrySet()) {
-            String key = entry.getKey();
-            String value = entry.getValue();
-            if (ExportableConstants.REPLICA_DATA_SOURCE_NAMES.equals(key) && removeDisabled) {
-                value = removeDisabledDataSources(value);
-            }
-            result.put(key, value);
+        Map<String, String> result = new LinkedHashMap<>(2, 1);
+        String writeDataSourceName = dataSourceProcessor.getWriteDataSource();
+        if (null != writeDataSourceName) {
+            result.put(ExportableConstants.PRIMARY_DATA_SOURCE_NAME, writeDataSourceName);
         }
-        return result;
-    }
-    
-    private String removeDisabledDataSources(final String readDataSources) {
-        if (disabledDataSourceNames.isEmpty()) {
-            return readDataSources;
+        List<String> readDataSourceNames = dataSourceProcessor.getReadDataSources();
+        if (readDataSourceNames.isEmpty()) {
+            return result;
         }
-        Collection<String> dataSources = new LinkedList<>(Splitter.on(",").trimResults().splitToList(readDataSources));
-        dataSources.removeIf(disabledDataSourceNames::contains);
-        return String.join(",", dataSources);
+        if (removeDisabled && !disabledDataSourceNames.isEmpty()) {
+            readDataSourceNames = new LinkedList<>(readDataSourceNames);
+            readDataSourceNames.removeIf(disabledDataSourceNames::contains);
+        }
+        result.put(ExportableConstants.REPLICA_DATA_SOURCE_NAMES, String.join(",", readDataSourceNames));
+        return result;
     }
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/ReadwriteSplittingDataSourceProcessor.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/ReadwriteSplittingDataSourceProcessor.java
index 917c249508b..07aa8bf6090 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/ReadwriteSplittingDataSourceProcessor.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/ReadwriteSplittingDataSourceProcessor.java
@@ -39,13 +39,6 @@ public interface ReadwriteSplittingDataSourceProcessor {
      */
     List<String> getReadDataSources();
     
-    /**
-     * Get data sources.
-     *
-     * @return data sources
-     */
-    Map<String, String> getDataSources();
-    
     /**
      * Get data source mapper.
      *
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/DynamicReadwriteSplittingDataSourceProcessor.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/DynamicReadwriteSplittingDataSourceProcessor.java
index 62fe657065e..1bc3e467333 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/DynamicReadwriteSplittingDataSourceProcessor.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/DynamicReadwriteSplittingDataSourceProcessor.java
@@ -17,12 +17,10 @@
 
 package org.apache.shardingsphere.readwritesplitting.type.impl;
 
-import com.google.common.base.Strings;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.aware.DataSourceNameAware;
 import org.apache.shardingsphere.infra.aware.DataSourceNameAwareFactory;
-import org.apache.shardingsphere.infra.distsql.constant.ExportableConstants;
 import org.apache.shardingsphere.readwritesplitting.type.ReadwriteSplittingDataSourceProcessor;
 
 import java.util.ArrayList;
@@ -45,8 +43,7 @@ public final class DynamicReadwriteSplittingDataSourceProcessor implements Readw
     
     @Override
     public String getWriteDataSource() {
-        Optional<DataSourceNameAware> dataSourceNameAware = DataSourceNameAwareFactory.newInstance();
-        return dataSourceNameAware.map(optional -> optional.getPrimaryDataSourceName(autoAwareDataSourceName)).orElse(null);
+        return DataSourceNameAwareFactory.newInstance().map(optional -> optional.getPrimaryDataSourceName(autoAwareDataSourceName)).orElse(null);
     }
     
     @Override
@@ -58,18 +55,6 @@ public final class DynamicReadwriteSplittingDataSourceProcessor implements Readw
         return Collections.emptyList();
     }
     
-    @Override
-    public Map<String, String> getDataSources() {
-        Optional<DataSourceNameAware> dataSourceNameAware = DataSourceNameAwareFactory.newInstance();
-        Map<String, String> result = new HashMap<>(2, 1);
-        if (!Strings.isNullOrEmpty(autoAwareDataSourceName) && dataSourceNameAware.isPresent() && dataSourceNameAware.get().getRule().isPresent()) {
-            result.put(ExportableConstants.PRIMARY_DATA_SOURCE_NAME, dataSourceNameAware.get().getPrimaryDataSourceName(autoAwareDataSourceName));
-            result.put(ExportableConstants.REPLICA_DATA_SOURCE_NAMES, String.join(",", dataSourceNameAware.get().getReplicaDataSourceNames(autoAwareDataSourceName)));
-            return result;
-        }
-        return result;
-    }
-    
     @Override
     public Map<String, Collection<String>> getDataSourceMapper(final String name) {
         Map<String, Collection<String>> result = new HashMap<>(1, 1);
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/StaticReadwriteSplittingDataSourceProcessor.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/StaticReadwriteSplittingDataSourceProcessor.java
index 69142ef13b7..afa336d92fb 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/StaticReadwriteSplittingDataSourceProcessor.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-core/src/main/java/org/apache/shardingsphere/readwritesplitting/type/impl/StaticReadwriteSplittingDataSourceProcessor.java
@@ -17,9 +17,7 @@
 
 package org.apache.shardingsphere.readwritesplitting.type.impl;
 
-import com.google.common.base.Joiner;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.distsql.constant.ExportableConstants;
 import org.apache.shardingsphere.readwritesplitting.type.ReadwriteSplittingDataSourceProcessor;
 
 import java.util.Collection;
@@ -48,14 +46,6 @@ public final class StaticReadwriteSplittingDataSourceProcessor implements Readwr
         return readDataSourceNames;
     }
     
-    @Override
-    public Map<String, String> getDataSources() {
-        Map<String, String> result = new HashMap<>(2, 1);
-        result.put(ExportableConstants.PRIMARY_DATA_SOURCE_NAME, writeDataSourceName);
-        result.put(ExportableConstants.REPLICA_DATA_SOURCE_NAMES, Joiner.on(",").join(readDataSourceNames));
-        return result;
-    }
-    
     @Override
     public Map<String, Collection<String>> getDataSourceMapper(final String name) {
         Map<String, Collection<String>> result = new HashMap<>(1, 1);