Repository: cxf Updated Branches: refs/heads/master 8f2218ef3 -> 71e16ce66
[CXF-6498] Updating 2.0 ClientImpl to accept CXF features Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/71e16ce6 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/71e16ce6 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/71e16ce6 Branch: refs/heads/master Commit: 71e16ce666214156a56f4d27dcea14e348da54cb Parents: 8f2218e Author: Sergey Beryozkin <[email protected]> Authored: Wed Jul 15 11:59:52 2015 +0300 Committer: Sergey Beryozkin <[email protected]> Committed: Wed Jul 15 11:59:52 2015 +0300 ---------------------------------------------------------------------- .../org/apache/cxf/jaxrs/client/spec/ClientImpl.java | 13 ++++++++++--- .../systest/jaxrs/security/JAXRS20HttpsBookTest.java | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/71e16ce6/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java ---------------------------------------------------------------------- diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java index fa68058..b15d730 100644 --- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java +++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java @@ -248,9 +248,13 @@ public class ClientImpl implements Client { ClientProviderFactory pf = ClientProviderFactory.getInstance(WebClient.getConfig(targetClient).getEndpoint()); List<Object> providers = new LinkedList<Object>(); + List<org.apache.cxf.feature.Feature> cxfFeatures = + new LinkedList<org.apache.cxf.feature.Feature>(); Configuration cfg = configImpl.getConfiguration(); for (Object p : cfg.getInstances()) { - if (!(p instanceof Feature)) { + if (p instanceof org.apache.cxf.feature.Feature) { + cxfFeatures.add((org.apache.cxf.feature.Feature)p); + } else if (!(p instanceof Feature)) { Map<Class<?>, Integer> contracts = cfg.getContracts(p.getClass()); if (contracts == null || contracts.isEmpty()) { providers.add(p); @@ -277,8 +281,11 @@ public class ClientImpl implements Client { } setConnectionProperties(configProps, clientCfg); - - // start building the invocation + // CXF Features + for (org.apache.cxf.feature.Feature cxfFeature : cxfFeatures) { + cxfFeature.initialize(clientCfg, clientCfg.getBus()); + } + // Start building the invocation return new InvocationBuilderImpl(WebClient.fromClient(targetClient)); } private void setConnectionProperties(Map<String, Object> configProps, ClientConfiguration clientCfg) { http://git-wip-us.apache.org/repos/asf/cxf/blob/71e16ce6/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRS20HttpsBookTest.java ---------------------------------------------------------------------- diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRS20HttpsBookTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRS20HttpsBookTest.java index 818749c..a7e6b40 100644 --- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRS20HttpsBookTest.java +++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRS20HttpsBookTest.java @@ -31,6 +31,7 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import org.apache.cxf.configuration.jsse.TLSClientParameters; +import org.apache.cxf.feature.LoggingFeature; import org.apache.cxf.systest.jaxrs.Book; import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase; import org.apache.cxf.transport.https.SSLUtils; @@ -64,6 +65,7 @@ public class JAXRS20HttpsBookTest extends AbstractBusClientServerTestBase { builder.keyStore(keyStore, "password"); Client client = builder.build(); + client.register(new LoggingFeature()); WebTarget target = client.target("https://localhost:" + PORT + "/bookstore/securebooks/123"); Book b = target.request().accept(MediaType.APPLICATION_XML_TYPE).get(Book.class);
