From 9c65477baee896fd6d4a1fb34216f75bcb128a6d Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 27 Mar 2025 16:48:18 +0100 Subject: [PATCH] GH-3104 Add JsonGetter to show SpEL expression as String This is specifically done for actuator binding endpoint to avoid type conversion Resolves #3104 --- .../kafka/properties/KafkaProducerProperties.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaProducerProperties.java b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaProducerProperties.java index a64d08dda..d55fb6d61 100644 --- a/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaProducerProperties.java +++ b/binders/kafka-binder/spring-cloud-stream-binder-kafka-core/src/main/java/org/springframework/cloud/stream/binder/kafka/properties/KafkaProducerProperties.java @@ -23,6 +23,9 @@ import jakarta.validation.constraints.NotNull; import org.springframework.expression.Expression; +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonValue; + /** * Extended producer properties for Kafka binder. * @@ -187,6 +190,14 @@ public class KafkaProducerProperties { public Expression getMessageKeyExpression() { return this.messageKeyExpression; } + + @JsonGetter("messageKeyExpression") + public String getTheMessageKeyExpression() { + if (this.messageKeyExpression != null) { + return this.messageKeyExpression.getExpressionString(); + } + return null; + } public void setMessageKeyExpression(Expression messageKeyExpression) { this.messageKeyExpression = messageKeyExpression;