From 7d262d894f4c72fc7fe552f4d3035e6af6ff3e00 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 13 Jul 2022 13:52:42 +0200 Subject: [PATCH] GH-895 Remove reflection usage form CloudEventMessageUtils --- .../function/cloudevent/CloudEventMessageUtils.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/cloudevent/CloudEventMessageUtils.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/cloudevent/CloudEventMessageUtils.java index 37d8c7549..55ab9a49a 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/cloudevent/CloudEventMessageUtils.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/cloudevent/CloudEventMessageUtils.java @@ -16,10 +16,10 @@ package org.springframework.cloud.function.cloudevent; -import java.lang.reflect.Field; import java.net.URI; import java.time.OffsetDateTime; import java.util.Collections; +import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; @@ -34,7 +34,6 @@ import org.springframework.messaging.converter.MessageConverter; import org.springframework.messaging.support.MessageBuilder; import org.springframework.util.MimeType; import org.springframework.util.MimeTypeUtils; -import org.springframework.util.ReflectionUtils; import org.springframework.util.StringUtils; /** @@ -61,12 +60,6 @@ public final class CloudEventMessageUtils { }; - private static Field MESSAGE_HEADERS = ReflectionUtils.findField(MessageHeaders.class, "headers"); - - static { - MESSAGE_HEADERS.setAccessible(true); - } - private CloudEventMessageUtils() { } @@ -233,7 +226,7 @@ public final class CloudEventMessageUtils { */ @SuppressWarnings("unchecked") static Message toCanonical(Message inputMessage, MessageConverter messageConverter) { - Map headers = (Map) ReflectionUtils.getField(MESSAGE_HEADERS, inputMessage.getHeaders()); + Map headers = new HashMap<>(inputMessage.getHeaders()); canonicalizeHeaders(headers, false); if (isCloudEvent(inputMessage) && headers.containsKey("content-type")) { inputMessage = MessageBuilder.fromMessage(inputMessage).setHeader(MessageHeaders.CONTENT_TYPE, headers.get("content-type")).build(); @@ -269,7 +262,7 @@ public final class CloudEventMessageUtils { return MessageBuilder.fromMessage(inputMessage).setHeader(MessageHeaders.CONTENT_TYPE, inputContentType) .build(); } - return inputMessage; + return MessageBuilder.withPayload(inputMessage.getPayload()).copyHeaders(headers).build(); }