You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/01/24 15:44:30 UTC
svn commit: r1062807 - in /cxf/trunk:
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/
systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/
Author: sergeyb
Date: Mon Jan 24 14:44:29 2011
New Revision: 1062807
URL: http://svn.apache.org/viewvc?rev=1062807&view=rev
Log:
[CXF-3207] Updating WebClient to support ResponseReader
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=1062807&r1=1062806&r2=1062807&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Mon Jan 24 14:44:29 2011
@@ -392,10 +392,6 @@ public class AbstractClient implements C
MessageBodyWriter mbw = ProviderFactory.getInstance(outMessage).createMessageBodyWriter(
cls, type, anns, contentType, outMessage);
- if (mbw == null) {
- mbw = ProviderFactory.getInstance().createMessageBodyWriter(
- cls, type, anns, contentType, outMessage);
- }
if (mbw != null) {
try {
mbw.writeTo(o, cls, type, anns, contentType, headers, os);
@@ -436,10 +432,6 @@ public class AbstractClient implements C
MessageBodyReader mbr = ProviderFactory.getInstance(outMessage).createMessageBodyReader(
cls, type, anns, contentType, outMessage);
- if (mbr == null) {
- ProviderFactory.getInstance().createMessageBodyReader(
- cls, type, anns, contentType, outMessage);
- }
if (mbr != null) {
try {
return mbr.readFrom(cls, type, anns, contentType,
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=1062807&r1=1062806&r2=1062807&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Mon Jan 24 14:44:29 2011
@@ -237,7 +237,7 @@ public class WebClient extends AbstractC
* error message if client or server error occured
*/
public Response invoke(String httpMethod, Object body) {
- return doInvoke(httpMethod, body, InputStream.class, InputStream.class);
+ return doInvoke(httpMethod, body, Response.class, Response.class);
}
/**
@@ -636,7 +636,8 @@ public class WebClient extends AbstractC
Object entity = readBody(currentResponse, conn, outMessage, responseClass, genericType,
new Annotation[]{});
- rb.entity(entity);
+ rb.entity(entity instanceof Response
+ ? ((Response)entity).getEntity() : entity);
return rb.build();
} catch (Throwable ex) {
Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1062807&r1=1062806&r2=1062807&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Mon Jan 24 14:44:29 2011
@@ -589,6 +589,18 @@ public class JAXRSClientServerBookTest e
}
@Test
+ public void testGetBookFromResponseWithWebClient() throws Exception {
+ String address = "http://localhost:" + PORT + "/bookstore/genericresponse/123";
+ WebClient wc = WebClient.create(address,
+ Collections.singletonList(
+ new ResponseReader(Book.class)));
+ Response r = wc.accept("application/xml").get();
+ assertEquals(200, r.getStatus());
+ Book book = (Book)r.getEntity();
+ assertEquals(123L, book.getId());
+ }
+
+ @Test
public void testUpdateWithProxy() throws Exception {
BookStore bs = JAXRSClientFactory.create("http://localhost:" + PORT, BookStore.class);
Book book = new Book();