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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 4226442  Use existing methods to generate serviceKey for 
SimpleReferenceCache (#9333)
4226442 is described below

commit 42264426e1b12d5cfeb73a5f0f4e93d0c4e82031
Author: 灼华 <[email protected]>
AuthorDate: Mon Dec 6 13:33:44 2021 +0800

    Use existing methods to generate serviceKey for SimpleReferenceCache (#9333)
    
    * Use existing methods to generate serviceKey for SimpleReferenceCache
    
    1.Use existing methods to generate serviceKey for SimpleReferenceCache
    2.add test case for ServiceInstanceHostPortCustomizer
    3.Remove the toString method of AbstractConfig subclass
    
    * Add unit test for ConfigScopeModelInitializer
---
 .../apache/dubbo/common/BaseServiceMetadata.java   |  4 +-
 .../dubbo/common/extension/ExtensionLoader.java    |  2 +-
 .../org/apache/dubbo/config/ProtocolConfig.java    | 41 ------------------
 .../org/apache/dubbo/config/ProviderConfig.java    | 31 --------------
 .../invoker/DelegateProviderMetaDataInvoker.java   |  3 +-
 .../dubbo/config/utils/SimpleReferenceCache.java   | 13 ++----
 .../config/ConfigScopeModelInitializerTest.java    | 49 ++++++++++++++++++++++
 .../ServiceInstanceHostPortCustomizerTest.java     | 22 +++++++---
 8 files changed, 72 insertions(+), 93 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
index a47726a..d09b67e 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
@@ -39,11 +39,11 @@ public class BaseServiceMetadata {
         length += version == null ? 0 : version.length();
         length += 3;
         StringBuilder buf = new StringBuilder(length);
-        if (group != null && group.length() > 0) {
+        if (StringUtils.isNotEmpty(group)) {
             buf.append(group).append('/');
         }
         buf.append(path);
-        if (version != null && version.length() > 0) {
+        if (StringUtils.isNotEmpty(version)) {
             buf.append(':').append(version);
         }
         return buf.toString().intern();
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
index af2d5fd..14c65aa 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
@@ -444,7 +444,7 @@ public class ExtensionLoader<T> {
         }
         for (String[] keyPair : keyPairs) {
             // @Active(value="key1:value1, key2:value2")
-            String key = null;
+            String key;
             String keyValue = null;
             if (keyPair.length > 1) {
                 key = keyPair[0];
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
index d7c5369..799d018 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
@@ -566,45 +566,4 @@ public class ProtocolConfig extends AbstractConfig {
         return StringUtils.isNotEmpty(name);
     }
 
-    @Override
-    public String toString() {
-        final StringBuilder sb = new StringBuilder("ProtocolConfig{");
-        sb.append("name='").append(name).append('\'');
-        sb.append(", host='").append(host).append('\'');
-        sb.append(", port=").append(port);
-        sb.append(", contextpath='").append(contextpath).append('\'');
-        sb.append(", threadpool='").append(threadpool).append('\'');
-        sb.append(", threadname='").append(threadname).append('\'');
-        sb.append(", corethreads=").append(corethreads);
-        sb.append(", threads=").append(threads);
-        sb.append(", iothreads=").append(iothreads);
-        sb.append(", alive=").append(alive);
-        sb.append(", queues=").append(queues);
-        sb.append(", accepts=").append(accepts);
-        sb.append(", codec='").append(codec).append('\'');
-        sb.append(", serialization='").append(serialization).append('\'');
-        sb.append(", charset='").append(charset).append('\'');
-        sb.append(", payload=").append(payload);
-        sb.append(", buffer=").append(buffer);
-        sb.append(", heartbeat=").append(heartbeat);
-        sb.append(", accesslog='").append(accesslog).append('\'');
-        sb.append(", transporter='").append(transporter).append('\'');
-        sb.append(", exchanger='").append(exchanger).append('\'');
-        sb.append(", dispatcher='").append(dispatcher).append('\'');
-        sb.append(", networker='").append(networker).append('\'');
-        sb.append(", server='").append(server).append('\'');
-        sb.append(", client='").append(client).append('\'');
-        sb.append(", telnet='").append(telnet).append('\'');
-        sb.append(", prompt='").append(prompt).append('\'');
-        sb.append(", status='").append(status).append('\'');
-        sb.append(", register=").append(register);
-        sb.append(", keepAlive=").append(keepAlive);
-        sb.append(", optimizer='").append(optimizer).append('\'');
-        sb.append(", extension='").append(extension).append('\'');
-        sb.append(", parameters=").append(parameters);
-        sb.append(", isDefault=").append(isDefault);
-        sb.append(", sslEnabled=").append(sslEnabled);
-        sb.append('}');
-        return sb.toString();
-    }
 }
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/ProviderConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/ProviderConfig.java
index 4311c4f..497e78b 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ProviderConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ProviderConfig.java
@@ -444,35 +444,4 @@ public class ProviderConfig extends AbstractServiceConfig {
         this.exportBackground = exportBackground;
     }
 
-    @Override
-    public String toString() {
-        final StringBuilder sb = new StringBuilder("ProviderConfig{");
-        sb.append("host='").append(host).append('\'');
-        sb.append(", port=").append(port);
-        sb.append(", contextpath='").append(contextpath).append('\'');
-        sb.append(", threadpool='").append(threadpool).append('\'');
-        sb.append(", threadname='").append(threadname).append('\'');
-        sb.append(", threads=").append(threads);
-        sb.append(", iothreads=").append(iothreads);
-        sb.append(", alive=").append(alive);
-        sb.append(", queues=").append(queues);
-        sb.append(", accepts=").append(accepts);
-        sb.append(", codec='").append(codec).append('\'');
-        sb.append(", charset='").append(charset).append('\'');
-        sb.append(", payload=").append(payload);
-        sb.append(", buffer=").append(buffer);
-        sb.append(", transporter='").append(transporter).append('\'');
-        sb.append(", exchanger='").append(exchanger).append('\'');
-        sb.append(", dispatcher='").append(dispatcher).append('\'');
-        sb.append(", networker='").append(networker).append('\'');
-        sb.append(", server='").append(server).append('\'');
-        sb.append(", client='").append(client).append('\'');
-        sb.append(", telnet='").append(telnet).append('\'');
-        sb.append(", prompt='").append(prompt).append('\'');
-        sb.append(", status='").append(status).append('\'');
-        sb.append(", wait=").append(wait);
-        sb.append(", isDefault=").append(isDefault);
-        sb.append('}');
-        return sb.toString();
-    }
 }
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
index da61f50..394063e 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
@@ -24,8 +24,7 @@ import org.apache.dubbo.rpc.Result;
 import org.apache.dubbo.rpc.RpcException;
 
 /**
- *
- * A Invoker wrapper that wrap the invoker and all the metadata (ServiceConfig)
+ * An invoker wrapper that wrap the invoker and all the metadata 
(ServiceConfig)
  */
 public class DelegateProviderMetaDataInvoker<T> implements Invoker {
     protected final Invoker<T> invoker;
diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java
index c35a708..13ee286 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/SimpleReferenceCache.java
@@ -16,6 +16,7 @@
  */
 package org.apache.dubbo.config.utils;
 
+import org.apache.dubbo.common.BaseServiceMetadata;
 import org.apache.dubbo.common.config.ReferenceCache;
 import org.apache.dubbo.common.utils.CollectionUtils;
 import org.apache.dubbo.common.utils.StringUtils;
@@ -55,15 +56,7 @@ public class SimpleReferenceCache implements ReferenceCache {
             throw new IllegalArgumentException("No interface info in 
ReferenceConfig" + referenceConfig);
         }
 
-        StringBuilder ret = new StringBuilder();
-        if (!StringUtils.isBlank(referenceConfig.getGroup())) {
-            ret.append(referenceConfig.getGroup()).append('/');
-        }
-        ret.append(iName);
-        if (!StringUtils.isBlank(referenceConfig.getVersion())) {
-            ret.append(':').append(referenceConfig.getVersion());
-        }
-        return ret.toString();
+        return BaseServiceMetadata.buildServiceKey(iName, 
referenceConfig.getGroup(), referenceConfig.getVersion());
     };
 
     private static final AtomicInteger nameIndex = new AtomicInteger();
@@ -141,7 +134,7 @@ public class SimpleReferenceCache implements ReferenceCache 
{
     @SuppressWarnings("unchecked")
     public <T> T get(String key, Class<T> type) {
         List<ReferenceConfigBase<?>> referenceConfigs = 
referenceKeyMap.get(key);
-        if (referenceConfigs != null && referenceConfigs.size() > 0) {
+        if (CollectionUtils.isNotEmpty(referenceConfigs)) {
             return (T) referenceConfigs.get(0).get();
         }
         return null;
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigScopeModelInitializerTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigScopeModelInitializerTest.java
new file mode 100644
index 0000000..a527097
--- /dev/null
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigScopeModelInitializerTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.dubbo.config;
+
+import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.apache.dubbo.rpc.model.FrameworkModel;
+import org.apache.dubbo.rpc.model.ModuleModel;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class ConfigScopeModelInitializerTest {
+    private FrameworkModel frameworkModel;
+    private ApplicationModel applicationModel;
+    private ModuleModel moduleModel;
+
+    @BeforeEach
+    public void setUp() {
+        frameworkModel = new FrameworkModel();
+        applicationModel = new ApplicationModel(frameworkModel);
+        moduleModel = new ModuleModel(applicationModel);
+    }
+
+    @AfterEach
+    public void reset() {
+        frameworkModel.destroy();
+    }
+
+    @Test
+    public void test(){
+        Assertions.assertNotNull(applicationModel.getDeployer());
+        Assertions.assertNotNull(moduleModel.getDeployer());
+    }
+}
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/ServiceInstanceHostPortCustomizerTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/ServiceInstanceHostPortCustomizerTest.java
index b9bf845..ebad6d9 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/ServiceInstanceHostPortCustomizerTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/ServiceInstanceHostPortCustomizerTest.java
@@ -33,22 +33,22 @@ import org.junit.jupiter.api.Test;
  */
 class ServiceInstanceHostPortCustomizerTest {
     private static ServiceInstanceHostPortCustomizer 
serviceInstanceHostPortCustomizer;
-    
+    private static ApplicationModel applicationModel;
+
     @BeforeAll
     public static void setUp() {
+        applicationModel = new ApplicationModel(new FrameworkModel());
+        applicationModel.getApplicationConfigManager().setApplication(new 
ApplicationConfig("service-preferredProtocol"));
         serviceInstanceHostPortCustomizer = new 
ServiceInstanceHostPortCustomizer();
     }
 
     @AfterAll
     public static void clearUp() {
-        ApplicationModel.reset();
+        applicationModel.destroy();
     }
     
     @Test
     void customizePreferredProtocol() {
-        ApplicationModel applicationModel= new ApplicationModel(new 
FrameworkModel());
-        applicationModel.getApplicationConfigManager().setApplication(new 
ApplicationConfig("service-preferredProtocol"));
-        
         WritableMetadataService writableMetadataService = 
WritableMetadataService.getDefaultExtension(applicationModel);
         
         // Only have tri protocol
@@ -68,10 +68,20 @@ class ServiceInstanceHostPortCustomizerTest {
             
URL.valueOf("dubbo://127.1.2.3:20889/org.apache.dubbo.demo.HelloService")
         );
         
-        // pick the preferredProtocol
+        // pick the preferredProtocol, but not found, so trigger the fallback 
strategy
+        ApplicationConfig applicationConfig = 
applicationModel.getApplicationConfigManager().getApplication().get();
+        applicationConfig.setProtocol("not-exist-protocol");
         ServiceInstance serviceInstance2 = new 
DefaultServiceInstance("with-preferredProtocol", applicationModel);
         serviceInstanceHostPortCustomizer.customize(serviceInstance2);
         Assertions.assertEquals("127.1.2.3", serviceInstance2.getHost());
         Assertions.assertEquals(20889, serviceInstance2.getPort());
+
+        // pick the preferredProtocol(tri)
+        applicationConfig = 
applicationModel.getApplicationConfigManager().getApplication().get();
+        applicationConfig.setProtocol("tri");
+        ServiceInstance serviceInstance3 = new 
DefaultServiceInstance("with-preferredProtocol", applicationModel);
+        serviceInstanceHostPortCustomizer.customize(serviceInstance3);
+        Assertions.assertEquals("127.1.1.1", serviceInstance3.getHost());
+        Assertions.assertEquals(50052, serviceInstance3.getPort());
     }
 }

Reply via email to