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}}
+
+}
+
+}

Reply via email to