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 093fd43f7f Read default prefer serialization from serialization first 
(#11024)
093fd43f7f is described below

commit 093fd43f7fc7fd152fd57a44b4e0d374638a9bd3
Author: Albumen Kevin <[email protected]>
AuthorDate: Sun Dec 11 11:08:58 2022 +0800

    Read default prefer serialization from serialization first (#11024)
---
 .../apache/dubbo/config/AbstractServiceConfig.java |  2 +-
 .../dubbo/config/AbstractServiceConfigTest.java    | 38 ++++++++++++++++++++--
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java 
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
index 843da099e8..d77b2c3e49 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractServiceConfig.java
@@ -168,7 +168,7 @@ public abstract class AbstractServiceConfig extends 
AbstractInterfaceConfig {
         }
 
         if (StringUtils.isBlank(preferSerialization)) {
-            preferSerialization = DEFAULT_PREFER_SERIALIZATION;
+            preferSerialization = serialization != null ? serialization : 
DEFAULT_PREFER_SERIALIZATION;
         }
     }
 
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
index d0c630ee41..2ceeb7d74c 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
@@ -27,6 +27,7 @@ import java.util.Map;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.EXPORTER_LISTENER_KEY;
 import static 
org.apache.dubbo.common.constants.CommonConstants.SERVICE_FILTER_KEY;
+import static 
org.apache.dubbo.common.constants.ProviderConstants.DEFAULT_PREFER_SERIALIZATION;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasEntry;
@@ -34,6 +35,7 @@ import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 class AbstractServiceConfigTest {
     @Test
@@ -178,14 +180,46 @@ class AbstractServiceConfigTest {
     }
 
     @Test
-    public void testPreferSerialization() throws Exception {
+    void testPreferSerialization() throws Exception {
         ServiceConfig serviceConfig = new ServiceConfig();
         serviceConfig.setPreferSerialization("preferSerialization");
         assertThat(serviceConfig.getPreferSerialization(), 
equalTo("preferSerialization"));
     }
 
+    @Test
+    void testPreferSerializationDefault1() throws Exception {
+        ServiceConfig serviceConfig = new ServiceConfig();
+        assertNull(serviceConfig.getPreferSerialization());
+
+        serviceConfig.checkDefault();
+        assertThat(serviceConfig.getPreferSerialization(), 
equalTo(DEFAULT_PREFER_SERIALIZATION));
+
+        serviceConfig = new ServiceConfig();
+        serviceConfig.setSerialization("x-serialization");
+        assertNull(serviceConfig.getPreferSerialization());
+
+        serviceConfig.checkDefault();
+        assertThat(serviceConfig.getPreferSerialization(), 
equalTo("x-serialization"));
+    }
+
+    @Test
+    void testPreferSerializationDefault2() throws Exception {
+        ServiceConfig serviceConfig = new ServiceConfig();
+        assertNull(serviceConfig.getPreferSerialization());
+
+        serviceConfig.refresh();
+        assertThat(serviceConfig.getPreferSerialization(), 
equalTo(DEFAULT_PREFER_SERIALIZATION));
+
+        serviceConfig = new ServiceConfig();
+        serviceConfig.setSerialization("x-serialization");
+        assertNull(serviceConfig.getPreferSerialization());
+
+        serviceConfig.refresh();
+        assertThat(serviceConfig.getPreferSerialization(), 
equalTo("x-serialization"));
+    }
+
 
     private static class ServiceConfig extends AbstractServiceConfig {
 
     }
-}
\ No newline at end of file
+}

Reply via email to