diff --git a/pom.xml b/pom.xml index 23b60c4aee23c3ab7800974807e16a9bb2b09418..d216ba5b67268d8b626e76c7dc31e24beb87af70 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 51c061fa56671100fbc6ec460476ecc16c5a2ce4..1fd965047eff71db02bdfd6394386d4625ca3703 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 {