Hi Akshay, I think it _can_ work, but it is a little risky. I believe it works because Jersey's ClientConfig class is an implementation of java.ws.rs.core.Configurable. But in general, mixing implementations can lead to problems - generally in the classloading space.
Do you need Jersey at all? If not, then you could use CXF's equivalent ( org.apache.cxf.jaxrs.client.spec.ClientConfigurableImpl). Another alternative would be to avoid any dependency on the implementation in your application code - and just use the spec APIs - for example: verifyingClient = ClientBuilder.newBuilder() .property(ApacheClientProperties.SSL_CONFIG, sslConfigurator) .register(new ApacheConnectorProvider()) .build(); Hope this helps, Andy On Sun, Apr 14, 2019 at 11:05 PM Akshay Hegade <akshayheg...@gmail.com> wrote: > Hi Team, > > > > I have question related to cxf-rt-rs-client-3.3.1 > > > > *Background* : > > I am working on legacy application which uses jersey-client-2.7 for http > requests, since jersey-client-2.7 does not support *HTTP PATCH* method, we > are using cxf-rt-rs-client-3.3.1. > > And HTTP PATCH started to work without any changes after *inclusion* of > cxf-rt-rs-client-3.3.1.jar in our class path along with its dependencies. > > > > *Reason* : > > javax.ws.rs.client.FactoryFinder.java has following piece of code > > - String serviceId = "META-INF/services/“ + factoryId; > > > > javax.ws.rs.client.ClientBuilder.java has following piece of code > > - Object delegate = > FactoryFinder.find("javax.ws.rs.client.ClientBuilder", > "org.glassfish.jersey.client.JerseyClientBuilder"); > > > > Since cxf-rt-rs-client-3.3.1 in class path along with jersey-client-2.7, > the precedence is given to cxf-rt-rs-client-3.3.1. > > > > And we are using passing org.glassfish.jersey.client.ClientConfig to > javax.ws.rs.client.ClientBuilder > > > > *Code Snippet* : > > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > ClientConfig clientConfig = new ClientConfig(); > > clientConfig.property(ApacheClientProperties.SSL_CONFIG, > sslConfigurator); > > ConnectorProvider connectorProvider = new ApacheConnectorProvider(); > > clientConfig.connectorProvider(connectorProvider); > > > > verifyingClient = ClientBuilder.newBuilder() > > .withConfig(*clientConfig*).build(); > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > > > > > *Question* : > > Whether jersey’s concrete class org.glassfish.jersey.client.ClientConfig > can be used along with javax.ws.rs.client.ClientBuilder ? > > > > Please revert back at your earliest convenience. > > > > Thanks, > > Akshay >