From 28cc6ac8dcca29b038e6e31778217f2b270321b7 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 18 Oct 2021 21:14:29 +0200 Subject: [PATCH] WIP: grpc-web proxy --- pom.xml | 14 ++++++++++---- .../java/org/caosdb/server/grpc/GRPCServer.java | 8 ++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 23b60c4a..d216ba5b 100644 --- a/pom.xml +++ b/pom.xml @@ -35,8 +35,9 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.testSourceDirectory>src/test/java</project.build.testSourceDirectory> <protobuf.version>3.14.0</protobuf.version> - <grpc.version>1.35.0</grpc.version> + <grpc.version>1.38.1</grpc.version> <netty-tcnative.version>2.0.34.Final</netty-tcnative.version> + <restlet.version>2.4.3</restlet.version> </properties> <repositories> <repository> @@ -55,6 +56,11 @@ </repository> </repositories> <dependencies> + <dependency> + <groupId>io.grpcweb</groupId> + <artifactId>grpcweb-java</artifactId> + <version>0.1-SNAPSHOT</version> + </dependency> <dependency> <groupId>de.timmfitschen</groupId> <artifactId>easy-units</artifactId> @@ -96,12 +102,12 @@ <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet</artifactId> - <version>2.3.12</version> + <version>${restlet.version}</version> </dependency> <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.fileupload</artifactId> - <version>2.3.12</version> + <version>${restlet.version}</version> </dependency> <dependency> <groupId>mysql</groupId> @@ -131,7 +137,7 @@ <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.jetty</artifactId> - <version>2.3.12</version> + <version>${restlet.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> diff --git a/src/main/java/org/caosdb/server/grpc/GRPCServer.java b/src/main/java/org/caosdb/server/grpc/GRPCServer.java index 51c061fa..1fd96504 100644 --- a/src/main/java/org/caosdb/server/grpc/GRPCServer.java +++ b/src/main/java/org/caosdb/server/grpc/GRPCServer.java @@ -24,6 +24,8 @@ import io.grpc.ServerInterceptors; import io.grpc.ServerServiceDefinition; import io.grpc.netty.GrpcSslContexts; import io.grpc.netty.NettyServerBuilder; +import io.grpcweb.GrpcPortNumRelay; +import io.grpcweb.JettyWebserverForGrpcwebTraffic; import io.netty.handler.ssl.ApplicationProtocolConfig; import io.netty.handler.ssl.ApplicationProtocolConfig.Protocol; import io.netty.handler.ssl.ApplicationProtocolConfig.SelectedListenerFailureBehavior; @@ -198,6 +200,12 @@ public class GRPCServer { ServerProperties.KEY_GRPC_SERVER_PORT_HTTP, ServerProperties.KEY_GRPC_SERVER_PORT_HTTPS); } + + // Start the grpc-web proxy on grpc-web-port. + (new JettyWebserverForGrpcwebTraffic(9443)).start(); + + // grpc-web proxy needs to know the grpc-port# so it could connect to the grpc service. + GrpcPortNumRelay.setGrpcPortNum(8080); } private static class ServerStopper implements Runnable { -- GitLab