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

ASF GitHub Bot commented on CXF-7638:
-------------------------------------

andymc12 commented on issue #379: [CXF-7638] Only register provider if it 
implements specified contracts
URL: https://github.com/apache/cxf/pull/379#issuecomment-363950977
 
 
   @sberyozkin Right, I'm not worried about the cases where they register via 
Feature or without specifying a contract interface.  I'm more concerned about 
the case where ServerProviderFactory was creating the ConfigurableImpl with a 
List of built-in interfaces - then that List was used to register providers - 
even if those providers didn't implement the interfaces in the List.  Do you 
know what the point of that List was?  If it is essential, then I'll need to 
come up with an alternate fix, because this fix just gets rid of the List 
altogether.  Thanks, Andy

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> JAXRS CTS/TCK issue:  register(...) should ignore components when invalid 
> contracts are passed in
> -------------------------------------------------------------------------------------------------
>
>                 Key: CXF-7638
>                 URL: https://issues.apache.org/jira/browse/CXF-7638
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.2.2
>            Reporter: Andy McCright
>            Assignee: Andy McCright
>            Priority: Major
>             Fix For: 3.2.3
>
>
> We're seeing some failures when running the JAX-RS 2.1 TCK - particularly 
> around the register method. The javadoc states that the implementation MUST 
> ignore the component if the call to register specifies a contract (interface) 
> that the component does not implement.
> So, for example, suppose somebody calls code like this:
>  
> public class MyProvider implements MessageBodyWriter<MyObject> ...
>  
> Client c = ClientBuilder.newClient();
> c.register(MyProvider.class, ContainerRequestFilter.class); // should ignore
> c.register(new MyProvider, ExceptionMapper.class, MessageBodyReader.class); 
> // should ignore
> Map<Class, int> contractPriorityMap = new HashMap<>();
> contractPriorityMap.put(ClientResponseFilter.class, 20);
> c.register(MyProvider.class, contractPriorityMap); // should ignore
> c.register(new MyProvider.class, contractPriorityMap); // should ignore
>  
> The TCK tests basically check that nothing gets registered when a passed-in 
> contract is not assignable to the provider class.  And scenarios like the 
> four mentioned above are failing.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to