This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new 93d146924a feat: generic timeout (#11677)
93d146924a is described below
commit 93d146924aed71886bae14845c8ee280bd24aa04
Author: aamingaa <[email protected]>
AuthorDate: Tue Apr 11 14:20:48 2023 +0800
feat: generic timeout (#11677)
* feat: generic timeout
* feat: generic timeout
* feat: fix ut
* feat: change to default
* feat: test verify method
* feat: test verify method
* Update
dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
change to assertFalse
Co-authored-by: Albumen Kevin <[email protected]>
* Update
dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
assertFalse
Co-authored-by: Albumen Kevin <[email protected]>
* feat: fix ut。。。
* feat: fix ut。。。
* feat: testVerifyMethod
* feat: testVerifyMethod
* feat: fix msg
---------
Co-authored-by: Albumen Kevin <[email protected]>
---
.../dubbo/config/AbstractInterfaceConfig.java | 14 +++++++++++--
.../dubbo/config/AbstractReferenceConfig.java | 5 +++++
.../dubbo/config/AbstractInterfaceConfigTest.java | 24 ++++++++++++++++++++--
.../org/apache/dubbo/config/MethodConfigTest.java | 2 +-
4 files changed, 40 insertions(+), 5 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
index 6fd828d998..aae01b667d 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java
@@ -374,7 +374,7 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
}
- private boolean verifyMethodConfig(MethodConfig methodConfig, Class<?>
interfaceClass, boolean ignoreInvalidMethodConfig) {
+ protected boolean verifyMethodConfig(MethodConfig methodConfig, Class<?>
interfaceClass, boolean ignoreInvalidMethodConfig) {
String methodName = methodConfig.getName();
if (StringUtils.isEmpty(methodName)) {
String msg = "<dubbo:method> name attribute is required! Please
check: " +
@@ -396,7 +396,12 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
logger.warn(CONFIG_NO_METHOD_FOUND, "", "", msg);
return false;
} else {
- throw new IllegalStateException(msg);
+ if (!isNeedCheckMethod()) {
+ msg = "Generic call: " + msg;
+ logger.warn(CONFIG_NO_METHOD_FOUND, "", "", msg);
+ } else {
+ throw new IllegalStateException(msg);
+ }
}
}
return true;
@@ -413,6 +418,11 @@ public abstract class AbstractInterfaceConfig extends
AbstractMethodConfig {
return null;
}
+ @Transient
+ protected boolean isNeedCheckMethod() {
+ return true;
+ }
+
private boolean hasArgumentConfigProps(Map<String, String>
configProperties, String methodName, int argIndex) {
String argPrefix = methodName + "." + argIndex + ".";
return ConfigurationUtils.hasSubProperties(configProperties,
argPrefix);
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
index 6ac7a43948..e659b10b6f 100644
---
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
+++
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
@@ -183,6 +183,11 @@ public abstract class AbstractReferenceConfig extends
AbstractInterfaceConfig {
}
}
+ @Override
+ protected boolean isNeedCheckMethod() {
+ return StringUtils.isEmpty(getGeneric());
+ }
+
/**
* @return
* @deprecated instead, use the parameter <b>scope</> to judge if it's in
jvm, scope=local
diff --git
a/dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
b/dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
index a09ea89e21..44a330aad1 100644
---
a/dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
+++
b/dubbo-common/src/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.config;
import org.apache.dubbo.common.constants.CommonConstants;
-
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -236,7 +235,28 @@ class AbstractInterfaceConfigTest {
Assertions.assertEquals("scope", interfaceConfig.getScope());
}
+ @Test
+ void testVerifyMethod() {
+ InterfaceConfig2 interfaceConfig2 = new InterfaceConfig2();
+ MethodConfig methodConfig = new MethodConfig();
+ methodConfig.setTimeout(5000);
+ methodConfig.setName("sayHello");
+ Class<?> clazz = Greeting.class;
+ boolean verifyResult =
interfaceConfig2.verifyMethodConfig(methodConfig, clazz, false);
+ Assertions.assertTrue(verifyResult);
+
+ boolean verifyResult2 =
interfaceConfig2.verifyMethodConfig(methodConfig, clazz, true);
+ Assertions.assertFalse(verifyResult2);
+ }
+
+ public static class InterfaceConfig2 extends AbstractInterfaceConfig {
+ @Override
+ protected boolean isNeedCheckMethod() {
+ return false;
+ }
+ }
+
public static class InterfaceConfig extends AbstractInterfaceConfig {
}
-}
\ No newline at end of file
+}
diff --git
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
index 7b137c5762..6588e58d58 100644
---
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
+++
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
@@ -476,4 +476,4 @@ class MethodConfigTest {
Map<String, String> metaData = methodConfig.getMetaData();
Assertions.assertEquals(0, metaData.size(), "Expect empty metadata but
found: "+metaData);
}
-}
\ No newline at end of file
+}