This is an automated email from the ASF dual-hosted git repository.

johndament pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 09dad95fd591d52b8ee69aff21ff65b4d8e0c2f5
Author: John D. Ament <[email protected]>
AuthorDate: Sat Dec 16 15:26:29 2017 -0500

    [CXF-7579] Adding handling for disabling mapper.
    
    Re-enable unit tests since this is working again.
---
 .../microprofile/client/CxfTypeSafeClientBuilder.java |  2 +-
 .../client/MicroProfileClientConfigurableImpl.java    | 19 +++++++++++++++++++
 .../client/MicroProfileClientFactoryBean.java         | 10 +++++++---
 .../client/CxfTypeSafeClientBuilderTest.java          |  4 ++--
 systests/microprofile/client/weld/pom.xml             |  3 ++-
 5 files changed, 31 insertions(+), 7 deletions(-)

diff --git 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilder.java
 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilder.java
index 40f5cc9..d895586 100644
--- 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilder.java
+++ 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilder.java
@@ -55,7 +55,7 @@ public class CxfTypeSafeClientBuilder implements 
RestClientBuilder, Configurable
                 }
             }
         }
-        MicroProfileClientFactoryBean bean = new 
MicroProfileClientFactoryBean(getConfiguration(),
+        MicroProfileClientFactoryBean bean = new 
MicroProfileClientFactoryBean(configImpl,
                 baseUri, aClass);
         return bean.create(aClass);
     }
diff --git 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientConfigurableImpl.java
 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientConfigurableImpl.java
index 9a6ccbc..ec28479 100644
--- 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientConfigurableImpl.java
+++ 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientConfigurableImpl.java
@@ -18,6 +18,7 @@
  */
 package org.apache.cxf.microprofile.client;
 
+import java.util.Optional;
 import javax.ws.rs.RuntimeType;
 import javax.ws.rs.client.ClientRequestFilter;
 import javax.ws.rs.client.ClientResponseFilter;
@@ -29,6 +30,8 @@ import javax.ws.rs.ext.ReaderInterceptor;
 import javax.ws.rs.ext.WriterInterceptor;
 import org.apache.cxf.jaxrs.impl.ConfigurableImpl;
 import org.apache.cxf.jaxrs.impl.ConfigurationImpl;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.rest.client.ext.ResponseExceptionMapper;
 
 public class MicroProfileClientConfigurableImpl<C extends Configurable<C>>
@@ -37,6 +40,7 @@ public class MicroProfileClientConfigurableImpl<C extends 
Configurable<C>>
     static final Class<?>[] CONTRACTS = new Class<?>[] 
{ClientRequestFilter.class,
         ClientResponseFilter.class, ReaderInterceptor.class, 
WriterInterceptor.class,
         MessageBodyWriter.class, MessageBodyReader.class, 
ResponseExceptionMapper.class};
+    private static final String CONFIG_KEY_DISABLE_MAPPER = 
"microprofile.rest.client.disable.default.mapper";
 
     public MicroProfileClientConfigurableImpl(C configurable) {
         this(configurable, null);
@@ -47,4 +51,19 @@ public class MicroProfileClientConfigurableImpl<C extends 
Configurable<C>>
                 CONTRACTS, config == null ? new 
ConfigurationImpl(RuntimeType.CLIENT)
                         : new ConfigurationImpl(config, CONTRACTS));
     }
+
+    boolean isDefaultExceptionMapperDisabled() {
+        Object prop = 
getConfiguration().getProperty(CONFIG_KEY_DISABLE_MAPPER);
+        if (prop instanceof Boolean) {
+            return (Boolean)prop;
+        } else {
+            Config config = ConfigProvider.getConfig();
+            Optional<Boolean> optionalValue = 
config.getOptionalValue(CONFIG_KEY_DISABLE_MAPPER,
+                    Boolean.class);
+            if (optionalValue.isPresent()) {
+                return optionalValue.get();
+            }
+        }
+        return false;
+    }
 }
diff --git 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java
 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java
index f01fea8..58cdfb3 100644
--- 
a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java
+++ 
b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java
@@ -36,6 +36,7 @@ import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.apache.cxf.jaxrs.model.FilterProviderInfo;
 import org.apache.cxf.microprofile.client.proxy.MicroProfileClientProxyImpl;
