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

zhonghongsheng 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 4ea86438a0c Add InstanceMetaDataBuilderFactory.create (#18785)
4ea86438a0c is described below

commit 4ea86438a0c3a642ef45ac99de2cec1be22b0f40
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 2 16:40:03 2022 +0800

    Add InstanceMetaDataBuilderFactory.create (#18785)
---
 .../metadata/InstanceMetaDataBuilderFactory.java     | 20 +++++++++++++++++---
 .../jdbc/JDBCInstanceMetaDataBuilderTest.java        |  2 +-
 .../proxy/ProxyInstanceMetaDataBuilderTest.java      |  2 +-
 .../core/datasource/ShardingSphereDataSource.java    |  2 +-
 .../compute/service/ComputeNodeStatusService.java    | 12 +++---------
 .../watcher/ComputeNodeStateChangedWatcher.java      |  9 ++-------
 .../proxy/initializer/BootstrapInitializer.java      |  2 +-
 7 files changed, 26 insertions(+), 23 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/instance/metadata/InstanceMetaDataBuilderFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/instance/metadata/InstanceMetaDataBuilderFactory.java
index 0df724069f5..b86ce84da9b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/instance/metadata/InstanceMetaDataBuilderFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/instance/metadata/InstanceMetaDataBuilderFactory.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.infra.instance.metadata;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.infra.instance.metadata.jdbc.JDBCInstanceMetaData;
+import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
 import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.spi.type.typed.TypedSPIRegistry;
 
@@ -33,13 +35,25 @@ public final class InstanceMetaDataBuilderFactory {
     }
     
     /**
-     * Create instance of instance meta data.
+     * Create instance meta data.
      *
      * @param type type
      * @param port port 
-     * @return created instance of instance meta data
+     * @return created instance meta data
      */
-    public static InstanceMetaData newInstance(final String type, final int 
port) {
+    public static InstanceMetaData create(final String type, final int port) {
         return 
TypedSPIRegistry.getRegisteredService(InstanceMetaDataBuilder.class, 
type).build(port);
     }
+    
+    /**
+     * Create instance meta data.
+     * 
+     * @param instanceId instance ID
+     * @param instanceType instance type 
+     * @param attributes attributes
+     * @return created instance meta data
+     */
+    public static InstanceMetaData create(final String instanceId, final 
InstanceType instanceType, final String attributes) {
+        return InstanceType.JDBC == instanceType ? new 
JDBCInstanceMetaData(instanceId) : new ProxyInstanceMetaData(instanceId, 
attributes);
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/jdbc/JDBCInstanceMetaDataBuilderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/jdbc/JDBCInstanceMetaDataBuilderTest.java
index b378d8e9d9a..49972ac4851 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/jdbc/JDBCInstanceMetaDataBuilderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/jdbc/JDBCInstanceMetaDataBuilderTest.java
@@ -30,7 +30,7 @@ public final class JDBCInstanceMetaDataBuilderTest {
     
     @Test
     public void assertNewInstance() {
-        InstanceMetaData actual = 
InstanceMetaDataBuilderFactory.newInstance("JDBC", -1);
+        InstanceMetaData actual = 
InstanceMetaDataBuilderFactory.create("JDBC", -1);
         assertNotNull(actual.getInstanceId());
         assertNotNull(actual.getIp());
         assertThat(actual.getAttributes(), is(""));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/proxy/ProxyInstanceMetaDataBuilderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/proxy/ProxyInstanceMetaDataBuilderTest.java
index d6070a09d42..efbdabf6641 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/proxy/ProxyInstanceMetaDataBuilderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/instance/metadata/proxy/ProxyInstanceMetaDataBuilderTest.java
@@ -30,7 +30,7 @@ public final class ProxyInstanceMetaDataBuilderTest {
     
     @Test
     public void assertNewInstance() {
-        ProxyInstanceMetaData actual = (ProxyInstanceMetaData) 
InstanceMetaDataBuilderFactory.newInstance("Proxy", 3307);
+        ProxyInstanceMetaData actual = (ProxyInstanceMetaData) 
InstanceMetaDataBuilderFactory.create("Proxy", 3307);
         assertNotNull(actual.getInstanceId());
         assertNotNull(actual.getIp());
         assertThat(actual.getPort(), is(3307));
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 097c13b82c5..39f71dc5522 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -74,7 +74,7 @@ public final class ShardingSphereDataSource extends 
AbstractDataSourceAdapter im
     
     private ContextManager createContextManager(final String databaseName, 
final ModeConfiguration modeConfig, final Map<String, DataSource> dataSourceMap,
                                                 final 
Collection<RuleConfiguration> ruleConfigs, final Properties props) throws 
SQLException {
-        InstanceMetaData instanceMetaData = 
InstanceMetaDataBuilderFactory.newInstance("JDBC", -1);
+        InstanceMetaData instanceMetaData = 
InstanceMetaDataBuilderFactory.create("JDBC", -1);
         Collection<RuleConfiguration> globalRuleConfigs = 
ruleConfigs.stream().filter(each -> each instanceof 
GlobalRuleConfiguration).collect(Collectors.toList());
         ContextManagerBuilderParameter parameter = new 
ContextManagerBuilderParameter(modeConfig, 
Collections.singletonMap(databaseName,
                 new DataSourceProvidedDatabaseConfiguration(dataSourceMap, 
ruleConfigs)), globalRuleConfigs, props, Collections.emptyList(), 
instanceMetaData);
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/service/ComputeNodeStatusService.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/service/ComputeNodeStatusService.java
index 853f4deb627..e09473f9a20 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/service/ComputeNodeStatusService.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/service/ComputeNodeStatusService.java
@@ -22,9 +22,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
+import 
org.apache.shardingsphere.infra.instance.metadata.InstanceMetaDataBuilderFactory;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
-import 
org.apache.shardingsphere.infra.instance.metadata.jdbc.JDBCInstanceMetaData;
-import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
 import org.apache.shardingsphere.mode.metadata.persist.node.ComputeNode;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
@@ -130,13 +129,8 @@ public final class ComputeNodeStatusService {
     
     private Collection<ComputeNodeInstance> loadComputeNodeInstances(final 
InstanceType instanceType) {
         Collection<String> onlineComputeNodes = 
repository.getChildrenKeys(ComputeNode.getOnlineNodePath(instanceType));
-        return onlineComputeNodes.stream().map(each -> 
loadComputeNodeInstance(createInstanceMetaData(each, 
instanceType))).collect(Collectors.toList());
-    }
-    
-    private InstanceMetaData createInstanceMetaData(final String instanceId, 
final InstanceType type) {
-        return InstanceType.JDBC == type
-                ? new JDBCInstanceMetaData(instanceId)
-                : new ProxyInstanceMetaData(instanceId, 
repository.get(ComputeNode.getOnlineInstanceNodePath(instanceId, type)));
+        return onlineComputeNodes.stream().map(each -> loadComputeNodeInstance(
+                InstanceMetaDataBuilderFactory.create(each, instanceType, 
repository.get(ComputeNode.getOnlineInstanceNodePath(each, 
instanceType))))).collect(Collectors.toList());
     }
     
     /**
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChan
 [...]
index 6e43dea7b44..a83ad72c400 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/status/compute/watcher/ComputeNodeStateChangedWatcher.java
@@ -19,9 +19,8 @@ package 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.stat
 
 import com.google.common.base.Strings;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
+import 
org.apache.shardingsphere.infra.instance.metadata.InstanceMetaDataBuilderFactory;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
-import 
org.apache.shardingsphere.infra.instance.metadata.jdbc.JDBCInstanceMetaData;
-import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceEvent;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.GovernanceWatcher;
@@ -103,7 +102,7 @@ public final class ComputeNodeStateChangedWatcher 
implements GovernanceWatcher<G
     private Optional<GovernanceEvent> createInstanceEvent(final 
DataChangedEvent event) {
         Matcher matcher = matchInstanceOnlinePath(event.getKey());
         if (matcher.find()) {
-            InstanceMetaData instanceMetaData = 
createInstanceMetaData(matcher.group(2), 
InstanceType.valueOf(matcher.group(1).toUpperCase()), event.getValue());
+            InstanceMetaData instanceMetaData = 
InstanceMetaDataBuilderFactory.create(matcher.group(2), 
InstanceType.valueOf(matcher.group(1).toUpperCase()), event.getValue());
             if (Type.ADDED == event.getType()) {
                 return Optional.of(new InstanceOnlineEvent(instanceMetaData));
             }
@@ -117,8 +116,4 @@ public final class ComputeNodeStateChangedWatcher 
implements GovernanceWatcher<G
     private Matcher matchInstanceOnlinePath(final String onlineInstancePath) {
         return Pattern.compile(ComputeNode.getOnlineInstanceNodePath() + 
"/[\\S]+/([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(onlineInstancePath);
     }
-    
-    private InstanceMetaData createInstanceMetaData(final String instanceId, 
final InstanceType instanceType, final String attributes) {
-        return InstanceType.JDBC == instanceType ? new 
JDBCInstanceMetaData(instanceId) : new ProxyInstanceMetaData(instanceId, 
attributes);
-    }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
index 0e182106c79..5c991b29a8f 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
@@ -60,7 +60,7 @@ public final class BootstrapInitializer {
     
     private ContextManager createContextManager(final YamlProxyConfiguration 
yamlConfig, final ModeConfiguration modeConfig, final int port) throws 
SQLException {
         ProxyConfiguration proxyConfig = new 
YamlProxyConfigurationSwapper().swap(yamlConfig);
-        InstanceMetaData instanceMetaData = 
InstanceMetaDataBuilderFactory.newInstance("Proxy", port);
+        InstanceMetaData instanceMetaData = 
InstanceMetaDataBuilderFactory.create("Proxy", port);
         ContextManagerBuilderParameter parameter = new 
ContextManagerBuilderParameter(modeConfig, 
proxyConfig.getDatabaseConfigurations(),
                 proxyConfig.getGlobalConfiguration().getRules(), 
proxyConfig.getGlobalConfiguration().getProperties(), 
proxyConfig.getGlobalConfiguration().getLabels(), instanceMetaData);
         return 
ContextManagerBuilderFactory.getInstance(modeConfig).build(parameter);

Reply via email to