From 7396cb05222d062ce55ea9d9d61123d3d7856dae Mon Sep 17 00:00:00 2001 From: Richard Bair Date: Fri, 31 May 2024 08:35:05 -0700 Subject: [PATCH] Use Google protobuf for grpc tests, until #260 is resolved. --- .../src/test/java/pbj/ConsensusService.java | 121 ------------------ .../src/test/java/pbj/TestService.java | 68 ---------- 2 files changed, 189 deletions(-) delete mode 100644 pbj-core/pbj-grpc-helidon/src/test/java/pbj/ConsensusService.java delete mode 100644 pbj-core/pbj-grpc-helidon/src/test/java/pbj/TestService.java diff --git a/pbj-core/pbj-grpc-helidon/src/test/java/pbj/ConsensusService.java b/pbj-core/pbj-grpc-helidon/src/test/java/pbj/ConsensusService.java deleted file mode 100644 index 07b5b1a9..00000000 --- a/pbj-core/pbj-grpc-helidon/src/test/java/pbj/ConsensusService.java +++ /dev/null @@ -1,121 +0,0 @@ -package pbj; - -import com.hedera.hapi.node.base.Transaction; -import com.hedera.hapi.node.transaction.Query; -import com.hedera.hapi.node.transaction.Response; -import com.hedera.hapi.node.transaction.TransactionResponse; -import com.hedera.pbj.runtime.ServiceInterface; -import com.hedera.pbj.runtime.io.buffer.Bytes; -import edu.umd.cs.findbugs.annotations.NonNull; -import java.util.List; -import java.util.concurrent.BlockingQueue; - -public interface ConsensusService extends ServiceInterface { - enum ConsensusMethod implements Method { - createTopic, - updateTopic, - deleteTopic, - submitMessage, - getTopicInfo; - } - - TransactionResponse createTopic(Transaction tx); - TransactionResponse updateTopic(Transaction tx); - TransactionResponse deleteTopic(Transaction tx); - TransactionResponse submitMessage(Transaction tx); - Response getTopicInfo(Query q); - - @NonNull - default String serviceName() { - return "ConsensusService"; - } - - @NonNull - default String fullName() { - return "proto.ConsensusService"; - } - - @NonNull - default List methods() { - return List.of( - ConsensusMethod.createTopic, - ConsensusMethod.updateTopic, - ConsensusMethod.deleteTopic, - ConsensusMethod.submitMessage, - ConsensusMethod.getTopicInfo); - } - - @Override - default void open( - final @NonNull RequestOptions options, - final @NonNull Method method, - final @NonNull BlockingQueue messages, - final @NonNull ResponseCallback callback) { - - final var m = (ConsensusMethod) method; - Thread.ofVirtual().start(() -> { - try { - switch (m) { - case ConsensusMethod.createTopic -> { - // Unary method - final var message = messages.take(); - final var messageBytes = options.isProtobuf() // What if it isn't JSON or PROTOBUF? - ? Transaction.PROTOBUF.parse(message) - : Transaction.JSON.parse(message); - final var response = createTopic(messageBytes); - final var responseBytes = TransactionResponse.PROTOBUF.toBytes(response); - callback.send(responseBytes); - callback.close(); - } - case ConsensusMethod.updateTopic -> { - // Unary method - final var message = messages.take(); - final var messageBytes = options.isProtobuf() - ? Transaction.PROTOBUF.parse(message) - : Transaction.JSON.parse(message); - final var response = updateTopic(messageBytes); - final var responseBytes = TransactionResponse.PROTOBUF.toBytes(response); - callback.send(responseBytes); - callback.close(); - } - case ConsensusMethod.deleteTopic -> { - // Unary method - final var message = messages.take(); - final var messageBytes = options.isProtobuf() - ? Transaction.PROTOBUF.parse(message) - : Transaction.JSON.parse(message); - final var response = deleteTopic(messageBytes); - final var responseBytes = TransactionResponse.PROTOBUF.toBytes(response); - callback.send(responseBytes); - callback.close(); - } - case ConsensusMethod.submitMessage -> { - // Unary method. - final var message = messages.take(); - final var messageBytes = options.isProtobuf() - ? Transaction.PROTOBUF.parse(message) - : Transaction.JSON.parse(message); - final var response = submitMessage(messageBytes); - final var responseBytes = TransactionResponse.PROTOBUF.toBytes(response); - callback.send(responseBytes); - callback.close(); - } - case ConsensusMethod.getTopicInfo -> { - // Unary method - final var message = messages.take(); - final var messageBytes = options.isProtobuf() - ? Query.PROTOBUF.parse(message) - : Query.JSON.parse(message); - final var response = getTopicInfo(messageBytes); - final var responseBytes = Response.PROTOBUF.toBytes(response); - callback.send(responseBytes); - callback.close(); - } - } - } catch (Throwable e) { - e.printStackTrace(); - callback.close(); - } - }); - } -} diff --git a/pbj-core/pbj-grpc-helidon/src/test/java/pbj/TestService.java b/pbj-core/pbj-grpc-helidon/src/test/java/pbj/TestService.java deleted file mode 100644 index ccf44741..00000000 --- a/pbj-core/pbj-grpc-helidon/src/test/java/pbj/TestService.java +++ /dev/null @@ -1,68 +0,0 @@ -package pbj; - -import com.hedera.pbj.runtime.ServiceInterface; -import com.hedera.pbj.runtime.io.buffer.Bytes; -import edu.umd.cs.findbugs.annotations.NonNull; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.BlockingQueue; - -public interface TestService extends ServiceInterface { - enum CustomMethod implements Method { - echoUnary, - echoBidi, - echoServerStream, - echoClientStream, - failUnary, - failBidi, - failServerStream, - failClientStream - } - - String echo(String message); - - @NonNull - default String serviceName() { - return "TestService"; - } - - @NonNull - default String fullName() { - return "proto.TestService"; - } - - @NonNull - default List methods() { - return Arrays.asList(CustomMethod.values()); - } - - @Override - default void open( - final @NonNull RequestOptions options, - final @NonNull Method method, - final @NonNull BlockingQueue messages, - final @NonNull ResponseCallback callback) { - - final var m = (CustomMethod) method; - Thread.ofVirtual().start(() -> { - try { - switch (m) { - case CustomMethod.echoUnary -> { - final var message = messages.take(); - final var ct = options.contentType(); - if (options.isJson() || options.isProtobuf() || !ct.equals("application/grpc+string")) { - throw new IllegalArgumentException("Only 'string' is allowed"); - } - - final var response = echo(message.asUtf8String()); - callback.send(Bytes.wrap(response)); - callback.close(); - } - } - } catch (Exception e) { - e.printStackTrace(); - callback.close(); - } - }); - } -}