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

albumenj 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 31db4ac  ServiceAnnotationBeanPostProcessor should be changed to 
ServiceClassPostProcessor (#7667) (#7681)
31db4ac is described below

commit 31db4acfd90dd4407e23b55b89a84abdb6b21faa
Author: passer <[email protected]>
AuthorDate: Tue May 11 10:20:23 2021 +0800

    ServiceAnnotationBeanPostProcessor should be changed to 
ServiceClassPostProcessor (#7667) (#7681)
    
    * ServiceAnnotationBeanPostProcessor should be changed to 
ServiceClassPostProcessor (#7667)
    
    * Avoid creating duplicate ServiceClassPostProcessor beans (#7667)
---
 .../annotation/ReferenceAnnotationBeanPostProcessor.java     |  2 +-
 .../context/annotation/DubboComponentScanRegistrar.java      | 12 ++++++------
 .../spring/boot/autoconfigure/DubboAutoConfiguration.java    |  2 ++
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
index 9a9dfac..bfe0dfa 100644
--- 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
+++ 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
@@ -184,7 +184,7 @@ public class ReferenceAnnotationBeanPostProcessor extends 
AbstractAnnotationBean
         if (localServiceBean) {  // If @Service bean is local one
             /**
              * Get  the @Service's BeanDefinition from {@link BeanFactory}
-             * Refer to {@link 
ServiceAnnotationBeanPostProcessor#buildServiceBeanDefinition}
+             * Refer to {@link 
ServiceClassPostProcessor#buildServiceBeanDefinition}
              */
             AbstractBeanDefinition beanDefinition = (AbstractBeanDefinition) 
beanFactory.getBeanDefinition(referencedBeanName);
             RuntimeBeanReference runtimeBeanReference = (RuntimeBeanReference) 
beanDefinition.getPropertyValues().get("ref");
diff --git 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
index 4a711ba..c84b9c3 100644
--- 
a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
+++ 
b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java
@@ -18,8 +18,8 @@ package org.apache.dubbo.config.spring.context.annotation;
 
 import org.apache.dubbo.config.annotation.Service;
 import 
org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-import 
org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
 
+import 
org.apache.dubbo.config.spring.beans.factory.annotation.ServiceClassPostProcessor;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.support.AbstractBeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -44,7 +44,7 @@ import static 
org.springframework.beans.factory.support.BeanDefinitionBuilder.ro
  * @see Service
  * @see DubboComponentScan
  * @see ImportBeanDefinitionRegistrar
- * @see ServiceAnnotationBeanPostProcessor
+ * @see ServiceClassPostProcessor
  * @see ReferenceAnnotationBeanPostProcessor
  * @since 2.5.7
  */
@@ -55,22 +55,22 @@ public class DubboComponentScanRegistrar implements 
ImportBeanDefinitionRegistra
 
         Set<String> packagesToScan = getPackagesToScan(importingClassMetadata);
 
-        registerServiceAnnotationBeanPostProcessor(packagesToScan, registry);
+        registerServiceClassPostProcessor(packagesToScan, registry);
 
         // @since 2.7.6 Register the common beans
         registerCommonBeans(registry);
     }
 
     /**
-     * Registers {@link ServiceAnnotationBeanPostProcessor}
+     * Registers {@link ServiceClassPostProcessor}
      *
      * @param packagesToScan packages to scan without resolving placeholders
      * @param registry       {@link BeanDefinitionRegistry}
      * @since 2.5.8
      */
-    private void registerServiceAnnotationBeanPostProcessor(Set<String> 
packagesToScan, BeanDefinitionRegistry registry) {
+    private void registerServiceClassPostProcessor(Set<String> packagesToScan, 
BeanDefinitionRegistry registry) {
 
-        BeanDefinitionBuilder builder = 
rootBeanDefinition(ServiceAnnotationBeanPostProcessor.class);
+        BeanDefinitionBuilder builder = 
rootBeanDefinition(ServiceClassPostProcessor.class);
         builder.addConstructorArgValue(packagesToScan);
         builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
         AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();
diff --git 
a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
 
b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
index ba668f8..97c4c41 100644
--- 
a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
+++ 
b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
@@ -31,6 +31,7 @@ import 
org.springframework.beans.factory.support.BeanDefinitionRegistry;
 import 
org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ApplicationContext;
@@ -70,6 +71,7 @@ public class DubboAutoConfiguration implements 
ApplicationContextAware, BeanDefi
      */
     @ConditionalOnProperty(prefix = DUBBO_SCAN_PREFIX, name = 
BASE_PACKAGES_PROPERTY_NAME)
     @ConditionalOnBean(name = BASE_PACKAGES_BEAN_NAME)
+    @ConditionalOnMissingBean
     @Bean
     public ServiceClassPostProcessor 
serviceClassPostProcessor(@Qualifier(BASE_PACKAGES_BEAN_NAME)
                                                                        
Set<String> packagesToScan) {

Reply via email to