This is an automated email from the ASF dual-hosted git repository.
guohao pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 9579c2e [3.0-compiler] fix compiler on dubbo3 with
`java_multiple_files=false` (#9846)
9579c2e is described below
commit 9579c2e7824a5d7bacab250b6745a74eb12fa6ab
Author: earthchen <[email protected]>
AuthorDate: Mon Mar 28 14:50:45 2022 +0800
[3.0-compiler] fix compiler on dubbo3 with `java_multiple_files=false`
(#9846)
* fix `java_multiple_files=false` on dubbo 3 compiler
* change version
---
.../apache/dubbo/gen/dubbo/Dubbo3Generator.java | 2 +-
.../src/main/resources/DubboStub3Single.mustache | 78 ++++++++++++++++++++++
2 files changed, 79 insertions(+), 1 deletion(-)
diff --git
a/compiler/src/main/java/org/apache/dubbo/gen/dubbo/Dubbo3Generator.java
b/compiler/src/main/java/org/apache/dubbo/gen/dubbo/Dubbo3Generator.java
index 929ce57..29a789b 100644
--- a/compiler/src/main/java/org/apache/dubbo/gen/dubbo/Dubbo3Generator.java
+++ b/compiler/src/main/java/org/apache/dubbo/gen/dubbo/Dubbo3Generator.java
@@ -53,7 +53,7 @@ public class Dubbo3Generator extends AbstractGenerator {
@Override
protected String getSingleTemplateFileName() {
- return "DubboStub.mustache";// compatible with 2.7 or before
+ return "DubboStub3Single.mustache";
}
@Override
diff --git a/compiler/src/main/resources/DubboStub3Single.mustache
b/compiler/src/main/resources/DubboStub3Single.mustache
new file mode 100644
index 0000000..8fcc090
--- /dev/null
+++ b/compiler/src/main/resources/DubboStub3Single.mustache
@@ -0,0 +1,78 @@
+{{#packageName}}
+ package {{packageName}};
+{{/packageName}}
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+{{#deprecated}}
+ @java.lang.Deprecated
+{{/deprecated}}
+public final class {{className}} {
+private static final AtomicBoolean registered = new AtomicBoolean();
+
+private static Class<?> init() {
+ Class<?> clazz = null;
+ try {
+ clazz = Class.forName({{serviceName}}Dubbo.class.getName());
+ if (registered.compareAndSet(false, true)) {
+ {{#methodTypes}}
+
org.apache.dubbo.rpc.protocol.tri.SingleProtobufUtils.marshaller(
+ {{.}}.getDefaultInstance());
+ {{/methodTypes}}
+ }
+ } catch (ClassNotFoundException e) {
+ // ignore
+ }
+ return clazz;
+}
+
+private {{serviceName}}Dubbo() {}
+
+public static final String SERVICE_NAME = "{{packageName}}.{{serviceName}}";
+
+/**
+* Code generated for Dubbo
+*/
+public interface I{{serviceName}} {
+
+ static Class<?> clazz = init();
+
+{{#unaryMethods}}
+ {{#javaDoc}}
+ {{{javaDoc}}}
+ {{/javaDoc}}
+ {{#deprecated}}
+ @java.lang.Deprecated
+ {{/deprecated}}
+ {{outputType}} {{methodName}}({{inputType}} request);
+
+ default CompletableFuture<{{outputType}}>
{{methodName}}Async({{inputType}} request){
+ return CompletableFuture.supplyAsync(() -> {{methodName}}(request));
+ }
+
+{{/unaryMethods}}
+
+{{#serverStreamingMethods}}
+ {{#javaDoc}}
+ {{{javaDoc}}}
+ {{/javaDoc}}
+ {{#deprecated}}
+ @java.lang.Deprecated
+ {{/deprecated}}
+ void {{methodName}}({{inputType}} request,
org.apache.dubbo.common.stream.StreamObserver<{{outputType}}> responseObserver);
+{{/serverStreamingMethods}}
+
+{{#biStreamingMethods}}
+ {{#javaDoc}}
+ {{{javaDoc}}}
+ {{/javaDoc}}
+ {{#deprecated}}
+ @java.lang.Deprecated
+ {{/deprecated}}
+ org.apache.dubbo.common.stream.StreamObserver<{{inputType}}>
{{methodName}}(org.apache.dubbo.common.stream.StreamObserver<{{outputType}}>
responseObserver);
+{{/biStreamingMethods}}
+
+}
+
+}