diff --git a/developer/back-end/liuliang20200312/des_sample.md b/developer/back-end/liuliang20200312/des_sample.md deleted file mode 100644 index 06861ab..0000000 --- a/developer/back-end/liuliang20200312/des_sample.md +++ /dev/null @@ -1,14 +0,0 @@ -# 沟通和学习编程语言 - -## 目标 -让大家能知道如何快速掌握一门编程语言,如何去学习编程语言 - -## 完成情况 -已完成 - -## 作业内容 - -无 - -## 下步计划 -收集大家的建议,改进演讲的方式,让大家都能积极参与和沟通 \ No newline at end of file diff --git "a/developer/back-end/liuliang20200312/\347\274\226\347\250\213\350\257\255\350\250\200.pptx" "b/developer/back-end/liuliang20200312/\347\274\226\347\250\213\350\257\255\350\250\200.pptx" deleted file mode 100644 index 077cde6..0000000 Binary files "a/developer/back-end/liuliang20200312/\347\274\226\347\250\213\350\257\255\350\250\200.pptx" and /dev/null differ diff --git "a/developer/back-end/wen20200323/Java\345\274\200\345\217\221\347\254\254\344\270\211\346\234\237\344\275\234\344\270\232.md" "b/developer/back-end/wen20200323/Java\345\274\200\345\217\221\347\254\254\344\270\211\346\234\237\344\275\234\344\270\232.md" new file mode 100644 index 0000000..c51cfc2 --- /dev/null +++ "b/developer/back-end/wen20200323/Java\345\274\200\345\217\221\347\254\254\344\270\211\346\234\237\344\275\234\344\270\232.md" @@ -0,0 +1,25 @@ +# Java开发第三期作业 + +## 目的 + +- 学会使用restful的风格开发接口 + +- 了解RPC的基本概念及思想,熟悉gRPC的开发流程 + +## 内容 + +### 改造以前的作业为Restful风格形式 + +- 名词,尽量不出现动词 + +- 小写,以短横线‘-’连接 + +- get/post/put/delete方法的使用 + +### 完成一个gRPC服务器和客户端的搭建,熟悉proto文件格式 + +- Web + +- Client + +- Proto \ No newline at end of file diff --git "a/developer/back-end/wen20200323/gRPC \344\273\213\347\273\215\344\270\216\345\256\236\350\267\265\357\274\210\344\270\213\357\274\211.pptx" "b/developer/back-end/wen20200323/gRPC \344\273\213\347\273\215\344\270\216\345\256\236\350\267\265\357\274\210\344\270\213\357\274\211.pptx" new file mode 100644 index 0000000..5817988 Binary files /dev/null and "b/developer/back-end/wen20200323/gRPC \344\273\213\347\273\215\344\270\216\345\256\236\350\267\265\357\274\210\344\270\213\357\274\211.pptx" differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/pom.xml b/developer/back-end/wen20200323/yuanmao/grpc-demo/pom.xml new file mode 100644 index 0000000..174f7da --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + com.reuben + grpc-demo + 1.0-SNAPSHOT + + + 1.6.1 + 1.8 + 3.3.0 + 1.5.0.Final + UTF-8 + + + + + + io.grpc + grpc-netty + ${grpc.version} + + + io.grpc + grpc-protobuf + ${grpc.version} + + + io.grpc + grpc-stub + ${grpc.version} + + + org.projectlombok + lombok + 1.18.12 + + + junit + junit + 4.13 + test + + + org.slf4j + slf4j-api + 1.7.30 + + + org.slf4j + slf4j-log4j12 + 1.7.30 + + + log4j + log4j + 1.2.17 + + + + + + + kr.motd.maven + os-maven-plugin + ${kr.motd.version} + + + + + + + org.xolstice.maven.plugins + protobuf-maven-plugin + 0.5.0 + + + com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier} + + grpc-java + io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier} + + + src/main/proto + + + + + + + compile + compile-custom + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${jdk.version} + ${jdk.version} + + 3.8.1 + + + + + \ No newline at end of file diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/AccountClient.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/AccountClient.java new file mode 100644 index 0000000..c9207af --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/AccountClient.java @@ -0,0 +1,59 @@ +package com.reuben.rpc.client; + +import com.reuben.grpc.service.AccountGrpc; +import com.sun.javafx.binding.StringFormatter; +import com.reuben.grpc.entity.Account; +import com.reuben.grpc.entity.AccountResponse; +import lombok.extern.slf4j.Slf4j; + + +import java.util.List; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:31 + **/ +@Slf4j +public class AccountClient { + + private final AccountGrpc.AccountBlockingStub accountBlockingStub; + + private final BaseClient client; + + public AccountClient(BaseClient client) { + this.client = client; + this.accountBlockingStub = client.getAccountBlockingStub(); + } + + public void addAccount(String name, String sex, int age) { + + Account account = Account.getDefaultInstance().toBuilder() + .setName(name) + .setSex(sex) + .setAge(age) + .build(); + + AccountResponse response = this.accountBlockingStub.addAccount(account); + + //System.out.println(StringFormatter.format("返回消息:%s\n状态:%d", response.getMsg(), response.getCode()).get()); + log.info(StringFormatter.format("返回消息:%s\n状态:%d", response.getMsg(), response.getCode()).get()); + + } + + public void queryAccount(String name) { + Account account = Account.getDefaultInstance().toBuilder() + .setName(name).build(); + AccountResponse response = this.accountBlockingStub.getAccountByName(account); + + //System.out.println(StringFormatter.format("返回消息:%s\n状态:%d", response.getMsg(), response.getCode()).getValue()); + log.info(StringFormatter.format("返回消息:%s\n状态:%d", response.getMsg(), response.getCode()).getValue()); + //System.out.println("查询结果:"); + log.info("查询结果:"); + List list = response.getResultsList(); + for (Account acc : list) { + log.info(StringFormatter.format("姓名:%s,性别:%s,年龄:%d", acc.getName(), acc.getSex(), acc.getAge()).get()); + } + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/BaseClient.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/BaseClient.java new file mode 100644 index 0000000..9b3949e --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/BaseClient.java @@ -0,0 +1,58 @@ +package com.reuben.rpc.client; + +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import com.reuben.grpc.service.AccountGrpc; +import com.reuben.grpc.service.GreeterGrpc; + +import java.util.concurrent.TimeUnit; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:31 + **/ +public class BaseClient { + + private final ManagedChannel channel; + private final GreeterGrpc.GreeterBlockingStub greeterBlockingStub; + private final AccountGrpc.AccountBlockingStub accountBlockingStub; + + private BaseClient(ManagedChannel channel) { + this.channel = channel; + this.greeterBlockingStub = GreeterGrpc.newBlockingStub(channel); + this.accountBlockingStub = AccountGrpc.newBlockingStub(channel); + } + + /** + * 构造客户端与Greeter 服务端连接 {@code host:port} + * + * @param host 主机地址 + * @param port 端口 + */ + public BaseClient(String host, int port) { + this(ManagedChannelBuilder.forAddress(host, port) + // Channels are secure by default (via SSL/TLS). For the example we disable TLS to avoid + // needing certificates. + .usePlaintext(true) + .build()); + } + + /** + * 关闭函数 + * + * @throws InterruptedException + */ + public void shutdown() throws InterruptedException { + channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); + } + + public GreeterGrpc.GreeterBlockingStub getGreeterBlockingStub() { + return greeterBlockingStub; + } + + public AccountGrpc.AccountBlockingStub getAccountBlockingStub() { + return accountBlockingStub; + } +} \ No newline at end of file diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/GreeterClient.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/GreeterClient.java new file mode 100644 index 0000000..00ddb46 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/client/GreeterClient.java @@ -0,0 +1,37 @@ +package com.reuben.rpc.client; + +import io.grpc.StatusRuntimeException; +import com.reuben.grpc.entity.HelloReply; +import com.reuben.grpc.entity.HelloRequest; +import com.reuben.grpc.service.GreeterGrpc; +import lombok.extern.slf4j.Slf4j; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:31 + **/ +@Slf4j +public class GreeterClient { + + private final GreeterGrpc.GreeterBlockingStub blockingStub; + + + public GreeterClient(BaseClient client) { + blockingStub = client.getGreeterBlockingStub(); + } + + public void greet(String name) { + HelloRequest request = HelloRequest.newBuilder().setName(name).build(); + HelloReply response; + try { + response = blockingStub.sayHello(request); + String msg = response.getMessage(); + //接收到服务端返回的消息 + log.info("客户端收到消息:" + msg); + } catch (StatusRuntimeException e) { + return; + } + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/GrpcDemo.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/GrpcDemo.java new file mode 100644 index 0000000..acc8066 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/GrpcDemo.java @@ -0,0 +1,68 @@ +package com.reuben.rpc.service; + +import com.reuben.rpc.service.account.AccountImpl; +import com.reuben.rpc.service.geeter.GreeterImpl; +import io.grpc.Server; +import io.grpc.ServerBuilder; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:32 + **/ +@Slf4j +public class GrpcDemo { + + private Server server; + + /** + * 服务启动类 + * @param port 端口 + * @throws IOException + */ + private void start(int port) throws IOException { + server = ServerBuilder.forPort(port) + //注册服务 + .addService(new GreeterImpl()) + .addService(new AccountImpl()) + .build() + .start(); + + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + log.error("*** JVM 关闭,导致gRPC服务关闭!"); + GrpcDemo.this.stop(); + log.error("*** 服务关闭"); + })); + } + + /** + * RPC 服务关闭 + */ + private void stop() { + if (server != null) { + server.shutdown(); + } + } + + /** + * 设置守护进程 + */ + private void blockUntilShutdown() throws InterruptedException { + if (server != null) { + server.awaitTermination(); + } + } + + /** + * RPC服务启动main函数 + */ + public static void main(String[] args) throws IOException, InterruptedException { + final GrpcDemo server = new GrpcDemo(); + server.start(50051); + server.blockUntilShutdown(); + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/account/AccountImpl.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/account/AccountImpl.java new file mode 100644 index 0000000..f1d61a0 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/account/AccountImpl.java @@ -0,0 +1,73 @@ +package com.reuben.rpc.service.account; + +import com.sun.javafx.binding.StringFormatter; +import io.grpc.stub.StreamObserver; +import com.reuben.grpc.entity.Account; +import com.reuben.grpc.entity.AccountResponse; +import com.reuben.grpc.service.AccountGrpc; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:31 + **/ +@Slf4j +public class AccountImpl extends AccountGrpc.AccountImplBase { + + @Override + public void addAccount(Account request, StreamObserver responseObserver) { + //处理请求参数 + log.info(StringFormatter.format("新增用户:%s\n性别:%s\n年龄:%d岁", request.getName(), request.getSex(), request.getAge()).get()); + + //处理响应参数 + AccountResponse response = AccountResponse.getDefaultInstance().toBuilder() + .setCode(10000) + .setMsg("success!").build(); + responseObserver.onNext(response); + responseObserver.onCompleted(); + } + + @Override + public void getAccountByName(Account request, StreamObserver responseObserver) { + String name = request.getName(); + //处理请求参数 + log.info(StringFormatter.format("请求查询用户名:%s", name).get()); + + //处理响应参数 + List list = new ArrayList<>(); + Account account1 = Account.getDefaultInstance().toBuilder() + .setName("张三") + .setAge(20) + .setSex("男").build(); + list.add(account1); + + Account account2 = Account.getDefaultInstance().toBuilder() + .setAge(30) + .setSex("男") + .setName("李四").build(); + list.add(account2); + + + List results = new ArrayList<>(); + for (Account account : list) { + if (account.getName().equals(name)){ + results.add(account); + } + } + + + AccountResponse response = AccountResponse.getDefaultInstance().toBuilder() + .setCode(10000) + .setMsg("success!") + .addAllResults(results) + .build(); + + responseObserver.onNext(response); + responseObserver.onCompleted(); + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/geeter/GreeterImpl.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/geeter/GreeterImpl.java new file mode 100644 index 0000000..1933b07 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/java/com/reuben/rpc/service/geeter/GreeterImpl.java @@ -0,0 +1,32 @@ +package com.reuben.rpc.service.geeter; + + +import io.grpc.stub.StreamObserver; + +import lombok.extern.slf4j.Slf4j; +import com.reuben.grpc.entity.HelloReply; +import com.reuben.grpc.entity.HelloRequest; +import com.reuben.grpc.service.GreeterGrpc; + +/** + * @program: grpc-demo + * @description: + * @author: reuben + * @create: 2020-03-24 11:31 + **/ +@Slf4j +public class GreeterImpl extends GreeterGrpc.GreeterImplBase { + @Override + public void sayHello(HelloRequest request, StreamObserver responseObserver) { + HelloReply reply = HelloReply.newBuilder().setMessage("hello" + request.getName()).build(); + //处理接收到的消息 + String message = reply.getMessage(); + log.info("服务端收到消息:" + message); + //响应消息 + HelloReply hello_world = reply.toBuilder().setMessage("hello world").build(); + + responseObserver.onNext(hello_world); + responseObserver.onCompleted(); + + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/hello_account.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/hello_account.proto new file mode 100644 index 0000000..2376d9f --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/hello_account.proto @@ -0,0 +1,28 @@ +//使用proto3语法 +syntax = "proto3"; + +//指定proto文件包名 +package com.reuben.grpc.service; + +//指定 java 包名 +option java_package = "com.reuben.grpc.service"; +//指定proto文件生成java文件后的类名 +option java_outer_classname = "ServiceProto"; + +//开启多文件 +option java_multiple_files = true; + +//倒入指定的.proto文件 +import "entity/req_res.proto"; + +//定义rpc服务接口 +service Greeter { + //服务端接口方法 + rpc SayHello (com.reuben.grpc.entity.HelloRequest) returns (com.reuben.grpc.entity.HelloReply); +} + +//定义rpc服务接口 +service Account { + rpc addAccount(com.reuben.grpc.entity.Account) returns (com.reuben.grpc.entity.AccountResponse); + rpc getAccountByName(com.reuben.grpc.entity.Account) returns (com.reuben.grpc.entity.AccountResponse); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/req_res.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/req_res.proto new file mode 100644 index 0000000..77e5c11 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/proto/entity/req_res.proto @@ -0,0 +1,35 @@ +//使用proto3语法 +syntax = "proto3"; + +//指定proto文件包名 +package com.reuben.grpc.entity; + +//指定 java 包名 +option java_package = "com.reuben.grpc.entity"; +//指定proto文件生成java文件后的类名 +option java_outer_classname = "EntityProto"; + +//开启多文件 +option java_multiple_files = true; + +//请求参数 +message HelloRequest { + string name = 1; +} + +//响应参数 +message HelloReply { + string message = 1; +} + +message Account { + string name = 1; + string sex = 2; + int32 age = 3; +} + +message AccountResponse { + string msg = 1; + int32 code = 2; + repeated Account results = 3; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/resources/log4j.properties b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/resources/log4j.properties new file mode 100644 index 0000000..33a70cc --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/main/resources/log4j.properties @@ -0,0 +1,12 @@ +#log4j.rootLogger=debug, stdout, R +log4j.rootLogger=info, stdout, R +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n +log4j.appender.R=org.apache.log4j.RollingFileAppender +log4j.appender.R.File=debug.log +log4j.appender.R.MaxFileSize=100KB +log4j.appender.R.MaxBackupIndex=1 +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n +log4j.logger.com.codefutures=DEBUG \ No newline at end of file diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/src/test/java/Tests.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/test/java/Tests.java new file mode 100644 index 0000000..7f02b75 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/src/test/java/Tests.java @@ -0,0 +1,52 @@ +import com.reuben.rpc.client.AccountClient; +import com.reuben.rpc.client.BaseClient; +import com.reuben.rpc.client.GreeterClient; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.After; +import org.junit.Test; + +@Slf4j +public class Tests { + private BaseClient client = new BaseClient("localhost", 50051); + + private GreeterClient greeterClient = new GreeterClient(client); + + private AccountClient accountClient = new AccountClient(client); + + @After + public void after() { + try { + client.shutdown(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + @SneakyThrows + @Test + public void test_Greet() { + log.info("===============GreeterClient============"); + // GreeterClient greeterClient = new GreeterClient(client); + greeterClient.greet("Hello"); + } + + @Test + public void test_addAccount() { + log.info("===============AccountClient============"); + //AccountClient accountClient = new AccountClient(client); + + log.info("===============新增============"); + accountClient.addAccount("reuben", "男", 22); + } + + @Test + public void test_queryAccount() { + log.info("===============AccountClient============"); + //AccountClient accountClient = new AccountClient(client); + + log.info("===============查找============"); + accountClient.queryAccount("张三"); + } + +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/META-INF/grpc-demo.kotlin_module b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/META-INF/grpc-demo.kotlin_module new file mode 100644 index 0000000..2983af7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/META-INF/grpc-demo.kotlin_module differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$1.class new file mode 100644 index 0000000..4c323eb Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$Builder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$Builder.class new file mode 100644 index 0000000..57a2bd0 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account$Builder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account.class new file mode 100644 index 0000000..02a56fc Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/Account.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountOrBuilder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountOrBuilder.class new file mode 100644 index 0000000..f38db7e Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountOrBuilder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$1.class new file mode 100644 index 0000000..db45ab7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$Builder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$Builder.class new file mode 100644 index 0000000..00053f0 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse$Builder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse.class new file mode 100644 index 0000000..eab3dc0 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponse.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponseOrBuilder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponseOrBuilder.class new file mode 100644 index 0000000..8c30e26 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/AccountResponseOrBuilder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto$1.class new file mode 100644 index 0000000..dd989c1 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto.class new file mode 100644 index 0000000..813ee81 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/EntityProto.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$1.class new file mode 100644 index 0000000..fa1eee0 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$Builder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$Builder.class new file mode 100644 index 0000000..69057df Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply$Builder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply.class new file mode 100644 index 0000000..5c04ee9 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReply.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReplyOrBuilder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReplyOrBuilder.class new file mode 100644 index 0000000..70f4f56 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloReplyOrBuilder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$1.class new file mode 100644 index 0000000..4afdcc5 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$Builder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$Builder.class new file mode 100644 index 0000000..0d3a69e Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest$Builder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest.class new file mode 100644 index 0000000..d8f3817 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequest.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequestOrBuilder.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequestOrBuilder.class new file mode 100644 index 0000000..d5b5496 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/entity/HelloRequestOrBuilder.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$1.class new file mode 100644 index 0000000..bcce9d6 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountBlockingStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountBlockingStub.class new file mode 100644 index 0000000..1884193 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountBlockingStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountDescriptorSupplier.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountDescriptorSupplier.class new file mode 100644 index 0000000..07923b7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountDescriptorSupplier.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountFutureStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountFutureStub.class new file mode 100644 index 0000000..9a5216b Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountFutureStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountImplBase.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountImplBase.class new file mode 100644 index 0000000..e03a296 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountImplBase.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountStub.class new file mode 100644 index 0000000..5e819bd Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$AccountStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$MethodHandlers.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$MethodHandlers.class new file mode 100644 index 0000000..7de6c54 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc$MethodHandlers.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc.class new file mode 100644 index 0000000..f694501 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/AccountGrpc.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$1.class new file mode 100644 index 0000000..6515dca Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterBlockingStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterBlockingStub.class new file mode 100644 index 0000000..83da6fc Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterBlockingStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterDescriptorSupplier.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterDescriptorSupplier.class new file mode 100644 index 0000000..bb48c50 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterDescriptorSupplier.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterFutureStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterFutureStub.class new file mode 100644 index 0000000..3d5da5e Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterFutureStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterImplBase.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterImplBase.class new file mode 100644 index 0000000..7b5d1c1 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterImplBase.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterStub.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterStub.class new file mode 100644 index 0000000..e42fbc7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$GreeterStub.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$MethodHandlers.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$MethodHandlers.class new file mode 100644 index 0000000..4987170 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc$MethodHandlers.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc.class new file mode 100644 index 0000000..18772a9 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/GreeterGrpc.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto$1.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto$1.class new file mode 100644 index 0000000..b10c82a Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto$1.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto.class new file mode 100644 index 0000000..8fb09c9 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/grpc/service/ServiceProto.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/AccountClient.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/AccountClient.class new file mode 100644 index 0000000..299083f Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/AccountClient.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/BaseClient.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/BaseClient.class new file mode 100644 index 0000000..d2c59e9 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/BaseClient.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/GreeterClient.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/GreeterClient.class new file mode 100644 index 0000000..f7e759e Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/client/GreeterClient.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/GrpcDemo.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/GrpcDemo.class new file mode 100644 index 0000000..7155858 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/GrpcDemo.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/account/AccountImpl.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/account/AccountImpl.class new file mode 100644 index 0000000..bc45c7c Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/account/AccountImpl.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/geeter/GreeterImpl.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/geeter/GreeterImpl.class new file mode 100644 index 0000000..8cbc73c Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/com/reuben/rpc/service/geeter/GreeterImpl.class differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/hello_account.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/hello_account.proto new file mode 100644 index 0000000..2376d9f --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/hello_account.proto @@ -0,0 +1,28 @@ +//使用proto3语法 +syntax = "proto3"; + +//指定proto文件包名 +package com.reuben.grpc.service; + +//指定 java 包名 +option java_package = "com.reuben.grpc.service"; +//指定proto文件生成java文件后的类名 +option java_outer_classname = "ServiceProto"; + +//开启多文件 +option java_multiple_files = true; + +//倒入指定的.proto文件 +import "entity/req_res.proto"; + +//定义rpc服务接口 +service Greeter { + //服务端接口方法 + rpc SayHello (com.reuben.grpc.entity.HelloRequest) returns (com.reuben.grpc.entity.HelloReply); +} + +//定义rpc服务接口 +service Account { + rpc addAccount(com.reuben.grpc.entity.Account) returns (com.reuben.grpc.entity.AccountResponse); + rpc getAccountByName(com.reuben.grpc.entity.Account) returns (com.reuben.grpc.entity.AccountResponse); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/req_res.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/req_res.proto new file mode 100644 index 0000000..77e5c11 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/entity/req_res.proto @@ -0,0 +1,35 @@ +//使用proto3语法 +syntax = "proto3"; + +//指定proto文件包名 +package com.reuben.grpc.entity; + +//指定 java 包名 +option java_package = "com.reuben.grpc.entity"; +//指定proto文件生成java文件后的类名 +option java_outer_classname = "EntityProto"; + +//开启多文件 +option java_multiple_files = true; + +//请求参数 +message HelloRequest { + string name = 1; +} + +//响应参数 +message HelloReply { + string message = 1; +} + +message Account { + string name = 1; + string sex = 2; + int32 age = 3; +} + +message AccountResponse { + string msg = 1; + int32 code = 2; + repeated Account results = 3; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/log4j.properties b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/log4j.properties new file mode 100644 index 0000000..f767181 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/classes/log4j.properties @@ -0,0 +1,12 @@ +#log4j.rootLogger=debug, stdout, R +log4j.rootLogger=info, stdout, R +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n +log4j.appender.R=org.apache.log4j.RollingFileAppender +log4j.appender.R.File=firestorm.log +log4j.appender.R.MaxFileSize=100KB +log4j.appender.R.MaxBackupIndex=1 +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n +log4j.logger.com.codefutures=DEBUG \ No newline at end of file diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/AccountGrpc.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/AccountGrpc.java new file mode 100644 index 0000000..52a7583 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/AccountGrpc.java @@ -0,0 +1,303 @@ +package com.reuben.grpc.service; + +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.asyncClientStreamingCall; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; + +/** + *
+ *定义rpc服务接口
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.6.1)", + comments = "Source: entity/hello_account.proto") +public final class AccountGrpc { + + private AccountGrpc() {} + + public static final String SERVICE_NAME = "com.reuben.grpc.service.Account"; + + // Static method descriptors that strictly reflect the proto. + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static final io.grpc.MethodDescriptor METHOD_ADD_ACCOUNT = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "com.reuben.grpc.service.Account", "addAccount")) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.Account.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.AccountResponse.getDefaultInstance())) + .build(); + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static final io.grpc.MethodDescriptor METHOD_GET_ACCOUNT_BY_NAME = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "com.reuben.grpc.service.Account", "getAccountByName")) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.Account.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.AccountResponse.getDefaultInstance())) + .build(); + + /** + * Creates a new async stub that supports all call types for the service + */ + public static AccountStub newStub(io.grpc.Channel channel) { + return new AccountStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static AccountBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new AccountBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static AccountFutureStub newFutureStub( + io.grpc.Channel channel) { + return new AccountFutureStub(channel); + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static abstract class AccountImplBase implements io.grpc.BindableService { + + /** + */ + public void addAccount(com.reuben.grpc.entity.Account request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(METHOD_ADD_ACCOUNT, responseObserver); + } + + /** + */ + public void getAccountByName(com.reuben.grpc.entity.Account request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(METHOD_GET_ACCOUNT_BY_NAME, responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + METHOD_ADD_ACCOUNT, + asyncUnaryCall( + new MethodHandlers< + com.reuben.grpc.entity.Account, + com.reuben.grpc.entity.AccountResponse>( + this, METHODID_ADD_ACCOUNT))) + .addMethod( + METHOD_GET_ACCOUNT_BY_NAME, + asyncUnaryCall( + new MethodHandlers< + com.reuben.grpc.entity.Account, + com.reuben.grpc.entity.AccountResponse>( + this, METHODID_GET_ACCOUNT_BY_NAME))) + .build(); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class AccountStub extends io.grpc.stub.AbstractStub { + private AccountStub(io.grpc.Channel channel) { + super(channel); + } + + private AccountStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AccountStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AccountStub(channel, callOptions); + } + + /** + */ + public void addAccount(com.reuben.grpc.entity.Account request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(METHOD_ADD_ACCOUNT, getCallOptions()), request, responseObserver); + } + + /** + */ + public void getAccountByName(com.reuben.grpc.entity.Account request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(METHOD_GET_ACCOUNT_BY_NAME, getCallOptions()), request, responseObserver); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class AccountBlockingStub extends io.grpc.stub.AbstractStub { + private AccountBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private AccountBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AccountBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AccountBlockingStub(channel, callOptions); + } + + /** + */ + public com.reuben.grpc.entity.AccountResponse addAccount(com.reuben.grpc.entity.Account request) { + return blockingUnaryCall( + getChannel(), METHOD_ADD_ACCOUNT, getCallOptions(), request); + } + + /** + */ + public com.reuben.grpc.entity.AccountResponse getAccountByName(com.reuben.grpc.entity.Account request) { + return blockingUnaryCall( + getChannel(), METHOD_GET_ACCOUNT_BY_NAME, getCallOptions(), request); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class AccountFutureStub extends io.grpc.stub.AbstractStub { + private AccountFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private AccountFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AccountFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AccountFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture addAccount( + com.reuben.grpc.entity.Account request) { + return futureUnaryCall( + getChannel().newCall(METHOD_ADD_ACCOUNT, getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture getAccountByName( + com.reuben.grpc.entity.Account request) { + return futureUnaryCall( + getChannel().newCall(METHOD_GET_ACCOUNT_BY_NAME, getCallOptions()), request); + } + } + + private static final int METHODID_ADD_ACCOUNT = 0; + private static final int METHODID_GET_ACCOUNT_BY_NAME = 1; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final AccountImplBase serviceImpl; + private final int methodId; + + MethodHandlers(AccountImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_ADD_ACCOUNT: + serviceImpl.addAccount((com.reuben.grpc.entity.Account) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_GET_ACCOUNT_BY_NAME: + serviceImpl.getAccountByName((com.reuben.grpc.entity.Account) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static final class AccountDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier { + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.reuben.grpc.service.ServiceProto.getDescriptor(); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (AccountGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new AccountDescriptorSupplier()) + .addMethod(METHOD_ADD_ACCOUNT) + .addMethod(METHOD_GET_ACCOUNT_BY_NAME) + .build(); + } + } + } + return result; + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/GreeterGrpc.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/GreeterGrpc.java new file mode 100644 index 0000000..128dfd3 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/grpc-java/com/reuben/grpc/service/GreeterGrpc.java @@ -0,0 +1,260 @@ +package com.reuben.grpc.service; + +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.asyncClientStreamingCall; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; + +/** + *
+ *定义rpc服务接口
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.6.1)", + comments = "Source: entity/hello_account.proto") +public final class GreeterGrpc { + + private GreeterGrpc() {} + + public static final String SERVICE_NAME = "com.reuben.grpc.service.Greeter"; + + // Static method descriptors that strictly reflect the proto. + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static final io.grpc.MethodDescriptor METHOD_SAY_HELLO = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "com.reuben.grpc.service.Greeter", "SayHello")) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.HelloRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.reuben.grpc.entity.HelloReply.getDefaultInstance())) + .build(); + + /** + * Creates a new async stub that supports all call types for the service + */ + public static GreeterStub newStub(io.grpc.Channel channel) { + return new GreeterStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static GreeterBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new GreeterBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static GreeterFutureStub newFutureStub( + io.grpc.Channel channel) { + return new GreeterFutureStub(channel); + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static abstract class GreeterImplBase implements io.grpc.BindableService { + + /** + *
+     *服务端接口方法
+     * 
+ */ + public void sayHello(com.reuben.grpc.entity.HelloRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(METHOD_SAY_HELLO, responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + METHOD_SAY_HELLO, + asyncUnaryCall( + new MethodHandlers< + com.reuben.grpc.entity.HelloRequest, + com.reuben.grpc.entity.HelloReply>( + this, METHODID_SAY_HELLO))) + .build(); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class GreeterStub extends io.grpc.stub.AbstractStub { + private GreeterStub(io.grpc.Channel channel) { + super(channel); + } + + private GreeterStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GreeterStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new GreeterStub(channel, callOptions); + } + + /** + *
+     *服务端接口方法
+     * 
+ */ + public void sayHello(com.reuben.grpc.entity.HelloRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(METHOD_SAY_HELLO, getCallOptions()), request, responseObserver); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class GreeterBlockingStub extends io.grpc.stub.AbstractStub { + private GreeterBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private GreeterBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GreeterBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new GreeterBlockingStub(channel, callOptions); + } + + /** + *
+     *服务端接口方法
+     * 
+ */ + public com.reuben.grpc.entity.HelloReply sayHello(com.reuben.grpc.entity.HelloRequest request) { + return blockingUnaryCall( + getChannel(), METHOD_SAY_HELLO, getCallOptions(), request); + } + } + + /** + *
+   *定义rpc服务接口
+   * 
+ */ + public static final class GreeterFutureStub extends io.grpc.stub.AbstractStub { + private GreeterFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private GreeterFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected GreeterFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new GreeterFutureStub(channel, callOptions); + } + + /** + *
+     *服务端接口方法
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture sayHello( + com.reuben.grpc.entity.HelloRequest request) { + return futureUnaryCall( + getChannel().newCall(METHOD_SAY_HELLO, getCallOptions()), request); + } + } + + private static final int METHODID_SAY_HELLO = 0; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final GreeterImplBase serviceImpl; + private final int methodId; + + MethodHandlers(GreeterImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_SAY_HELLO: + serviceImpl.sayHello((com.reuben.grpc.entity.HelloRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static final class GreeterDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier { + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.reuben.grpc.service.ServiceProto.getDescriptor(); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (GreeterGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new GreeterDescriptorSupplier()) + .addMethod(METHOD_SAY_HELLO) + .build(); + } + } + } + return result; + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/Account.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/Account.java new file mode 100644 index 0000000..15d5ab4 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/Account.java @@ -0,0 +1,690 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +/** + * Protobuf type {@code com.reuben.grpc.entity.Account} + */ +public final class Account extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.reuben.grpc.entity.Account) + AccountOrBuilder { + // Use Account.newBuilder() to construct. + private Account(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Account() { + name_ = ""; + sex_ = ""; + age_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private Account( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + sex_ = s; + break; + } + case 24: { + + age_ = input.readInt32(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_Account_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_Account_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.Account.class, com.reuben.grpc.entity.Account.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEX_FIELD_NUMBER = 2; + private volatile java.lang.Object sex_; + /** + * string sex = 2; + */ + public java.lang.String getSex() { + java.lang.Object ref = sex_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sex_ = s; + return s; + } + } + /** + * string sex = 2; + */ + public com.google.protobuf.ByteString + getSexBytes() { + java.lang.Object ref = sex_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sex_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AGE_FIELD_NUMBER = 3; + private int age_; + /** + * int32 age = 3; + */ + public int getAge() { + return age_; + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!getSexBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sex_); + } + if (age_ != 0) { + output.writeInt32(3, age_); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!getSexBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sex_); + } + if (age_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, age_); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.reuben.grpc.entity.Account)) { + return super.equals(obj); + } + com.reuben.grpc.entity.Account other = (com.reuben.grpc.entity.Account) obj; + + boolean result = true; + result = result && getName() + .equals(other.getName()); + result = result && getSex() + .equals(other.getSex()); + result = result && (getAge() + == other.getAge()); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + SEX_FIELD_NUMBER; + hash = (53 * hash) + getSex().hashCode(); + hash = (37 * hash) + AGE_FIELD_NUMBER; + hash = (53 * hash) + getAge(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.reuben.grpc.entity.Account parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.Account parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.Account parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.Account parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.Account parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.Account parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.Account parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.Account parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.Account parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.Account parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.Account parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.Account parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.reuben.grpc.entity.Account prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code com.reuben.grpc.entity.Account} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:com.reuben.grpc.entity.Account) + com.reuben.grpc.entity.AccountOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_Account_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_Account_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.Account.class, com.reuben.grpc.entity.Account.Builder.class); + } + + // Construct using com.reuben.grpc.entity.Account.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + name_ = ""; + + sex_ = ""; + + age_ = 0; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_Account_descriptor; + } + + public com.reuben.grpc.entity.Account getDefaultInstanceForType() { + return com.reuben.grpc.entity.Account.getDefaultInstance(); + } + + public com.reuben.grpc.entity.Account build() { + com.reuben.grpc.entity.Account result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public com.reuben.grpc.entity.Account buildPartial() { + com.reuben.grpc.entity.Account result = new com.reuben.grpc.entity.Account(this); + result.name_ = name_; + result.sex_ = sex_; + result.age_ = age_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.reuben.grpc.entity.Account) { + return mergeFrom((com.reuben.grpc.entity.Account)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.reuben.grpc.entity.Account other) { + if (other == com.reuben.grpc.entity.Account.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + if (!other.getSex().isEmpty()) { + sex_ = other.sex_; + onChanged(); + } + if (other.getAge() != 0) { + setAge(other.getAge()); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.reuben.grpc.entity.Account parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.reuben.grpc.entity.Account) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 1; + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + + private java.lang.Object sex_ = ""; + /** + * string sex = 2; + */ + public java.lang.String getSex() { + java.lang.Object ref = sex_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sex_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string sex = 2; + */ + public com.google.protobuf.ByteString + getSexBytes() { + java.lang.Object ref = sex_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sex_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string sex = 2; + */ + public Builder setSex( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + sex_ = value; + onChanged(); + return this; + } + /** + * string sex = 2; + */ + public Builder clearSex() { + + sex_ = getDefaultInstance().getSex(); + onChanged(); + return this; + } + /** + * string sex = 2; + */ + public Builder setSexBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + sex_ = value; + onChanged(); + return this; + } + + private int age_ ; + /** + * int32 age = 3; + */ + public int getAge() { + return age_; + } + /** + * int32 age = 3; + */ + public Builder setAge(int value) { + + age_ = value; + onChanged(); + return this; + } + /** + * int32 age = 3; + */ + public Builder clearAge() { + + age_ = 0; + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:com.reuben.grpc.entity.Account) + } + + // @@protoc_insertion_point(class_scope:com.reuben.grpc.entity.Account) + private static final com.reuben.grpc.entity.Account DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.reuben.grpc.entity.Account(); + } + + public static com.reuben.grpc.entity.Account getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public Account parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Account(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public com.reuben.grpc.entity.Account getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountOrBuilder.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountOrBuilder.java new file mode 100644 index 0000000..0aa86f1 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountOrBuilder.java @@ -0,0 +1,34 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +public interface AccountOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.reuben.grpc.entity.Account) + com.google.protobuf.MessageOrBuilder { + + /** + * string name = 1; + */ + java.lang.String getName(); + /** + * string name = 1; + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * string sex = 2; + */ + java.lang.String getSex(); + /** + * string sex = 2; + */ + com.google.protobuf.ByteString + getSexBytes(); + + /** + * int32 age = 3; + */ + int getAge(); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponse.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponse.java new file mode 100644 index 0000000..b4c8f8d --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponse.java @@ -0,0 +1,911 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +/** + * Protobuf type {@code com.reuben.grpc.entity.AccountResponse} + */ +public final class AccountResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.reuben.grpc.entity.AccountResponse) + AccountResponseOrBuilder { + // Use AccountResponse.newBuilder() to construct. + private AccountResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AccountResponse() { + msg_ = ""; + code_ = 0; + results_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private AccountResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + msg_ = s; + break; + } + case 16: { + + code_ = input.readInt32(); + break; + } + case 26: { + if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + results_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000004; + } + results_.add( + input.readMessage(com.reuben.grpc.entity.Account.parser(), extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + results_ = java.util.Collections.unmodifiableList(results_); + } + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_AccountResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_AccountResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.AccountResponse.class, com.reuben.grpc.entity.AccountResponse.Builder.class); + } + + private int bitField0_; + public static final int MSG_FIELD_NUMBER = 1; + private volatile java.lang.Object msg_; + /** + * string msg = 1; + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } + } + /** + * string msg = 1; + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CODE_FIELD_NUMBER = 2; + private int code_; + /** + * int32 code = 2; + */ + public int getCode() { + return code_; + } + + public static final int RESULTS_FIELD_NUMBER = 3; + private java.util.List results_; + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public java.util.List getResultsList() { + return results_; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public java.util.List + getResultsOrBuilderList() { + return results_; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public int getResultsCount() { + return results_.size(); + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.Account getResults(int index) { + return results_.get(index); + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.AccountOrBuilder getResultsOrBuilder( + int index) { + return results_.get(index); + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getMsgBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, msg_); + } + if (code_ != 0) { + output.writeInt32(2, code_); + } + for (int i = 0; i < results_.size(); i++) { + output.writeMessage(3, results_.get(i)); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getMsgBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, msg_); + } + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, code_); + } + for (int i = 0; i < results_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, results_.get(i)); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.reuben.grpc.entity.AccountResponse)) { + return super.equals(obj); + } + com.reuben.grpc.entity.AccountResponse other = (com.reuben.grpc.entity.AccountResponse) obj; + + boolean result = true; + result = result && getMsg() + .equals(other.getMsg()); + result = result && (getCode() + == other.getCode()); + result = result && getResultsList() + .equals(other.getResultsList()); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MSG_FIELD_NUMBER; + hash = (53 * hash) + getMsg().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + if (getResultsCount() > 0) { + hash = (37 * hash) + RESULTS_FIELD_NUMBER; + hash = (53 * hash) + getResultsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.reuben.grpc.entity.AccountResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.AccountResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.AccountResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.AccountResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.reuben.grpc.entity.AccountResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code com.reuben.grpc.entity.AccountResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:com.reuben.grpc.entity.AccountResponse) + com.reuben.grpc.entity.AccountResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_AccountResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_AccountResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.AccountResponse.class, com.reuben.grpc.entity.AccountResponse.Builder.class); + } + + // Construct using com.reuben.grpc.entity.AccountResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getResultsFieldBuilder(); + } + } + public Builder clear() { + super.clear(); + msg_ = ""; + + code_ = 0; + + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + } else { + resultsBuilder_.clear(); + } + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_AccountResponse_descriptor; + } + + public com.reuben.grpc.entity.AccountResponse getDefaultInstanceForType() { + return com.reuben.grpc.entity.AccountResponse.getDefaultInstance(); + } + + public com.reuben.grpc.entity.AccountResponse build() { + com.reuben.grpc.entity.AccountResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public com.reuben.grpc.entity.AccountResponse buildPartial() { + com.reuben.grpc.entity.AccountResponse result = new com.reuben.grpc.entity.AccountResponse(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.msg_ = msg_; + result.code_ = code_; + if (resultsBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004)) { + results_ = java.util.Collections.unmodifiableList(results_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.results_ = results_; + } else { + result.results_ = resultsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.reuben.grpc.entity.AccountResponse) { + return mergeFrom((com.reuben.grpc.entity.AccountResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.reuben.grpc.entity.AccountResponse other) { + if (other == com.reuben.grpc.entity.AccountResponse.getDefaultInstance()) return this; + if (!other.getMsg().isEmpty()) { + msg_ = other.msg_; + onChanged(); + } + if (other.getCode() != 0) { + setCode(other.getCode()); + } + if (resultsBuilder_ == null) { + if (!other.results_.isEmpty()) { + if (results_.isEmpty()) { + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureResultsIsMutable(); + results_.addAll(other.results_); + } + onChanged(); + } + } else { + if (!other.results_.isEmpty()) { + if (resultsBuilder_.isEmpty()) { + resultsBuilder_.dispose(); + resultsBuilder_ = null; + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000004); + resultsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getResultsFieldBuilder() : null; + } else { + resultsBuilder_.addAllMessages(other.results_); + } + } + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.reuben.grpc.entity.AccountResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.reuben.grpc.entity.AccountResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object msg_ = ""; + /** + * string msg = 1; + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msg = 1; + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msg = 1; + */ + public Builder setMsg( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + msg_ = value; + onChanged(); + return this; + } + /** + * string msg = 1; + */ + public Builder clearMsg() { + + msg_ = getDefaultInstance().getMsg(); + onChanged(); + return this; + } + /** + * string msg = 1; + */ + public Builder setMsgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + msg_ = value; + onChanged(); + return this; + } + + private int code_ ; + /** + * int32 code = 2; + */ + public int getCode() { + return code_; + } + /** + * int32 code = 2; + */ + public Builder setCode(int value) { + + code_ = value; + onChanged(); + return this; + } + /** + * int32 code = 2; + */ + public Builder clearCode() { + + code_ = 0; + onChanged(); + return this; + } + + private java.util.List results_ = + java.util.Collections.emptyList(); + private void ensureResultsIsMutable() { + if (!((bitField0_ & 0x00000004) == 0x00000004)) { + results_ = new java.util.ArrayList(results_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.reuben.grpc.entity.Account, com.reuben.grpc.entity.Account.Builder, com.reuben.grpc.entity.AccountOrBuilder> resultsBuilder_; + + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public java.util.List getResultsList() { + if (resultsBuilder_ == null) { + return java.util.Collections.unmodifiableList(results_); + } else { + return resultsBuilder_.getMessageList(); + } + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public int getResultsCount() { + if (resultsBuilder_ == null) { + return results_.size(); + } else { + return resultsBuilder_.getCount(); + } + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.Account getResults(int index) { + if (resultsBuilder_ == null) { + return results_.get(index); + } else { + return resultsBuilder_.getMessage(index); + } + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder setResults( + int index, com.reuben.grpc.entity.Account value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.set(index, value); + onChanged(); + } else { + resultsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder setResults( + int index, com.reuben.grpc.entity.Account.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.set(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder addResults(com.reuben.grpc.entity.Account value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(value); + onChanged(); + } else { + resultsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder addResults( + int index, com.reuben.grpc.entity.Account value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(index, value); + onChanged(); + } else { + resultsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder addResults( + com.reuben.grpc.entity.Account.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder addResults( + int index, com.reuben.grpc.entity.Account.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder addAllResults( + java.lang.Iterable values) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, results_); + onChanged(); + } else { + resultsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder clearResults() { + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + resultsBuilder_.clear(); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public Builder removeResults(int index) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.remove(index); + onChanged(); + } else { + resultsBuilder_.remove(index); + } + return this; + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.Account.Builder getResultsBuilder( + int index) { + return getResultsFieldBuilder().getBuilder(index); + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.AccountOrBuilder getResultsOrBuilder( + int index) { + if (resultsBuilder_ == null) { + return results_.get(index); } else { + return resultsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public java.util.List + getResultsOrBuilderList() { + if (resultsBuilder_ != null) { + return resultsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(results_); + } + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.Account.Builder addResultsBuilder() { + return getResultsFieldBuilder().addBuilder( + com.reuben.grpc.entity.Account.getDefaultInstance()); + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public com.reuben.grpc.entity.Account.Builder addResultsBuilder( + int index) { + return getResultsFieldBuilder().addBuilder( + index, com.reuben.grpc.entity.Account.getDefaultInstance()); + } + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + public java.util.List + getResultsBuilderList() { + return getResultsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + com.reuben.grpc.entity.Account, com.reuben.grpc.entity.Account.Builder, com.reuben.grpc.entity.AccountOrBuilder> + getResultsFieldBuilder() { + if (resultsBuilder_ == null) { + resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + com.reuben.grpc.entity.Account, com.reuben.grpc.entity.Account.Builder, com.reuben.grpc.entity.AccountOrBuilder>( + results_, + ((bitField0_ & 0x00000004) == 0x00000004), + getParentForChildren(), + isClean()); + results_ = null; + } + return resultsBuilder_; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:com.reuben.grpc.entity.AccountResponse) + } + + // @@protoc_insertion_point(class_scope:com.reuben.grpc.entity.AccountResponse) + private static final com.reuben.grpc.entity.AccountResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.reuben.grpc.entity.AccountResponse(); + } + + public static com.reuben.grpc.entity.AccountResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public AccountResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new AccountResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public com.reuben.grpc.entity.AccountResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponseOrBuilder.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponseOrBuilder.java new file mode 100644 index 0000000..a0d2fdb --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/AccountResponseOrBuilder.java @@ -0,0 +1,48 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +public interface AccountResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.reuben.grpc.entity.AccountResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * string msg = 1; + */ + java.lang.String getMsg(); + /** + * string msg = 1; + */ + com.google.protobuf.ByteString + getMsgBytes(); + + /** + * int32 code = 2; + */ + int getCode(); + + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + java.util.List + getResultsList(); + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + com.reuben.grpc.entity.Account getResults(int index); + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + int getResultsCount(); + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + java.util.List + getResultsOrBuilderList(); + /** + * repeated .com.reuben.grpc.entity.Account results = 3; + */ + com.reuben.grpc.entity.AccountOrBuilder getResultsOrBuilder( + int index); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/EntityProto.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/EntityProto.java new file mode 100644 index 0000000..2e1d3d8 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/EntityProto.java @@ -0,0 +1,94 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +public final class EntityProto { + private EntityProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_com_reuben_grpc_entity_HelloRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_com_reuben_grpc_entity_HelloRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_com_reuben_grpc_entity_HelloReply_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_com_reuben_grpc_entity_HelloReply_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_com_reuben_grpc_entity_Account_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_com_reuben_grpc_entity_Account_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_com_reuben_grpc_entity_AccountResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_com_reuben_grpc_entity_AccountResponse_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024entity/req_res.proto\022\026com.reuben.grpc." + + "entity\"\034\n\014HelloRequest\022\014\n\004name\030\001 \001(\t\"\035\n\n" + + "HelloReply\022\017\n\007message\030\001 \001(\t\"1\n\007Account\022\014" + + "\n\004name\030\001 \001(\t\022\013\n\003sex\030\002 \001(\t\022\013\n\003age\030\003 \001(\005\"^" + + "\n\017AccountResponse\022\013\n\003msg\030\001 \001(\t\022\014\n\004code\030\002" + + " \001(\005\0220\n\007results\030\003 \003(\0132\037.com.reuben.grpc." + + "entity.AccountB\'\n\026com.reuben.grpc.entity" + + "B\013EntityProtoP\001b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + internal_static_com_reuben_grpc_entity_HelloRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_com_reuben_grpc_entity_HelloRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_com_reuben_grpc_entity_HelloRequest_descriptor, + new java.lang.String[] { "Name", }); + internal_static_com_reuben_grpc_entity_HelloReply_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_com_reuben_grpc_entity_HelloReply_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_com_reuben_grpc_entity_HelloReply_descriptor, + new java.lang.String[] { "Message", }); + internal_static_com_reuben_grpc_entity_Account_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_com_reuben_grpc_entity_Account_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_com_reuben_grpc_entity_Account_descriptor, + new java.lang.String[] { "Name", "Sex", "Age", }); + internal_static_com_reuben_grpc_entity_AccountResponse_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_com_reuben_grpc_entity_AccountResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_com_reuben_grpc_entity_AccountResponse_descriptor, + new java.lang.String[] { "Msg", "Code", "Results", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReply.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReply.java new file mode 100644 index 0000000..0cf9ccd --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReply.java @@ -0,0 +1,513 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +/** + *
+ *响应参数
+ * 
+ * + * Protobuf type {@code com.reuben.grpc.entity.HelloReply} + */ +public final class HelloReply extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.reuben.grpc.entity.HelloReply) + HelloReplyOrBuilder { + // Use HelloReply.newBuilder() to construct. + private HelloReply(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private HelloReply() { + message_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private HelloReply( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + message_ = s; + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloReply_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloReply_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.HelloReply.class, com.reuben.grpc.entity.HelloReply.Builder.class); + } + + public static final int MESSAGE_FIELD_NUMBER = 1; + private volatile java.lang.Object message_; + /** + * string message = 1; + */ + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } + } + /** + * string message = 1; + */ + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getMessageBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, message_); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getMessageBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, message_); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.reuben.grpc.entity.HelloReply)) { + return super.equals(obj); + } + com.reuben.grpc.entity.HelloReply other = (com.reuben.grpc.entity.HelloReply) obj; + + boolean result = true; + result = result && getMessage() + .equals(other.getMessage()); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getMessage().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.reuben.grpc.entity.HelloReply parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloReply parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloReply parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloReply parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloReply parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloReply parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.reuben.grpc.entity.HelloReply prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   *响应参数
+   * 
+ * + * Protobuf type {@code com.reuben.grpc.entity.HelloReply} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:com.reuben.grpc.entity.HelloReply) + com.reuben.grpc.entity.HelloReplyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloReply_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloReply_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.HelloReply.class, com.reuben.grpc.entity.HelloReply.Builder.class); + } + + // Construct using com.reuben.grpc.entity.HelloReply.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + message_ = ""; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloReply_descriptor; + } + + public com.reuben.grpc.entity.HelloReply getDefaultInstanceForType() { + return com.reuben.grpc.entity.HelloReply.getDefaultInstance(); + } + + public com.reuben.grpc.entity.HelloReply build() { + com.reuben.grpc.entity.HelloReply result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public com.reuben.grpc.entity.HelloReply buildPartial() { + com.reuben.grpc.entity.HelloReply result = new com.reuben.grpc.entity.HelloReply(this); + result.message_ = message_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.reuben.grpc.entity.HelloReply) { + return mergeFrom((com.reuben.grpc.entity.HelloReply)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.reuben.grpc.entity.HelloReply other) { + if (other == com.reuben.grpc.entity.HelloReply.getDefaultInstance()) return this; + if (!other.getMessage().isEmpty()) { + message_ = other.message_; + onChanged(); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.reuben.grpc.entity.HelloReply parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.reuben.grpc.entity.HelloReply) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object message_ = ""; + /** + * string message = 1; + */ + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string message = 1; + */ + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string message = 1; + */ + public Builder setMessage( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + message_ = value; + onChanged(); + return this; + } + /** + * string message = 1; + */ + public Builder clearMessage() { + + message_ = getDefaultInstance().getMessage(); + onChanged(); + return this; + } + /** + * string message = 1; + */ + public Builder setMessageBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + message_ = value; + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:com.reuben.grpc.entity.HelloReply) + } + + // @@protoc_insertion_point(class_scope:com.reuben.grpc.entity.HelloReply) + private static final com.reuben.grpc.entity.HelloReply DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.reuben.grpc.entity.HelloReply(); + } + + public static com.reuben.grpc.entity.HelloReply getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public HelloReply parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new HelloReply(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public com.reuben.grpc.entity.HelloReply getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReplyOrBuilder.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReplyOrBuilder.java new file mode 100644 index 0000000..174de9d --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloReplyOrBuilder.java @@ -0,0 +1,19 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +public interface HelloReplyOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.reuben.grpc.entity.HelloReply) + com.google.protobuf.MessageOrBuilder { + + /** + * string message = 1; + */ + java.lang.String getMessage(); + /** + * string message = 1; + */ + com.google.protobuf.ByteString + getMessageBytes(); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequest.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequest.java new file mode 100644 index 0000000..fc2b7aa --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequest.java @@ -0,0 +1,513 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +/** + *
+ *请求参数
+ * 
+ * + * Protobuf type {@code com.reuben.grpc.entity.HelloRequest} + */ +public final class HelloRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.reuben.grpc.entity.HelloRequest) + HelloRequestOrBuilder { + // Use HelloRequest.newBuilder() to construct. + private HelloRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private HelloRequest() { + name_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + } + private HelloRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + int mutable_bitField0_ = 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!input.skipField(tag)) { + done = true; + } + break; + } + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.HelloRequest.class, com.reuben.grpc.entity.HelloRequest.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + } + + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + memoizedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.reuben.grpc.entity.HelloRequest)) { + return super.equals(obj); + } + com.reuben.grpc.entity.HelloRequest other = (com.reuben.grpc.entity.HelloRequest) obj; + + boolean result = true; + result = result && getName() + .equals(other.getName()); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.reuben.grpc.entity.HelloRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.reuben.grpc.entity.HelloRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.reuben.grpc.entity.HelloRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   *请求参数
+   * 
+ * + * Protobuf type {@code com.reuben.grpc.entity.HelloRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:com.reuben.grpc.entity.HelloRequest) + com.reuben.grpc.entity.HelloRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.reuben.grpc.entity.HelloRequest.class, com.reuben.grpc.entity.HelloRequest.Builder.class); + } + + // Construct using com.reuben.grpc.entity.HelloRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + public Builder clear() { + super.clear(); + name_ = ""; + + return this; + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.reuben.grpc.entity.EntityProto.internal_static_com_reuben_grpc_entity_HelloRequest_descriptor; + } + + public com.reuben.grpc.entity.HelloRequest getDefaultInstanceForType() { + return com.reuben.grpc.entity.HelloRequest.getDefaultInstance(); + } + + public com.reuben.grpc.entity.HelloRequest build() { + com.reuben.grpc.entity.HelloRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public com.reuben.grpc.entity.HelloRequest buildPartial() { + com.reuben.grpc.entity.HelloRequest result = new com.reuben.grpc.entity.HelloRequest(this); + result.name_ = name_; + onBuilt(); + return result; + } + + public Builder clone() { + return (Builder) super.clone(); + } + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.setField(field, value); + } + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return (Builder) super.addRepeatedField(field, value); + } + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.reuben.grpc.entity.HelloRequest) { + return mergeFrom((com.reuben.grpc.entity.HelloRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.reuben.grpc.entity.HelloRequest other) { + if (other == com.reuben.grpc.entity.HelloRequest.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + onChanged(); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.reuben.grpc.entity.HelloRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.reuben.grpc.entity.HelloRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 1; + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + * string name = 1; + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return this; + } + + + // @@protoc_insertion_point(builder_scope:com.reuben.grpc.entity.HelloRequest) + } + + // @@protoc_insertion_point(class_scope:com.reuben.grpc.entity.HelloRequest) + private static final com.reuben.grpc.entity.HelloRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.reuben.grpc.entity.HelloRequest(); + } + + public static com.reuben.grpc.entity.HelloRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + public HelloRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new HelloRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + public com.reuben.grpc.entity.HelloRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequestOrBuilder.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequestOrBuilder.java new file mode 100644 index 0000000..544c88e --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/entity/HelloRequestOrBuilder.java @@ -0,0 +1,19 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/req_res.proto + +package com.reuben.grpc.entity; + +public interface HelloRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.reuben.grpc.entity.HelloRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string name = 1; + */ + java.lang.String getName(); + /** + * string name = 1; + */ + com.google.protobuf.ByteString + getNameBytes(); +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/service/ServiceProto.java b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/service/ServiceProto.java new file mode 100644 index 0000000..9d55bbb --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/generated-sources/protobuf/java/com/reuben/grpc/service/ServiceProto.java @@ -0,0 +1,55 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: entity/hello_account.proto + +package com.reuben.grpc.service; + +public final class ServiceProto { + private ServiceProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\032entity/hello_account.proto\022\027com.reuben" + + ".grpc.service\032\024entity/req_res.proto2_\n\007G" + + "reeter\022T\n\010SayHello\022$.com.reuben.grpc.ent" + + "ity.HelloRequest\032\".com.reuben.grpc.entit" + + "y.HelloReply2\277\001\n\007Account\022V\n\naddAccount\022\037" + + ".com.reuben.grpc.entity.Account\032\'.com.re" + + "uben.grpc.entity.AccountResponse\022\\\n\020getA" + + "ccountByName\022\037.com.reuben.grpc.entity.Ac" + + "count\032\'.com.reuben.grpc.entity.AccountRe" + + "sponseB)\n\027com.reuben.grpc.serviceB\014Servi", + "ceProtoP\001b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.reuben.grpc.entity.EntityProto.getDescriptor(), + }, assigner); + com.reuben.grpc.entity.EntityProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..815d9b7 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,42 @@ +com\reuben\rpc\service\geeter\GreeterImpl.class +com\reuben\grpc\service\GreeterGrpc$1.class +com\reuben\grpc\entity\HelloReply$Builder.class +com\reuben\grpc\entity\AccountResponse$Builder.class +com\reuben\grpc\entity\AccountResponseOrBuilder.class +com\reuben\grpc\entity\HelloRequest$Builder.class +com\reuben\grpc\entity\HelloRequestOrBuilder.class +com\reuben\grpc\service\AccountGrpc$1.class +com\reuben\grpc\service\GreeterGrpc$GreeterBlockingStub.class +com\reuben\grpc\service\AccountGrpc$AccountDescriptorSupplier.class +com\reuben\grpc\service\ServiceProto.class +com\reuben\grpc\entity\Account$1.class +com\reuben\rpc\service\account\AccountImpl.class +com\reuben\grpc\entity\AccountResponse$1.class +com\reuben\grpc\entity\AccountResponse.class +com\reuben\grpc\entity\AccountOrBuilder.class +com\reuben\grpc\entity\HelloReply$1.class +com\reuben\grpc\service\GreeterGrpc$GreeterDescriptorSupplier.class +com\reuben\grpc\service\GreeterGrpc$GreeterFutureStub.class +com\reuben\grpc\service\ServiceProto$1.class +com\reuben\grpc\service\AccountGrpc$AccountImplBase.class +com\reuben\rpc\client\GreeterClient.class +com\reuben\grpc\service\AccountGrpc$AccountFutureStub.class +com\reuben\grpc\service\GreeterGrpc.class +com\reuben\grpc\entity\HelloRequest$1.class +com\reuben\grpc\entity\HelloRequest.class +com\reuben\grpc\service\GreeterGrpc$GreeterImplBase.class +com\reuben\grpc\entity\EntityProto$1.class +com\reuben\rpc\client\AccountClient.class +com\reuben\grpc\entity\EntityProto.class +com\reuben\grpc\entity\HelloReply.class +com\reuben\grpc\service\AccountGrpc$MethodHandlers.class +com\reuben\rpc\service\BootStrap.class +com\reuben\grpc\entity\Account.class +com\reuben\grpc\entity\Account$Builder.class +com\reuben\rpc\client\BaseClient.class +com\reuben\grpc\service\AccountGrpc.class +com\reuben\grpc\entity\HelloReplyOrBuilder.class +com\reuben\grpc\service\GreeterGrpc$GreeterStub.class +com\reuben\grpc\service\GreeterGrpc$MethodHandlers.class +com\reuben\grpc\service\AccountGrpc$AccountStub.class +com\reuben\grpc\service\AccountGrpc$AccountBlockingStub.class diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..f6a67f4 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,19 @@ +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\grpc-java\com\reuben\grpc\service\AccountGrpc.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\grpc-java\com\reuben\grpc\service\GreeterGrpc.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\EntityProto.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\HelloRequestOrBuilder.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\service\PackageInfo.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\Account.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\AccountResponse.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\service\geeter\GreeterImpl.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\client\BaseClient.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\AccountOrBuilder.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\HelloRequest.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\service\BootStrap.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\service\ServiceProto.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\HelloReply.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\service\account\AccountImpl.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\client\AccountClient.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\AccountResponseOrBuilder.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\target\generated-sources\protobuf\java\com\reuben\grpc\entity\HelloReplyOrBuilder.java +D:\IdeaPjct_ideaWorkplace\March\grpc-demo\src\main\java\com\reuben\rpc\client\GreeterClient.java diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/any.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/any.proto new file mode 100644 index 0000000..9bd3f50 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/any.proto @@ -0,0 +1,139 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/any"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the scheme `http`, `https`, or no scheme, the + // following restrictions and interpretations apply: + // + // * If no scheme is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/api.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/api.proto new file mode 100644 index 0000000..7c30e8b --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/api.proto @@ -0,0 +1,202 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/source_context.proto"; +import "google/protobuf/type.proto"; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "ApiProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/api;api"; + +// Api is a light-weight descriptor for a protocol buffer service. +message Api { + + // The fully qualified name of this api, including package name + // followed by the api's simple name. + string name = 1; + + // The methods of this api, in unspecified order. + repeated Method methods = 2; + + // Any metadata attached to the API. + repeated Option options = 3; + + // A version string for this api. If specified, must have the form + // `major-version.minor-version`, as in `1.10`. If the minor version + // is omitted, it defaults to zero. If the entire version field is + // empty, the major version is derived from the package name, as + // outlined below. If the field is not empty, the version in the + // package name will be verified to be consistent with what is + // provided here. + // + // The versioning schema uses [semantic + // versioning](http://semver.org) where the major version number + // indicates a breaking change and the minor version an additive, + // non-breaking change. Both version numbers are signals to users + // what to expect from different versions, and should be carefully + // chosen based on the product plan. + // + // The major version is also reflected in the package name of the + // API, which must end in `v`, as in + // `google.feature.v1`. For major versions 0 and 1, the suffix can + // be omitted. Zero major versions must only be used for + // experimental, none-GA apis. + // + // + string version = 4; + + // Source context for the protocol buffer service represented by this + // message. + SourceContext source_context = 5; + + // Included APIs. See [Mixin][]. + repeated Mixin mixins = 6; + + // The source syntax of the service. + Syntax syntax = 7; +} + +// Method represents a method of an api. +message Method { + + // The simple name of this method. + string name = 1; + + // A URL of the input message type. + string request_type_url = 2; + + // If true, the request is streamed. + bool request_streaming = 3; + + // The URL of the output message type. + string response_type_url = 4; + + // If true, the response is streamed. + bool response_streaming = 5; + + // Any metadata attached to the method. + repeated Option options = 6; + + // The source syntax of this method. + Syntax syntax = 7; +} + +// Declares an API to be included in this API. The including API must +// redeclare all the methods from the included API, but documentation +// and options are inherited as follows: +// +// - If after comment and whitespace stripping, the documentation +// string of the redeclared method is empty, it will be inherited +// from the original method. +// +// - Each annotation belonging to the service config (http, +// visibility) which is not set in the redeclared method will be +// inherited. +// +// - If an http annotation is inherited, the path pattern will be +// modified as follows. Any version prefix will be replaced by the +// version of the including API plus the [root][] path if specified. +// +// Example of a simple mixin: +// +// package google.acl.v1; +// service AccessControl { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v1/{resource=**}:getAcl"; +// } +// } +// +// package google.storage.v2; +// service Storage { +// rpc GetAcl(GetAclRequest) returns (Acl); +// +// // Get a data record. +// rpc GetData(GetDataRequest) returns (Data) { +// option (google.api.http).get = "/v2/{resource=**}"; +// } +// } +// +// Example of a mixin configuration: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// +// The mixin construct implies that all methods in `AccessControl` are +// also declared with same name and request/response types in +// `Storage`. A documentation generator or annotation processor will +// see the effective `Storage.GetAcl` method after inherting +// documentation and annotations as follows: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/{resource=**}:getAcl"; +// } +// ... +// } +// +// Note how the version in the path pattern changed from `v1` to `v2`. +// +// If the `root` field in the mixin is specified, it should be a +// relative path under which inherited HTTP paths are placed. Example: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// root: acls +// +// This implies the following inherited HTTP annotation: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; +// } +// ... +// } +message Mixin { + // The fully qualified name of the API which is included. + string name = 1; + + // If non-empty specifies a path under which inherited HTTP paths + // are rooted. + string root = 2; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/compiler/plugin.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/compiler/plugin.proto new file mode 100644 index 0000000..f04dc73 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/compiler/plugin.proto @@ -0,0 +1,166 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// +// WARNING: The plugin interface is currently EXPERIMENTAL and is subject to +// change. +// +// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is +// just a program that reads a CodeGeneratorRequest from stdin and writes a +// CodeGeneratorResponse to stdout. +// +// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead +// of dealing with the raw protocol defined here. +// +// A plugin executable needs only to be placed somewhere in the path. The +// plugin should be named "protoc-gen-$NAME", and will then be used when the +// flag "--${NAME}_out" is passed to protoc. + +syntax = "proto2"; +package google.protobuf.compiler; +option java_package = "com.google.protobuf.compiler"; +option java_outer_classname = "PluginProtos"; + +option go_package = "github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go"; + +import "google/protobuf/descriptor.proto"; + +// The version number of protocol compiler. +message Version { + optional int32 major = 1; + optional int32 minor = 2; + optional int32 patch = 3; + // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should + // be empty for mainline stable releases. + optional string suffix = 4; +} + +// An encoded CodeGeneratorRequest is written to the plugin's stdin. +message CodeGeneratorRequest { + // The .proto files that were explicitly listed on the command-line. The + // code generator should generate code only for these files. Each file's + // descriptor will be included in proto_file, below. + repeated string file_to_generate = 1; + + // The generator parameter passed on the command-line. + optional string parameter = 2; + + // FileDescriptorProtos for all files in files_to_generate and everything + // they import. The files will appear in topological order, so each file + // appears before any file that imports it. + // + // protoc guarantees that all proto_files will be written after + // the fields above, even though this is not technically guaranteed by the + // protobuf wire format. This theoretically could allow a plugin to stream + // in the FileDescriptorProtos and handle them one by one rather than read + // the entire set into memory at once. However, as of this writing, this + // is not similarly optimized on protoc's end -- it will store all fields in + // memory at once before sending them to the plugin. + // + // Type names of fields and extensions in the FileDescriptorProto are always + // fully qualified. + repeated FileDescriptorProto proto_file = 15; + + // The version number of protocol compiler. + optional Version compiler_version = 3; +} + +// The plugin writes an encoded CodeGeneratorResponse to stdout. +message CodeGeneratorResponse { + // Error message. If non-empty, code generation failed. The plugin process + // should exit with status code zero even if it reports an error in this way. + // + // This should be used to indicate errors in .proto files which prevent the + // code generator from generating correct code. Errors which indicate a + // problem in protoc itself -- such as the input CodeGeneratorRequest being + // unparseable -- should be reported by writing a message to stderr and + // exiting with a non-zero status code. + optional string error = 1; + + // Represents a single generated file. + message File { + // The file name, relative to the output directory. The name must not + // contain "." or ".." components and must be relative, not be absolute (so, + // the file cannot lie outside the output directory). "/" must be used as + // the path separator, not "\". + // + // If the name is omitted, the content will be appended to the previous + // file. This allows the generator to break large files into small chunks, + // and allows the generated text to be streamed back to protoc so that large + // files need not reside completely in memory at one time. Note that as of + // this writing protoc does not optimize for this -- it will read the entire + // CodeGeneratorResponse before writing files to disk. + optional string name = 1; + + // If non-empty, indicates that the named file should already exist, and the + // content here is to be inserted into that file at a defined insertion + // point. This feature allows a code generator to extend the output + // produced by another code generator. The original generator may provide + // insertion points by placing special annotations in the file that look + // like: + // @@protoc_insertion_point(NAME) + // The annotation can have arbitrary text before and after it on the line, + // which allows it to be placed in a comment. NAME should be replaced with + // an identifier naming the point -- this is what other generators will use + // as the insertion_point. Code inserted at this point will be placed + // immediately above the line containing the insertion point (thus multiple + // insertions to the same point will come out in the order they were added). + // The double-@ is intended to make it unlikely that the generated code + // could contain things that look like insertion points by accident. + // + // For example, the C++ code generator places the following line in the + // .pb.h files that it generates: + // // @@protoc_insertion_point(namespace_scope) + // This line appears within the scope of the file's package namespace, but + // outside of any particular class. Another plugin can then specify the + // insertion_point "namespace_scope" to generate additional classes or + // other declarations that should be placed in this scope. + // + // Note that if the line containing the insertion point begins with + // whitespace, the same whitespace will be added to every line of the + // inserted text. This is useful for languages like Python, where + // indentation matters. In these languages, the insertion point comment + // should be indented the same amount as any inserted code will need to be + // in order to work correctly in that context. + // + // The code generator that generates the initial file and the one which + // inserts into it must both run as part of a single invocation of protoc. + // Code generators are executed in the order in which they appear on the + // command line. + // + // If |insertion_point| is present, |name| must also be present. + optional string insertion_point = 2; + + // The file contents. + optional string content = 15; + } + repeated File file = 15; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/descriptor.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/descriptor.proto new file mode 100644 index 0000000..f859c42 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/descriptor.proto @@ -0,0 +1,831 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + + +syntax = "proto2"; + +package google.protobuf; +option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + optional string syntax = 12; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; + optional int32 end = 2; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + }; + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + }; + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default=false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default=false]; +} + + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + optional string java_outer_classname = 8; + + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default=false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + optional bool java_string_check_utf8 = 27 [default=false]; + + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default=SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default=false]; + optional bool java_generic_services = 17 [default=false]; + optional bool py_generic_services = 18 [default=false]; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default=false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default=false]; + + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default=false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default=false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default=false]; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). By default these types are + // represented as JavaScript strings. This avoids loss of precision that can + // happen when a large value is converted to a floating point JavaScript + // numbers. Specifying JS_NUMBER for the jstype causes the generated + // JavaScript code to use the JavaScript "number" type instead of strings. + // This option is an enum to permit additional types to be added, + // e.g. goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + optional bool lazy = 5 [default=false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default=false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default=false]; + + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype +} + +message OneofOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default=false]; + + reserved 5; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default=false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default=false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = + 34 [default=IDEMPOTENCY_UNKNOWN]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + // "foo.(bar.baz).qux". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed=true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed=true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed=true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + } +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/duration.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/duration.proto new file mode 100644 index 0000000..975fce4 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/duration.proto @@ -0,0 +1,117 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/duration"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +// +message Duration { + + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/empty.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/empty.proto new file mode 100644 index 0000000..03cacd2 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/empty.proto @@ -0,0 +1,52 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/empty"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "EmptyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +message Empty {} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/field_mask.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/field_mask.proto new file mode 100644 index 0000000..c68d247 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/field_mask.proto @@ -0,0 +1,246 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "FieldMaskProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask"; + +// `FieldMask` represents a set of symbolic field paths, for example: +// +// paths: "f.a" +// paths: "f.b.d" +// +// Here `f` represents a field in some root message, `a` and `b` +// fields in the message found in `f`, and `d` a field found in the +// message in `f.b`. +// +// Field masks are used to specify a subset of fields that should be +// returned by a get operation or modified by an update operation. +// Field masks also have a custom JSON encoding (see below). +// +// # Field Masks in Projections +// +// When used in the context of a projection, a response message or +// sub-message is filtered by the API to only contain those fields as +// specified in the mask. For example, if the mask in the previous +// example is applied to a response message as follows: +// +// f { +// a : 22 +// b { +// d : 1 +// x : 2 +// } +// y : 13 +// } +// z: 8 +// +// The result will not contain specific values for fields x,y and z +// (their value will be set to the default, and omitted in proto text +// output): +// +// +// f { +// a : 22 +// b { +// d : 1 +// } +// } +// +// A repeated field is not allowed except at the last position of a +// paths string. +// +// If a FieldMask object is not present in a get operation, the +// operation applies to all fields (as if a FieldMask of all fields +// had been specified). +// +// Note that a field mask does not necessarily apply to the +// top-level response message. In case of a REST get operation, the +// field mask applies directly to the response, but in case of a REST +// list operation, the mask instead applies to each individual message +// in the returned resource list. In case of a REST custom method, +// other definitions may be used. Where the mask applies will be +// clearly documented together with its declaration in the API. In +// any case, the effect on the returned resource/resources is required +// behavior for APIs. +// +// # Field Masks in Update Operations +// +// A field mask in update operations specifies which fields of the +// targeted resource are going to be updated. The API is required +// to only change the values of the fields as specified in the mask +// and leave the others untouched. If a resource is passed in to +// describe the updated values, the API ignores the values of all +// fields not covered by the mask. +// +// If a repeated field is specified for an update operation, the existing +// repeated values in the target resource will be overwritten by the new values. +// Note that a repeated field is only allowed in the last position of a `paths` +// string. +// +// If a sub-message is specified in the last position of the field mask for an +// update operation, then the existing sub-message in the target resource is +// overwritten. Given the target message: +// +// f { +// b { +// d : 1 +// x : 2 +// } +// c : 1 +// } +// +// And an update message: +// +// f { +// b { +// d : 10 +// } +// } +// +// then if the field mask is: +// +// paths: "f.b" +// +// then the result will be: +// +// f { +// b { +// d : 10 +// } +// c : 1 +// } +// +// However, if the update mask was: +// +// paths: "f.b.d" +// +// then the result would be: +// +// f { +// b { +// d : 10 +// x : 2 +// } +// c : 1 +// } +// +// In order to reset a field's value to the default, the field must +// be in the mask and set to the default value in the provided resource. +// Hence, in order to reset all fields of a resource, provide a default +// instance of the resource and set all fields in the mask, or do +// not provide a mask as described below. +// +// If a field mask is not present on update, the operation applies to +// all fields (as if a field mask of all fields has been specified). +// Note that in the presence of schema evolution, this may mean that +// fields the client does not know and has therefore not filled into +// the request will be reset to their default. If this is unwanted +// behavior, a specific service may require a client to always specify +// a field mask, producing an error if not. +// +// As with get operations, the location of the resource which +// describes the updated values in the request message depends on the +// operation kind. In any case, the effect of the field mask is +// required to be honored by the API. +// +// ## Considerations for HTTP REST +// +// The HTTP kind of an update operation which uses a field mask must +// be set to PATCH instead of PUT in order to satisfy HTTP semantics +// (PUT must only be used for full updates). +// +// # JSON Encoding of Field Masks +// +// In JSON, a field mask is encoded as a single string where paths are +// separated by a comma. Fields name in each path are converted +// to/from lower-camel naming conventions. +// +// As an example, consider the following message declarations: +// +// message Profile { +// User user = 1; +// Photo photo = 2; +// } +// message User { +// string display_name = 1; +// string address = 2; +// } +// +// In proto a field mask for `Profile` may look as such: +// +// mask { +// paths: "user.display_name" +// paths: "photo" +// } +// +// In JSON, the same mask is represented as below: +// +// { +// mask: "user.displayName,photo" +// } +// +// # Field Masks and Oneof Fields +// +// Field masks treat fields in oneofs just as regular fields. Consider the +// following message: +// +// message SampleMessage { +// oneof test_oneof { +// string name = 4; +// SubMessage sub_message = 9; +// } +// } +// +// The field mask can be: +// +// mask { +// paths: "name" +// } +// +// Or: +// +// mask { +// paths: "sub_message" +// } +// +// Note that oneof type names ("test_oneof" in this case) cannot be used in +// paths. +message FieldMask { + // The set of field mask paths. + repeated string paths = 1; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/source_context.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/source_context.proto new file mode 100644 index 0000000..f3b2c96 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/source_context.proto @@ -0,0 +1,48 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "SourceContextProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/source_context;source_context"; + +// `SourceContext` represents information about the source of a +// protobuf element, like the file in which it is defined. +message SourceContext { + // The path-qualified name of the .proto file that contained the associated + // protobuf element. For example: `"google/protobuf/source_context.proto"`. + string file_name = 1; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/struct.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/struct.proto new file mode 100644 index 0000000..7d7808e --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/struct.proto @@ -0,0 +1,96 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/timestamp.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/timestamp.proto new file mode 100644 index 0000000..b7cbd17 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/timestamp.proto @@ -0,0 +1,133 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/timestamp"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required, though only UTC (as indicated by "Z") is presently supported. +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) +// to obtain a formatter capable of generating timestamps in this format. +// +// +message Timestamp { + + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/type.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/type.proto new file mode 100644 index 0000000..624c15e --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/type.proto @@ -0,0 +1,187 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/any.proto"; +import "google/protobuf/source_context.proto"; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TypeProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "google.golang.org/genproto/protobuf/ptype;ptype"; + +// A protocol buffer message type. +message Type { + // The fully qualified message name. + string name = 1; + // The list of fields. + repeated Field fields = 2; + // The list of types appearing in `oneof` definitions in this type. + repeated string oneofs = 3; + // The protocol buffer options. + repeated Option options = 4; + // The source context. + SourceContext source_context = 5; + // The source syntax. + Syntax syntax = 6; +} + +// A single field of a message type. +message Field { + // Basic field types. + enum Kind { + // Field type unknown. + TYPE_UNKNOWN = 0; + // Field type double. + TYPE_DOUBLE = 1; + // Field type float. + TYPE_FLOAT = 2; + // Field type int64. + TYPE_INT64 = 3; + // Field type uint64. + TYPE_UINT64 = 4; + // Field type int32. + TYPE_INT32 = 5; + // Field type fixed64. + TYPE_FIXED64 = 6; + // Field type fixed32. + TYPE_FIXED32 = 7; + // Field type bool. + TYPE_BOOL = 8; + // Field type string. + TYPE_STRING = 9; + // Field type group. Proto2 syntax only, and deprecated. + TYPE_GROUP = 10; + // Field type message. + TYPE_MESSAGE = 11; + // Field type bytes. + TYPE_BYTES = 12; + // Field type uint32. + TYPE_UINT32 = 13; + // Field type enum. + TYPE_ENUM = 14; + // Field type sfixed32. + TYPE_SFIXED32 = 15; + // Field type sfixed64. + TYPE_SFIXED64 = 16; + // Field type sint32. + TYPE_SINT32 = 17; + // Field type sint64. + TYPE_SINT64 = 18; + }; + + // Whether a field is optional, required, or repeated. + enum Cardinality { + // For fields with unknown cardinality. + CARDINALITY_UNKNOWN = 0; + // For optional fields. + CARDINALITY_OPTIONAL = 1; + // For required fields. Proto2 syntax only. + CARDINALITY_REQUIRED = 2; + // For repeated fields. + CARDINALITY_REPEATED = 3; + }; + + // The field type. + Kind kind = 1; + // The field cardinality. + Cardinality cardinality = 2; + // The field number. + int32 number = 3; + // The field name. + string name = 4; + // The field type URL, without the scheme, for message or enumeration + // types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + string type_url = 6; + // The index of the field type in `Type.oneofs`, for message or enumeration + // types. The first type has index 1; zero means the type is not in the list. + int32 oneof_index = 7; + // Whether to use alternative packed wire representation. + bool packed = 8; + // The protocol buffer options. + repeated Option options = 9; + // The field JSON name. + string json_name = 10; + // The string value of the default value of this field. Proto2 syntax only. + string default_value = 11; +} + +// Enum type definition. +message Enum { + // Enum type name. + string name = 1; + // Enum value definitions. + repeated EnumValue enumvalue = 2; + // Protocol buffer options. + repeated Option options = 3; + // The source context. + SourceContext source_context = 4; + // The source syntax. + Syntax syntax = 5; +} + +// Enum value definition. +message EnumValue { + // Enum value name. + string name = 1; + // Enum value number. + int32 number = 2; + // Protocol buffer options. + repeated Option options = 3; +} + +// A protocol buffer option, which can be attached to a message, field, +// enumeration, etc. +message Option { + // The option's name. For protobuf built-in options (options defined in + // descriptor.proto), this is the short name. For example, `"map_entry"`. + // For custom options, it should be the fully-qualified name. For example, + // `"google.api.http"`. + string name = 1; + // The option's value packed in an Any message. If the value is a primitive, + // the corresponding wrapper type defined in google/protobuf/wrappers.proto + // should be used. If the value is an enum, it should be stored as an int32 + // value using the google.protobuf.Int32Value type. + Any value = 2; +} + +// The syntax in which a protocol buffer element is defined. +enum Syntax { + // Syntax `proto2`. + SYNTAX_PROTO2 = 0; + // Syntax `proto3`. + SYNTAX_PROTO3 = 1; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/wrappers.proto b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/wrappers.proto new file mode 100644 index 0000000..0194763 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-dependencies/5421dd4276a8393198d5a03a3890c641/google/protobuf/wrappers.proto @@ -0,0 +1,118 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/wrappers"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +} diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-3.3.0-windows-x86_64.exe b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-3.3.0-windows-x86_64.exe new file mode 100644 index 0000000..c170629 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-3.3.0-windows-x86_64.exe differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-gen-grpc-java-1.6.1-windows-x86_64.exe b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-gen-grpc-java-1.6.1-windows-x86_64.exe new file mode 100644 index 0000000..50588a7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/protoc-plugins/protoc-gen-grpc-java-1.6.1-windows-x86_64.exe differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/META-INF/grpc-demo.kotlin_module b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/META-INF/grpc-demo.kotlin_module new file mode 100644 index 0000000..2983af7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/META-INF/grpc-demo.kotlin_module differ diff --git a/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/Tests.class b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/Tests.class new file mode 100644 index 0000000..06aa7e7 Binary files /dev/null and b/developer/back-end/wen20200323/yuanmao/grpc-demo/target/test-classes/Tests.class differ diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/pom.xml b/developer/back-end/wen20200323/yuanmao/springboot_demo/pom.xml new file mode 100644 index 0000000..9d44307 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/pom.xml @@ -0,0 +1,106 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.5.RELEASE + + + com.reuben + springboot_demo + 0.0.1-SNAPSHOT + springboot_demo + Demo project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + + io.swagger + swagger-annotations + 1.5.22 + + + io.swagger + swagger-models + 1.5.22 + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + junit + junit + test + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + mysql + mysql-connector-java + 5.1.6 + + + + org.projectlombok + lombok + + + + com.fasterxml.jackson.core + jackson-databind + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/SpringbootDemoApplication.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/SpringbootDemoApplication.java new file mode 100644 index 0000000..152194b --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/SpringbootDemoApplication.java @@ -0,0 +1,13 @@ +package com.reuben; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringbootDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringbootDemoApplication.class, args); + } + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/config/Swagger2Config.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/config/Swagger2Config.java new file mode 100644 index 0000000..ff32674 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/config/Swagger2Config.java @@ -0,0 +1,46 @@ +package com.reuben.config; + + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; + +@Configuration +@EnableSwagger2 +public class Swagger2Config { + //配置Swagger信息apiInfo + private ApiInfo apiInfo(){ + Contact contact = new Contact("reuben", "https://github.com/ReubenYm/", "yuanmaooooo@gmail.com"); + return new ApiInfo( + "reuben的SwaggerApi", + "入门Swagger", + "1.3", + "https://github.com/ReubenYm/", + contact, + "Apache 2.0", + "http://www.apache.org/licenses/LICENSE-2.0", + new ArrayList() + ); + + } + //配置了Swagger的Docket的bean实例 + @Bean + public Docket docket(){ + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + //enable:是否启动Swagger,如果为false则Swagger不能在浏览器中访问 + .enable(true) + .select() + .apis(RequestHandlerSelectors.basePackage("com.reuben.controller")) + //path():过滤什么路径 + //.paths(PathSelectors) + .build(); + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/HelloController.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/HelloController.java new file mode 100644 index 0000000..a4b6e10 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/HelloController.java @@ -0,0 +1,17 @@ +package com.reuben.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +@Api(tags = "HelloController") +public class HelloController { + @GetMapping("/hello") + @ApiOperation(value = "简单get请求",notes = "no param",httpMethod = "GET") + public String hello() { + return "hello"; + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/UserController.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/UserController.java new file mode 100644 index 0000000..4919f65 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/controller/UserController.java @@ -0,0 +1,100 @@ +package com.reuben.controller; + +import com.reuben.entity.PageParam; +import com.reuben.entity.User; +import com.reuben.service.UserService; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +import java.util.List; + + +@RestController("api") +@Api(tags = "User相关api") +@Validated +@Slf4j +public class UserController { + @Autowired + private User user_default; + + @Autowired + private UserService userService; + + @PostMapping("/post_test") + @ApiOperation(value = "post提交User", notes = "需要User作为参数", httpMethod = "POST") + public String testPost(@ApiParam(value = "userName:用户名、userPassword:密码", required = true) + @RequestBody User user) { + System.out.println(user); + return "Success! Hello!" + user.getUserName() + ",your password is:" + user.getUserPassword(); + } + + @GetMapping("/default_user") + @ApiOperation(value = "获取默认user", notes = "无需参数", httpMethod = "GET") + public User getDefaultUser() { + return user_default; + } + + + @PostMapping("user") + @ApiOperation(value = "添加User", notes = "新建用户", httpMethod = "POST") + public String saveUser(@RequestBody User user) { + //User user = new User(userName, userPassword, userEmail); + return userService.save(user); + } + + @GetMapping("user/all_users") + @ApiOperation(value = "获取所有User", notes = "无需参数", httpMethod = "GET") + public String getAllUser() { + return userService.getAll(); + } + + @GetMapping("user/{userName}") + @ApiOperation(value = "通过userName获取User", notes = "需要userName作为参数", httpMethod = "GET") + public String findByUserName(@ApiParam(name = "userName", value = "用户名", required = true, example = "reuben") + @PathVariable String userName) { + return userService.getByUserName(userName); + } + + + @GetMapping("user") + @ApiOperation(value = "通过userId获取User", notes = "需要userId作为参数", httpMethod = "GET") + public String findByUserId(Integer id) { + //log.info(id.toString()); + return userService.getByUserId(id); + } + + @DeleteMapping("user") + @ApiOperation(value = "通过id删除User", notes = "需要id作为参数", httpMethod = "DELETE") + public String deleteUserById(@ApiParam(value = "用户id", required = true) + @RequestBody Integer id) { + return userService.deleteByUserId(id); + } + + @DeleteMapping("/deletions") + @ApiOperation(value = "通过id批量删除User", notes = "需要id作为参数", httpMethod = "DELETE") + public String multipleDeleteByUserId(@ApiParam(value = "用户id", required = true) + @RequestBody List ids) { + return userService.multipleDeleteByUserId(ids); + } + + @PutMapping("user") + @ApiOperation(value = "修改User", notes = "需要User作为参数", httpMethod = "PUT") + public String update(@ApiParam(value = "userId:id、userName:用户名、userPassword:密码、email:邮箱", required = true) + @RequestBody User user) { + return userService.update(user); + } + + @GetMapping("/pagination") + @ApiOperation(value = "条件查询(分页)", notes = "无条件时,参数留空(需要id查询请使用findByUserId)", httpMethod = "GET") + public Page findByPage(@ApiParam(value = "无条件时,参数留空(需要id查询请使用findByUserId)", required = true) + @RequestBody PageParam pageParam) { + return userService.getByPage(pageParam); + } + + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/dao/UserDao.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/dao/UserDao.java new file mode 100644 index 0000000..2b12224 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/dao/UserDao.java @@ -0,0 +1,57 @@ +package com.reuben.dao; + +import com.reuben.entity.User; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + + +import java.util.List; + + +public interface UserDao extends JpaRepository { + + + /** + * @Description: 通过user_name查询 + * @Param: [name] + * @return: java.util.List + */ + @Query(name = "findByUserName", nativeQuery = true, value = "select * from tb_user where user_name= :user_name") + List findByUserName(@Param("user_name") String name); + + /** + * @Description: 逻辑删除 + * @Param: [userId] + * @return: void + */ + @Transactional + @Modifying + @Query(name = "deleteByUserId", nativeQuery = true, value = "update tb_user set isdel = '1' where id= :userId") + void deleteByUserId(@Param("userId") Integer userId); + + /** + * @Description: update + * @Param: [id, user_name, user_password, email] + * @return: void + */ + @Transactional + @Modifying + @Query(name = "update", nativeQuery = true, value = "update tb_user set user_name = :user_name," + + "user_password=:user_password,email=:email " + + "where id=:id") + void update(@Param("id") Integer id, + @Param("user_name") String user_name, + @Param("user_password") String user_password, + @Param("email") String email); + + //分页查询 + Page findAll(Specification spec, Pageable pageable); +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/MsgAndData.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/MsgAndData.java new file mode 100644 index 0000000..d520030 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/MsgAndData.java @@ -0,0 +1,23 @@ +package com.reuben.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * @program: springboot_demo + * @description: msg and return data + * @author: reuben + * @create: 2020-03-19 13:14 + **/ +@Data//get,set方法 +@AllArgsConstructor//全参构造 +@NoArgsConstructor//无参构造 +@Component +public class MsgAndData implements Serializable { + private String message; + private String data; +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/PageParam.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/PageParam.java new file mode 100644 index 0000000..14c0150 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/PageParam.java @@ -0,0 +1,30 @@ +package com.reuben.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * @program: springboot_demo + * @description: params for page + * @author: reuben + * @create: 2020-03-20 18:36 + **/ +@ApiModel(value = "PageParam分页查询参数对象", description = "无条件时,参数留空(需要id查询请使用findByUserId)") +@Component +@Data//get,set方法 +@AllArgsConstructor//全参构造 +@NoArgsConstructor//无参构造 +public class PageParam implements Serializable { + private User user; + @ApiModelProperty(value = "页码", name = "pageNum", example = "0") + private Integer pageNum; + @ApiModelProperty(value = "每页显示条数", name = "pageSize", example = "5") + private Integer pageSize; + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/User.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/User.java new file mode 100644 index 0000000..faf188d --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/entity/User.java @@ -0,0 +1,63 @@ +package com.reuben.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; + + +import javax.persistence.*; +import javax.validation.constraints.*; + +import java.io.Serializable; + +@ApiModel(value = "User对象", description = "用户对象user") +@Component +@ConfigurationProperties(prefix = "user") +@Validated +@Data//get,set方法 +@AllArgsConstructor//全参构造 +@NoArgsConstructor//无参构造 +//jpa +@Entity //标注实体类 +@Table(name = "tb_user") +public class User implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY)//主键自增 + @Column(name = "id") + @ApiModelProperty(value = "userId", hidden = false) + private Integer userId; + + @ApiModelProperty(value = "用户名", name = "userName", example = "reuben") + @NotBlank + @Column(name = "user_name") + private String userName; + + + @ApiModelProperty(value = "密码", name = "userPassword", example = "reuben") + @NotBlank + @Column(name = "user_password") + private String userPassword; + + @ApiModelProperty(value = "邮箱", name = "email", example = "reuben@mail.com") + @NotBlank + @Email + @Column(name = "email") + private String email; + + @Column(name = "isdel") + @ApiModelProperty(value = "逻辑删除,默认0",name = "isdel",example = "0",hidden = false) + private String del;//是否删除:1删除,0未删除 + + + public User(@NotBlank String userName, @NotBlank String userPassword, @NotBlank @Email String email) { + this.userName = userName; + this.userPassword = userPassword; + this.email = email; + this.del = "0";//默认0,未被删除 + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/UserService.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/UserService.java new file mode 100644 index 0000000..5b27dbe --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/UserService.java @@ -0,0 +1,57 @@ +package com.reuben.service; + +import com.reuben.entity.PageParam; +import com.reuben.entity.User; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * @program: springboot_demo + **/ +@Service +public interface UserService { + + + /** + * @Description: 添加User + */ + String save(User user); + + /** + * @Description: 查询所有 + */ + String getAll(); + + /** + * @Description: 通过id查询 + */ + String getByUserId(Integer id); + + /** + * @Description: 通过id查找 + */ + String getByUserName(String name); + + /** + * @Description: 逻辑删除 + */ + String deleteByUserId(Integer id); + + /** + * @Description: Multiple delete批量删除 + */ + String multipleDeleteByUserId(List ids); + + /** + * @Description: update + */ + String update(User user); + + /** + * @Description: 分页条件查询 + */ + Page getByPage(PageParam pageParam); +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/impl/UserServiceImpl.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..2fecdd6 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/service/impl/UserServiceImpl.java @@ -0,0 +1,242 @@ +package com.reuben.service.impl; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.reuben.dao.UserDao; +import com.reuben.entity.PageParam; +import com.reuben.entity.User; +import com.reuben.entity.MsgAndData; +import com.reuben.service.UserService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Component; + +import javax.persistence.criteria.Predicate; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * @program: springboot_demo + **/ +@Component +@Slf4j +public class UserServiceImpl implements UserService { + @Autowired + private UserDao userDao; + + @Autowired + private MsgAndData msgAndData; + //初始化Jackson的ObjectMapper + private static ObjectMapper mapper = new ObjectMapper(); + + /** + * @Description: 添加User + * @Param: [user] + * @return: java.lang.String + */ + @Override + public String save(User user) { + //判断数据是否为空 + //log.info(user.toString()); + if (isNull(user)) { + return "No data received!"; + } + //判断是否存在相同用户名 + if (!isExist(user.getUserName())) { + user.setDel("0");//默认未删除 + userDao.save(user); + return "save Success"; + } else return "Username already exists!"; + + } + + /** + * @Description: 获取所有User + * @Param: [] + * @return: java.lang.String + */ + @SneakyThrows + @Override + public String getAll() { + List all = userDao.findAll(); + String result=mapper.writeValueAsString(all); + return result; + + } + + /** + * @Description: 通过id查询 + * @Param: [id] + * @return: java.lang.String + */ + @SneakyThrows + @Override + public String getByUserId(Integer id) { + Optional byId = userDao.findById(id); + // log.info(byId.toString()); + String result = mapper.writeValueAsString(byId.get()); + return result; + } + + /** + * @Description: 通过userName查询 + * @Param: [name] + * @return: java.lang.String + */ + @SneakyThrows + @Override + public String getByUserName(String name) { + //String name_str = mapper.readValue(name, String.class); + List byUserName = userDao.findByUserName(name); + String result = mapper.writeValueAsString(byUserName); + return result; + } + + /** + * @Description: + * @Param: [id] + * @return: java.lang.String + */ + @SneakyThrows + @Override + public String deleteByUserId(Integer id) { + Optional byId = userDao.findById(id);//通过id查询是否存在 + //log.info(String.valueOf(byId.isPresent())); + + //将返回结果封装到msgAndData + if (!byId.isPresent()) { + msgAndData.setMessage("User not exist!"); + } else { + userDao.deleteByUserId(id); + msgAndData.setMessage("delete Success!"); + byId.get().setDel("1"); + msgAndData.setData(byId.get().toString()); + + } + //json格式化 + String result = mapper.writeValueAsString(msgAndData); + return result; + + } + + @SneakyThrows + @Override + + /** + * @Description: Multiple delete批量删除 + * @Param: [ids] + * @return: java.lang.String + */ + public String multipleDeleteByUserId(List ids) { + List results = new ArrayList<>(); + results.add("result"); + if (0 != ids.size()) { + for (Integer id : ids) { + results.add(this.deleteByUserId(id)); + } + } + + String result = mapper.writeValueAsString(results); + return result; + } + + /** + * @Description: update + * @Param: [user] + * @return: java.lang.String + */ + @SneakyThrows + @Override + public String update(User user) { + //log.info(user.toString()); + if (isNull(user)) { + return "No data received!"; + } + if (isExist(user.getUserName())) { + msgAndData.setMessage("Update failed!: userName already exists!"); + } else { + userDao.update(user.getUserId(), + user.getUserName(), + user.getUserPassword(), + user.getEmail()); + + msgAndData.setMessage("update Success!"); + msgAndData.setData(userDao.findById(user.getUserId()).get().toString()); + } + String result = mapper.writeValueAsString(msgAndData); + return result; + } + + /** + * @Description: 分页条件查询 + * @Param: [pageParam] + * @return: org.springframework.data.domain.Page + */ + @Override + public Page getByPage(PageParam pageParam) { + //log.info(pageParam.toString()); + if (pageParam.getPageNum() == null) { + pageParam.setPageNum(0); + } + if (null == pageParam.getPageSize() || 0 == pageParam.getPageSize()) { + pageParam.setPageSize(5); + } + + Pageable pageable = PageRequest.of(pageParam.getPageNum(), pageParam.getPageSize(), Sort.by(Sort.Direction.ASC, "userId")); + + Specification spec = (Specification) (root, criteriaQuery, criteriaBuilder) -> { + ArrayList pr = new ArrayList<>(); + if (pageParam.getUser() != null) { + if (pageParam.getUser().getUserName() != null) { + pr.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + pageParam.getUser().getUserName() + "%")); + } + if (pageParam.getUser().getUserPassword() != null) { + pr.add(criteriaBuilder.like(root.get("userPassword").as(String.class), "%" + pageParam.getUser().getUserPassword() + "%")); + } + if (pageParam.getUser().getEmail() != null) { + pr.add(criteriaBuilder.like(root.get("email").as(String.class), "%" + pageParam.getUser().getEmail() + "%")); + } + if (pageParam.getUser().getDel() != null) { + pr.add(criteriaBuilder.like(root.get("isdel").as(String.class), "%" + pageParam.getUser().getDel() + "%")); + } + } + return criteriaBuilder.and(pr.toArray(new Predicate[pr.size()])); + + }; + return userDao.findAll(spec, pageable); + } + + /** + * @Description: 判断用户名是否存在 + * @Param: [userName] + * @return: Boolean + */ + private Boolean isExist(String userName) { + boolean flag = false; + List byUserName = userDao.findByUserName(userName); + if (byUserName.size() > 0) { + flag = true; + } + return flag; + } + + /** + * @Description: 判断数据是否为空 + * @Param: [user] + * @return: Boolean + */ + private Boolean isNull(User user) { + boolean flag = false; + //log.info("isnull"+user.toString()); + if (null == user || 0 == user.getUserName().length()) { + flag = true; + } + return flag; + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/util/DisposeUtil.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/util/DisposeUtil.java new file mode 100644 index 0000000..bb24b15 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/java/com/reuben/util/DisposeUtil.java @@ -0,0 +1,79 @@ +package com.reuben.util; + +import javax.persistence.criteria.CriteriaBuilder; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Date; + +/** + * @program: springboot_demo + * @description: + * @author: reuben + * @create: 2020-03-20 19:25 + **/ +public class DisposeUtil { + public static Object dispose(Object object){ + Field[] field = object.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组 + try { + for (int j = 0; j < field.length; j++) { // 遍历所有属性 + String name = field[j].getName(); // 获取属性的名字 + name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法 + String type = field[j].getGenericType().toString(); // 获取属性的类型 + if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名 + Method m = object.getClass().getMethod("get" + name); + String value = (String) m.invoke(object); // 调用getter方法获取属性值 + //.....处理开始........ + //执行处理方法 + String t_value=value+"===="; + + + //.....处理结束........ + m = object.getClass().getMethod("set"+name,String.class); + + + m.invoke(object, t_value); + } + if (type.equals("class java.lang.Integer")) { + Method m = object.getClass().getMethod("get" + name); + Integer value = (Integer) m.invoke(object); + if (value == null) { + m = object.getClass().getMethod("set"+name,Integer.class); + m.invoke(object, 1); + } + } + if (type.equals("class java.lang.Boolean")) { + Method m = object.getClass().getMethod("get" + name); + Boolean value = (Boolean) m.invoke(object); + if (value == null) { + m = object.getClass().getMethod("set"+name,Boolean.class); + m.invoke(object, false); + } + } + if (type.equals("class java.util.Date")) { + Method m = object.getClass().getMethod("get" + name); + Date value = (Date) m.invoke(object); + if (value == null) { + m = object.getClass().getMethod("set"+name,Date.class); + m.invoke(object, new Date()); + } + } + // 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断 + } + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + + return object; + } + + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/application.yml b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/application.yml new file mode 100644 index 0000000..56a5a85 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/application.yml @@ -0,0 +1,36 @@ +server: + port: 8080 +spring: + profiles: + active: dev + +--- +server: + port: 8081 +spring: + profiles: dev + +--- +server: + port: 8082 +spring: + profiles: test + +--- +#user_default +user: + user-id: 0 + userName: default_userName + userPassword: default_userPassword + email: default_email@email.cn + isdel: 0 +--- +#jpa +spring: + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://localhost:3306/db_user?charactorEncoding=utf-8&useSSL=false + username: root + password: 123456 + jpa: + show-sql: true diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/banner.txt b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/banner.txt new file mode 100644 index 0000000..9aed33b --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/banner.txt @@ -0,0 +1,35 @@ + [{+?] + ~++++{. + !{{{{[}}{{{{{_. .{++++{ {{}{ + {++++++{++++++?}]++?{{_++{ -{++++} + {+rr+r\+{+++++{$$ +++++++[{<<+++++{ + }++++++{+++++++{<{}+{$k {+++++}}{^ + }{++[{++++++++++++++{ _++++++++{, + {++++++++++++++++++]}?+++++++++++{ + {{++++++++++++++++++++++++++++++} + {{+++++++++++++++++++++++_++++{ + {+++++++++++++++++++}}}}}}}++I + {+++++++++++++++++++[}}}}}}}_+{ + []++vY+++++++++++++++}}}}}}}}++{ + {++++X$X|+++++++++++++}}}}}[+++{ + {_++++X%$$qXXv\|XXX)++++++++++-^ + :{++++++XX$$$$$qXv++++++++++++{ + l-++++++++++++++++++++++++++{ + I{++++++++++++++++++++++++{ + C0{}++++++++++++++++++-{0C + COOOOO0{{[+++++++++_{{0OOO0C + COOOOOOOOOOOOOOUCOOOOOOOOOOOOn<<<" + "< COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC + {QOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL ' + COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOY"< < + COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC<<<<<<` + 'COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC + [COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC + ]CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC + << ^<^ + << ^<^ + << ^<^ + $$$$$$$$> O$$$$$$$z diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/tb_user.sql b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/tb_user.sql new file mode 100644 index 0000000..2aa42d6 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/main/resources/tb_user.sql @@ -0,0 +1,42 @@ +/* + Navicat Premium Data Transfer + + Source Server : root_5.5_3306_123456 + Source Server Type : MySQL + Source Server Version : 50540 + Source Host : localhost:3306 + Source Schema : db_user + + Target Server Type : MySQL + Target Server Version : 50540 + File Encoding : 65001 + + Date: 18/03/2020 15:42:20 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for tb_user +-- ---------------------------- +DROP TABLE IF EXISTS `tb_user`; +CREATE TABLE `tb_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `user_password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `isdel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of tb_user +-- ---------------------------- +INSERT INTO `tb_user` VALUES (1, 'da', 'da', 'da@qq.com', '1'); +INSERT INTO `tb_user` VALUES (2, 'd', 'd', 'd', '0'); +INSERT INTO `tb_user` VALUES (3, 'da', '233', 'qq@qq.com', '1'); +INSERT INTO `tb_user` VALUES (4, 'da', '234', 'qq@qq.com', '1'); +INSERT INTO `tb_user` VALUES (5, 'ceshi', '233', 'qq@qq.com', '0'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/SpringbootDemoApplicationTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/SpringbootDemoApplicationTests.java new file mode 100644 index 0000000..7341174 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/SpringbootDemoApplicationTests.java @@ -0,0 +1,35 @@ +package com.reuben.springboot_demo; + + +import lombok.extern.slf4j.Slf4j; +import org.junit.After; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@SpringBootTest +@Slf4j +public class SpringbootDemoApplicationTests { + protected MockMvc mvc; + @Autowired + private WebApplicationContext context; + + @Before + public void init() { + mvc = MockMvcBuilders.webAppContextSetup(context).build();//构造MockMvc + log.info("--------start testing------"); + } + + @After + public void after() { + log.info("--------End of test--------"); + } + + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/controller/UserControllerTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/controller/UserControllerTests.java new file mode 100644 index 0000000..d310961 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/controller/UserControllerTests.java @@ -0,0 +1,138 @@ +package com.reuben.springboot_demo.controller; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.reuben.entity.User; +import com.reuben.springboot_demo.SpringbootDemoApplicationTests; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.transaction.annotation.Transactional; + +/** + * @description: + **/ +@Slf4j +@Transactional//默认回滚,@Rollback(false)取消回滚 +public class UserControllerTests extends SpringbootDemoApplicationTests { + @Autowired + private User user_default; + + private ObjectMapper mapper = new ObjectMapper();//jackson + + private MockHttpServletRequestBuilder content = null;//构造请求 + + private User test_user = new User("test", "test", "test@mail.cn"); + //json格式的User + private static String user_json; + + { + try { + user_json = mapper.writeValueAsString(test_user); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + + @SneakyThrows + @Test + public void test_testPost() { + content = MockMvcRequestBuilders.post("/testPost") + .accept(MediaType.APPLICATION_JSON_UTF8) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(user_json); + MvcResult mvcResult = mvc.perform(content).andReturn(); + //log.info(mvcResult.getResponse().getContentAsString()); + String expect = "Success! Hello!" + + test_user.getUserName() + + ",your password is:" + + test_user.getUserPassword(); + Assert.assertEquals(expect, mvcResult.getResponse().getContentAsString()); + + } + + @SneakyThrows + @Test + public void test_getDefaultUser() { + String contentAsString = mvc.perform(MockMvcRequestBuilders.get("/getDefaultUser")) + .andExpect(MockMvcResultMatchers.status().isOk()).andReturn().getResponse().getContentAsString(); + //log.info(contentAsString); + String expect = mapper.writeValueAsString(user_default); + Assert.assertEquals(expect, contentAsString); + } + + @SneakyThrows + @Test + public void test_addUser() { + content = MockMvcRequestBuilders.post("/user") + .accept(MediaType.APPLICATION_JSON_UTF8) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(user_json); + //log.info(content.toString()); + MvcResult mvcResult = mvc.perform(content).andReturn(); + //log.info(mvcResult.getResponse().getContentAsString()); + Assert.assertEquals("save Success", + mvcResult.getResponse().getContentAsString()); + } + + @SneakyThrows + @Test + public void test_getAllUser() { + content = MockMvcRequestBuilders.get("/user/all_users") + .contentType(MediaType.APPLICATION_JSON_UTF8); + MvcResult mvcResult = mvc.perform(content).andReturn(); + //log.info(mvcResult.getResponse().getContentAsString()); + int status = mvcResult.getResponse().getStatus(); + Assert.assertEquals(200, status); + Assert.assertTrue(mvcResult.getResponse().getContentLength() > 0); + } + + @SneakyThrows + @Test + public void test_findByUserName() { + String userName = "da"; + content = MockMvcRequestBuilders.get("/user/{userName}", userName) + .contentType(MediaType.APPLICATION_JSON_UTF8); + + MvcResult mvcResult = mvc.perform(content).andReturn(); + //log.info(mvcResult.getResponse().getContentAsString()); + Assert.assertTrue(mvcResult.getResponse().getContentLength() > 0); + + } + + @SneakyThrows + @Test + public void test_deleteUserById() { + MockHttpServletRequestBuilder delete = MockMvcRequestBuilders.delete("/user", 1); + MvcResult mvcResult = mvc.perform(delete).andReturn(); + log.info(mvcResult.toString()); + Assert.assertTrue(HttpMessageNotReadableException.class.isAssignableFrom(mvcResult.getResolvedException().getClass()));//错误的请求内容体 + } + + @SneakyThrows + @Test + public void test_update() { + User user = new User(); + user.setUserId(1); + user.setUserName("test"); + user.setUserPassword("test"); + user.setEmail("test@mail.cn"); + + content = MockMvcRequestBuilders.put("/user") + .accept(MediaType.APPLICATION_JSON_UTF8) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(mapper.writeValueAsBytes(user)); + MvcResult mvcResult = mvc.perform(content).andReturn(); + log.info(mvcResult.getResponse().getContentAsString()); + + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/dao/UserDaoTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/dao/UserDaoTests.java new file mode 100644 index 0000000..d4ce3ce --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/dao/UserDaoTests.java @@ -0,0 +1,124 @@ +package com.reuben.springboot_demo.dao; + +import com.reuben.dao.UserDao; +import com.reuben.entity.PageParam; +import com.reuben.entity.User; +import com.reuben.springboot_demo.SpringbootDemoApplicationTests; +import lombok.extern.slf4j.Slf4j; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.criteria.Predicate; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Slf4j +@Transactional +public class UserDaoTests extends SpringbootDemoApplicationTests { + @Autowired + private UserDao userDao; + + + /** + * @Description: 测试通过id查询用户 + */ + @Test + public void testFindById() { + Optional byUserId = userDao.findById(1); + System.out.println(byUserId.isPresent()); + Assert.assertTrue(true == byUserId.isPresent()); + //log.info(byUserId.toString()); + } + + /** + * @Description: 测试通过userName查询用户 + */ + @Test + public void testFindByuserName() { + String ts_userName = "da"; + List da = userDao.findByUserName(ts_userName); + Assert.assertTrue(da.size() > 0); + //log.info(da.toString()); + } + + /** + * @Description: 测试添加用户 + */ + @Test + public void testSave() { + User ts_user = new User("test", + "test", + "test@mail.com"); + userDao.save(ts_user); + Assert.assertTrue(ts_user.getUserId() > 0); + } + + /** + * @Description: 测试逻辑删除 + */ + @Test + //@Rollback(false) + public void testDeleteByuserId() { + int ts_userId = 14; + userDao.deleteByUserId(ts_userId); + Optional byId = userDao.findById(ts_userId); + Assert.assertEquals("1", byId.get().getDel()); + } + /** + * @Description: 测试批量删除 + */ + @Test + public void test_update() { + int ts_userId = 14; + String ts_userName = "test"; + String ts_userPassword = "test"; + String ts_email = "test@mail.cn"; + userDao.update(ts_userId, ts_userName, ts_userPassword, ts_email); + Optional byId = userDao.findById(ts_userId); + Assert.assertEquals(ts_userName, byId.get().getUserName()); + Assert.assertEquals(ts_userPassword, byId.get().getUserPassword()); + Assert.assertEquals(ts_email, byId.get().getEmail()); + } + /** + * @Description: 测试分页查询 + */ + @Test + public void test_findAll() { + PageParam pageParam = new PageParam(); + pageParam.setPageSize(5); + pageParam.setPageNum(0); + Pageable pageable = PageRequest.of(pageParam.getPageNum(), pageParam.getPageSize(), Sort.by(Sort.Direction.ASC, "userId")); + + Specification spec = (Specification) (root, criteriaQuery, criteriaBuilder) -> { + ArrayList pr = new ArrayList<>(); + if (pageParam.getUser() != null) { + if (pageParam.getUser().getUserName() != null) { + pr.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + pageParam.getUser().getUserName() + "%")); + } + if (pageParam.getUser().getUserPassword() != null) { + pr.add(criteriaBuilder.like(root.get("userPassword").as(String.class), "%" + pageParam.getUser().getUserPassword() + "%")); + } + if (pageParam.getUser().getEmail() != null) { + pr.add(criteriaBuilder.like(root.get("email").as(String.class), "%" + pageParam.getUser().getEmail() + "%")); + } + if (pageParam.getUser().getDel() != null) { + pr.add(criteriaBuilder.like(root.get("isdel").as(String.class), "%" + pageParam.getUser().getDel() + "%")); + } + } + return criteriaBuilder.and(pr.toArray(new Predicate[pr.size()])); + + }; + Page all = userDao.findAll(spec, pageable); + Assert.assertTrue(all.getSize() > 0); + + } + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/entity/UserTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/entity/UserTests.java new file mode 100644 index 0000000..65794cc --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/entity/UserTests.java @@ -0,0 +1,27 @@ +package com.reuben.springboot_demo.entity; + +import com.reuben.entity.User; +import com.reuben.springboot_demo.SpringbootDemoApplicationTests; +import lombok.extern.slf4j.Slf4j; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @program: springboot_demo + * @description: User unit tests + * @author: reuben + **/ +@Slf4j +public class UserTests extends SpringbootDemoApplicationTests { + + @Autowired + private User user_default; + + @Test + public void test_toString() { + Assert.assertEquals("default_userName", + user_default.getUserName()); + //log.info(user_default.toString()); + } +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/service/UserServiceTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/service/UserServiceTests.java new file mode 100644 index 0000000..11918e1 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/service/UserServiceTests.java @@ -0,0 +1,85 @@ +package com.reuben.springboot_demo.service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.reuben.entity.PageParam; +import com.reuben.entity.User; +import com.reuben.service.UserService; +import com.reuben.springboot_demo.SpringbootDemoApplicationTests; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.transaction.annotation.Transactional; + +/** + * @program: springboot_demo + * @description: + * @author: reuben + * @create: 2020-03-19 14:29 + **/ +@Slf4j +@Transactional +public class UserServiceTests extends SpringbootDemoApplicationTests { + @Autowired + private UserService userService; + + private ObjectMapper mapper = new ObjectMapper(); + + @Test + //@Rollback(false)//默认开启rollback + public void test_save() { + User user = new User(); + user.setEmail("test@mail.cn"); + user.setUserName("test"); + user.setUserPassword("test"); + String save = userService.save(user); + log.info(save); + } + + @Test + //@Rollback(false)//默认开启rollback + public void test_findAll() { + String all = userService.getAll(); + log.info(all); + } + + + @SneakyThrows + @Test + public void test_findByUserName() { + String s = "reuben"; + String reuben = userService.getByUserName(mapper.writeValueAsString(s)); + log.info(reuben); + } + + @Test + //@Rollback(false)//默认开启rollback + public void test_deleteByUserId() { + int id = 1; + String s = userService.deleteByUserId(id); + log.info(s); + } + + @Test + //@Rollback(false)//默认开启rollback + public void test_update() { + User user = new User(); + user.setUserId(1); + user.setEmail("test@mail.cn"); + user.setUserName("test"); + user.setUserPassword("test"); + String update = userService.update(user); + log.info(update); + } + + @Test + public void test_findByPage() { + PageParam pageParam = new PageParam(); + + Page byPage = userService.getByPage(pageParam); + Assert.assertTrue(byPage.getSize() > 0); + } + +} diff --git a/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/util/DisposeUtilTests.java b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/util/DisposeUtilTests.java new file mode 100644 index 0000000..2cd1047 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/springboot_demo/src/test/java/com/reuben/springboot_demo/util/DisposeUtilTests.java @@ -0,0 +1,22 @@ +package com.reuben.springboot_demo.util; + +import com.reuben.entity.User; +import com.reuben.springboot_demo.SpringbootDemoApplicationTests; +import com.reuben.util.DisposeUtil; +import org.junit.Test; + +/** + * @program: springboot_demo + * @description: + * @author: reuben + * @create: 2020-03-20 19:30 + **/ +public class DisposeUtilTests extends SpringbootDemoApplicationTests { + private DisposeUtil disposeUtil; + @Test + public void ts(){ + User user = new User("a", "a", "a"); + Object dispose = DisposeUtil.dispose(user); + System.out.println(dispose); + } +} diff --git a/developer/back-end/wen20200323/yuanmao/yuanmao.md b/developer/back-end/wen20200323/yuanmao/yuanmao.md new file mode 100644 index 0000000..32baed9 --- /dev/null +++ b/developer/back-end/wen20200323/yuanmao/yuanmao.md @@ -0,0 +1,6 @@ +- 改造以前的作业为Restfu风格形式 √ : springboot_demo +- 名词 √ +- 小写+下划线 √ +- 尽量不出现动词 √ +- get/post/put/delete √ +- 完成一个gRPC服务器和客户端的搭建,熟悉proto文件格式 √ : grpc-demo diff --git "a/developer/back-end/wen20200323/\345\256\236\344\271\240\347\224\237\345\237\271\350\256\255\357\274\210\347\254\254\344\270\211\346\234\237\357\274\211.pptx" "b/developer/back-end/wen20200323/\345\256\236\344\271\240\347\224\237\345\237\271\350\256\255\357\274\210\347\254\254\344\270\211\346\234\237\357\274\211.pptx" new file mode 100644 index 0000000..402a8ab Binary files /dev/null and "b/developer/back-end/wen20200323/\345\256\236\344\271\240\347\224\237\345\237\271\350\256\255\357\274\210\347\254\254\344\270\211\346\234\237\357\274\211.pptx" differ diff --git "a/developer/back-end/wen20200323/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214.pdf" "b/developer/back-end/wen20200323/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214.pdf" new file mode 100644 index 0000000..7cf51a9 Binary files /dev/null and "b/developer/back-end/wen20200323/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214.pdf" differ