You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by am...@apache.org on 2018/08/01 22:06:13 UTC
[cxf] 02/08: Code Review Changes
This is an automated email from the ASF dual-hosted git repository.
amccright pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 0bebe29758ebca6e7d6032d2e13de5848b3a0518
Author: Andy McCright <j....@gmail.com>
AuthorDate: Sat Mar 24 08:31:10 2018 -0500
Code Review Changes
* Isolate changes around handling InvocationCallback parameter
* Combine MP Rest Client systests under one directory
* Minor changes in class/method names, etc.
---
.../apache/cxf/jaxrs/client/ClientProxyImpl.java | 11 +++----
.../client/proxy/MicroProfileClientProxyImpl.java | 25 ++++++++++-----
.../client/CxfTypeSafeClientBuilderTest.java | 9 ++----
.../client/async}/pom.xml | 36 +++++++++++-----------
.../microprofile/rest/client/AsyncMethodTest.java | 0
.../rest/client/mock/AsyncClientWithFuture.java | 0
.../mock/AsyncClientWithInvocationCallback.java | 0
.../AsyncInvocationInterceptorFactoryTestImpl.java | 0
...AsyncInvocationInterceptorFactoryTestImpl2.java | 0
.../rest/client/mock/ThreadLocalClientFilter.java | 1 -
.../client/weld/pom.xml | 0
systests/microprofile/pom.xml | 29 +++++------------
12 files changed, 51 insertions(+), 60 deletions(-)
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
index 35bdbc2..ac0cace 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
@@ -245,7 +245,7 @@ public class ClientProxyImpl extends AbstractClient implements
}
}
- private static MultivaluedMap<ParameterType, Parameter> getParametersInfo(Method m,
+ private MultivaluedMap<ParameterType, Parameter> getParametersInfo(Method m,
Object[] params, OperationResourceInfo ori) {
MultivaluedMap<ParameterType, Parameter> map =
new MetadataMap<ParameterType, Parameter>();
@@ -280,13 +280,12 @@ public class ClientProxyImpl extends AbstractClient implements
return map;
}
- private static boolean isIgnorableParameter(Method m, Parameter p) {
+ protected boolean isIgnorableParameter(Method m, Parameter p) {
if (p.getType() == ParameterType.CONTEXT) {
return true;
}
return p.getType() == ParameterType.REQUEST_BODY
- && (m.getParameterTypes()[p.getIndex()] == AsyncResponse.class
- || m.getParameterTypes()[p.getIndex()] == InvocationCallback.class);
+ && m.getParameterTypes()[p.getIndex()] == AsyncResponse.class;
}
private static int getBodyIndex(MultivaluedMap<ParameterType, Parameter> map,
@@ -593,7 +592,7 @@ public class ClientProxyImpl extends AbstractClient implements
}
return jaxrsParamAnnAvailable;
}
-
+
private void handleMatrixes(Method m,
Object[] params,
MultivaluedMap<ParameterType, Parameter> map,
@@ -878,7 +877,7 @@ public class ClientProxyImpl extends AbstractClient implements
Method method = outMessage.getExchange().get(Method.class);
checkResponse(method, r, outMessage);
- if (outMessage.getExchange().isSynchronous() && (method.getReturnType() == Void.class
+ if (outMessage.getExchange().isSynchronous() && (method.getReturnType() == Void.class
|| method.getReturnType() == Void.TYPE)) {
return null;
}
diff --git a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/proxy/MicroProfileClientProxyImpl.java b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/proxy/MicroProfileClientProxyImpl.java
index 5c5d103..89dd84c 100644
--- a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/proxy/MicroProfileClientProxyImpl.java
+++ b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/proxy/MicroProfileClientProxyImpl.java
@@ -35,6 +35,8 @@ import org.apache.cxf.jaxrs.client.JaxrsClientCallback;
import org.apache.cxf.jaxrs.client.LocalClientState;
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
import org.apache.cxf.jaxrs.model.OperationResourceInfo;
+import org.apache.cxf.jaxrs.model.Parameter;
+import org.apache.cxf.jaxrs.model.ParameterType;
import org.apache.cxf.jaxrs.utils.InjectionUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.microprofile.client.MicroProfileClientProviderFactory;
@@ -53,9 +55,9 @@ public class MicroProfileClientProxyImpl extends ClientProxyImpl {
// no-op
}
};
-
+
private final MPAsyncInvocationInterceptorImpl aiiImpl = new MPAsyncInvocationInterceptorImpl();
-
+
public MicroProfileClientProxyImpl(URI baseURI, ClassLoader loader, ClassResourceInfo cri,
boolean isRoot, boolean inheritHeaders, ExecutorService executorService,
Object... varValues) {
@@ -70,7 +72,7 @@ public class MicroProfileClientProxyImpl extends ClientProxyImpl {
cfg.getRequestContext().put(EXECUTOR_SERVICE_PROPERTY, executorService);
}
-
+
@SuppressWarnings("unchecked")
@Override
@@ -83,15 +85,15 @@ public class MicroProfileClientProxyImpl extends ClientProxyImpl {
return outMessage.getContent(InvocationCallback.class);
}
-
+
@Override
protected Object doInvokeAsync(OperationResourceInfo ori, Message outMessage,
InvocationCallback<Object> asyncCallback) {
outMessage.getInterceptorChain().add(aiiImpl);
cfg.getInInterceptors().add(new MPAsyncInvocationInterceptorPostAsyncImpl(aiiImpl.getInterceptors()));
-
+
super.doInvokeAsync(ori, outMessage, asyncCallback);
-
+
Future<?> future = null;
if (asyncCallback == MARKER_CALLBACK) {
JaxrsClientCallback<?> cb = outMessage.getExchange().get(JaxrsClientCallback.class);
@@ -138,9 +140,16 @@ public class MicroProfileClientProxyImpl extends ClientProxyImpl {
if (Future.class.isAssignableFrom(returnType)) {
Type t = method.getGenericReturnType();
returnType = InjectionUtils.getActualType(t);
- System.out.println("returnType (from future) = " + returnType);
}
- System.out.println("returnType = " + returnType);
return returnType;
}
+
+ @Override
+ protected boolean isIgnorableParameter(Method m, Parameter p) {
+ if (p.getType() == ParameterType.CONTEXT) {
+ return true;
+ }
+ return p.getType() == ParameterType.REQUEST_BODY
+ && m.getParameterTypes()[p.getIndex()] == InvocationCallback.class;
+ }
}
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 bc38d62..5aa7c61 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
@@ -19,11 +19,8 @@
package org.apache.cxf.microprofile.client;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
+
import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.InvocationCallback;
import javax.ws.rs.core.Response;
import org.apache.cxf.microprofile.client.mock.EchoClientReqFilter;
@@ -122,7 +119,7 @@ public class CxfTypeSafeClientBuilderTest extends Assert {
Response r = client.getEntity();
fail(r, "Did not throw expected mapped exception: NoSuchEntityException");
}
-
+
@Test(expected = WebApplicationException.class)
public void testDefaultResponseExceptionMapper() throws Exception {
ExceptionMappingClient client = new CxfTypeSafeClientBuilder()
@@ -133,7 +130,7 @@ public class CxfTypeSafeClientBuilderTest extends Assert {
Response r = client.getEntity();
fail(r, "Did not throw expected mapped exception: WebApplicationException");
}
-
+
private void fail(Response r, String failureMessage) {
System.out.println(r.getStatus());
fail(failureMessage);
diff --git a/systests/microprofile-tck/pom.xml b/systests/microprofile/client/async/pom.xml
similarity index 85%
rename from systests/microprofile-tck/pom.xml
rename to systests/microprofile/client/async/pom.xml
index 3c29018..b4e9167 100644
--- a/systests/microprofile-tck/pom.xml
+++ b/systests/microprofile/client/async/pom.xml
@@ -19,17 +19,16 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
- <artifactId>cxf-parent</artifactId>
- <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-microprofile-tck</artifactId>
+ <groupId>org.apache.cxf.systests</groupId>
<version>3.2.5-SNAPSHOT</version>
- <relativePath>../../parent/pom.xml</relativePath>
+ <relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.cxf.systests</groupId>
- <artifactId>cxf-microprofile-tck</artifactId>
- <packaging>pom</packaging>
- <name>Apache CXF MicroProfile TCKs</name>
- <description>Apache CXF System Tests - MicroProfile TCKs</description>
+ <artifactId>cxf-microprofile-async</artifactId>
+ <name>Apache CXF MicroProfile Async Sys Tests</name>
+ <description>Apache CXF System Tests - MicroProfile Rest Client Async Tests</description>
<url>http://cxf.apache.org</url>
<properties>
<cxf.geronimo.config.version>1.0</cxf.geronimo.config.version>
@@ -43,19 +42,18 @@
<cxf.slf4j.version>1.7.25</cxf.slf4j.version>
<cxf.commons.logging.version>1.2</cxf.commons.logging.version>
<cxf.javax.ws.rs.version>2.1</cxf.javax.ws.rs.version>
+ <cxf.wiremock.version>2.10.1</cxf.wiremock.version>
</properties>
- <dependencyManagement>
<dependencies>
<dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>6.14.2</version>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-all</artifactId>
+ <version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.jboss.arquillian.testng</groupId>
- <artifactId>arquillian-testng-container</artifactId>
- <version>${cxf.arquillian.version}</version>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-rs-mp-client</artifactId>
<scope>test</scope>
</dependency>
<dependency>
@@ -129,9 +127,11 @@
<version>${cxf.microprofile.rest.client.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>com.github.tomakehurst</groupId>
+ <artifactId>wiremock</artifactId>
+ <version>${cxf.wiremock.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
- </dependencyManagement>
- <modules>
- <module>client/weld</module>
- </modules>
</project>
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/AsyncMethodTest.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/AsyncMethodTest.java
similarity index 100%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/AsyncMethodTest.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/AsyncMethodTest.java
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithFuture.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithFuture.java
similarity index 100%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithFuture.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithFuture.java
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithInvocationCallback.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithInvocationCallback.java
similarity index 100%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithInvocationCallback.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncClientWithInvocationCallback.java
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl.java
similarity index 100%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl.java
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl2.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl2.java
similarity index 100%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl2.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/AsyncInvocationInterceptorFactoryTestImpl2.java
diff --git a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java
similarity index 99%
rename from systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java
rename to systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java
index a93e4f0..bd83d64 100644
--- a/systests/microprofile/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java
+++ b/systests/microprofile/client/async/src/test/java/org/apache/cxf/systest/microprofile/rest/client/mock/ThreadLocalClientFilter.java
@@ -43,7 +43,6 @@ public class ThreadLocalClientFilter implements ClientRequestFilter, ClientRespo
List<String> list = AsyncInvocationInterceptorFactoryTestImpl.INBOUND.get();
list.add(ThreadLocalClientFilter.class.getSimpleName());
responseContext.getHeaders().put("CXFTestResponse", list);
-
}
}
diff --git a/systests/microprofile-tck/client/weld/pom.xml b/systests/microprofile/client/weld/pom.xml
similarity index 100%
rename from systests/microprofile-tck/client/weld/pom.xml
rename to systests/microprofile/client/weld/pom.xml
diff --git a/systests/microprofile/pom.xml b/systests/microprofile/pom.xml
index c70bdcf..90cc036 100644
--- a/systests/microprofile/pom.xml
+++ b/systests/microprofile/pom.xml
@@ -27,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.cxf.systests</groupId>
<artifactId>cxf-microprofile-tck</artifactId>
- <!--packaging>jar</packaging -->
+ <packaging>pom</packaging>
<name>Apache CXF MicroProfile TCKs</name>
<description>Apache CXF System Tests - MicroProfile TCKs</description>
<url>http://cxf.apache.org</url>
@@ -43,10 +43,10 @@
<cxf.slf4j.version>1.7.25</cxf.slf4j.version>
<cxf.commons.logging.version>1.2</cxf.commons.logging.version>
<cxf.javax.ws.rs.version>2.1</cxf.javax.ws.rs.version>
- <cxf.wiremock.version>2.10.1</cxf.wiremock.version>
</properties>
+ <dependencyManagement>
<dependencies>
- <!--<dependency>
+ <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.2</version>
@@ -57,18 +57,6 @@
<artifactId>arquillian-testng-container</artifactId>
<version>${cxf.arquillian.version}</version>
<scope>test</scope>
- </dependency> -->
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-all</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-rs-mp-client</artifactId>
- <!--version>${cxf.commons.logging.version}</version-->
- <scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
@@ -141,11 +129,10 @@
<version>${cxf.microprofile.rest.client.version}</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.github.tomakehurst</groupId>
- <artifactId>wiremock</artifactId>
- <version>${cxf.wiremock.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
+ </dependencyManagement>
+ <modules>
+ <module>client/async</module>
+ <module>client/weld</module>
+ </modules>
</project>