Repository: cxf Updated Branches: refs/heads/3.0.x-fixes aea5e2f96 -> eb403a6cf
[CXF-6194] Optional support for reading the content of the individual part into an explicit collection Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/eb403a6c Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/eb403a6c Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/eb403a6c Branch: refs/heads/3.0.x-fixes Commit: eb403a6cf9b0c9bf5c5a81e87fe5dfc4ba898960 Parents: aea5e2f Author: Sergey Beryozkin <[email protected]> Authored: Thu Jan 15 12:19:36 2015 +0000 Committer: Sergey Beryozkin <[email protected]> Committed: Thu Jan 15 12:22:06 2015 +0000 ---------------------------------------------------------------------- .../java/org/apache/cxf/jaxrs/provider/MultipartProvider.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/eb403a6c/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java index 8f7c017..91e2c96 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java @@ -78,6 +78,7 @@ public class MultipartProvider extends AbstractConfigurableProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> { private static final String SUPPORT_TYPE_AS_MULTIPART = "support.type.as.multipart"; + private static final String SINGLE_PART_IS_COLLECTION = "single.multipart.is.collection"; private static final Logger LOG = LogUtils.getL7dLogger(MultipartProvider.class); private static final ResourceBundle BUNDLE = BundleUtils.getBundle(MultipartProvider.class); private static final Set<Class<?>> WELL_KNOWN_MULTIPART_CLASSES; @@ -170,7 +171,9 @@ public class MultipartProvider extends AbstractConfigurableProvider Multipart id = AnnotationUtils.getAnnotation(anns, Multipart.class); Attachment multipart = AttachmentUtils.getMultipart(id, mt, infos); if (multipart != null) { - if (collectionExpected && !mediaTypeSupported(multipart.getContentType())) { + if (collectionExpected + && !mediaTypeSupported(multipart.getContentType()) + && !MessageUtils.isTrue(mc.getContextualProperty(SINGLE_PART_IS_COLLECTION))) { List<Attachment> allMultiparts = AttachmentUtils.getMatchingAttachments(id, infos); return getAttachmentCollection(t, allMultiparts, anns); } else {
