Skip to content

Commit bd128b5

Browse files
committed
Merge branch 'apache-3.2' into apache-3.3
# Conflicts: # dubbo-rpc/dubbo-rpc-triple/pom.xml
2 parents 8e108df + 0c2537c commit bd128b5

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

dubbo-rpc/dubbo-rpc-triple/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@
129129
<version>${project.parent.version}</version>
130130
<optional>true</optional>
131131
</dependency>
132+
<dependency>
133+
<groupId>org.apache.dubbo</groupId>
134+
<artifactId>dubbo-cluster</artifactId>
135+
<version>${project.parent.version}</version>
136+
<scope>test</scope>
137+
</dependency>
132138
</dependencies>
133139
<build>
134140
<plugins>

dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleInvoker.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,17 @@ protected Result doInvoke(final Invocation invocation) {
152152
ServiceDescriptor serviceDescriptor = consumerModel.getServiceModel();
153153
MethodDescriptor methodDescriptor =
154154
serviceDescriptor.getMethod(invocation.getMethodName(), invocation.getParameterTypes());
155-
if (methodDescriptor == null
156-
&& RpcUtils.isGenericCall(
157-
((RpcInvocation) invocation).getParameterTypesDesc(), invocation.getMethodName())) {
158-
// Only reach when server generic
159-
methodDescriptor = ServiceDescriptorInternalCache.genericService()
160-
.getMethod(invocation.getMethodName(), invocation.getParameterTypes());
155+
if (methodDescriptor == null) {
156+
if (RpcUtils.isGenericCall(
157+
((RpcInvocation) invocation).getParameterTypesDesc(), invocation.getMethodName())) {
158+
// Only reach when server generic
159+
methodDescriptor = ServiceDescriptorInternalCache.genericService()
160+
.getMethod(invocation.getMethodName(), invocation.getParameterTypes());
161+
} else if (RpcUtils.isEcho(
162+
((RpcInvocation) invocation).getParameterTypesDesc(), invocation.getMethodName())) {
163+
methodDescriptor = ServiceDescriptorInternalCache.echoService()
164+
.getMethod(invocation.getMethodName(), invocation.getParameterTypes());
165+
}
161166
}
162167
ExecutorService callbackExecutor =
163168
isSync(methodDescriptor, invocation) ? new ThreadlessExecutor() : streamExecutor;

dubbo-rpc/dubbo-rpc-triple/src/test/java/org/apache/dubbo/rpc/protocol/tri/TripleProtocolTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.apache.dubbo.rpc.protocol.tri;
1818

1919
import org.apache.dubbo.common.URL;
20+
import org.apache.dubbo.common.extension.ExtensionLoader;
2021
import org.apache.dubbo.common.stream.StreamObserver;
2122
import org.apache.dubbo.common.utils.ClassUtils;
2223
import org.apache.dubbo.common.utils.NetUtils;
@@ -33,13 +34,15 @@
3334
import org.apache.dubbo.rpc.protocol.tri.support.IGreeter;
3435
import org.apache.dubbo.rpc.protocol.tri.support.IGreeterImpl;
3536
import org.apache.dubbo.rpc.protocol.tri.support.MockStreamObserver;
37+
import org.apache.dubbo.rpc.service.EchoService;
3638

3739
import java.util.concurrent.TimeUnit;
3840

3941
import org.junit.jupiter.api.Assertions;
4042
import org.junit.jupiter.api.Test;
4143

4244
import static org.apache.dubbo.rpc.protocol.tri.support.IGreeter.SERVER_MSG;
45+
import static org.junit.jupiter.api.Assertions.assertEquals;
4346

4447
class TripleProtocolTest {
4548

@@ -65,7 +68,8 @@ void testDemoProtocol() throws Exception {
6568
serviceRepository.registerProvider(providerModel);
6669
providerUrl = providerUrl.setServiceModel(providerModel);
6770

68-
Protocol protocol = new TripleProtocol(providerUrl.getOrDefaultFrameworkModel());
71+
Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension("tri");
72+
6973
ProxyFactory proxy =
7074
applicationModel.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
7175
Invoker<IGreeter> invoker = proxy.getInvoker(serviceImpl, IGreeter.class, providerUrl);
@@ -106,6 +110,11 @@ void testDemoProtocol() throws Exception {
106110
Assertions.assertEquals(REQUEST_MSG, serverOutboundMessageSubscriber.getOnNextData());
107111
Assertions.assertTrue(serverOutboundMessageSubscriber.isOnCompleted());
108112

113+
EchoService echo = proxy.getProxy(protocol.refer(EchoService.class, consumerUrl));
114+
assertEquals(echo.$echo("test"), "test");
115+
assertEquals(echo.$echo("abcdefg"), "abcdefg");
116+
assertEquals(echo.$echo(1234), 1234);
117+
109118
export.unexport();
110119
protocol.destroy();
111120
// resource recycle.

0 commit comments

Comments
 (0)