第7章 プロトコルの変更点
本セクションでは、ネットワークプロトコルの変更を説明します。
7.1. Eclipse Vert.x gRPC の変更点 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、Eclipse Vert.x gRP の変更点を説明します。
7.1.1. 新しい gRPC コンパイラープラグイン リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Vert.x 4 では、protoc-gen-grpc-java モジュールは利用できなくなりました。このモジュールは、公式の gRPC コンパイラーのフォークです。以前のリリースの Eclipse Vert.x では、このフォークを使用して作業する必要がありました。このフォークは Eclipse プロジェクトにより維持されます。フォークの使用は複雑です。
以前のリリースでは、gRPC を使用するために、以下の情報が pom.xml ファイルに追加されていました。
Eclipse Vert.x 4 では、新しい gRPC コンパイラープラグインが利用できるようになりました。このプラグインは、フォークの代わりに公式の gRPC コンパイラーを使用します。新しい gRPC プラグインを使用するには、以下の情報を pom.xml ファイルに追加します。
7.1.2. 生成されたコードの移行 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Vert.x 4 では、新しいコンパイラーが使用されます。新しい gRPC プラグインが使用される場合、生成されたコードは同じソースファイルに書き込まれません。これは、コンパイラーがベースクラスでのカスタムコード生成を許可しないためです。コードを保存するには、プラグインで異なる名前を持つ新しいクラスを生成する必要があります。
以前のバージョンの Eclipse Vert.x では、古い gRPC プラグインが同じソースファイルに生成されたコードを書き込みました。
たとえば、以下の記述子があるとします。
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
Eclipse Vert.x 3.x では、コードは GreeterGrpc クラスに生成されます。
// 3.x
GreeterGrpc.GreeterVertxImplBase service =
new GreeterGrpc.GreeterVertxImplBase() {
...
}
// 3.x
GreeterGrpc.GreeterVertxImplBase service =
new GreeterGrpc.GreeterVertxImplBase() {
...
}
Eclipse Vert.x 4 では、コードは VertxGreeterGrpc クラスで生成されます。
// 4.x
VertxGreeterGrpc.GreeterVertxImplBase service =
new VertxGreeterGrpc.GreeterVertxImplBase() {
...
}
// 4.x
VertxGreeterGrpc.GreeterVertxImplBase service =
new VertxGreeterGrpc.GreeterVertxImplBase() {
...
}
7.1.3. gRPC API による future のサポート リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Vert.x 4 では、gRPC API は future をサポートします。gRPC プラグインはプロミスキャス化された API を生成します。これらの API は標準の Eclipse Vert.x の入力引数および出力引数を使用するため、標準の Eclipse Vert.x アプリケーションの作成が容易になります。
以下の例は、Eclipse Vert.x 3.x での promise の使用例を示しています。
以下の例は、Eclipse Vert.x 4 での future の使用を示しています。