|
55 | 55 | import org.springframework.cloud.function.json.GsonMapper;
|
56 | 56 | import org.springframework.cloud.function.json.JacksonMapper;
|
57 | 57 | import org.springframework.cloud.function.json.JsonMapper;
|
58 |
| -import org.springframework.cloud.function.utils.PrimitiveTypesFromStringMessageConverter; |
59 | 58 | import org.springframework.context.ApplicationContext;
|
60 | 59 | import org.springframework.context.ConfigurableApplicationContext;
|
61 | 60 | import org.springframework.context.annotation.Bean;
|
|
71 | 70 | import org.springframework.core.convert.support.DefaultConversionService;
|
72 | 71 | import org.springframework.lang.Nullable;
|
73 | 72 | import org.springframework.messaging.Message;
|
| 73 | +import org.springframework.messaging.MessageHeaders; |
74 | 74 | import org.springframework.messaging.converter.ByteArrayMessageConverter;
|
75 | 75 | import org.springframework.messaging.converter.CompositeMessageConverter;
|
| 76 | +import org.springframework.messaging.converter.ContentTypeResolver; |
76 | 77 | import org.springframework.messaging.converter.MessageConverter;
|
77 | 78 | import org.springframework.messaging.converter.StringMessageConverter;
|
78 | 79 | import org.springframework.stereotype.Component;
|
79 | 80 | import org.springframework.util.ClassUtils;
|
80 | 81 | import org.springframework.util.CollectionUtils;
|
| 82 | +import org.springframework.util.InvalidMimeTypeException; |
| 83 | +import org.springframework.util.MimeType; |
81 | 84 | import org.springframework.util.StringUtils;
|
82 | 85 |
|
83 | 86 | /**
|
@@ -133,8 +136,23 @@ public FunctionRegistry functionCatalog(List<MessageConverter> messageConverters
|
133 | 136 |
|
134 | 137 | mcList.add(new JsonMessageConverter(jsonMapper));
|
135 | 138 | mcList.add(new ByteArrayMessageConverter());
|
136 |
| - mcList.add(new StringMessageConverter()); |
137 |
| - mcList.add(new PrimitiveTypesFromStringMessageConverter(conversionService)); |
| 139 | + StringMessageConverter stringConverter = new StringMessageConverter(); |
| 140 | + stringConverter.setSerializedPayloadClass(String.class); |
| 141 | + stringConverter.setContentTypeResolver(new ContentTypeResolver() { |
| 142 | + @Override |
| 143 | + public MimeType resolve(MessageHeaders headers) throws InvalidMimeTypeException { |
| 144 | + if (headers.containsKey(MessageHeaders.CONTENT_TYPE)) { |
| 145 | + if (headers.get(MessageHeaders.CONTENT_TYPE).toString().startsWith("text")) { |
| 146 | + return MimeType.valueOf("text/plain"); |
| 147 | + } |
| 148 | + else { |
| 149 | + return MimeType.valueOf(headers.get(MessageHeaders.CONTENT_TYPE).toString()); |
| 150 | + } |
| 151 | + } |
| 152 | + return null; |
| 153 | + } |
| 154 | + }); |
| 155 | + mcList.add(stringConverter); |
138 | 156 |
|
139 | 157 | messageConverter = new SmartCompositeMessageConverter(mcList, () -> {
|
140 | 158 | return context.getBeansOfType(MessageConverterHelper.class).values();
|
|
0 commit comments