Skip to content

Commit 7177205

Browse files
Lo1ntjunyuanLo1nt
authored
Sofaboot 4.0 support (#1356)
* feat: let use of javassist compatible at jdk 17 * chore: use latest space id * feat: update dubbo to 3.1.4 * fix: zk version * version * update version * bump hessian * update version * add ci * set verison as 51100 * fix: destory * fix: unit test * remove aci on sofaboot-4.0-support * feat: update hessian to 3.5.0-SNAPSHOT * release version --------- Co-authored-by: junyuan <[email protected]> Co-authored-by: Lo1nt <[email protected]>
1 parent bff853f commit 7177205

File tree

18 files changed

+172
-63
lines changed

18 files changed

+172
-63
lines changed

all/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.alipay.sofa</groupId>
88
<artifactId>sofa-rpc-all</artifactId>
9-
<version>5.11.0-SNAPSHOT</version>
9+
<version>5.11.0</version>
1010

1111

1212
<name>${project.groupId}:${project.artifactId}</name>
@@ -57,9 +57,9 @@
5757
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
5858
<slf4j.version>1.7.21</slf4j.version>
5959
<sofa.common.tools.version>1.3.2</sofa.common.tools.version>
60-
<javassist.version>3.28.0-GA</javassist.version>
60+
<javassist.version>3.29.2-GA</javassist.version>
6161
<netty.version>4.1.44.Final</netty.version>
62-
<hessian.version>3.4.0</hessian.version>
62+
<hessian.version>3.5.0</hessian.version>
6363
<resteasy.version>3.6.3.Final</resteasy.version>
6464
<bolt.version>1.6.6</bolt.version>
6565
<tracer.version>3.0.8</tracer.version>

bom/pom.xml

+39-10
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<packaging>pom</packaging>
1111

1212
<properties>
13-
<revision>5.11.0-SNAPSHOT</revision>
14-
<javassist.version>3.28.0-GA</javassist.version>
13+
<revision>5.11.0</revision>
14+
<javassist.version>3.29.2-GA</javassist.version>
1515
<bytebuddy.version>1.9.8</bytebuddy.version>
1616
<netty.version>4.1.77.Final</netty.version>
1717
<!-- 3rd extends libs -->
@@ -20,9 +20,10 @@
2020
<jaxrs.api.version>1.0.2.Final</jaxrs.api.version>
2121
<cxf.version>3.4.10</cxf.version>
2222
<jetty.version>7.5.4.v20111024</jetty.version>
23-
<curator.version>4.0.1</curator.version>
23+
<zookeeper.version>3.5.7</zookeeper.version>
24+
<curator.version>4.3.0</curator.version>
2425
<opentracing.version>0.22.0</opentracing.version>
25-
<dubbo.version>2.6.9</dubbo.version>
26+
<dubbo.version>3.1.8</dubbo.version>
2627
<nacos.version>2.0.3</nacos.version>
2728
<sofa.registry.version>6.3.0</sofa.registry.version>
2829
<polaris.version>1.2.2</polaris.version>
@@ -31,7 +32,7 @@
3132
<guava.version>32.0.0-jre</guava.version>
3233
<prometheus.client.version>0.16.0</prometheus.client.version>
3334
<!-- serialization -->
34-
<hessian.version>3.4.0</hessian.version>
35+
<hessian.version>3.5.0</hessian.version>
3536
<thrift.version>0.9.2</thrift.version>
3637
<protobuf.version>3.22.0</protobuf.version>
3738
<jackson.version>2.12.7</jackson.version>
@@ -300,25 +301,41 @@
300301
<!-- zk client -->
301302
<dependency>
302303
<groupId>org.apache.curator</groupId>
303-
<artifactId>curator-recipes</artifactId>
304+
<artifactId>curator-framework</artifactId>
304305
<version>${curator.version}</version>
306+
<exclusions>
307+
<exclusion>
308+
<groupId>org.apache.zookeeper</groupId>
309+
<artifactId>zookeeper</artifactId>
310+
</exclusion>
311+
</exclusions>
305312
</dependency>
306313
<dependency>
307314
<groupId>org.apache.curator</groupId>
308-
<artifactId>curator-test</artifactId>
315+
<artifactId>curator-x-discovery</artifactId>
309316
<version>${curator.version}</version>
310-
<scope>test</scope>
311317
<exclusions>
312318
<exclusion>
313-
<artifactId>zookeeper</artifactId>
314319
<groupId>org.apache.zookeeper</groupId>
320+
<artifactId>zookeeper</artifactId>
321+
</exclusion>
322+
</exclusions>
323+
</dependency>
324+
<dependency>
325+
<groupId>org.apache.zookeeper</groupId>
326+
<artifactId>zookeeper</artifactId>
327+
<version>${zookeeper.version}</version>
328+
<exclusions>
329+
<exclusion>
330+
<groupId>io.netty</groupId>
331+
<artifactId>netty</artifactId>
315332
</exclusion>
316333
</exclusions>
317334
</dependency>
318335

319336
<!--dubbo-->
320337
<dependency>
321-
<groupId>com.alibaba</groupId>
338+
<groupId>org.apache.dubbo</groupId>
322339
<artifactId>dubbo</artifactId>
323340
<version>${dubbo.version}</version>
324341
<exclusions>
@@ -492,6 +509,18 @@
492509
</dependency>
493510

494511
<!-- Test libs -->
512+
<dependency>
513+
<groupId>org.apache.curator</groupId>
514+
<artifactId>curator-test</artifactId>
515+
<version>${curator.version}</version>
516+
<exclusions>
517+
<exclusion>
518+
<groupId>org.apache.zookeeper</groupId>
519+
<artifactId>zookeeper</artifactId>
520+
</exclusion>
521+
</exclusions>
522+
<scope>test</scope>
523+
</dependency>
495524
<dependency>
496525
<groupId>junit</groupId>
497526
<artifactId>junit</artifactId>

bootstrap/bootstrap-dubbo/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</dependency>
2121

2222
<dependency>
23-
<groupId>com.alibaba</groupId>
23+
<groupId>org.apache.dubbo</groupId>
2424
<artifactId>dubbo</artifactId>
2525
</dependency>
2626
<dependency>

bootstrap/bootstrap-dubbo/src/main/java/com/alipay/sofa/rpc/bootstrap/dubbo/DubboConsumerBootstrap.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
package com.alipay.sofa.rpc.bootstrap.dubbo;
1818

19-
import com.alibaba.dubbo.config.ReferenceConfig;
19+
import org.apache.dubbo.config.ReferenceConfig;
2020
import com.alipay.sofa.rpc.bootstrap.ConsumerBootstrap;
2121
import com.alipay.sofa.rpc.client.Cluster;
2222
import com.alipay.sofa.rpc.client.ProviderGroup;
@@ -100,7 +100,7 @@ private void copyCommon(ConsumerConfig<T> consumerConfig, ReferenceConfig<T> ref
100100

101101
private void copyApplication(ConsumerConfig<T> consumerConfig, ReferenceConfig<T> referenceConfig) {
102102
ApplicationConfig applicationConfig = consumerConfig.getApplication();
103-
com.alibaba.dubbo.config.ApplicationConfig dubboConfig = new com.alibaba.dubbo.config.ApplicationConfig();
103+
org.apache.dubbo.config.ApplicationConfig dubboConfig = new org.apache.dubbo.config.ApplicationConfig();
104104
dubboConfig.setName(applicationConfig.getAppName());
105105
referenceConfig.setApplication(dubboConfig);
106106
}
@@ -140,11 +140,10 @@ private void copyConsumer(ConsumerConfig<T> consumerConfig, ReferenceConfig<T> r
140140
private void copyMethods(ConsumerConfig<T> consumerConfig, ReferenceConfig<T> referenceConfig) {
141141
Map<String, MethodConfig> methodConfigs = consumerConfig.getMethods();
142142
if (CommonUtils.isNotEmpty(methodConfigs)) {
143-
List<com.alibaba.dubbo.config.MethodConfig> dubboMethodConfigs =
144-
new ArrayList<com.alibaba.dubbo.config.MethodConfig>();
143+
List<org.apache.dubbo.config.MethodConfig> dubboMethodConfigs = new ArrayList<>();
145144
for (Map.Entry<String, MethodConfig> entry : methodConfigs.entrySet()) {
146145
MethodConfig methodConfig = entry.getValue();
147-
com.alibaba.dubbo.config.MethodConfig dubboMethodConfig = new com.alibaba.dubbo.config.MethodConfig();
146+
org.apache.dubbo.config.MethodConfig dubboMethodConfig = new org.apache.dubbo.config.MethodConfig();
148147
dubboMethodConfig.setName(methodConfig.getName());
149148
dubboMethodConfig.setParameters(methodConfig.getParameters());
150149
dubboMethodConfig.setTimeout(methodConfig.getTimeout());

bootstrap/bootstrap-dubbo/src/main/java/com/alipay/sofa/rpc/bootstrap/dubbo/DubboConvertor.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,18 @@
2929
public class DubboConvertor {
3030

3131
public static void copyRegistries(com.alipay.sofa.rpc.config.AbstractInterfaceConfig sofaConfig,
32-
com.alibaba.dubbo.config.AbstractInterfaceConfig dubboConfig) {
32+
org.apache.dubbo.config.AbstractInterfaceConfig dubboConfig) {
3333
List<RegistryConfig> registryConfigs = sofaConfig.getRegistry();
3434
if (CommonUtils.isNotEmpty(registryConfigs)) {
35-
List<com.alibaba.dubbo.config.RegistryConfig> dubboRegistryConfigs =
36-
new ArrayList<com.alibaba.dubbo.config.RegistryConfig>();
35+
List<org.apache.dubbo.config.RegistryConfig> dubboRegistryConfigs = new ArrayList<>();
3736
for (RegistryConfig registryConfig : registryConfigs) {
3837
// 生成并丢到缓存里
39-
com.alibaba.dubbo.config.RegistryConfig dubboRegistryConfig = DubboSingleton.REGISTRY_MAP
38+
org.apache.dubbo.config.RegistryConfig dubboRegistryConfig = DubboSingleton.REGISTRY_MAP
4039
.get(registryConfig);
4140
if (dubboRegistryConfig == null) {
42-
dubboRegistryConfig = new com.alibaba.dubbo.config.RegistryConfig();
41+
dubboRegistryConfig = new org.apache.dubbo.config.RegistryConfig();
4342
copyRegistryFields(registryConfig, dubboRegistryConfig);
44-
com.alibaba.dubbo.config.RegistryConfig old = DubboSingleton.REGISTRY_MAP.putIfAbsent(
43+
org.apache.dubbo.config.RegistryConfig old = DubboSingleton.REGISTRY_MAP.putIfAbsent(
4544
registryConfig, dubboRegistryConfig);
4645
if (old != null) {
4746
dubboRegistryConfig = old;
@@ -58,7 +57,7 @@ public static void copyRegistries(com.alipay.sofa.rpc.config.AbstractInterfaceCo
5857
}
5958

6059
public static void copyRegistryFields(com.alipay.sofa.rpc.config.RegistryConfig sofaRegistryConfig,
61-
com.alibaba.dubbo.config.RegistryConfig dubboRegistryConfig) {
60+
org.apache.dubbo.config.RegistryConfig dubboRegistryConfig) {
6261
dubboRegistryConfig.setAddress(sofaRegistryConfig.getAddress());
6362
dubboRegistryConfig.setProtocol(sofaRegistryConfig.getProtocol());
6463
dubboRegistryConfig.setRegister(sofaRegistryConfig.isRegister());

bootstrap/bootstrap-dubbo/src/main/java/com/alipay/sofa/rpc/bootstrap/dubbo/DubboProviderBootstrap.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
*/
1717
package com.alipay.sofa.rpc.bootstrap.dubbo;
1818

19-
import com.alibaba.dubbo.config.ProtocolConfig;
20-
import com.alibaba.dubbo.config.ServiceConfig;
19+
import org.apache.dubbo.config.ProtocolConfig;
20+
import org.apache.dubbo.config.ServiceConfig;
2121
import com.alipay.sofa.rpc.bootstrap.ProviderBootstrap;
2222
import com.alipay.sofa.rpc.common.RpcConstants;
2323
import com.alipay.sofa.rpc.common.Version;

bootstrap/bootstrap-dubbo/src/main/java/com/alipay/sofa/rpc/bootstrap/dubbo/DubboSingleton.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
*/
1717
package com.alipay.sofa.rpc.bootstrap.dubbo;
1818

19-
import com.alibaba.dubbo.config.DubboShutdownHook;
20-
import com.alibaba.dubbo.config.ProtocolConfig;
19+
import org.apache.dubbo.config.ProtocolConfig;
2120
import com.alipay.sofa.rpc.base.Destroyable;
2221
import com.alipay.sofa.rpc.config.RegistryConfig;
2322
import com.alipay.sofa.rpc.config.ServerConfig;
2423
import com.alipay.sofa.rpc.context.RpcRuntimeContext;
24+
import org.apache.dubbo.rpc.model.FrameworkModel;
2525

2626
import java.util.concurrent.ConcurrentHashMap;
2727
import java.util.concurrent.ConcurrentMap;
@@ -50,17 +50,17 @@ public void postDestroy() {
5050
/**
5151
* sofa.SeverConfig --> dubbo.ProtocolConfig
5252
*/
53-
final static ConcurrentMap<ServerConfig, ProtocolConfig> SERVER_MAP = new ConcurrentHashMap<ServerConfig, ProtocolConfig>();
53+
final static ConcurrentMap<ServerConfig, ProtocolConfig> SERVER_MAP = new ConcurrentHashMap<>();
5454

5555
/**
5656
* sofa.RegistryConfig --> dubbo.RegistryConfig
5757
*/
58-
final static ConcurrentMap<RegistryConfig, com.alibaba.dubbo.config.RegistryConfig> REGISTRY_MAP = new ConcurrentHashMap<RegistryConfig, com.alibaba.dubbo.config.RegistryConfig>();
58+
final static ConcurrentMap<RegistryConfig, org.apache.dubbo.config.RegistryConfig> REGISTRY_MAP = new ConcurrentHashMap<>();
5959

6060
/**
6161
* Destroy all dubbo resources
6262
*/
6363
public static void destroyAll() {
64-
DubboShutdownHook.getDubboShutdownHook().destroyAll();
64+
FrameworkModel.defaultModel().destroy();
6565
}
6666
}

bootstrap/bootstrap-dubbo/src/test/java/com/alipay/sofa/rpc/bootstrap/dubbo/DubooServerTest.java

+46-17
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package com.alipay.sofa.rpc.bootstrap.dubbo;
1818

1919
import com.alibaba.dubbo.common.Constants;
20-
import com.alibaba.dubbo.common.utils.ConfigUtils;
20+
import org.apache.dubbo.common.constants.CommonConstants;
2121
import com.alibaba.dubbo.rpc.RpcContext;
2222
import com.alibaba.dubbo.rpc.service.GenericService;
2323
import com.alipay.sofa.rpc.bootstrap.dubbo.demo.DemoService;
@@ -32,6 +32,8 @@
3232
import com.alipay.sofa.rpc.context.RpcInvokeContext;
3333
import com.alipay.sofa.rpc.context.RpcRunningState;
3434
import com.alipay.sofa.rpc.context.RpcRuntimeContext;
35+
import org.apache.dubbo.config.ConfigKeys;
36+
import org.apache.dubbo.config.context.ConfigMode;
3537
import org.junit.After;
3638
import org.junit.AfterClass;
3739
import org.junit.Assert;
@@ -52,10 +54,50 @@ public class DubooServerTest {
5254

5355
ConsumerConfig<DemoService> consumerConfig;
5456

57+
private static String OLD_VALUE_SHUTDOWN_WAIT_KEY;
58+
private static String OLD_VALUE_DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE;
59+
private static String OLD_VALUE_DUBBO_CONFIG_MODE;
60+
5561
//dubbo close wait time
56-
@AfterClass
62+
@BeforeClass
5763
public static void before() {
58-
ConfigUtils.getProperties().put(Constants.SHUTDOWN_WAIT_KEY, "1");
64+
RpcRunningState.setUnitTestMode(true);
65+
OLD_VALUE_SHUTDOWN_WAIT_KEY = System.getProperty(CommonConstants.SHUTDOWN_WAIT_KEY);
66+
OLD_VALUE_DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE = System
67+
.getProperty(ConfigKeys.DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE);
68+
OLD_VALUE_DUBBO_CONFIG_MODE = System.getProperty(ConfigKeys.DUBBO_CONFIG_MODE);
69+
70+
System.setProperty(CommonConstants.SHUTDOWN_WAIT_KEY, "1");
71+
System.setProperty(ConfigKeys.DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE, "true");
72+
System.setProperty(ConfigKeys.DUBBO_CONFIG_MODE, ConfigMode.IGNORE.name());
73+
}
74+
75+
@AfterClass
76+
public static void after() {
77+
if (OLD_VALUE_SHUTDOWN_WAIT_KEY == null) {
78+
System.clearProperty(CommonConstants.SHUTDOWN_WAIT_KEY);
79+
} else {
80+
System.setProperty(CommonConstants.SHUTDOWN_WAIT_KEY, OLD_VALUE_SHUTDOWN_WAIT_KEY);
81+
}
82+
83+
if (OLD_VALUE_DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE == null) {
84+
System.clearProperty(ConfigKeys.DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE);
85+
} else {
86+
System.setProperty(ConfigKeys.DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE,
87+
OLD_VALUE_DUBBO_CONFIG_IGNORE_DUPLICATED_INTERFACE);
88+
}
89+
90+
if (OLD_VALUE_DUBBO_CONFIG_MODE == null) {
91+
System.clearProperty(ConfigKeys.DUBBO_CONFIG_MODE);
92+
} else {
93+
System.setProperty(ConfigKeys.DUBBO_CONFIG_MODE, OLD_VALUE_DUBBO_CONFIG_MODE);
94+
}
95+
}
96+
97+
@After
98+
public void afterMethod() {
99+
RpcInternalContext.removeAllContext();
100+
RpcInvokeContext.removeContext();
59101
}
60102

61103
@Test
@@ -288,7 +330,7 @@ public void testWithParameterWithVersion() {
288330
}
289331
}
290332

291-
@Test(expected = com.alibaba.dubbo.rpc.RpcException.class)
333+
@Test(expected = org.apache.dubbo.rpc.RpcException.class)
292334
//同步调用,直连,dubbo 消费没有指定dubbo服务版本version
293335
public void testConsumerWithNoDubboServiceVersion() {
294336
// 只有1个线程 执行
@@ -324,17 +366,4 @@ public void testConsumerWithNoDubboServiceVersion() {
324366
Assert.assertTrue(result.equalsIgnoreCase("hello xxx"));
325367

326368
}
327-
328-
@BeforeClass
329-
public static void adBeforeClass() {
330-
RpcRunningState.setUnitTestMode(true);
331-
}
332-
333-
@After
334-
public void afterMethod() {
335-
DubboSingleton.destroyAll();
336-
RpcRuntimeContext.destroy();
337-
RpcInternalContext.removeAllContext();
338-
RpcInvokeContext.removeContext();
339-
}
340369
}

bootstrap/bootstrap-triple/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</dependency>
2020

2121
<dependency>
22-
<groupId>com.alibaba</groupId>
22+
<groupId>org.apache.dubbo</groupId>
2323
<artifactId>dubbo</artifactId>
2424
</dependency>
2525
<dependency>

core/api/src/main/java/com/alipay/sofa/rpc/common/Version.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@ public final class Version {
3737
/**
3838
* 当前Build版本,每次发布修改
3939
*/
40-
public static final String BUILD_VERSION = "5.11.0_20230720235253";
40+
public static final String BUILD_VERSION = "5.11.0_20230828164355";
4141

4242
}

example/pom.xml

+7-2
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,19 @@
108108

109109
<!-- dependencies for dubbo -->
110110
<dependency>
111-
<groupId>com.alibaba</groupId>
111+
<groupId>org.apache.dubbo</groupId>
112112
<artifactId>dubbo</artifactId>
113113
</dependency>
114114

115115
<!-- dependencies for zookeeper -->
116116
<dependency>
117117
<groupId>org.apache.curator</groupId>
118-
<artifactId>curator-recipes</artifactId>
118+
<artifactId>curator-framework</artifactId>
119+
<scope>test</scope>
120+
</dependency>
121+
<dependency>
122+
<groupId>org.apache.curator</groupId>
123+
<artifactId>curator-x-discovery</artifactId>
119124
<scope>test</scope>
120125
</dependency>
121126

example/src/test/java/com/alipay/sofa/rpc/zookeeper/start/ZookeeperBoltClientMain.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,14 @@ public static void main(String[] args) throws InterruptedException {
4343

4444
/**
4545
* 运行需要pom.xml里增加依赖
46-
<dependency>
4746
<groupId>org.apache.curator</groupId>
48-
<artifactId>curator-recipes</artifactId>
47+
<artifactId>curator-framework</artifactId>
4948
<scope>test</scope>
5049
</dependency>
50+
<dependency>
51+
<groupId>org.apache.curator</groupId>
52+
<artifactId>curator-x-discovery</artifactId>
53+
<scope>test</scope>
5154
*/
5255
RegistryConfig registryConfig = new RegistryConfig()
5356
.setProtocol(RpcConstants.REGISTRY_PROTOCOL_ZK)

0 commit comments

Comments
 (0)