From 767b33c9f5b32c4c1d153a75841f05e028add250 Mon Sep 17 00:00:00 2001 From: yashvi1912 Date: Tue, 31 Mar 2026 18:42:35 +0530 Subject: [PATCH] Initial commit of dubbo-samples --- .../samples/tri/unary/DubboGreeterTriple.java | 11 +-- .../dubbo/samples/tri/unary/Greeter.java | 6 ++ .../dubbo/samples/tri/unary/GreeterReply.java | 32 ++----- .../samples/tri/unary/GreeterRequest.java | 32 ++----- .../demo/idl/DubboGreeterTriple.java | 11 +-- .../springboot/demo/idl/GreeterReply.java | 32 ++----- .../springboot/demo/idl/GreeterRequest.java | 32 ++----- .../demo/idl/DubboGreeterTriple.java | 11 +-- .../springboot/demo/idl/GreeterReply.java | 32 ++----- .../springboot/demo/idl/GreeterRequest.java | 32 ++----- .../Provider/pom.xml | 85 +++++++++++++++++++ .../samples/async/result/DemoServiceImpl.java | 18 ++++ .../async/result/ProviderApplication.java | 16 ++++ .../src/main/resources/application.yml | 14 +++ .../dubbo-samples-async-result/api/pom.xml | 81 ++++++++++++++++++ .../sample/async/result/DemoService.java | 5 ++ .../consumer/pom.xml | 41 +++++++++ .../async/result/ConsumerApplication.java | 25 ++++++ .../src/main/resources/application.yml | 10 +++ .../docker/consumer/dockerfile | 10 +++ .../docker/docker-compose.yml | 25 ++++++ .../docker/provider/dockerfile | 10 +++ .../docker/run-test.sh | 29 +++++++ 2-advanced/dubbo-samples-async-result/pom.xml | 39 +++++++++ 2-advanced/pom.xml | 1 + 25 files changed, 487 insertions(+), 153 deletions(-) create mode 100644 2-advanced/dubbo-samples-async-result/Provider/pom.xml create mode 100644 2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/DemoServiceImpl.java create mode 100644 2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/ProviderApplication.java create mode 100644 2-advanced/dubbo-samples-async-result/Provider/src/main/resources/application.yml create mode 100644 2-advanced/dubbo-samples-async-result/api/pom.xml create mode 100644 2-advanced/dubbo-samples-async-result/api/src/main/java/org/apache/dubbo/sample/async/result/DemoService.java create mode 100644 2-advanced/dubbo-samples-async-result/consumer/pom.xml create mode 100644 2-advanced/dubbo-samples-async-result/consumer/src/main/java/org/apache/dubbo/samples/async/result/ConsumerApplication.java create mode 100644 2-advanced/dubbo-samples-async-result/consumer/src/main/resources/application.yml create mode 100644 2-advanced/dubbo-samples-async-result/docker/consumer/dockerfile create mode 100644 2-advanced/dubbo-samples-async-result/docker/docker-compose.yml create mode 100644 2-advanced/dubbo-samples-async-result/docker/provider/dockerfile create mode 100644 2-advanced/dubbo-samples-async-result/docker/run-test.sh create mode 100644 2-advanced/dubbo-samples-async-result/pom.xml diff --git a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/DubboGreeterTriple.java b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/DubboGreeterTriple.java index 1459d0adde..cbf5efd571 100644 --- a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/DubboGreeterTriple.java +++ b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/DubboGreeterTriple.java @@ -17,8 +17,8 @@ package org.apache.dubbo.samples.tri.unary; -import org.apache.dubbo.common.URL; import org.apache.dubbo.common.stream.StreamObserver; +import org.apache.dubbo.common.URL; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.PathResolver; import org.apache.dubbo.rpc.RpcException; @@ -29,18 +29,20 @@ import org.apache.dubbo.rpc.model.StubMethodDescriptor; import org.apache.dubbo.rpc.model.StubServiceDescriptor; import org.apache.dubbo.rpc.service.Destroyable; +import org.apache.dubbo.rpc.stub.BiStreamMethodHandler; +import org.apache.dubbo.rpc.stub.ServerStreamMethodHandler; import org.apache.dubbo.rpc.stub.StubInvocationUtil; import org.apache.dubbo.rpc.stub.StubInvoker; import org.apache.dubbo.rpc.stub.StubMethodHandler; import org.apache.dubbo.rpc.stub.StubSuppliers; import org.apache.dubbo.rpc.stub.UnaryStubMethodHandler; +import com.google.protobuf.Message; + import java.util.HashMap; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; - -import com.google.protobuf.Message; +import java.util.concurrent.CompletableFuture; public final class DubboGreeterTriple { @@ -101,7 +103,6 @@ public org.apache.dubbo.samples.tri.unary.GreeterReply greet(org.apache.dubbo.sa return StubInvocationUtil.unaryCall(invoker, greetMethod, request); } - @Override public CompletableFuture greetAsync(org.apache.dubbo.samples.tri.unary.GreeterRequest request){ return StubInvocationUtil.unaryCall(invoker, greetAsyncMethod, request); } diff --git a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/Greeter.java b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/Greeter.java index 36ddf1d6da..a86fe5b2a5 100644 --- a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/Greeter.java +++ b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/Greeter.java @@ -17,6 +17,12 @@ package org.apache.dubbo.samples.tri.unary; +import org.apache.dubbo.common.stream.StreamObserver; +import com.google.protobuf.Message; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; import java.util.concurrent.CompletableFuture; public interface Greeter extends org.apache.dubbo.rpc.model.DubboStub { diff --git a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterReply.java b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterReply.java index 6a65dfa97b..58ac498d3e 100644 --- a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterReply.java +++ b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterReply.java @@ -52,7 +52,7 @@ public java.lang.String getMessage() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); message_ = s; @@ -68,7 +68,7 @@ public java.lang.String getMessage() { getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; @@ -82,12 +82,8 @@ public java.lang.String getMessage() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.samples.tri.unary.GreeterReply other = (org.apache.dubbo.samples.tri.unary.GreeterReply) obj; if (!getMessage() - .equals(other.getMessage())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getMessage())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.samples.tri.unary.GreeterReply other) { - if (other == org.apache.dubbo.samples.tri.unary.GreeterReply.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.samples.tri.unary.GreeterReply.getDefaultInstance()) return this; if (!other.getMessage().isEmpty()) { message_ = other.message_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string message = 1; * @return The message. */ - @Override public java.lang.String getMessage() { java.lang.Object ref = message_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getMessage() { * string message = 1; * @return The bytes for message. */ - @Override public com.google.protobuf.ByteString getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; diff --git a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterRequest.java b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterRequest.java index 27b3279ffd..712cd868f3 100644 --- a/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterRequest.java +++ b/1-basic/dubbo-samples-api-idl/build/generated/source/proto/main/java/org/apache/dubbo/samples/tri/unary/GreeterRequest.java @@ -52,7 +52,7 @@ public java.lang.String getName() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; @@ -68,7 +68,7 @@ public java.lang.String getName() { getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; @@ -82,12 +82,8 @@ public java.lang.String getName() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.samples.tri.unary.GreeterRequest other = (org.apache.dubbo.samples.tri.unary.GreeterRequest) obj; if (!getName() - .equals(other.getName())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getName())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.samples.tri.unary.GreeterRequest other) { - if (other == org.apache.dubbo.samples.tri.unary.GreeterRequest.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.samples.tri.unary.GreeterRequest.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string name = 1; * @return The name. */ - @Override public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getName() { * string name = 1; * @return The bytes for name. */ - @Override public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java index 503f254961..e40fdeb281 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java @@ -17,8 +17,8 @@ package org.apache.dubbo.springboot.demo.idl; -import org.apache.dubbo.common.URL; import org.apache.dubbo.common.stream.StreamObserver; +import org.apache.dubbo.common.URL; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.PathResolver; import org.apache.dubbo.rpc.RpcException; @@ -29,18 +29,20 @@ import org.apache.dubbo.rpc.model.StubMethodDescriptor; import org.apache.dubbo.rpc.model.StubServiceDescriptor; import org.apache.dubbo.rpc.service.Destroyable; +import org.apache.dubbo.rpc.stub.BiStreamMethodHandler; +import org.apache.dubbo.rpc.stub.ServerStreamMethodHandler; import org.apache.dubbo.rpc.stub.StubInvocationUtil; import org.apache.dubbo.rpc.stub.StubInvoker; import org.apache.dubbo.rpc.stub.StubMethodHandler; import org.apache.dubbo.rpc.stub.StubSuppliers; import org.apache.dubbo.rpc.stub.UnaryStubMethodHandler; +import com.google.protobuf.Message; + import java.util.HashMap; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; - -import com.google.protobuf.Message; +import java.util.concurrent.CompletableFuture; public final class DubboGreeterTriple { @@ -101,7 +103,6 @@ public org.apache.dubbo.springboot.demo.idl.GreeterReply greet(org.apache.dubbo. return StubInvocationUtil.unaryCall(invoker, greetMethod, request); } - @Override public CompletableFuture greetAsync(org.apache.dubbo.springboot.demo.idl.GreeterRequest request){ return StubInvocationUtil.unaryCall(invoker, greetAsyncMethod, request); } diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java index 9db546a2fe..0cbafe853a 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java @@ -52,7 +52,7 @@ public java.lang.String getMessage() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); message_ = s; @@ -68,7 +68,7 @@ public java.lang.String getMessage() { getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; @@ -82,12 +82,8 @@ public java.lang.String getMessage() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.springboot.demo.idl.GreeterReply other = (org.apache.dubbo.springboot.demo.idl.GreeterReply) obj; if (!getMessage() - .equals(other.getMessage())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getMessage())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.springboot.demo.idl.GreeterReply other) { - if (other == org.apache.dubbo.springboot.demo.idl.GreeterReply.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.springboot.demo.idl.GreeterReply.getDefaultInstance()) return this; if (!other.getMessage().isEmpty()) { message_ = other.message_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string message = 1; * @return The message. */ - @Override public java.lang.String getMessage() { java.lang.Object ref = message_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getMessage() { * string message = 1; * @return The bytes for message. */ - @Override public com.google.protobuf.ByteString getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java index 656263d784..d8c3777514 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-consumer/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java @@ -52,7 +52,7 @@ public java.lang.String getName() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; @@ -68,7 +68,7 @@ public java.lang.String getName() { getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; @@ -82,12 +82,8 @@ public java.lang.String getName() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.springboot.demo.idl.GreeterRequest other = (org.apache.dubbo.springboot.demo.idl.GreeterRequest) obj; if (!getName() - .equals(other.getName())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getName())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.springboot.demo.idl.GreeterRequest other) { - if (other == org.apache.dubbo.springboot.demo.idl.GreeterRequest.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.springboot.demo.idl.GreeterRequest.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string name = 1; * @return The name. */ - @Override public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getName() { * string name = 1; * @return The bytes for name. */ - @Override public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java index 503f254961..e40fdeb281 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/DubboGreeterTriple.java @@ -17,8 +17,8 @@ package org.apache.dubbo.springboot.demo.idl; -import org.apache.dubbo.common.URL; import org.apache.dubbo.common.stream.StreamObserver; +import org.apache.dubbo.common.URL; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.PathResolver; import org.apache.dubbo.rpc.RpcException; @@ -29,18 +29,20 @@ import org.apache.dubbo.rpc.model.StubMethodDescriptor; import org.apache.dubbo.rpc.model.StubServiceDescriptor; import org.apache.dubbo.rpc.service.Destroyable; +import org.apache.dubbo.rpc.stub.BiStreamMethodHandler; +import org.apache.dubbo.rpc.stub.ServerStreamMethodHandler; import org.apache.dubbo.rpc.stub.StubInvocationUtil; import org.apache.dubbo.rpc.stub.StubInvoker; import org.apache.dubbo.rpc.stub.StubMethodHandler; import org.apache.dubbo.rpc.stub.StubSuppliers; import org.apache.dubbo.rpc.stub.UnaryStubMethodHandler; +import com.google.protobuf.Message; + import java.util.HashMap; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; - -import com.google.protobuf.Message; +import java.util.concurrent.CompletableFuture; public final class DubboGreeterTriple { @@ -101,7 +103,6 @@ public org.apache.dubbo.springboot.demo.idl.GreeterReply greet(org.apache.dubbo. return StubInvocationUtil.unaryCall(invoker, greetMethod, request); } - @Override public CompletableFuture greetAsync(org.apache.dubbo.springboot.demo.idl.GreeterRequest request){ return StubInvocationUtil.unaryCall(invoker, greetAsyncMethod, request); } diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java index 9db546a2fe..0cbafe853a 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterReply.java @@ -52,7 +52,7 @@ public java.lang.String getMessage() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); message_ = s; @@ -68,7 +68,7 @@ public java.lang.String getMessage() { getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; @@ -82,12 +82,8 @@ public java.lang.String getMessage() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.springboot.demo.idl.GreeterReply other = (org.apache.dubbo.springboot.demo.idl.GreeterReply) obj; if (!getMessage() - .equals(other.getMessage())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getMessage())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.springboot.demo.idl.GreeterReply other) { - if (other == org.apache.dubbo.springboot.demo.idl.GreeterReply.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.springboot.demo.idl.GreeterReply.getDefaultInstance()) return this; if (!other.getMessage().isEmpty()) { message_ = other.message_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string message = 1; * @return The message. */ - @Override public java.lang.String getMessage() { java.lang.Object ref = message_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getMessage() { * string message = 1; * @return The bytes for message. */ - @Override public com.google.protobuf.ByteString getMessageBytes() { java.lang.Object ref = message_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); message_ = b; diff --git a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java index 656263d784..d8c3777514 100644 --- a/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java +++ b/1-basic/dubbo-samples-spring-boot-idl/dubbo-samples-spring-boot-idl-provider/build/generated/source/proto/main/java/org/apache/dubbo/springboot/demo/idl/GreeterRequest.java @@ -52,7 +52,7 @@ public java.lang.String getName() { if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { - com.google.protobuf.ByteString bs = + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; @@ -68,7 +68,7 @@ public java.lang.String getName() { getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; @@ -82,12 +82,8 @@ public java.lang.String getName() { @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) { - return true; - } - if (isInitialized == 0) { - return false; - } + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; @@ -105,9 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) @java.lang.Override public int getSerializedSize() { int size = memoizedSize; - if (size != -1) { - return size; - } + if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { @@ -129,12 +123,8 @@ public boolean equals(final java.lang.Object obj) { org.apache.dubbo.springboot.demo.idl.GreeterRequest other = (org.apache.dubbo.springboot.demo.idl.GreeterRequest) obj; if (!getName() - .equals(other.getName())) { - return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) { - return false; - } + .equals(other.getName())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -326,9 +316,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(org.apache.dubbo.springboot.demo.idl.GreeterRequest other) { - if (other == org.apache.dubbo.springboot.demo.idl.GreeterRequest.getDefaultInstance()) { - return this; - } + if (other == org.apache.dubbo.springboot.demo.idl.GreeterRequest.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; bitField0_ |= 0x00000001; @@ -387,7 +375,6 @@ public Builder mergeFrom( * string name = 1; * @return The name. */ - @Override public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { @@ -404,12 +391,11 @@ public java.lang.String getName() { * string name = 1; * @return The bytes for name. */ - @Override public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { - com.google.protobuf.ByteString b = + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; diff --git a/2-advanced/dubbo-samples-async-result/Provider/pom.xml b/2-advanced/dubbo-samples-async-result/Provider/pom.xml new file mode 100644 index 0000000000..1a4769527c --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/Provider/pom.xml @@ -0,0 +1,85 @@ + + 4.0.0 + + org.apache.dubbo.sample + dubbo-samples-async-result-provider + 1.0-SNAPSHOT + jar + + + 17 + 3.3.2 + 3.3.6-SNAPSHOT + + + + + apache.snapshots + Apache Snapshots + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + + + + + org.apache.dubbo + dubbo-spring-boot-starter + ${dubbo.version} + + + + + org.springframework.boot + spring-boot-starter + ${spring.boot.version} + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${java.version} + ${java.version} + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + + + + + + + + + + + + + + + diff --git a/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/DemoServiceImpl.java b/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/DemoServiceImpl.java new file mode 100644 index 0000000000..4de89cfd95 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/DemoServiceImpl.java @@ -0,0 +1,18 @@ +package org.apache.dubbo.samples.async.result.provider; + +import org.apache.dubbo.config.annotation.DubboService; +import org.apache.dubbo.samples.async.result.api.DemoService; + +@DubboService +public class DemoServiceImpl implements DemoService { + + @Override + public String sayHello(String name) { + // Synchronous return matching API + return "Hello, " + name; + } +} + + + + diff --git a/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/ProviderApplication.java b/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/ProviderApplication.java new file mode 100644 index 0000000000..0761d7f7e9 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/Provider/src/main/java/org/apache/dubbo/samples/async/result/ProviderApplication.java @@ -0,0 +1,16 @@ +package org.apache.dubbo.samples.async.result.provider; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ProviderApplication { + + public static void main(String[] args) { + SpringApplication.run(ProviderApplication.class, args); + } +} + + + + diff --git a/2-advanced/dubbo-samples-async-result/Provider/src/main/resources/application.yml b/2-advanced/dubbo-samples-async-result/Provider/src/main/resources/application.yml new file mode 100644 index 0000000000..1aed935f23 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/Provider/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + main: + web-application-type: none + +dubbo: + application: + name: async-result-provider + protocol: + name: dubbo + port: 20880 + registry: + address: zookeeper://127.0.0.1:2181 + scan: + base-packages: org.apache.dubbo.samples.asyncresult diff --git a/2-advanced/dubbo-samples-async-result/api/pom.xml b/2-advanced/dubbo-samples-async-result/api/pom.xml new file mode 100644 index 0000000000..50bc180b19 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/api/pom.xml @@ -0,0 +1,81 @@ + + 4.0.0 + + org.apache.dubbo.sample + dubbo-samples-async-result-api + 1.0-SNAPSHOT + jar + + dubbo-samples-async-result-api + + + 17 + 3.3.4 + 2.15.2 + + + + + + org.apache.dubbo + dubbo + ${dubbo.version} + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + + + + + apache.snapshots + Apache Snapshots + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${java.version} + ${java.version} + + + + + + + + + diff --git a/2-advanced/dubbo-samples-async-result/api/src/main/java/org/apache/dubbo/sample/async/result/DemoService.java b/2-advanced/dubbo-samples-async-result/api/src/main/java/org/apache/dubbo/sample/async/result/DemoService.java new file mode 100644 index 0000000000..cbc9ba203c --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/api/src/main/java/org/apache/dubbo/sample/async/result/DemoService.java @@ -0,0 +1,5 @@ +package org.apache.dubbo.samples.async.result.api; + +public interface DemoService { + String sayHello(String name); +} diff --git a/2-advanced/dubbo-samples-async-result/consumer/pom.xml b/2-advanced/dubbo-samples-async-result/consumer/pom.xml new file mode 100644 index 0000000000..7dba585bde --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/consumer/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.apache.dubbo.sample + dubbo-sample-async-consumer + 1.0-SNAPSHOT + jar + + + + + org.apache.dubbo.sample + async-result-api + 1.0-SNAPSHOT + + + + + org.apache.dubbo + dubbo + 3.3.6 + + + + + com.fasterxml.jackson.core + jackson-databind + 2.16.4 + + + + + + + + + diff --git a/2-advanced/dubbo-samples-async-result/consumer/src/main/java/org/apache/dubbo/samples/async/result/ConsumerApplication.java b/2-advanced/dubbo-samples-async-result/consumer/src/main/java/org/apache/dubbo/samples/async/result/ConsumerApplication.java new file mode 100644 index 0000000000..00913ef4fd --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/consumer/src/main/java/org/apache/dubbo/samples/async/result/ConsumerApplication.java @@ -0,0 +1,25 @@ +package org.apache.dubbo.sample.async.result.consumer; + +import org.apache.dubbo.config.ApplicationConfig; +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.bootstrap.DubboBootstrap; +import org.apache.dubbo.sample.async.result.api.DemoService; + +import java.util.concurrent.CompletableFuture; + +public class ConsumerApplication { + public static void main(String[] args) throws Exception { + ReferenceConfig reference = new ReferenceConfig<>(); + reference.setInterface(DemoService.class); + + DubboBootstrap bootstrap = DubboBootstrap.getInstance(); + bootstrap.application(new ApplicationConfig("async-result-consumer")) + .reference(reference) + .start(); + + DemoService demoService = reference.get(); + CompletableFuture result = demoService.sayHello("Dubbo"); + System.out.println("Result: " + result.get()); + } +} + diff --git a/2-advanced/dubbo-samples-async-result/consumer/src/main/resources/application.yml b/2-advanced/dubbo-samples-async-result/consumer/src/main/resources/application.yml new file mode 100644 index 0000000000..0cabfdb45d --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/consumer/src/main/resources/application.yml @@ -0,0 +1,10 @@ +spring: + main: + web-application-type: none + +dubbo: + application: + name: async-result-consumer + registry: + address: zookeeper://127.0.0.1:2181 + diff --git a/2-advanced/dubbo-samples-async-result/docker/consumer/dockerfile b/2-advanced/dubbo-samples-async-result/docker/consumer/dockerfile new file mode 100644 index 0000000000..14af589c52 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/docker/consumer/dockerfile @@ -0,0 +1,10 @@ +FROM openjdk:8-jdk-alpine + +WORKDIR /app + +# Copy built consumer jar +COPY ../../dubbo-samples-async-result-consumer/target/*.jar app.jar + +EXPOSE 20880 + +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/2-advanced/dubbo-samples-async-result/docker/docker-compose.yml b/2-advanced/dubbo-samples-async-result/docker/docker-compose.yml new file mode 100644 index 0000000000..2ffafe4aab --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/docker/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.8" + +services: + provider: + build: + context: ./provider + container_name: dubbo-samples-async-result-provider + ports: + - "20880:20880" + networks: + - dubbo-network + + consumer: + build: + context: ./consumer + container_name: dubbo-samples-async-result-consumer + depends_on: + - provider + networks: + - dubbo-network + +networks: + dubbo-network: + driver: bridge + diff --git a/2-advanced/dubbo-samples-async-result/docker/provider/dockerfile b/2-advanced/dubbo-samples-async-result/docker/provider/dockerfile new file mode 100644 index 0000000000..454c82030b --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/docker/provider/dockerfile @@ -0,0 +1,10 @@ +FROM openjdk:8-jdk-alpine + +WORKDIR /app + +# Copy built provider jar +COPY ../../dubbo-samples-async-result-provider/target/*.jar app.jar + +EXPOSE 20880 + +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/2-advanced/dubbo-samples-async-result/docker/run-test.sh b/2-advanced/dubbo-samples-async-result/docker/run-test.sh new file mode 100644 index 0000000000..6dca83876c --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/docker/run-test.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e + +PROJECT_ROOT=$(cd "$(dirname "$0")/.." && pwd) + +echo ">>> Building project..." +mvn clean package -pl 2-advanced/dubbo-samples-async-result -am -DskipTests + +echo ">>> Starting Docker containers..." +cd "$PROJECT_ROOT/docker" +docker-compose up --build -d + +echo ">>> Waiting for services to start..." +sleep 15 + +echo ">>> Running async result test..." +docker logs dubbo-samples-async-result-consumer | tee consumer.log + +echo ">>> Checking for success keyword in logs..." +if grep -q "Async result received" consumer.log; then + echo "✅ Async result sample ran successfully." + exit 0 +else + echo "❌ Async result test failed." + exit 1 +fi + +echo ">>> Cleaning up..." +docker-compose down diff --git a/2-advanced/dubbo-samples-async-result/pom.xml b/2-advanced/dubbo-samples-async-result/pom.xml new file mode 100644 index 0000000000..dc1bcdc2d3 --- /dev/null +++ b/2-advanced/dubbo-samples-async-result/pom.xml @@ -0,0 +1,39 @@ + + 4.0.0 + + org.apache.dubbo.sample + dubbo-samples-async-result + 1.0-SNAPSHOT + pom + dubbo-samples-async-result + + + api + Provider + Consumer + + + + 17 + 3.3.5 + 3.2.0 + + + + + + org.apache.dubbo + dubbo-bom + ${dubbo.version} + pom + import + + + + + + + + diff --git a/2-advanced/pom.xml b/2-advanced/pom.xml index 5cefff4d72..5dc14fcd96 100644 --- a/2-advanced/pom.xml +++ b/2-advanced/pom.xml @@ -28,6 +28,7 @@ dubbo-samples-async + dubbo-samples-async-result dubbo-samples-attachment dubbo-samples-autowire dubbo-samples-cache