This is an automated email from the ASF dual-hosted git repository.
johndament pushed a commit to branch mp-client
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/mp-client by this push:
new 6df3057 [CXF-7579] Adding handling for disabling mapper.
6df3057 is described below
commit 6df3057c567b2bd6b7b8f099ff6693f289c5ff4c
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]>'].