From db242c8e8ff7e1779f3f76d9f9f05a7f8c8cadb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=87=E6=BA=90?= Date: Wed, 7 Dec 2022 11:53:21 +0800 Subject: [PATCH 1/9] feat: upgrade version to 5.9.1 snapshot --- all/pom.xml | 2 +- bom/pom.xml | 2 +- .../src/main/java/com/alipay/sofa/rpc/common/Version.java | 6 +++--- pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/all/pom.xml b/all/pom.xml index 06a84ec47..639b00fdb 100644 --- a/all/pom.xml +++ b/all/pom.xml @@ -6,7 +6,7 @@ com.alipay.sofa sofa-rpc-all - 5.9.0 + 5.9.1-SNAPSHOT ${project.groupId}:${project.artifactId} diff --git a/bom/pom.xml b/bom/pom.xml index c5b35941f..3cf503fef 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -10,7 +10,7 @@ pom - 5.9.0 + 5.9.1-SNAPSHOT 3.20.0-GA 1.9.8 4.1.77.Final diff --git a/core/api/src/main/java/com/alipay/sofa/rpc/common/Version.java b/core/api/src/main/java/com/alipay/sofa/rpc/common/Version.java index eb19bb35a..e29efb4b4 100644 --- a/core/api/src/main/java/com/alipay/sofa/rpc/common/Version.java +++ b/core/api/src/main/java/com/alipay/sofa/rpc/common/Version.java @@ -27,16 +27,16 @@ public final class Version { /** * 当前RPC版本,例如:5.6.7 */ - public static final String VERSION = "5.9.0"; + public static final String VERSION = "5.9.1"; /** * 当前RPC版本,例如: 5.6.7 对应 50607 */ - public static final int RPC_VERSION = 50900; + public static final int RPC_VERSION = 50901; /** * 当前Build版本,每次发布修改 */ - public static final String BUILD_VERSION = "5.9.0_20221109211246"; + public static final String BUILD_VERSION = "5.9.1_20221207115251"; } diff --git a/pom.xml b/pom.xml index dd239929c..ca2d55c74 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ - 5.9.0 + 5.9.1-SNAPSHOT 1.33 true true From 9575bee976090845800ec477ccbbf0831ed59e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=87=E6=BA=90?= Date: Mon, 26 Dec 2022 11:26:03 +0800 Subject: [PATCH 2/9] feat: use extension on serializer register --- .../codec/bolt/BoltSerializationRegister.java | 31 ++++++++ .../bolt/SofaRpcSerializationRegister.java | 12 +++- .../rpc/server/bolt/BoltServerProcessor.java | 5 ++ .../transport/bolt/BoltClientTransport.java | 4 ++ ...a.rpc.codec.bolt.BoltSerializationRegister | 1 + .../codec/bolt/BoltSerializationInitTest.java | 52 ++++++++++++++ .../TestSofaRpcSerializationRegister.java | 71 +++++++++++++++++++ ...a.rpc.codec.bolt.BoltSerializationRegister | 3 + 8 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java create mode 100644 remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister create mode 100644 remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java create mode 100644 remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java create mode 100644 remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java new file mode 100644 index 000000000..030b6e71f --- /dev/null +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alipay.sofa.rpc.codec.bolt; + +import com.alipay.sofa.rpc.ext.Extensible; + +/** + * + * @author junyuan + * @version BoltSerializationRegister.java, v 0.1 2022年12月23日 15:01 junyuan Exp $ + */ +@Extensible +public abstract class BoltSerializationRegister { + + public abstract void doRegisterCustomSerializer(); + +} \ No newline at end of file diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java index ee27a3300..e3a9f17ec 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java @@ -19,6 +19,7 @@ import com.alipay.remoting.CustomSerializerManager; import com.alipay.sofa.rpc.core.request.SofaRequest; import com.alipay.sofa.rpc.core.response.SofaResponse; +import com.alipay.sofa.rpc.ext.Extension; import java.util.concurrent.atomic.AtomicBoolean; @@ -27,13 +28,22 @@ * * @author GengZhang */ -public class SofaRpcSerializationRegister { +@Extension(value = "sofaRpcSerializationRegister") +public class SofaRpcSerializationRegister extends BoltSerializationRegister { private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); private static volatile AtomicBoolean registered = new AtomicBoolean(false); + @Deprecated public static void registerCustomSerializer() { + // if (registered.compareAndSet(false, true)) { + // innerRegisterCustomSerializer(); + // } + } + + @Override + public void doRegisterCustomSerializer() { if (registered.compareAndSet(false, true)) { innerRegisterCustomSerializer(); } diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java index 763a0673c..d962c7c14 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java @@ -21,6 +21,7 @@ import com.alipay.remoting.InvokeContext; import com.alipay.remoting.rpc.protocol.AsyncUserProcessor; import com.alipay.remoting.rpc.protocol.UserProcessor; +import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister; import com.alipay.sofa.rpc.common.RemotingConstants; import com.alipay.sofa.rpc.common.RpcConstants; @@ -40,6 +41,7 @@ import com.alipay.sofa.rpc.event.ServerEndHandleEvent; import com.alipay.sofa.rpc.event.ServerReceiveEvent; import com.alipay.sofa.rpc.event.ServerSendEvent; +import com.alipay.sofa.rpc.ext.ExtensionLoaderFactory; import com.alipay.sofa.rpc.invoke.Invoker; import com.alipay.sofa.rpc.log.LogCodes; import com.alipay.sofa.rpc.log.Logger; @@ -70,6 +72,9 @@ public class BoltServerProcessor extends AsyncUserProcessor { */ static { SofaRpcSerializationRegister.registerCustomSerializer(); + + ExtensionLoaderFactory.getExtensionLoader(BoltSerializationRegister.class) + .getExtension("sofaRpcSerializationRegister").doRegisterCustomSerializer(); } /** diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java index 09a6d4cd7..3b2af2be2 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java @@ -30,6 +30,7 @@ import com.alipay.remoting.rpc.exception.InvokeServerException; import com.alipay.remoting.rpc.exception.InvokeTimeoutException; import com.alipay.sofa.rpc.client.ProviderInfo; +import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister; import com.alipay.sofa.rpc.common.RemotingConstants; import com.alipay.sofa.rpc.common.RpcConfigs; @@ -50,6 +51,7 @@ import com.alipay.sofa.rpc.event.ClientSyncReceiveEvent; import com.alipay.sofa.rpc.event.EventBus; import com.alipay.sofa.rpc.ext.Extension; +import com.alipay.sofa.rpc.ext.ExtensionLoaderFactory; import com.alipay.sofa.rpc.log.LogCodes; import com.alipay.sofa.rpc.log.Logger; import com.alipay.sofa.rpc.log.LoggerFactory; @@ -97,6 +99,8 @@ public class BoltClientTransport extends ClientTransport { static { RPC_CLIENT.init(); SofaRpcSerializationRegister.registerCustomSerializer(); + ExtensionLoaderFactory.getExtensionLoader(BoltSerializationRegister.class) + .getExtension("sofaRpcSerializationRegister").doRegisterCustomSerializer(); } /** diff --git a/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister b/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister new file mode 100644 index 000000000..3b2559cc2 --- /dev/null +++ b/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister @@ -0,0 +1 @@ +sofaRpcSerializationRegister=com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister \ No newline at end of file diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java new file mode 100644 index 000000000..fc20bf244 --- /dev/null +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alipay.sofa.rpc.codec.bolt; + +import com.alipay.remoting.CustomSerializerManager; +import com.alipay.sofa.rpc.core.response.SofaResponse; +import com.alipay.sofa.rpc.ext.ExtensionLoaderFactory; +import com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister; +import org.junit.After; +import org.junit.Assert; +import org.junit.Test; + +/** + * + * @author junyuan + * @version BoltSerializationInitTest.java, v 0.1 2022年12月23日 16:26 junyuan Exp $ + */ +public class BoltSerializationInitTest { + + @Test + public void SerializerRegisterOverrideTest() { + BoltSerializationRegister boltSerializationRegister = ExtensionLoaderFactory.getExtensionLoader( + BoltSerializationRegister.class).getExtension("sofaRpcSerializationRegister"); + boltSerializationRegister.doRegisterCustomSerializer(); + + Assert.assertNull("testRegister未能覆盖原版register", + CustomSerializerManager.getCustomSerializer(SofaResponse.class.getName())); + + Assert.assertNotNull("testRegister未能覆盖原版register", CustomSerializerManager.getCustomSerializer( + TestSofaRpcSerializationRegister.class.getName())); + } + + @After + public void clearClassSerializerMap() { + CustomSerializerManager.clear(); + } + +} \ No newline at end of file diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java new file mode 100644 index 000000000..9e9d29ab2 --- /dev/null +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.alipay.sofa.rpc.test; + +import com.alipay.remoting.CustomSerializerManager; +import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; +import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerialization; +import com.alipay.sofa.rpc.core.request.SofaRequest; +import com.alipay.sofa.rpc.ext.Extension; + +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * Register custom serializer to bolt. + * + * @author GengZhang + */ +@Extension(value = "sofaRpcSerializationRegister", override = true, order = 20) +public class TestSofaRpcSerializationRegister extends BoltSerializationRegister { + + private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); + + private static volatile AtomicBoolean registered = new AtomicBoolean(false); + + public static void registerCustomSerializer() { + // if (registered.compareAndSet(false, true)) { + // innerRegisterCustomSerializer(); + // } + } + + @Override + public void doRegisterCustomSerializer() { + if (registered.compareAndSet(false, true)) { + innerRegisterCustomSerializer(); + } + } + + /** + * we can override or rewrite the method + */ + protected static void innerRegisterCustomSerializer() { + // 注册序列化器到bolt + if (CustomSerializerManager.getCustomSerializer(SofaRequest.class.getName()) == null) { + CustomSerializerManager.registerCustomSerializer(SofaRequest.class.getName(), + RPC_SERIALIZATION); + } + // 测试case与原版区分出来 + // if (CustomSerializerManager.getCustomSerializer(SofaResponse.class.getName()) == null) { + // CustomSerializerManager.registerCustomSerializer(SofaResponse.class.getName(), + // RPC_SERIALIZATION); + // } + if (CustomSerializerManager.getCustomSerializer(TestSofaRpcSerializationRegister.class.getName()) == null) { + CustomSerializerManager.registerCustomSerializer(TestSofaRpcSerializationRegister.class.getName(), + RPC_SERIALIZATION); + } + } +} diff --git a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister new file mode 100644 index 000000000..a9f1ed2f1 --- /dev/null +++ b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister @@ -0,0 +1,3 @@ +sofaRpcSerializationRegister=com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister +rejectSrc=com.alipay.sofa.rpc.test.TestRejectSerializationRegisterSrc +rejectTarget=com.alipay.sofa.rpc.test.TestRejectSerializationRegisterTarget \ No newline at end of file From 532f35f4b8eaff13c8e75a94fd79fbbd7b6b5276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=87=E6=BA=90?= Date: Wed, 28 Dec 2022 14:53:58 +0800 Subject: [PATCH 3/9] feat: use rpc configs on serializer register --- .../java/com/alipay/sofa/rpc/common/RpcOptions.java | 7 +++++++ ...ister.java => AbstractSerializationRegister.java} | 4 ++-- .../rpc/codec/bolt/SofaRpcSerializationRegister.java | 6 ++---- .../sofa/rpc/server/bolt/BoltServerProcessor.java | 12 ++++++------ .../sofa/rpc/transport/bolt/BoltClientTransport.java | 10 +++++----- ...ofa.rpc.codec.bolt.AbstractSerializationRegister} | 0 .../rpc/codec/bolt/BoltSerializationInitTest.java | 6 +++--- .../rpc/test/TestSofaRpcSerializationRegister.java | 4 ++-- ...sofa.rpc.codec.bolt.AbstractSerializationRegister | 1 + ...pay.sofa.rpc.codec.bolt.BoltSerializationRegister | 3 --- 10 files changed, 28 insertions(+), 25 deletions(-) rename remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/{BoltSerializationRegister.java => AbstractSerializationRegister.java} (87%) rename remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/{com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister => com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister} (100%) create mode 100644 remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister delete mode 100644 remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister diff --git a/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java b/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java index 89a4be4f2..43830455f 100644 --- a/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java +++ b/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java @@ -562,4 +562,11 @@ public class RpcOptions { */ public static final String RPC_UNIQUEID_PATTERN_CHECK = "sofa.rpc.uniqueId.pattern.check"; + /** + * bolt serializer register extension + * todo: @junyuan fix version + * @since 5.9.2 + */ + public static final String BOLT_SERIALIZER_REGISTER_EXTENSION = "sofa.rpc.bolt.serializer.register.extension"; + } diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java similarity index 87% rename from remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java rename to remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java index 030b6e71f..6a4a7118f 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java @@ -21,10 +21,10 @@ /** * * @author junyuan - * @version BoltSerializationRegister.java, v 0.1 2022年12月23日 15:01 junyuan Exp $ + * @version AbstractSerializationRegister.java, v 0.1 2022年12月23日 15:01 junyuan Exp $ */ @Extensible -public abstract class BoltSerializationRegister { +public abstract class AbstractSerializationRegister { public abstract void doRegisterCustomSerializer(); diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java index e3a9f17ec..e5f1456f8 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java @@ -29,7 +29,7 @@ * @author GengZhang */ @Extension(value = "sofaRpcSerializationRegister") -public class SofaRpcSerializationRegister extends BoltSerializationRegister { +public class SofaRpcSerializationRegister extends AbstractSerializationRegister { private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); @@ -37,9 +37,7 @@ public class SofaRpcSerializationRegister extends BoltSerializationRegister { @Deprecated public static void registerCustomSerializer() { - // if (registered.compareAndSet(false, true)) { - // innerRegisterCustomSerializer(); - // } + } @Override diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java index d962c7c14..b3691bf0d 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java @@ -21,10 +21,11 @@ import com.alipay.remoting.InvokeContext; import com.alipay.remoting.rpc.protocol.AsyncUserProcessor; import com.alipay.remoting.rpc.protocol.UserProcessor; -import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; -import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister; +import com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister; import com.alipay.sofa.rpc.common.RemotingConstants; +import com.alipay.sofa.rpc.common.RpcConfigs; import com.alipay.sofa.rpc.common.RpcConstants; +import com.alipay.sofa.rpc.common.RpcOptions; import com.alipay.sofa.rpc.common.SystemInfo; import com.alipay.sofa.rpc.common.cache.ReflectCache; import com.alipay.sofa.rpc.common.utils.CommonUtils; @@ -71,10 +72,9 @@ public class BoltServerProcessor extends AsyncUserProcessor { * 提前注册序列化器 */ static { - SofaRpcSerializationRegister.registerCustomSerializer(); - - ExtensionLoaderFactory.getExtensionLoader(BoltSerializationRegister.class) - .getExtension("sofaRpcSerializationRegister").doRegisterCustomSerializer(); + String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, "sofaRpcSerializationRegister"); + ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) + .getExtension(extensionAlias).doRegisterCustomSerializer(); } /** diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java index 3b2af2be2..28e11c474 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java @@ -30,8 +30,7 @@ import com.alipay.remoting.rpc.exception.InvokeServerException; import com.alipay.remoting.rpc.exception.InvokeTimeoutException; import com.alipay.sofa.rpc.client.ProviderInfo; -import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; -import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister; +import com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister; import com.alipay.sofa.rpc.common.RemotingConstants; import com.alipay.sofa.rpc.common.RpcConfigs; import com.alipay.sofa.rpc.common.RpcConstants; @@ -98,9 +97,10 @@ public class BoltClientTransport extends ClientTransport { static { RPC_CLIENT.init(); - SofaRpcSerializationRegister.registerCustomSerializer(); - ExtensionLoaderFactory.getExtensionLoader(BoltSerializationRegister.class) - .getExtension("sofaRpcSerializationRegister").doRegisterCustomSerializer(); + + String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, "sofaRpcSerializationRegister"); + ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) + .getExtension(extensionAlias).doRegisterCustomSerializer(); } /** diff --git a/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister b/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister similarity index 100% rename from remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister rename to remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java index fc20bf244..7cecbb1eb 100644 --- a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java @@ -33,9 +33,9 @@ public class BoltSerializationInitTest { @Test public void SerializerRegisterOverrideTest() { - BoltSerializationRegister boltSerializationRegister = ExtensionLoaderFactory.getExtensionLoader( - BoltSerializationRegister.class).getExtension("sofaRpcSerializationRegister"); - boltSerializationRegister.doRegisterCustomSerializer(); + AbstractSerializationRegister abstractSerializationRegister = ExtensionLoaderFactory.getExtensionLoader( + AbstractSerializationRegister.class).getExtension("sofaRpcSerializationRegister"); + abstractSerializationRegister.doRegisterCustomSerializer(); Assert.assertNull("testRegister未能覆盖原版register", CustomSerializerManager.getCustomSerializer(SofaResponse.class.getName())); diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java index 9e9d29ab2..541a00a5a 100644 --- a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java @@ -17,7 +17,7 @@ package com.alipay.sofa.rpc.test; import com.alipay.remoting.CustomSerializerManager; -import com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister; +import com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister; import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerialization; import com.alipay.sofa.rpc.core.request.SofaRequest; import com.alipay.sofa.rpc.ext.Extension; @@ -30,7 +30,7 @@ * @author GengZhang */ @Extension(value = "sofaRpcSerializationRegister", override = true, order = 20) -public class TestSofaRpcSerializationRegister extends BoltSerializationRegister { +public class TestSofaRpcSerializationRegister extends AbstractSerializationRegister { private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); diff --git a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister new file mode 100644 index 000000000..3e32f6af8 --- /dev/null +++ b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister @@ -0,0 +1 @@ +sofaRpcSerializationRegister=com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister \ No newline at end of file diff --git a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister deleted file mode 100644 index a9f1ed2f1..000000000 --- a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.BoltSerializationRegister +++ /dev/null @@ -1,3 +0,0 @@ -sofaRpcSerializationRegister=com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister -rejectSrc=com.alipay.sofa.rpc.test.TestRejectSerializationRegisterSrc -rejectTarget=com.alipay.sofa.rpc.test.TestRejectSerializationRegisterTarget \ No newline at end of file From 9deb3ef990425bbd40f8e928462f02b35d9e955d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=87=E6=BA=90?= Date: Wed, 28 Dec 2022 20:54:20 +0800 Subject: [PATCH 4/9] fix: make SofaRpcSerializationRegister compatitable for direct use --- .../sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java index e5f1456f8..a69063a5c 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java @@ -37,7 +37,10 @@ public class SofaRpcSerializationRegister extends AbstractSerializationRegister @Deprecated public static void registerCustomSerializer() { - + // if someone call this method directly, it still works + if (registered.compareAndSet(false, true)) { + innerRegisterCustomSerializer(); + } } @Override From 3a0467bcd92da18f534c0cf2677a43d8f69e1f82 Mon Sep 17 00:00:00 2001 From: lo1nt Date: Fri, 10 Feb 2023 15:31:05 +0800 Subject: [PATCH 5/9] chore: format --- .../com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java | 5 +++-- .../alipay/sofa/rpc/transport/bolt/BoltClientTransport.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java index b3691bf0d..b8d245fcd 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java @@ -72,9 +72,10 @@ public class BoltServerProcessor extends AsyncUserProcessor { * 提前注册序列化器 */ static { - String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, "sofaRpcSerializationRegister"); + String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, + "sofaRpcSerializationRegister"); ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) - .getExtension(extensionAlias).doRegisterCustomSerializer(); + .getExtension(extensionAlias).doRegisterCustomSerializer(); } /** diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java index 28e11c474..d9c0aa479 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java @@ -98,7 +98,8 @@ public class BoltClientTransport extends ClientTransport { static { RPC_CLIENT.init(); - String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, "sofaRpcSerializationRegister"); + String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, + "sofaRpcSerializationRegister"); ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) .getExtension(extensionAlias).doRegisterCustomSerializer(); } From 1f435a19947e62c86059ade4d0a7271cfeb599a4 Mon Sep 17 00:00:00 2001 From: junyuan Date: Tue, 11 Apr 2023 11:17:20 +0800 Subject: [PATCH 6/9] fix: cr --- .../alipay/sofa/rpc/common/RpcOptions.java | 3 +- .../bolt/AbstractSerializationRegister.java | 2 +- .../bolt/SofaRpcSerializationRegister.java | 18 +++------- ...c.codec.bolt.AbstractSerializationRegister | 2 +- .../codec/bolt/BoltSerializationInitTest.java | 4 +-- .../TestSofaRpcSerializationRegister.java | 33 +++++-------------- ...c.codec.bolt.AbstractSerializationRegister | 2 +- 7 files changed, 19 insertions(+), 45 deletions(-) diff --git a/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java b/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java index 43830455f..44f0c73b3 100644 --- a/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java +++ b/core/api/src/main/java/com/alipay/sofa/rpc/common/RpcOptions.java @@ -564,8 +564,7 @@ public class RpcOptions { /** * bolt serializer register extension - * todo: @junyuan fix version - * @since 5.9.2 + * @since 5.10.0 */ public static final String BOLT_SERIALIZER_REGISTER_EXTENSION = "sofa.rpc.bolt.serializer.register.extension"; diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java index 6a4a7118f..b40640a53 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/AbstractSerializationRegister.java @@ -28,4 +28,4 @@ public abstract class AbstractSerializationRegister { public abstract void doRegisterCustomSerializer(); -} \ No newline at end of file +} diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java index a69063a5c..c2aaaafaa 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/codec/bolt/SofaRpcSerializationRegister.java @@ -31,17 +31,9 @@ @Extension(value = "sofaRpcSerializationRegister") public class SofaRpcSerializationRegister extends AbstractSerializationRegister { - private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); + private final SofaRpcSerialization sofaRpcSerialization = new SofaRpcSerialization(); - private static volatile AtomicBoolean registered = new AtomicBoolean(false); - - @Deprecated - public static void registerCustomSerializer() { - // if someone call this method directly, it still works - if (registered.compareAndSet(false, true)) { - innerRegisterCustomSerializer(); - } - } + private volatile AtomicBoolean registered = new AtomicBoolean(false); @Override public void doRegisterCustomSerializer() { @@ -53,15 +45,15 @@ public void doRegisterCustomSerializer() { /** * we can override or rewrite the method */ - protected static void innerRegisterCustomSerializer() { + protected void innerRegisterCustomSerializer() { // 注册序列化器到bolt if (CustomSerializerManager.getCustomSerializer(SofaRequest.class.getName()) == null) { CustomSerializerManager.registerCustomSerializer(SofaRequest.class.getName(), - RPC_SERIALIZATION); + sofaRpcSerialization); } if (CustomSerializerManager.getCustomSerializer(SofaResponse.class.getName()) == null) { CustomSerializerManager.registerCustomSerializer(SofaResponse.class.getName(), - RPC_SERIALIZATION); + sofaRpcSerialization); } } } diff --git a/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister b/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister index 3b2559cc2..d1a58d95e 100644 --- a/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister +++ b/remoting/remoting-bolt/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister @@ -1 +1 @@ -sofaRpcSerializationRegister=com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister \ No newline at end of file +sofaRpcSerializationRegister=com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java index 7cecbb1eb..f1155e724 100644 --- a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java @@ -32,7 +32,7 @@ public class BoltSerializationInitTest { @Test - public void SerializerRegisterOverrideTest() { + public void testSerializerRegisterOverride() { AbstractSerializationRegister abstractSerializationRegister = ExtensionLoaderFactory.getExtensionLoader( AbstractSerializationRegister.class).getExtension("sofaRpcSerializationRegister"); abstractSerializationRegister.doRegisterCustomSerializer(); @@ -49,4 +49,4 @@ public void clearClassSerializerMap() { CustomSerializerManager.clear(); } -} \ No newline at end of file +} diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java index 541a00a5a..a954e2c3c 100644 --- a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/test/TestSofaRpcSerializationRegister.java @@ -19,6 +19,7 @@ import com.alipay.remoting.CustomSerializerManager; import com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister; import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerialization; +import com.alipay.sofa.rpc.codec.bolt.SofaRpcSerializationRegister; import com.alipay.sofa.rpc.core.request.SofaRequest; import com.alipay.sofa.rpc.ext.Extension; @@ -30,42 +31,24 @@ * @author GengZhang */ @Extension(value = "sofaRpcSerializationRegister", override = true, order = 20) -public class TestSofaRpcSerializationRegister extends AbstractSerializationRegister { +public class TestSofaRpcSerializationRegister extends SofaRpcSerializationRegister { - private static final SofaRpcSerialization RPC_SERIALIZATION = new SofaRpcSerialization(); - - private static volatile AtomicBoolean registered = new AtomicBoolean(false); - - public static void registerCustomSerializer() { - // if (registered.compareAndSet(false, true)) { - // innerRegisterCustomSerializer(); - // } - } - - @Override - public void doRegisterCustomSerializer() { - if (registered.compareAndSet(false, true)) { - innerRegisterCustomSerializer(); - } - } + private final SofaRpcSerialization rpcSerialization = new SofaRpcSerialization(); /** * we can override or rewrite the method */ - protected static void innerRegisterCustomSerializer() { + @Override + protected void innerRegisterCustomSerializer() { // 注册序列化器到bolt if (CustomSerializerManager.getCustomSerializer(SofaRequest.class.getName()) == null) { CustomSerializerManager.registerCustomSerializer(SofaRequest.class.getName(), - RPC_SERIALIZATION); + rpcSerialization); } - // 测试case与原版区分出来 - // if (CustomSerializerManager.getCustomSerializer(SofaResponse.class.getName()) == null) { - // CustomSerializerManager.registerCustomSerializer(SofaResponse.class.getName(), - // RPC_SERIALIZATION); - // } + if (CustomSerializerManager.getCustomSerializer(TestSofaRpcSerializationRegister.class.getName()) == null) { CustomSerializerManager.registerCustomSerializer(TestSofaRpcSerializationRegister.class.getName(), - RPC_SERIALIZATION); + rpcSerialization); } } } diff --git a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister index 3e32f6af8..af40d7bf5 100644 --- a/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister +++ b/remoting/remoting-bolt/src/test/resources/META-INF/services/com.alipay.sofa.rpc.codec.bolt.AbstractSerializationRegister @@ -1 +1 @@ -sofaRpcSerializationRegister=com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister \ No newline at end of file +sofaRpcSerializationRegister=com.alipay.sofa.rpc.test.TestSofaRpcSerializationRegister From 6e545591ae8401cb0310cfb6dd3521e1f3a93a00 Mon Sep 17 00:00:00 2001 From: junyuan Date: Tue, 11 Apr 2023 20:42:29 +0800 Subject: [PATCH 7/9] feat: use json config as default value --- .../com/alipay/sofa/rpc/common/rpc-config-default.json | 4 +++- .../com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java | 3 +-- .../alipay/sofa/rpc/transport/bolt/BoltClientTransport.java | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json b/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json index d2847fc7e..3fd9e4aac 100644 --- a/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json +++ b/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json @@ -304,5 +304,7 @@ PS:大家也看到了,本JSON文档是支持注释的,而标准JSON是不支 //是否禁止开启lookout采集信息 "connection.validate.sleep": false, //是否关闭uniqueId 特殊字符的校验 - "sofa.rpc.uniqueId.pattern.check": true + "sofa.rpc.uniqueId.pattern.check": true, + // bolt serializer 的注册器 + "sofa.rpc.bolt.serializer.register.extension": "sofaRpcSerializationRegister" } \ No newline at end of file diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java index b8d245fcd..e03563614 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/server/bolt/BoltServerProcessor.java @@ -72,8 +72,7 @@ public class BoltServerProcessor extends AsyncUserProcessor { * 提前注册序列化器 */ static { - String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, - "sofaRpcSerializationRegister"); + String extensionAlias = RpcConfigs.getStringValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION); ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) .getExtension(extensionAlias).doRegisterCustomSerializer(); } diff --git a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java index d9c0aa479..871859835 100644 --- a/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java +++ b/remoting/remoting-bolt/src/main/java/com/alipay/sofa/rpc/transport/bolt/BoltClientTransport.java @@ -98,8 +98,7 @@ public class BoltClientTransport extends ClientTransport { static { RPC_CLIENT.init(); - String extensionAlias = RpcConfigs.getOrDefaultValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION, - "sofaRpcSerializationRegister"); + String extensionAlias = RpcConfigs.getStringValue(RpcOptions.BOLT_SERIALIZER_REGISTER_EXTENSION); ExtensionLoaderFactory.getExtensionLoader(AbstractSerializationRegister.class) .getExtension(extensionAlias).doRegisterCustomSerializer(); } From 8e7136e74a82df1951d0f33ea9796589d751c30d Mon Sep 17 00:00:00 2001 From: junyuan Date: Tue, 11 Apr 2023 21:14:38 +0800 Subject: [PATCH 8/9] format --- .../com/alipay/sofa/rpc/common/rpc-config-default.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json b/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json index 3fd9e4aac..6c2ef85e0 100644 --- a/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json +++ b/core/common/src/main/resources/com/alipay/sofa/rpc/common/rpc-config-default.json @@ -307,4 +307,4 @@ PS:大家也看到了,本JSON文档是支持注释的,而标准JSON是不支 "sofa.rpc.uniqueId.pattern.check": true, // bolt serializer 的注册器 "sofa.rpc.bolt.serializer.register.extension": "sofaRpcSerializationRegister" -} \ No newline at end of file +} From 66cae3f31d064f88f986502686fe5bac98c543fa Mon Sep 17 00:00:00 2001 From: junyuan Date: Wed, 12 Apr 2023 10:54:56 +0800 Subject: [PATCH 9/9] chore: comment --- .../alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java index f1155e724..2d36fa010 100644 --- a/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java +++ b/remoting/remoting-bolt/src/test/java/com/alipay/sofa/rpc/codec/bolt/BoltSerializationInitTest.java @@ -31,6 +31,9 @@ */ public class BoltSerializationInitTest { + /** + * add a serializer to override existing serializer + */ @Test public void testSerializerRegisterOverride() { AbstractSerializationRegister abstractSerializationRegister = ExtensionLoaderFactory.getExtensionLoader(