add register mode test
diff --git a/dubbo-samples-triple/README.MD b/dubbo-samples-triple/README.MD
index 736a402..bb53905 100644
--- a/dubbo-samples-triple/README.MD
+++ b/dubbo-samples-triple/README.MD
@@ -25,11 +25,11 @@
##### GRPC --> Dubbo
1. Run `org.apache.dubbo.sample.tri.TriProvider`
-2. Run `org.apache.dubbo.sample.tri.GrpcConsumerTest`
+2. Run `org.apache.dubbo.sample.tri.grpc.GrpcConsumerTest`
##### Dubbo --> GRPC
-1. Run `org.apache.dubbo.sample.tri.GrpcProvider`
+1. Run `org.apache.dubbo.sample.tri.grpc.GrpcProvider`
2. Run `org.apache.dubbo.sample.tri.TriPbConsumerTest`
diff --git a/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/TriSampleConstants.java b/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/TriSampleConstants.java
index c3fbdd7..b62314c 100644
--- a/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/TriSampleConstants.java
+++ b/dubbo-samples-triple/src/main/java/org/apache/dubbo/sample/tri/TriSampleConstants.java
@@ -18,15 +18,26 @@
package org.apache.dubbo.sample.tri;
+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_ALL;
+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_INSTANCE;
+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_INTERFACE;
+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTER_MODE_KEY;
+
public class TriSampleConstants {
// macos 11 later the 50051 is occupied by system (pid=1!!!)
public static final int SERVER_PORT = 50052;
- public static final int DEFAULT_DUBBO_PORT=20880;
+ public static final int DEFAULT_DUBBO_PORT = 20880;
public static final String ZK_ADDRESS = "zookeeper://127.0.0.1:2181";
+ public static final String ZK_ADDRESS_MODE_INSTANCE = "zookeeper://127.0.0.1:2181?" + REGISTER_MODE_KEY + "=" + DEFAULT_REGISTER_MODE_INSTANCE;
+
+ public static final String ZK_ADDRESS_MODE_INTERFACE = "zookeeper://127.0.0.1:2181?" + REGISTER_MODE_KEY + "=" + DEFAULT_REGISTER_MODE_INTERFACE;
+
+ public static final String ZK_ADDRESS_MODE_ALL = "zookeeper://127.0.0.1:2181?" + REGISTER_MODE_KEY + "=" + DEFAULT_REGISTER_MODE_ALL;
+
public static final String HOST = "127.0.0.1";
public static final String DEFAULT_ADDRESS = "tri://" + HOST + ":" + SERVER_PORT;
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BasePbConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BasePbConsumerTest.java
new file mode 100644
index 0000000..3f29262
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BasePbConsumerTest.java
@@ -0,0 +1,134 @@
+package org.apache.dubbo.sample.tri;
+
+import org.apache.dubbo.common.stream.StreamObserver;
+import org.apache.dubbo.rpc.RpcContext;
+import org.apache.dubbo.rpc.RpcException;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author earthchen
+ * @date 2021/9/9
+ **/
+public abstract class BasePbConsumerTest {
+
+ protected static PbGreeter delegate;
+
+ protected static PbGreeterManual delegateManual;
+//
+// @BeforeClass
+// public static void init() {
+// ReferenceConfig<PbGreeter> ref = new ReferenceConfig<>();
+// ref.setInterface(PbGreeter.class);
+// ref.setCheck(false);
+// ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+// ref.setProtocol(CommonConstants.TRIPLE);
+// ref.setLazy(true);
+// ref.setTimeout(10000);
+//
+// ReferenceConfig<PbGreeterManual> ref2 = new ReferenceConfig<>();
+// ref2.setInterface(PbGreeterManual.class);
+// ref2.setCheck(false);
+// ref2.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+// ref2.setProtocol(CommonConstants.TRIPLE);
+// ref2.setLazy(true);
+// ref2.setTimeout(10000);
+//
+// DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+// bootstrap.application(new ApplicationConfig("demo-consumer"))
+//// .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
+// .reference(ref)
+// .reference(ref2)
+// .start();
+//
+// delegate = ref.get();
+// delegateManual = ref2.get();
+// }
+
+ @Test
+ public void serverStream() throws InterruptedException {
+ int n = 10;
+ CountDownLatch latch = new CountDownLatch(n);
+ final GreeterRequest request = GreeterRequest.newBuilder()
+ .setName("request")
+ .build();
+ delegate.greetServerStream(request, new StdoutStreamObserver<GreeterReply>("sayGreeterServerStream") {
+ @Override
+ public void onNext(GreeterReply data) {
+ super.onNext(data);
+ latch.countDown();
+ }
+ });
+ Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
+ }
+
+ @Test
+ public void stream() throws InterruptedException {
+ int n = 10;
+ CountDownLatch latch = new CountDownLatch(n);
+ final GreeterRequest request = GreeterRequest.newBuilder()
+ .setName("stream request")
+ .build();
+ final StreamObserver<GreeterRequest> requestObserver = delegate.greetStream(new StdoutStreamObserver<GreeterReply>("sayGreeterStream") {
+ @Override
+ public void onNext(GreeterReply data) {
+ super.onNext(data);
+ latch.countDown();
+ }
+ });
+ for (int i = 0; i < n; i++) {
+ requestObserver.onNext(request);
+ }
+ requestObserver.onCompleted();
+ Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
+ }
+
+ @Test
+ public void unaryGreeter() {
+ final GreeterReply reply = delegate.greet(GreeterRequest.newBuilder()
+ .setName("name")
+ .build());
+ Assert.assertNotNull(reply);
+ }
+
+
+ @Test(expected = RpcException.class)
+ @Ignore
+ public void clientSendLargeSizeHeader() {
+ StringBuilder sb = new StringBuilder("a");
+ for (int j = 0; j < 15; j++) {
+ sb.append(sb);
+ }
+ sb.setLength(8191);
+ RpcContext.getClientAttachment().setObjectAttachment("large-size-meta", sb.toString());
+ delegate.greet(GreeterRequest.newBuilder().setName("meta").build());
+ RpcContext.getClientAttachment().clearAttachments();
+ }
+
+ @Test
+ public void attachmentTest() {
+ final String key = "user-attachment";
+ final String value = "attachment-value";
+ RpcContext.removeClientAttachment();
+ RpcContext.getClientAttachment().setAttachment(key, value);
+ delegate.greetWithAttachment(GreeterRequest.newBuilder().setName("meta").build());
+ final String returned = (String) RpcContext.getServiceContext().getObjectAttachment(key);
+ Assert.assertEquals(value, returned);
+ }
+
+ @Test
+ public void methodNotFound() {
+ try {
+ delegateManual.methodNonExist(GreeterRequest.newBuilder().setName("meta").build());
+ TimeUnit.SECONDS.sleep(1);
+ } catch (RpcException | InterruptedException e) {
+ Assert.assertTrue(e.getMessage().contains("not found"));
+ }
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BaseTriWrapConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BaseTriWrapConsumerTest.java
new file mode 100644
index 0000000..3c9df9d
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/BaseTriWrapConsumerTest.java
@@ -0,0 +1,138 @@
+package org.apache.dubbo.sample.tri;
+
+import org.apache.dubbo.common.stream.StreamObserver;
+import org.apache.dubbo.rpc.RpcException;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class BaseTriWrapConsumerTest {
+
+ protected static WrapGreeter delegate;
+
+// @BeforeClass
+// public static void initStub() {
+// ReferenceConfig<WrapGreeter> ref = new ReferenceConfig<>();
+// ref.setInterface(WrapGreeter.class);
+// ref.setCheck(false);
+// ref.setTimeout(3000);
+// ref.setProtocol(CommonConstants.TRIPLE);
+// ref.setLazy(true);
+//
+// DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+// bootstrap.application(new ApplicationConfig("demo-consumer"))
+// .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS))
+// .reference(ref)
+// .start();
+// delegate = ref.get();
+// }
+
+ @Test
+ public void sayHelloUnaryRequestVoid() {
+ Assert.assertEquals("hello!void", delegate.sayHelloRequestVoid());
+ }
+
+ @Test
+ public void sayHelloUnaryResponseVoid() {
+ delegate.sayHelloResponseVoid("void");
+ }
+
+ @Test
+ public void sayHelloUnary() {
+ Assert.assertEquals("hello,unary", delegate.sayHello("unary"));
+ }
+
+ @Test(expected = RpcException.class)
+ public void sayHelloException() {
+ delegate.sayHelloException("exception");
+ }
+
+ @Test
+ public void sayHelloServerStream() throws InterruptedException {
+ int n = 10;
+ CountDownLatch latch = new CountDownLatch(n);
+ delegate.sayHelloServerStream("server stream", new StdoutStreamObserver<String>("sayHelloServerStream") {
+ @Override
+ public void onNext(String data) {
+ super.onNext(data);
+ latch.countDown();
+ }
+ });
+ Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
+
+
+ delegate.sayHelloServerStream("server stream", new StreamObserver<String>() {
+ @Override
+ public void onNext(String data) {
+ System.out.println(data);
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ throwable.printStackTrace();
+ }
+
+ @Override
+ public void onCompleted() {
+ System.out.println("onCompleted");
+ }
+ });
+
+
+ StreamObserver<String> request = delegate.sayHelloStream(new StreamObserver<String>() {
+ @Override
+ public void onNext(String data) {
+ System.out.println(data);
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ throwable.printStackTrace();
+ }
+
+ @Override
+ public void onCompleted() {
+ System.out.println("onCompleted");
+ }
+ });
+ for (int i = 0; i < n; i++) {
+ request.onNext("stream request" + i);
+ }
+ request.onCompleted();
+
+
+ }
+
+ @Test
+ public void sayHelloStream() throws InterruptedException {
+ int n = 10;
+ CountDownLatch latch = new CountDownLatch(n);
+ final StreamObserver<String> request = delegate.sayHelloStream(new StdoutStreamObserver<String>("sayHelloStream") {
+ @Override
+ public void onNext(String data) {
+ super.onNext(data);
+ latch.countDown();
+ }
+ });
+ for (int i = 0; i < n; i++) {
+ request.onNext("stream request");
+ }
+ request.onCompleted();
+ Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
+ }
+
+ @Test
+ public void sayHelloLong() {
+ int power = 25;
+ for (int i = 0; i < power; i++) {
+ final int len = (1 << i);
+ final String response = delegate.sayHelloLong(len);
+ System.out.println("Response len:" + response.length());
+ Assert.assertEquals(len, response.length());
+ }
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriPbConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriPbConsumerTest.java
index 74d6d2c..c274649 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriPbConsumerTest.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriPbConsumerTest.java
@@ -1,34 +1,21 @@
package org.apache.dubbo.sample.tri;
import org.apache.dubbo.common.constants.CommonConstants;
-import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
-import org.apache.dubbo.rpc.RpcContext;
-import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.sample.tri.service.PbGreeterManual;
-import org.junit.Assert;
import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-public class TriPbConsumerTest {
-
- private static PbGreeter delegate;
-
- private static PbGreeterManual delegateManual;
+public class TriPbConsumerTest extends BasePbConsumerTest {
@BeforeClass
public static void init() {
ReferenceConfig<PbGreeter> ref = new ReferenceConfig<>();
ref.setInterface(PbGreeter.class);
ref.setCheck(false);
- ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
ref.setProtocol(CommonConstants.TRIPLE);
ref.setLazy(true);
ref.setTimeout(10000);
@@ -36,14 +23,13 @@
ReferenceConfig<PbGreeterManual> ref2 = new ReferenceConfig<>();
ref2.setInterface(PbGreeterManual.class);
ref2.setCheck(false);
- ref2.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
ref2.setProtocol(CommonConstants.TRIPLE);
ref2.setLazy(true);
ref2.setTimeout(10000);
DubboBootstrap bootstrap = DubboBootstrap.getInstance();
bootstrap.application(new ApplicationConfig("demo-consumer"))
-// .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS))
.reference(ref)
.reference(ref2)
.start();
@@ -51,85 +37,4 @@
delegate = ref.get();
delegateManual = ref2.get();
}
-
- @Test
- public void serverStream() throws InterruptedException {
- int n = 10;
- CountDownLatch latch = new CountDownLatch(n);
- final GreeterRequest request = GreeterRequest.newBuilder()
- .setName("request")
- .build();
- delegate.greetServerStream(request, new StdoutStreamObserver<GreeterReply>("sayGreeterServerStream") {
- @Override
- public void onNext(GreeterReply data) {
- super.onNext(data);
- latch.countDown();
- }
- });
- Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
- }
-
- @Test
- public void stream() throws InterruptedException {
- int n = 10;
- CountDownLatch latch = new CountDownLatch(n);
- final GreeterRequest request = GreeterRequest.newBuilder()
- .setName("stream request")
- .build();
- final StreamObserver<GreeterRequest> requestObserver = delegate.greetStream(new StdoutStreamObserver<GreeterReply>("sayGreeterStream") {
- @Override
- public void onNext(GreeterReply data) {
- super.onNext(data);
- latch.countDown();
- }
- });
- for (int i = 0; i < n; i++) {
- requestObserver.onNext(request);
- }
- requestObserver.onCompleted();
- Assert.assertTrue(latch.await(3, TimeUnit.SECONDS));
- }
-
- @Test
- public void unaryGreeter() {
- final GreeterReply reply = delegate.greet(GreeterRequest.newBuilder()
- .setName("name")
- .build());
- Assert.assertNotNull(reply);
- }
-
-
- @Test(expected = RpcException.class)
- @Ignore
- public void clientSendLargeSizeHeader() {
- StringBuilder sb = new StringBuilder("a");
- for (int j = 0; j < 15; j++) {
- sb.append(sb);
- }
- sb.setLength(8191);
- RpcContext.getClientAttachment().setObjectAttachment("large-size-meta", sb.toString());
- delegate.greet(GreeterRequest.newBuilder().setName("meta").build());
- RpcContext.getClientAttachment().clearAttachments();
- }
-
- @Test
- public void attachmentTest() {
- final String key = "user-attachment";
- final String value = "attachment-value";
- RpcContext.removeClientAttachment();
- RpcContext.getClientAttachment().setAttachment(key, value);
- delegate.greetWithAttachment(GreeterRequest.newBuilder().setName("meta").build());
- final String returned = (String) RpcContext.getServiceContext().getObjectAttachment(key);
- Assert.assertEquals(value, returned);
- }
-
- @Test
- public void methodNotFound() {
- try {
- delegateManual.methodNonExist(GreeterRequest.newBuilder().setName("meta").build());
- TimeUnit.SECONDS.sleep(1);
- } catch (RpcException | InterruptedException e) {
- Assert.assertTrue(e.getMessage().contains("not found"));
- }
- }
}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriProvider.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriProvider.java
index 29656b7..75d360b 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriProvider.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriProvider.java
@@ -13,6 +13,7 @@
public class TriProvider {
+
public static void main(String[] args) {
ServiceConfig<PbGreeter> pbService = new ServiceConfig<>();
pbService.setInterface(PbGreeter.class);
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriWrapConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriWrapConsumerTest.java
index 93f39ef..3d91db9 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriWrapConsumerTest.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/TriWrapConsumerTest.java
@@ -1,5 +1,6 @@
package org.apache.dubbo.sample.tri;
+import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
@@ -25,7 +26,7 @@
ref.setInterface(WrapGreeter.class);
ref.setCheck(false);
ref.setTimeout(3000);
- ref.setProtocol("tri");
+ ref.setProtocol(CommonConstants.TRIPLE);
ref.setLazy(true);
DubboBootstrap bootstrap = DubboBootstrap.getInstance();
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/all/TriAllProvider.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/all/TriAllProvider.java
new file mode 100644
index 0000000..3368479
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/all/TriAllProvider.java
@@ -0,0 +1,44 @@
+package org.apache.dubbo.sample.tri.all;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ProtocolConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.ServiceConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+import org.apache.dubbo.sample.tri.service.impl.PbGreeterImpl;
+import org.apache.dubbo.sample.tri.service.impl.WrapGreeterImpl;
+
+
+public class TriAllProvider {
+
+ public static void main(String[] args) {
+ ServiceConfig<PbGreeter> pbService = new ServiceConfig<>();
+ pbService.setInterface(PbGreeter.class);
+ PbGreeterImpl greeterImpl = new PbGreeterImpl();
+ pbService.setRef(greeterImpl);
+
+ ServiceConfig<PbGreeterManual> pbManualService = new ServiceConfig<>();
+ pbManualService.setInterface(PbGreeterManual.class);
+ pbManualService.setRef(new PbGreeterImpl());
+
+ ServiceConfig<WrapGreeter> wrapService = new ServiceConfig<>();
+ wrapService.setInterface(WrapGreeter.class);
+ wrapService.setRef(new WrapGreeterImpl());
+
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-provider"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_ALL))
+ .protocol(new ProtocolConfig(CommonConstants.TRIPLE, TriSampleConstants.SERVER_PORT))
+ .service(pbService)
+ .service(pbManualService)
+ .service(wrapService)
+ .start()
+ .await();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppPbConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppPbConsumerTest.java
new file mode 100644
index 0000000..2ff92b3
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppPbConsumerTest.java
@@ -0,0 +1,42 @@
+package org.apache.dubbo.sample.tri.application;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BasePbConsumerTest;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+
+import org.junit.BeforeClass;
+
+public class TriAppPbConsumerTest extends BasePbConsumerTest {
+
+ @BeforeClass
+ public static void init() {
+ ReferenceConfig<PbGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(PbGreeter.class);
+ ref.setCheck(false);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+ ref.setTimeout(10000);
+
+ ReferenceConfig<PbGreeterManual> ref2 = new ReferenceConfig<>();
+ ref2.setInterface(PbGreeterManual.class);
+ ref2.setCheck(false);
+ ref2.setProtocol(CommonConstants.TRIPLE);
+ ref2.setLazy(true);
+ ref2.setTimeout(10000);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INSTANCE))
+ .reference(ref)
+ .reference(ref2)
+ .start();
+ delegate = ref.get();
+ delegateManual = ref2.get();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppProvider.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppProvider.java
new file mode 100644
index 0000000..214a6f8
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppProvider.java
@@ -0,0 +1,43 @@
+package org.apache.dubbo.sample.tri.application;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ProtocolConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.ServiceConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+import org.apache.dubbo.sample.tri.service.impl.PbGreeterImpl;
+import org.apache.dubbo.sample.tri.service.impl.WrapGreeterImpl;
+
+
+public class TriAppProvider {
+ public static void main(String[] args) {
+ ServiceConfig<PbGreeter> pbService = new ServiceConfig<>();
+ pbService.setInterface(PbGreeter.class);
+ PbGreeterImpl greeterImpl = new PbGreeterImpl();
+ pbService.setRef(greeterImpl);
+
+ ServiceConfig<PbGreeterManual> pbManualService = new ServiceConfig<>();
+ pbManualService.setInterface(PbGreeterManual.class);
+ pbManualService.setRef(new PbGreeterImpl());
+
+ ServiceConfig<WrapGreeter> wrapService = new ServiceConfig<>();
+ wrapService.setInterface(WrapGreeter.class);
+ wrapService.setRef(new WrapGreeterImpl());
+
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-provider"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INSTANCE))
+ .protocol(new ProtocolConfig(CommonConstants.TRIPLE, TriSampleConstants.SERVER_PORT))
+ .service(pbService)
+ .service(pbManualService)
+ .service(wrapService)
+ .start()
+ .await();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppWrapConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppWrapConsumerTest.java
new file mode 100644
index 0000000..d56d0d7
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/application/TriAppWrapConsumerTest.java
@@ -0,0 +1,34 @@
+package org.apache.dubbo.sample.tri.application;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BaseTriWrapConsumerTest;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+
+import org.junit.BeforeClass;
+
+public class TriAppWrapConsumerTest extends BaseTriWrapConsumerTest {
+
+ @BeforeClass
+ public static void initStub() {
+ ReferenceConfig<WrapGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(WrapGreeter.class);
+ ref.setCheck(false);
+ ref.setTimeout(3000);
+ ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INSTANCE))
+ .reference(ref)
+ .start();
+ delegate = ref.get();
+ }
+
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectPbConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectPbConsumerTest.java
new file mode 100644
index 0000000..c0b0aef
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectPbConsumerTest.java
@@ -0,0 +1,42 @@
+package org.apache.dubbo.sample.tri.direct;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BasePbConsumerTest;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+
+import org.junit.BeforeClass;
+
+public class TriDirectPbConsumerTest extends BasePbConsumerTest {
+
+ @BeforeClass
+ public static void init() {
+ ReferenceConfig<PbGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(PbGreeter.class);
+ ref.setCheck(false);
+ ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+ ref.setTimeout(10000);
+
+ ReferenceConfig<PbGreeterManual> ref2 = new ReferenceConfig<>();
+ ref2.setInterface(PbGreeterManual.class);
+ ref2.setCheck(false);
+ ref2.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+ ref2.setProtocol(CommonConstants.TRIPLE);
+ ref2.setLazy(true);
+ ref2.setTimeout(10000);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .reference(ref)
+ .reference(ref2)
+ .start();
+ delegate = ref.get();
+ delegateManual = ref2.get();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectWrapConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectWrapConsumerTest.java
new file mode 100644
index 0000000..c47afb5
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/direct/TriDirectWrapConsumerTest.java
@@ -0,0 +1,32 @@
+package org.apache.dubbo.sample.tri.direct;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BaseTriWrapConsumerTest;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+
+import org.junit.BeforeClass;
+
+public class TriDirectWrapConsumerTest extends BaseTriWrapConsumerTest {
+
+ @BeforeClass
+ public static void initStub() {
+ ReferenceConfig<WrapGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(WrapGreeter.class);
+ ref.setCheck(false);
+ ref.setTimeout(3000);
+ ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .reference(ref)
+ .start();
+ delegate = ref.get();
+ }
+
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcConsumerTest.java
similarity index 92%
rename from dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcConsumerTest.java
rename to dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcConsumerTest.java
index 684c733..f58dab3 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcConsumerTest.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcConsumerTest.java
@@ -1,4 +1,10 @@
-package org.apache.dubbo.sample.tri;
+package org.apache.dubbo.sample.tri.grpc;
+
+import org.apache.dubbo.sample.tri.GreeterReply;
+import org.apache.dubbo.sample.tri.GreeterRequest;
+import org.apache.dubbo.sample.tri.PbGreeterGrpc;
+import org.apache.dubbo.sample.tri.StdoutStreamObserver;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
@@ -38,7 +44,6 @@
TimeUnit.SECONDS.sleep(1);
}
-
@Test
public void serverStream() throws InterruptedException {
int n = 10;
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcProvider.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcProvider.java
similarity index 96%
rename from dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcProvider.java
rename to dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcProvider.java
index 0559fcf..6287b4e 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcProvider.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/grpc/GrpcProvider.java
@@ -1,5 +1,6 @@
-package org.apache.dubbo.sample.tri;
+package org.apache.dubbo.sample.tri.grpc;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
import org.apache.dubbo.sample.tri.service.impl.GrpcPbGreeterImpl;
import org.apache.dubbo.sample.tri.service.impl.PbGreeterImpl;
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcStreamObserverAdapter.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/GrpcStreamObserverAdapter.java
similarity index 93%
rename from dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcStreamObserverAdapter.java
rename to dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/GrpcStreamObserverAdapter.java
index af5985e..91cbef4 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/GrpcStreamObserverAdapter.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/GrpcStreamObserverAdapter.java
@@ -1,4 +1,4 @@
-package org.apache.dubbo.sample.tri;
+package org.apache.dubbo.sample.tri.helper;
import io.grpc.stub.StreamObserver;
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/StreamObserverAdapter.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/StreamObserverAdapter.java
similarity index 92%
rename from dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/StreamObserverAdapter.java
rename to dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/StreamObserverAdapter.java
index 5255c6e..614f213 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/StreamObserverAdapter.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/helper/StreamObserverAdapter.java
@@ -1,4 +1,4 @@
-package org.apache.dubbo.sample.tri;
+package org.apache.dubbo.sample.tri.helper;
import org.apache.dubbo.common.stream.StreamObserver;
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfacePbConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfacePbConsumerTest.java
new file mode 100644
index 0000000..aea094d
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfacePbConsumerTest.java
@@ -0,0 +1,42 @@
+package org.apache.dubbo.sample.tri.inter;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BasePbConsumerTest;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+
+import org.junit.BeforeClass;
+
+public class TriInterfacePbConsumerTest extends BasePbConsumerTest {
+
+ @BeforeClass
+ public static void init() {
+ ReferenceConfig<PbGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(PbGreeter.class);
+ ref.setCheck(false);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+ ref.setTimeout(10000);
+
+ ReferenceConfig<PbGreeterManual> ref2 = new ReferenceConfig<>();
+ ref2.setInterface(PbGreeterManual.class);
+ ref2.setCheck(false);
+ ref2.setProtocol(CommonConstants.TRIPLE);
+ ref2.setLazy(true);
+ ref2.setTimeout(10000);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INTERFACE))
+ .reference(ref)
+ .reference(ref2)
+ .start();
+ delegate = ref.get();
+ delegateManual = ref2.get();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceProvider.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceProvider.java
new file mode 100644
index 0000000..c01e98e
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceProvider.java
@@ -0,0 +1,44 @@
+package org.apache.dubbo.sample.tri.inter;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ProtocolConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.ServiceConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.PbGreeter;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.PbGreeterManual;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+import org.apache.dubbo.sample.tri.service.impl.PbGreeterImpl;
+import org.apache.dubbo.sample.tri.service.impl.WrapGreeterImpl;
+
+
+public class TriInterfaceProvider {
+
+ public static void main(String[] args) {
+ ServiceConfig<PbGreeter> pbService = new ServiceConfig<>();
+ pbService.setInterface(PbGreeter.class);
+ PbGreeterImpl greeterImpl = new PbGreeterImpl();
+ pbService.setRef(greeterImpl);
+
+ ServiceConfig<PbGreeterManual> pbManualService = new ServiceConfig<>();
+ pbManualService.setInterface(PbGreeterManual.class);
+ pbManualService.setRef(new PbGreeterImpl());
+
+ ServiceConfig<WrapGreeter> wrapService = new ServiceConfig<>();
+ wrapService.setInterface(WrapGreeter.class);
+ wrapService.setRef(new WrapGreeterImpl());
+
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-provider"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INTERFACE))
+ .protocol(new ProtocolConfig(CommonConstants.TRIPLE, TriSampleConstants.SERVER_PORT))
+ .service(pbService)
+ .service(pbManualService)
+ .service(wrapService)
+ .start()
+ .await();
+ }
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceWrapConsumerTest.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceWrapConsumerTest.java
new file mode 100644
index 0000000..e69b372
--- /dev/null
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/inter/TriInterfaceWrapConsumerTest.java
@@ -0,0 +1,34 @@
+package org.apache.dubbo.sample.tri.inter;
+
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ReferenceConfig;
+import org.apache.dubbo.config.RegistryConfig;
+import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.sample.tri.BaseTriWrapConsumerTest;
+import org.apache.dubbo.sample.tri.TriSampleConstants;
+import org.apache.dubbo.sample.tri.service.WrapGreeter;
+
+import org.junit.BeforeClass;
+
+public class TriInterfaceWrapConsumerTest extends BaseTriWrapConsumerTest {
+
+ @BeforeClass
+ public static void initStub() {
+ ReferenceConfig<WrapGreeter> ref = new ReferenceConfig<>();
+ ref.setInterface(WrapGreeter.class);
+ ref.setCheck(false);
+ ref.setTimeout(3000);
+ ref.setUrl(TriSampleConstants.DEFAULT_ADDRESS);
+ ref.setProtocol(CommonConstants.TRIPLE);
+ ref.setLazy(true);
+
+ DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+ bootstrap.application(new ApplicationConfig("demo-consumer"))
+ .registry(new RegistryConfig(TriSampleConstants.ZK_ADDRESS_MODE_INTERFACE))
+ .reference(ref)
+ .start();
+ delegate = ref.get();
+ }
+
+}
diff --git a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/service/impl/GrpcPbGreeterImpl.java b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/service/impl/GrpcPbGreeterImpl.java
index 30f0c7b..e0736e8 100644
--- a/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/service/impl/GrpcPbGreeterImpl.java
+++ b/dubbo-samples-triple/src/test/java/org/apache/dubbo/sample/tri/service/impl/GrpcPbGreeterImpl.java
@@ -2,10 +2,10 @@
import org.apache.dubbo.sample.tri.GreeterReply;
import org.apache.dubbo.sample.tri.GreeterRequest;
-import org.apache.dubbo.sample.tri.GrpcStreamObserverAdapter;
+import org.apache.dubbo.sample.tri.helper.GrpcStreamObserverAdapter;
import org.apache.dubbo.sample.tri.PbGreeter;
import org.apache.dubbo.sample.tri.PbGreeterGrpc;
-import org.apache.dubbo.sample.tri.StreamObserverAdapter;
+import org.apache.dubbo.sample.tri.helper.StreamObserverAdapter;
import io.grpc.stub.StreamObserver;