Fixes issue with originalContentType
This commit is contained in:
@@ -37,6 +37,7 @@ import org.apache.avro.specific.SpecificDatumReader;
|
||||
import org.apache.avro.specific.SpecificDatumWriter;
|
||||
import org.apache.avro.specific.SpecificRecord;
|
||||
|
||||
import org.springframework.cloud.stream.binder.BinderHeaders;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessageHeaders;
|
||||
@@ -48,6 +49,7 @@ import org.springframework.util.MimeType;
|
||||
* Base class for Apache Avro
|
||||
* {@link org.springframework.messaging.converter.MessageConverter} implementations.
|
||||
* @author Marius Bogoevici
|
||||
* @author Vinicius Carvalho
|
||||
*/
|
||||
public abstract class AbstractAvroMessageConverter extends AbstractMessageConverter {
|
||||
|
||||
@@ -68,6 +70,29 @@ public abstract class AbstractAvroMessageConverter extends AbstractMessageConver
|
||||
return super.canConvertFrom(message, targetClass) && (message.getPayload() instanceof byte[]);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean supportsMimeType(MessageHeaders headers) {
|
||||
|
||||
for (MimeType current : getSupportedMimeTypes()) {
|
||||
if(mimeTypeMatches(current,headers.get(MessageHeaders.CONTENT_TYPE)) || mimeTypeMatches(current,headers.get(BinderHeaders.BINDER_ORIGINAL_CONTENT_TYPE)) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean mimeTypeMatches(MimeType reference, Object target){
|
||||
if(target == null){
|
||||
return !isStrictContentTypeMatch();
|
||||
}else if(target instanceof MimeType){
|
||||
return reference.equals((MimeType)target);
|
||||
}else if(target instanceof String){
|
||||
return reference.equals(MimeType.valueOf((String)target));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
|
||||
Object result = null;
|
||||
|
||||
Reference in New Issue
Block a user