+import org.eclipse.microprofile.rest.client.RestClientBuilder;
 
 public class MicroProfileClientFactoryBean extends JAXRSClientFactoryBean {
     private final ContractComparator comparator;
@@ -44,16 +45,19 @@ public class MicroProfileClientFactoryBean extends 
JAXRSClientFactoryBean {
     private ClassLoader proxyLoader;
     private boolean inheritHeaders;
 
-    public MicroProfileClientFactoryBean(Configuration configuration, String 
baseUri, Class<?> aClass) {
+    public 
MicroProfileClientFactoryBean(MicroProfileClientConfigurableImpl<RestClientBuilder>
 configuration,
+                                         String baseUri, Class<?> aClass) {
         super();
-        this.configuration = configuration;
+        this.configuration = configuration.getConfiguration();
         this.comparator = new ContractComparator(this);
         super.setAddress(baseUri);
         super.setServiceClass(aClass);
         super.setProviderComparator(comparator);
         registeredProviders = new ArrayList<>();
         registeredProviders.addAll(processProviders());
-        registeredProviders.add(new DefaultResponseExceptionMapper());
+        if (!configuration.isDefaultExceptionMapperDisabled()) {
+            registeredProviders.add(new DefaultResponseExceptionMapper());
+        }
         super.setProviders(registeredProviders);
     }
 
diff --git 
a/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilderTest.java
 
b/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilderTest.java
index be37b73..5ac4b79 100644
--- 
a/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilderTest.java
+++ 
b/rt/rs/microprofile-client/src/test/java/org/apache/cxf/microprofile/client/CxfTypeSafeClientBuilderTest.java
@@ -34,10 +34,8 @@ import 
org.eclipse.microprofile.rest.client.tck.providers.TestParamConverterProv
 import 
org.eclipse.microprofile.rest.client.tck.providers.TestReaderInterceptor;
 import 
org.eclipse.microprofile.rest.client.tck.providers.TestWriterInterceptor;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 
-@Ignore
 public class CxfTypeSafeClientBuilderTest extends Assert {
 
     @Test
@@ -56,6 +54,7 @@ public class CxfTypeSafeClientBuilderTest extends Assert {
     @Test
     public void testConfigPriorityOverrides() throws Exception {
         RestClientBuilder builder = RestClientBuilder.newBuilder();
+        builder.property("microprofile.rest.client.disable.default.mapper", 
true);
         builder.register(HighPriorityClientReqFilter.class); // annotation 
priority of 10
         builder.register(LowPriorityClientReqFilter.class, 5);
         // overriding priority to be 5 (preferred)
@@ -78,6 +77,7 @@ public class CxfTypeSafeClientBuilderTest extends Assert {
                 .register(TestParamConverterProvider.class)
                 .register(TestReaderInterceptor.class)
                 .register(TestWriterInterceptor.class)
+                .property("microprofile.rest.client.disable.default.mapper", 
true)
                 .baseUrl(new URL("http://localhost/null";))
                 .build(InterfaceWithoutProvidersDefined.class);
 
diff --git a/systests/microprofile/client/weld/pom.xml 
b/systests/microprofile/client/weld/pom.xml
index 04c7c56..dff4f0d 100644
--- a/systests/microprofile/client/weld/pom.xml
+++ b/systests/microprofile/client/weld/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>org.jboss.arquillian.container</groupId>
             <artifactId>arquillian-weld-embedded</artifactId>
-            <version>2.0.0.Beta5</version>
+            <version>2.0.0.Final</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -120,6 +120,7 @@
                         
<dependency>org.eclipse.microprofile.rest.client:microprofile-rest-client-tck</dependency>
                     </dependenciesToScan>
                     <excludes>
+                        
<exclude>org.eclipse.microprofile.rest.client.tck.CustomHttpMethodTest</exclude>
                         
<exclude>org.eclipse.microprofile.rest.client.tck.InvokeWithJsonPProviderTest</exclude>
                         
<exclude>org.eclipse.microprofile.rest.client.tck.InvalidInterfaceTest</exclude>
                     </excludes>

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to