a test to demonstrate the receiveTimeout configuration works for the jaxrs async invocation with ahc
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/45f6dac0 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/45f6dac0 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/45f6dac0 Branch: refs/heads/3.1.x-fixes Commit: 45f6dac04dc543371c9de1ac3fbd4260f7805dd6 Parents: c3b8873 Author: Freeman Fang <freeman.f...@gmail.com> Authored: Fri Jan 13 12:05:35 2017 +0800 Committer: Sergey Beryozkin <sberyoz...@gmail.com> Committed: Fri Jan 13 11:54:56 2017 +0000 ---------------------------------------------------------------------- .../org/apache/cxf/systest/jaxrs/BookStore.java | 10 +++++++++- .../cxf/systest/jaxrs/JAXRSAsyncClientTest.java | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/45f6dac0/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java ---------------------------------------------------------------------- diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java index 6e9c6c4..45d2a19 100644 --- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java +++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java @@ -293,7 +293,15 @@ public class BookStore { @Produces("application/xml") @Consumes("application/xml") public Response patchBook(Book book) { - return Response.ok(book).build(); + if (book.getName().equals("Timeout")) { + try { + Thread.sleep(25000); + } catch (InterruptedException e) { + } + return Response.ok(book).build(); + } else { + return Response.ok(book).build(); + } } @DELETE http://git-wip-us.apache.org/repos/asf/cxf/blob/45f6dac0/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java ---------------------------------------------------------------------- diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java index 8713229..ed78c62 100644 --- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java +++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSAsyncClientTest.java @@ -52,10 +52,12 @@ import javax.ws.rs.ext.MessageBodyReader; import javax.ws.rs.ext.MessageBodyWriter; import javax.xml.ws.Holder; +import org.apache.cxf.jaxrs.client.ClientConfiguration; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.model.AbstractResourceInfo; import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase; +import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; import org.junit.Before; import org.junit.BeforeClass; @@ -104,6 +106,24 @@ public class JAXRSAsyncClientTest extends AbstractBusClientServerTestBase { } @Test + public void testPatchBookTimeout() throws Exception { + String address = "http://localhost:" + PORT + "/bookstore/patch"; + WebClient wc = WebClient.create(address); + wc.type("application/xml"); + ClientConfiguration clientConfig = WebClient.getConfig(wc); + clientConfig.getRequestContext().put("use.async.http.conduit", true); + HTTPClientPolicy clientPolicy = clientConfig.getHttpConduit().getClient(); + clientPolicy.setReceiveTimeout(15000); + clientPolicy.setConnectionTimeout(15000); + try { + Book book = wc.invoke("PATCH", new Book("Timeout", 123L), Book.class); + fail("should throw an exception due to timeout"); + } catch (javax.ws.rs.ProcessingException e) { + //expected!!! + } + } + + @Test public void testPatchBookInputStream() throws Exception { String address = "http://localhost:" + PORT + "/bookstore/patch"; WebClient wc = WebClient.create(address);