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

Sergey Beryozkin commented on CXF-6514:
---------------------------------------

See, the custom providers are still checked, for example, if you get 
MyProvider<String> then it will definitely win against the default one. 

The difference now is that both default and custom providers are considered 
even if a matching custom provider is available.  Before it was like this: if a 
custom provider is available then do not even check the default ones. But now 
the default and custom ones are added into a common collection and sorted and 
if we have equal candidates then the custom provider is added on top; next at 
the runtime we start from the top of the list and the first matching provider 
which returns boolean from isWriteable is selected... It is still the case that 
the custom provider wins if a default provider also matches but is no more 
specific that the custom one.

The earlier mechanism was support by having a parent factory with the default 
providers and the child factory with the custom providers, if no custom 
providers are available then delegate to the parent one. Now we have a single 
factory without any delegations.




> endpoints returning String can't use a custom provider
> ------------------------------------------------------
>
>                 Key: CXF-6514
>                 URL: https://issues.apache.org/jira/browse/CXF-6514
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Romain Manni-Bucau
>            Assignee: Sergey Beryozkin
>
> Seems sorting of providers in ServerProviderFactory is done in a way you cant 
> override the provider used for String type even using a custom @Produces type 
> cause StringTextProvider si always selected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to