Jackson encoder and decoder should use provided mime types

Instead of always using the default JSON mime types
This commit is contained in:
rlindooren
2017-08-16 12:34:02 +02:00
committed by Rossen Stoyanchev
parent 645e3492db
commit 5b29555d88
5 changed files with 43 additions and 4 deletions

View File

@@ -72,7 +72,8 @@ public abstract class Jackson2CodecSupport {
protected Jackson2CodecSupport(ObjectMapper objectMapper, MimeType... mimeTypes) {
Assert.notNull(objectMapper, "ObjectMapper must not be null");
this.objectMapper = objectMapper;
this.mimeTypes = !ObjectUtils.isEmpty(mimeTypes) ? Arrays.asList(mimeTypes) : JSON_MIME_TYPES;
this.mimeTypes = Collections.unmodifiableList(
!ObjectUtils.isEmpty(mimeTypes) ? Arrays.asList(mimeTypes) : JSON_MIME_TYPES );
}
@@ -110,4 +111,7 @@ public abstract class Jackson2CodecSupport {
@Nullable
protected abstract <A extends Annotation> A getAnnotation(MethodParameter parameter, Class<A> annotType);
protected List<MimeType> getMimeTypes() {
return mimeTypes;
}
}

View File

@@ -42,6 +42,6 @@ public class Jackson2JsonDecoder extends AbstractJackson2Decoder {
@Override
public List<MimeType> getDecodableMimeTypes() {
return JSON_MIME_TYPES;
return getMimeTypes();
}
}

View File

@@ -73,6 +73,6 @@ public class Jackson2JsonEncoder extends AbstractJackson2Encoder {
@Override
public List<MimeType> getEncodableMimeTypes() {
return JSON_MIME_TYPES;
return getMimeTypes();
}
}