Rest client update to version 1.4.1

Signed-off-by: David Kral <david.k.kral@oracle.com>
diff --git a/ext/microprofile/mp-rest-client/pom.xml b/ext/microprofile/mp-rest-client/pom.xml
index d4e8d98..e4d5565 100644
--- a/ext/microprofile/mp-rest-client/pom.xml
+++ b/ext/microprofile/mp-rest-client/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -32,7 +32,7 @@
         <dependency>
             <groupId>org.eclipse.microprofile.rest.client</groupId>
             <artifactId>microprofile-rest-client-api</artifactId>
-            <version>1.3.3</version>
+            <version>1.4.1</version>
         </dependency>
         <dependency>
             <groupId>org.eclipse.microprofile.config</groupId>
diff --git a/ext/microprofile/mp-rest-client/src/main/java/org/glassfish/jersey/microprofile/restclient/InterfaceModel.java b/ext/microprofile/mp-rest-client/src/main/java/org/glassfish/jersey/microprofile/restclient/InterfaceModel.java
index 6bd0e95..05e0461 100644
--- a/ext/microprofile/mp-rest-client/src/main/java/org/glassfish/jersey/microprofile/restclient/InterfaceModel.java
+++ b/ext/microprofile/mp-rest-client/src/main/java/org/glassfish/jersey/microprofile/restclient/InterfaceModel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2019 Payara Foundation and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -24,10 +24,13 @@
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.CDI;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
@@ -56,6 +59,8 @@
  */
 class InterfaceModel {
 
+    private static final Logger LOGGER = Logger.getLogger(InterfaceModel.class.getName());
+
     private final InjectionManager injectionManager;
     private final Class<?> restClientClass;
     private final String[] produces;
@@ -336,9 +341,15 @@
         }
 
         Builder clientHeadersFactory(RegisterClientHeaders registerClientHeaders) {
-            clientHeadersFactory = registerClientHeaders != null
-                    ? ReflectionUtil.createInstance(registerClientHeaders.value())
-                    : null;
+            if (registerClientHeaders != null) {
+                Class<? extends ClientHeadersFactory> value = registerClientHeaders.value();
+                try {
+                    clientHeadersFactory = CDI.current().select(value).get();
+                } catch (Exception ex) {
+                    LOGGER.log(Level.FINEST, ex, () -> "This class is not a CDI bean. " + value);
+                    clientHeadersFactory = ReflectionUtil.createInstance(value);
+                }
+            }
             return this;
         }
 
diff --git a/tests/integration/microprofile/rest-client/pom.xml b/tests/integration/microprofile/rest-client/pom.xml
index 0ab8871..a354322 100644
--- a/tests/integration/microprofile/rest-client/pom.xml
+++ b/tests/integration/microprofile/rest-client/pom.xml
@@ -55,7 +55,7 @@
         <dependency>
             <groupId>org.eclipse.microprofile.rest.client</groupId>
             <artifactId>microprofile-rest-client-tck</artifactId>
-            <version>1.3.3</version>
+            <version>1.4.1</version>
             <scope>test</scope>
         </dependency>
         <dependency>