Fix StubMethodDescriptor generate issue (#13582)

* Refactor StubMethodDescriptor generate

* Refactor StubMethodDescriptor generate

* Refactor StubMethodDescriptor generate

* Refactor

* Add missing ';'
This commit is contained in:
namelessssssssssss 2023-12-27 14:52:22 +08:00 committed by GitHub
parent 1368e21d9b
commit 3aa5a775d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 16 deletions

View File

@ -28,7 +28,6 @@ import java.util.stream.Stream;
public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
private static final Logger logger = LoggerFactory.getLogger(StubMethodDescriptor.class);
private final ServiceDescriptor serviceDescriptor;
private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();
private final String methodName;
private final String[] compatibleParamSignatures;
@ -46,14 +45,12 @@ public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
String methodName,
Class<?> requestClass,
Class<?> responseClass,
StubServiceDescriptor serviceDescriptor,
RpcType rpcType,
Pack requestPack,
Pack responsePack,
UnPack requestUnpack,
UnPack responseUnpack) {
this.methodName = methodName;
this.serviceDescriptor = serviceDescriptor;
this.rpcType = rpcType;
this.requestPack = requestPack;
this.responsePack = responsePack;
@ -65,7 +62,6 @@ public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
this.compatibleParamSignatures =
Stream.of(parameterClasses).map(Class::getName).toArray(String[]::new);
this.returnTypes = new Type[] {responseClass, responseClass};
serviceDescriptor.addMethod(this);
}
@Override

View File

@ -69,20 +69,19 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.UNARY,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
private static final StubMethodDescriptor {{methodName}}AsyncMethod = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
{{inputType}}.class, java.util.concurrent.CompletableFuture.class, MethodDescriptor.RpcType.UNARY,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
private static final StubMethodDescriptor {{methodName}}ProxyAsyncMethod = new StubMethodDescriptor("{{originMethodName}}Async",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.UNARY,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/unaryMethods}}
{{#serverStreamingMethods}}
@ -90,10 +89,9 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.SERVER_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.SERVER_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/serverStreamingMethods}}
{{#clientStreamingMethods}}
@ -101,7 +99,7 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.CLIENT_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.CLIENT_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/clientStreamingMethods}}
@ -111,11 +109,27 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.BI_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.BI_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/biStreamingWithoutClientStreamMethods}}
static{
{{#unaryMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
serviceDescriptor.addMethod({{methodName}}ProxyAsyncMethod);
{{/unaryMethods}}
{{#serverStreamingMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/serverStreamingMethods}}
{{#clientStreamingMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/clientStreamingMethods}}
{{#biStreamingWithoutClientStreamMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/biStreamingWithoutClientStreamMethods}}
}
public static class {{interfaceClassName}}Stub implements {{interfaceClassName}}{
private final Invoker<{{interfaceClassName}}> invoker;

View File

@ -70,7 +70,7 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.UNARY,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/unaryMethods}}
@ -80,7 +80,7 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.SERVER_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.SERVER_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/serverStreamingMethods}}
@ -90,7 +90,7 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.CLIENT_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.CLIENT_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/clientStreamingMethods}}
@ -100,11 +100,26 @@ public final class {{className}} {
{{{javaDoc}}}
{{/javaDoc}}
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
{{inputType}}.class, {{outputType}}.class, serviceDescriptor, MethodDescriptor.RpcType.BI_STREAM,
{{inputType}}.class, {{outputType}}.class, MethodDescriptor.RpcType.BI_STREAM,
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
{{outputType}}::parseFrom);
{{/biStreamingWithoutClientStreamMethods}}
static{
{{#unaryMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/unaryMethods}}
{{#serverStreamingMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/serverStreamingMethods}}
{{#clientStreamingMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/clientStreamingMethods}}
{{#biStreamingWithoutClientStreamMethods}}
serviceDescriptor.addMethod({{methodName}}Method);
{{/biStreamingWithoutClientStreamMethods}}
}
public static class {{interfaceClassName}}Stub implements {{interfaceClassName}}{
private final Invoker<{{interfaceClassName}}> invoker;