[ 
https://issues.apache.org/jira/browse/CXF-2753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12854001#action_12854001
 ] 

William Tam commented on CXF-2753:
----------------------------------

@dan.  Thanks for your suggestion.  I'll try setting to Source.class and see 
how it goes.

> Need a way to preserve parameters wrapper in DocLiteralInInterceptor
> --------------------------------------------------------------------
>
>                 Key: CXF-2753
>                 URL: https://issues.apache.org/jira/browse/CXF-2753
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>            Reporter: William Tam
>            Assignee: Willem Jiang
>             Fix For: 2.3, 2.2.8
>
>         Attachments: CXF-2753.patch
>
>
> In DocLiteralInInterceptor, the following condition determines whether the 
> wrapper is preserved when unmarshalling the parameters.
> {code}
>                 if (msgInfo.getMessageParts().get(0).getTypeClass() != null) {
> {code}
> Currently, the parameters that I will get depending on whether service class 
> (TypeClass) is provided.  It is questionable that the condition is suitable 
> for all DataBindings.  For example, my endpoint uses SourceDataBinding which 
> does not require to specify service class.    So, when service class is 
> provided, I get one parameter that wraps multi parts.  
> For example, 
> {code}
> <GetPerson>
>   <personId>foo</personId>
>   <ssn>1234</ssn>
> </GetPerson>
> {code}
> Otherwise, I get 2 parameters (in the example)
> {code}
> <personId>foo</personId>
> <ssn>1234</ssn>
> {code}
> We should get consistent behavior regardless of whether service class is 
> provided by users.
> Here is my proposal to add a property to override the built-in condition (as 
> in the attached patch).  Free feel to come up with a better fix if you see 
> fit.
> {code}
>     protected boolean shouldWrapParameters(MessageInfo msgInfo, Message 
> message) {
>         Object keepParametersWrapperFlag = 
> message.get(KEEP_PARAMETERS_WRAPPER);
>         if (keepParametersWrapperFlag == null) {
>             return msgInfo.getMessageParts().get(0).getTypeClass() != null;
>         } else {
>             return Boolean.parseBoolean(keepParametersWrapperFlag.toString());
>         }
>     }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to