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 {

Reply via email to