From 148d23e96481fb45926a0eb262c26a603580d74a Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 14 Mar 2025 16:50:39 +0100 Subject: [PATCH] GH-1248 Add support for passing host/port to Grps MessageRoutingCallback Resolves #1248 --- .../grpc/GrpcFunctionAutoConfiguration.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-grpc/src/main/java/org/springframework/cloud/function/grpc/GrpcFunctionAutoConfiguration.java b/spring-cloud-function-adapters/spring-cloud-function-grpc/src/main/java/org/springframework/cloud/function/grpc/GrpcFunctionAutoConfiguration.java index 96e4fa874..04859acfd 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-grpc/src/main/java/org/springframework/cloud/function/grpc/GrpcFunctionAutoConfiguration.java +++ b/spring-cloud-function-adapters/spring-cloud-function-grpc/src/main/java/org/springframework/cloud/function/grpc/GrpcFunctionAutoConfiguration.java @@ -37,11 +37,23 @@ public class GrpcFunctionAutoConfiguration { public static String GRPC_INVOKER_FUNCTION = "grpcInvokerFunction"; public static String GRPC = "grpc"; + + public static String GRPC_HOST = "grpcHost"; + + public static String GRPC_PORT = "grpcPort"; @Bean public Function, Message> grpcInvokerFunction() { - return input -> { - return GrpcUtils.requestReply(input); + return message -> { + if (message.getHeaders().containsKey(GRPC_HOST)) { + String host = (String) message.getHeaders().get(GRPC_HOST); + int port = message.getHeaders().get(GRPC_PORT) instanceof String stringPort + ? Integer.parseInt(stringPort) + : (int)message.getHeaders().get(GRPC_PORT); + + return GrpcUtils.requestReply(host, port, message); + } + return GrpcUtils.requestReply(message); }; }