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);

Reply via email to