|
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