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

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


The following commit(s) were added to refs/heads/master by this push:
     new b0064d7  Make code of process callback of method cleaner in 
DubboBeanDefinitionParser (#4770)
b0064d7 is described below

commit b0064d78a3b929eb3b25e0de9055412cb61f48ce
Author: Taosheng Wei <tswstarpla...@apache.org>
AuthorDate: Sat Aug 10 20:28:03 2019 +0800

    Make code of process callback of method cleaner in 
DubboBeanDefinitionParser (#4770)
---
 .../spring/schema/DubboBeanDefinitionParser.java   | 26 ++++++++--------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
index af42c9a..ee31d18 100644
--- 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
+++ 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
@@ -62,6 +62,10 @@ public class DubboBeanDefinitionParser implements 
BeanDefinitionParser {
 
     private static final Logger logger = 
LoggerFactory.getLogger(DubboBeanDefinitionParser.class);
     private static final Pattern GROUP_AND_VERION = 
Pattern.compile("^[\\-.0-9_a-zA-Z]+(\\:[\\-.0-9_a-zA-Z]+)?$");
+    private static final String ONRETURN = "onreturn";
+    private static final String ONTHROW = "onthrow";
+    private static final String ONINVOKE = "oninvoke";
+    private static final String METHOD = "Method";
     private final Class<?> beanClass;
     private final boolean required;
 
@@ -190,24 +194,12 @@ public class DubboBeanDefinitionParser implements 
BeanDefinitionParser {
                                         value = null;
                                     }
                                     reference = value;
-                                } else if ("onreturn".equals(property)) {
+                                } else if(ONRETURN.equals(property) || 
ONTHROW.equals(property) || ONINVOKE.equals(property)) {
                                     int index = value.lastIndexOf(".");
-                                    String returnRef = value.substring(0, 
index);
-                                    String returnMethod = 
value.substring(index + 1);
-                                    reference = new 
RuntimeBeanReference(returnRef);
-                                    
beanDefinition.getPropertyValues().addPropertyValue("onreturnMethod", 
returnMethod);
-                                } else if ("onthrow".equals(property)) {
-                                    int index = value.lastIndexOf(".");
-                                    String throwRef = value.substring(0, 
index);
-                                    String throwMethod = value.substring(index 
+ 1);
-                                    reference = new 
RuntimeBeanReference(throwRef);
-                                    
beanDefinition.getPropertyValues().addPropertyValue("onthrowMethod", 
throwMethod);
-                                } else if ("oninvoke".equals(property)) {
-                                    int index = value.lastIndexOf(".");
-                                    String invokeRef = value.substring(0, 
index);
-                                    String invokeRefMethod = 
value.substring(index + 1);
-                                    reference = new 
RuntimeBeanReference(invokeRef);
-                                    
beanDefinition.getPropertyValues().addPropertyValue("oninvokeMethod", 
invokeRefMethod);
+                                    String ref = value.substring(0, index);
+                                    String method = value.substring(index + 1);
+                                    reference = new RuntimeBeanReference(ref);
+                                    
beanDefinition.getPropertyValues().addPropertyValue(property + METHOD, method);
                                 } else {
                                     if ("ref".equals(property) && 
parserContext.getRegistry().containsBeanDefinition(value)) {
                                         BeanDefinition refBean = 
parserContext.getRegistry().getBeanDefinition(value);

Reply via email to