From 3671fefc5cb2a97eefa2e4dc7aff9f30367c7b11 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 30 Nov 2021 21:47:18 +0100 Subject: [PATCH] GH-766 Simplify type description display purposes --- .../function/actuator/FunctionsEndpoint.java | 19 +++++++++++++++---- .../java/com/example/SampleApplication.java | 4 ++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/actuator/FunctionsEndpoint.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/actuator/FunctionsEndpoint.java index 69135d46c..008a969db 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/actuator/FunctionsEndpoint.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/actuator/FunctionsEndpoint.java @@ -24,6 +24,7 @@ import java.util.TreeMap; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.cloud.function.context.FunctionCatalog; +import org.springframework.cloud.function.context.catalog.FunctionTypeUtils; import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper; /** @@ -51,20 +52,30 @@ public class FunctionsEndpoint { Map functionMap = new LinkedHashMap<>(); if (function.isFunction()) { functionMap.put("type", "FUNCTION"); - functionMap.put("input-type", function.getInputType().toString()); - functionMap.put("output-type", function.getOutputType().toString()); + functionMap.put("input-type", this.toSimplePolyIn(function)); + functionMap.put("output-type", this.toSimplePolyOut(function)); } else if (function.isConsumer()) { functionMap.put("type", "CONSUMER"); - functionMap.put("input-type", function.getInputType().toString()); + functionMap.put("input-type", this.toSimplePolyIn(function)); } else { functionMap.put("type", "SUPPLIER"); - functionMap.put("output-type", function.getOutputType().toString()); + functionMap.put("output-type", this.toSimplePolyOut(function)); } allFunctions.put(name, functionMap); } + + return allFunctions; } + + private String toSimplePolyOut(FunctionInvocationWrapper function) { + return FunctionTypeUtils.getRawType(function.getItemType(function.getOutputType())).getSimpleName().toLowerCase(); + } + + private String toSimplePolyIn(FunctionInvocationWrapper function) { + return FunctionTypeUtils.getRawType(function.getItemType(function.getInputType())).getSimpleName().toLowerCase(); + } } diff --git a/spring-cloud-function-samples/function-sample/src/main/java/com/example/SampleApplication.java b/spring-cloud-function-samples/function-sample/src/main/java/com/example/SampleApplication.java index 54f2e9dc6..4fb75cf8c 100644 --- a/spring-cloud-function-samples/function-sample/src/main/java/com/example/SampleApplication.java +++ b/spring-cloud-function-samples/function-sample/src/main/java/com/example/SampleApplication.java @@ -40,8 +40,8 @@ public class SampleApplication { } @Bean - public Function, String> uppercaseMessage() { - return value -> value.getPayload().toUpperCase(); + public Function, Integer> uppercaseMessage() { + return value -> value.getPayload().toUpperCase().length(); } @Bean