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 7c72487c5b fix #9910, metadata-report support a separate configuration
username and password (#9912)
7c72487c5b is described below
commit 7c72487c5bd986b290ff6c5bff05843b6f490674
Author: Wang Chengming <[email protected]>
AuthorDate: Thu Apr 14 11:37:56 2022 +0800
fix #9910, metadata-report support a separate configuration username and
password (#9912)
Co-authored-by: 呈铭 <[email protected]>
---
.../org/apache/dubbo/common/constants/CommonConstants.java | 2 ++
.../java/org/apache/dubbo/config/MetadataReportConfig.java | 14 ++++++++------
.../dubbo/metadata/report/MetadataReportInstanceTest.java | 11 ++++++++---
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
index ffbd77ced9..6e60942c52 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java
@@ -533,4 +533,6 @@ public interface CommonConstants {
String CLEAR_FUTURE_AFTER_GET = "future.clear.once";
String NATIVE_STUB = "nativestub";
+
+ String METADATA = "metadata";
}
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
index 2b63748f86..ac0506554e 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/config/MetadataReportConfig.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.Map;
import static
org.apache.dubbo.common.constants.CommonConstants.CYCLE_REPORT_KEY;
+import static org.apache.dubbo.common.constants.CommonConstants.METADATA;
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
import static
org.apache.dubbo.common.constants.CommonConstants.REPORT_DEFINITION_KEY;
import static
org.apache.dubbo.common.constants.CommonConstants.REPORT_METADATA_KEY;
@@ -143,7 +144,7 @@ public class MetadataReportConfig extends AbstractConfig {
if (isEmpty(address)) {
throw new IllegalArgumentException("The address of metadata report
is invalid.");
}
- Map<String, String> map = new HashMap<String, String>();
+ Map<String, String> map = new HashMap<>();
URL url = URL.valueOf(address, getScopeModel());
// Issue : https://github.com/apache/dubbo/issues/6491
// Append the parameters from address
@@ -153,10 +154,10 @@ public class MetadataReportConfig extends AbstractConfig {
// Normalize the parameters
map.putAll(convert(map, null));
// put the protocol of URL as the "metadata"
- map.put("metadata", isEmpty(url.getProtocol()) ? map.get(PROTOCOL_KEY)
: url.getProtocol());
- return new ServiceConfigURL("metadata", url.getUsername(),
url.getPassword(), url.getHost(),
- url.getPort(), url.getPath(),
map).setScopeModel(getScopeModel());
-
+ map.put(METADATA, isEmpty(url.getProtocol()) ? map.get(PROTOCOL_KEY) :
url.getProtocol());
+ return new ServiceConfigURL(METADATA,
StringUtils.isBlank(url.getUsername()) ? this.getUsername() : url.getUsername(),
+ StringUtils.isBlank(url.getPassword()) ? this.getPassword() :
url.getPassword(), url.getHost(),
+ url.getPort(), url.getPath(), map).setScopeModel(getScopeModel());
}
public String getProtocol() {
@@ -191,7 +192,8 @@ public class MetadataReportConfig extends AbstractConfig {
updateParameters(params);
} catch (Exception ignored) {
}
- } }
+ }
+ }
public Integer getPort() {
return port;
diff --git
a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/MetadataReportInstanceTest.java
b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/MetadataReportInstanceTest.java
index ac329eec43..703b3d9955 100644
---
a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/MetadataReportInstanceTest.java
+++
b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/MetadataReportInstanceTest.java
@@ -41,7 +41,7 @@ class MetadataReportInstanceTest {
private MetadataReportConfig metadataReportConfig;
private ConfigManager configManager;
- private String registryId = "9103";
+ private final String registryId = "9103";
@BeforeEach
public void setUp() {
@@ -52,6 +52,9 @@ class MetadataReportInstanceTest {
URL url =
URL.valueOf("metadata://127.0.0.1:20880/TestService?version=1.0.0&metadata=JTest");
metadataReportConfig = mock(MetadataReportConfig.class);
+ when(metadataReportConfig.getUsername()).thenReturn("username");
+ when(metadataReportConfig.getPassword()).thenReturn("password");
+
when(metadataReportConfig.getApplicationModel()).thenReturn(applicationModel);
when(metadataReportConfig.toUrl()).thenReturn(url);
when(metadataReportConfig.getScopeModel()).thenReturn(applicationModel);
@@ -65,8 +68,7 @@ class MetadataReportInstanceTest {
@Test
public void test() {
-
Assertions.assertNull(metadataReportInstance.getMetadataReport(registryId),
- "the metadata report was not initialized.");
+
Assertions.assertNull(metadataReportInstance.getMetadataReport(registryId),
"the metadata report was not initialized.");
assertThat(metadataReportInstance.getMetadataReports(true),
Matchers.anEmptyMap());
metadataReportInstance.init(Arrays.asList(metadataReportConfig));
@@ -79,6 +81,9 @@ class MetadataReportInstanceTest {
Map<String, MetadataReport> metadataReports =
metadataReportInstance.getMetadataReports(true);
Assertions.assertEquals(metadataReports.size(), 1);
Assertions.assertEquals(metadataReports.get(registryId),
metadataReport);
+
+ Assertions.assertEquals(metadataReportConfig.getUsername(),
"username");
+ Assertions.assertEquals(metadataReportConfig.getPassword(),
"password");
}
}