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

commit 4451bfa29c878747239775289514ccf664a4595e
Author: Albumen Kevin <[email protected]>
AuthorDate: Tue Nov 22 16:08:11 2022 +0800

    Fix conflict of ConfigurableMetadataServiceExporter
---
 .../bootstrap/builders/InternalServiceConfigBuilder.java    | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/builders/InternalServiceConfigBuilder.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/builders/InternalServiceConfigBuilder.java
index da9bcbc4d4..a2ea837736 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/builders/InternalServiceConfigBuilder.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/builders/InternalServiceConfigBuilder.java
@@ -38,7 +38,9 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.APPLICATION_PROTOCOL_KEY;
@@ -52,6 +54,7 @@ import static 
org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;
 public class InternalServiceConfigBuilder<T> {
 
     private final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(getClass());
+    private static final Set<String> UNACCEPTABLE_PROTOCOL = Stream.of("rest", 
"grpc").collect(Collectors.toSet());
 
     private final ApplicationModel applicationModel;
     private String  protocol;
@@ -115,6 +118,7 @@ public class InternalServiceConfigBuilder<T> {
             .flatMap(Collection::stream)
             .map(ConsumerConfig::getProtocol)
             .filter(StringUtils::isNotEmpty)
+            .filter(p -> !UNACCEPTABLE_PROTOCOL.contains(p))
             .findFirst()
             .orElse("");
         // <dubbo:provider/>
@@ -138,6 +142,7 @@ public class InternalServiceConfigBuilder<T> {
                     }
                 })
                 .filter(StringUtils::isNotEmpty)
+                .filter(p -> !UNACCEPTABLE_PROTOCOL.contains(p))
                 .findFirst()
                 .orElse("");
         }
@@ -146,7 +151,11 @@ public class InternalServiceConfigBuilder<T> {
             Collection<ProtocolConfig> protocols = 
applicationModel.getApplicationConfigManager().getProtocols();
             if (CollectionUtils.isNotEmpty(protocols)) {
                 protocol = protocols.stream()
-                    
.map(ProtocolConfig::getName).filter(StringUtils::isNotEmpty).findFirst().orElse("");
+                    .map(ProtocolConfig::getName)
+                    .filter(StringUtils::isNotEmpty)
+                    .filter(p -> !UNACCEPTABLE_PROTOCOL.contains(p))
+                    .findFirst()
+                    .orElse("");
             }
         }
         // <dubbo:application/>
@@ -159,7 +168,7 @@ public class InternalServiceConfigBuilder<T> {
                 }
             }
         }
-        return StringUtils.isNotEmpty(protocol) ? protocol : DUBBO_PROTOCOL;
+        return StringUtils.isNotEmpty(protocol) && 
!UNACCEPTABLE_PROTOCOL.contains(protocol) ? protocol : DUBBO_PROTOCOL;
     }
 
     public InternalServiceConfigBuilder<T> protocol(String protocol) {

Reply via email to