GH-751 Ensure RoutingFunction can be applied when function input type is AWS type

This commit is contained in:
Oleg Zhurakousky
2021-10-28 12:38:27 +02:00
parent 037f1b8bfe
commit eeb5448a7d
9 changed files with 292 additions and 59 deletions

View File

@@ -91,6 +91,13 @@ public class JsonMessageConverter extends AbstractMessageConverter {
if (message.getPayload() instanceof byte[] && targetClass.isAssignableFrom(String.class)) {
return new String((byte[]) message.getPayload(), StandardCharsets.UTF_8);
}
else if (logger.isDebugEnabled()) {
Object payload = message.getPayload();
if (payload instanceof byte[]) {
payload = new String((byte[]) payload, StandardCharsets.UTF_8);
}
logger.warn("Failed to convert value: " + payload, e);
}
}
}

View File

@@ -19,6 +19,7 @@ package org.springframework.cloud.function.json;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.Map;
import java.util.function.Consumer;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
@@ -42,6 +43,10 @@ public class JacksonMapper extends JsonMapper {
return this.fromJson(json, type);
}
public void configureObjectMapper(Consumer<ObjectMapper> configurer) {
configurer.accept(mapper);
}
@Override
protected <T> T doFromJson(Object json, Type type) {
T convertedValue = null;