Fix StubMethodDescriptor generate issue (#13582)
* Refactor StubMethodDescriptor generate * Refactor StubMethodDescriptor generate * Refactor StubMethodDescriptor generate * Refactor * Add missing ';'
This commit is contained in:
parent
1368e21d9b
commit
3aa5a775d3
|
|
@ -28,7 +28,6 @@ import java.util.stream.Stream;
|
||||||
|
|
||||||
public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
|
public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(StubMethodDescriptor.class);
|
private static final Logger logger = LoggerFactory.getLogger(StubMethodDescriptor.class);
|
||||||
private final ServiceDescriptor serviceDescriptor;
|
|
||||||
private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();
|
private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();
|
||||||
private final String methodName;
|
private final String methodName;
|
||||||
private final String[] compatibleParamSignatures;
|
private final String[] compatibleParamSignatures;
|
||||||
|
|
@ -46,14 +45,12 @@ public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
|
||||||
String methodName,
|
String methodName,
|
||||||
Class<?> requestClass,
|
Class<?> requestClass,
|
||||||
Class<?> responseClass,
|
Class<?> responseClass,
|
||||||
StubServiceDescriptor serviceDescriptor,
|
|
||||||
RpcType rpcType,
|
RpcType rpcType,
|
||||||
Pack requestPack,
|
Pack requestPack,
|
||||||
Pack responsePack,
|
Pack responsePack,
|
||||||
UnPack requestUnpack,
|
UnPack requestUnpack,
|
||||||
UnPack responseUnpack) {
|
UnPack responseUnpack) {
|
||||||
this.methodName = methodName;
|
this.methodName = methodName;
|
||||||
this.serviceDescriptor = serviceDescriptor;
|
|
||||||
this.rpcType = rpcType;
|
this.rpcType = rpcType;
|
||||||
this.requestPack = requestPack;
|
this.requestPack = requestPack;
|
||||||
this.responsePack = responsePack;
|
this.responsePack = responsePack;
|
||||||
|
|
@ -65,7 +62,6 @@ public class StubMethodDescriptor implements MethodDescriptor, PackableMethod {
|
||||||
this.compatibleParamSignatures =
|
this.compatibleParamSignatures =
|
||||||
Stream.of(parameterClasses).map(Class::getName).toArray(String[]::new);
|
Stream.of(parameterClasses).map(Class::getName).toArray(String[]::new);
|
||||||
this.returnTypes = new Type[] {responseClass, responseClass};
|
this.returnTypes = new Type[] {responseClass, responseClass};
|
||||||
serviceDescriptor.addMethod(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -69,20 +69,19 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
|
|
||||||
private static final StubMethodDescriptor {{methodName}}AsyncMethod = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
|
|
||||||
private static final StubMethodDescriptor {{methodName}}ProxyAsyncMethod = new StubMethodDescriptor("{{originMethodName}}Async",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
|
|
||||||
{{/unaryMethods}}
|
{{/unaryMethods}}
|
||||||
|
|
||||||
{{#serverStreamingMethods}}
|
{{#serverStreamingMethods}}
|
||||||
|
|
@ -90,10 +89,9 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
|
|
||||||
{{/serverStreamingMethods}}
|
{{/serverStreamingMethods}}
|
||||||
|
|
||||||
{{#clientStreamingMethods}}
|
{{#clientStreamingMethods}}
|
||||||
|
|
@ -101,7 +99,7 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/clientStreamingMethods}}
|
{{/clientStreamingMethods}}
|
||||||
|
|
@ -111,11 +109,27 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/biStreamingWithoutClientStreamMethods}}
|
{{/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}}{
|
public static class {{interfaceClassName}}Stub implements {{interfaceClassName}}{
|
||||||
private final Invoker<{{interfaceClassName}}> invoker;
|
private final Invoker<{{interfaceClassName}}> invoker;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/unaryMethods}}
|
{{/unaryMethods}}
|
||||||
|
|
@ -80,7 +80,7 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/serverStreamingMethods}}
|
{{/serverStreamingMethods}}
|
||||||
|
|
@ -90,7 +90,7 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/clientStreamingMethods}}
|
{{/clientStreamingMethods}}
|
||||||
|
|
@ -100,11 +100,26 @@ public final class {{className}} {
|
||||||
{{{javaDoc}}}
|
{{{javaDoc}}}
|
||||||
{{/javaDoc}}
|
{{/javaDoc}}
|
||||||
private static final StubMethodDescriptor {{methodName}}Method = new StubMethodDescriptor("{{originMethodName}}",
|
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,
|
obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), {{inputType}}::parseFrom,
|
||||||
{{outputType}}::parseFrom);
|
{{outputType}}::parseFrom);
|
||||||
{{/biStreamingWithoutClientStreamMethods}}
|
{{/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}}{
|
public static class {{interfaceClassName}}Stub implements {{interfaceClassName}}{
|
||||||
|
|
||||||
private final Invoker<{{interfaceClassName}}> invoker;
|
private final Invoker<{{interfaceClassName}}> invoker;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue