[ 
https://issues.apache.org/jira/browse/CXF-4114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp updated CXF-4114:
-----------------------------

    Fix Version/s:     (was: 2.4.7)
                       (was: 2.5.3)
    
> Better support for backward compatiability (by default)
> -------------------------------------------------------
>
>                 Key: CXF-4114
>                 URL: https://issues.apache.org/jira/browse/CXF-4114
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.3.9, 2.4.6, 2.5.2
>            Reporter: Rouble
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Consider the situation where a CXF Web Service is released with a certain set 
> of operations and input/output data beans. Lets call this Web service version 
> 1.0. Third parties write CXF clients against the CXF Web Service version 1.0 
> we'll call these 1.0 CXF clients.
> Now, in the next release of the CXF Web Service (say 1.1), one attribute in 
> one input data bean is removed from the web service. This is widely 
> considered to be backwards compatible operation.
> Any 1.0 CXF clients, will still send that field when communicating with a 1.1 
> CXF web service - and the web service will throw an unmarshallexception. A 
> seemingly innocuous action of removing an attribute from an input data bean 
> causes the service to stop working for older clients.
> Now, there is a workaround in CXF today. By setting 
> set-jaxb-validation-event-handler to false, you can avoid the JAXB validation 
> checks. This is done as follows:
>   <jaxws:endpoint id="foo_v1_0" 
>                   address="/v1_0//foo" 
>                   implementor="com.example.fooImpl"> 
>         <jaxws:properties>
>             <entry key="set-jaxb-validation-event-handler" value="false" />
>         </jaxws:properties>
>     </jaxws:endpoint>
> However, this turns off *all* JAXB validation. That is not desirable for 
> services. The services should not have to choose between backwards 
> compatibility and disabling all JAXB validation.
> So, this enhancement is requesting for a new property, something like 
> "set-jaxb-ignore-additional-fields" - which only ignored additional fields 
> and does not require services to disable all JAXB validation. 
> Further, this enhancement is requesting that the default for this property be 
> "true" - so that by default a CXF web service will ignore additional fields 
> in a SOAP request. This enhancement will take CXF one step closer to 
> supporting backwards compatibility out of the box - and thus make it more 
> developer friendly.
> Lastly, but importantly, this requirement also applies to clients. In our 
> example, if the CXF Web Service version 1.1 added a field to an output data 
> bean, then any 1.0 CXF clients should (by default) not throw an unmarshal 
> exception.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to