Modified: cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java (original) +++ cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java Fri Mar 20 10:46:33 2009 @@ -29,13 +29,13 @@ @Test public void testBaseCurrentPath() { - assertEquals(URI.create("http://foo"), new WebClient("http://foo").getBaseURI()); - assertEquals(URI.create("http://foo"), new WebClient("http://foo").getCurrentURI()); + assertEquals(URI.create("http://foo"), WebClient.create("http://foo").getBaseURI()); + assertEquals(URI.create("http://foo"), WebClient.create("http://foo").getCurrentURI()); } @Test public void testNewBaseCurrentPath() { - WebClient wc = new WebClient("http://foo"); + WebClient wc = WebClient.create("http://foo"); assertEquals(URI.create("http://foo"), wc.getBaseURI()); assertEquals(URI.create("http://foo"), wc.getCurrentURI()); wc.to("http://bar", false); @@ -45,7 +45,7 @@ @Test public void testForward() { - WebClient wc = new WebClient("http://foo"); + WebClient wc = WebClient.create("http://foo"); wc.to("http://foo/bar", true); assertEquals(URI.create("http://foo"), wc.getBaseURI()); assertEquals(URI.create("http://foo/bar"), wc.getCurrentURI()); @@ -53,13 +53,13 @@ @Test(expected = IllegalArgumentException.class) public void testWrongForward() { - WebClient wc = new WebClient("http://foo"); + WebClient wc = WebClient.create("http://foo"); wc.to("http://bar", true); } @Test public void testBaseCurrentPathAfterChange() { - WebClient wc = new WebClient(URI.create("http://foo")); + WebClient wc = WebClient.create(URI.create("http://foo")); wc.path("bar").path("baz").matrix("m1", "m1value").query("q1", "q1value"); assertEquals(URI.create("http://foo"), wc.getBaseURI()); assertEquals(URI.create("http://foo/bar/baz;m1=m1value?q1=q1value"), wc.getCurrentURI()); @@ -68,16 +68,16 @@ @Test public void testBaseCurrentPathAfterCopy() { - WebClient wc = new WebClient(URI.create("http://foo")); + WebClient wc = WebClient.create(URI.create("http://foo")); wc.path("bar").path("baz").matrix("m1", "m1value").query("q1", "q1value"); - WebClient wc1 = new WebClient(wc); + WebClient wc1 = WebClient.fromClient(wc); assertEquals(URI.create("http://foo/bar/baz;m1=m1value?q1=q1value"), wc1.getBaseURI()); assertEquals(URI.create("http://foo/bar/baz;m1=m1value?q1=q1value"), wc1.getCurrentURI()); } @Test public void testHeaders() { - WebClient wc = new WebClient(URI.create("http://foo")); + WebClient wc = WebClient.create(URI.create("http://foo")); wc.header("h1", "h1value").header("h2", "h2value"); assertEquals(1, wc.getHeaders().get("h1").size()); assertEquals("h1value", wc.getHeaders().getFirst("h1")); @@ -94,7 +94,7 @@ @Test public void testBackFast() { - WebClient wc = new WebClient(URI.create("http://foo")); + WebClient wc = WebClient.create(URI.create("http://foo")); wc.path("bar").path("baz").matrix("m1", "m1value"); assertEquals(URI.create("http://foo"), wc.getBaseURI()); assertEquals(URI.create("http://foo/bar/baz;m1=m1value"), wc.getCurrentURI()); @@ -104,7 +104,7 @@ @Test public void testBack() { - WebClient wc = new WebClient(URI.create("http://foo")); + WebClient wc = WebClient.create(URI.create("http://foo")); wc.path("bar").path("baz"); assertEquals(URI.create("http://foo"), wc.getBaseURI()); assertEquals(URI.create("http://foo/bar/baz"), wc.getCurrentURI());
Modified: cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java (original) +++ cxf/branches/2.1.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java Fri Mar 20 10:46:33 2009 @@ -182,7 +182,7 @@ verifyProvider(byte[].class, BinaryDataProvider.class, "*/*"); verifyProvider(InputStream.class, BinaryDataProvider.class, "image/png"); MessageBodyWriter writer = ProviderFactory.getInstance() - .createMessageBodyWriter(File.class, null, null, JAXRSUtils.ALL_TYPES, null); + .createMessageBodyWriter(File.class, null, null, JAXRSUtils.ALL_TYPES, new MessageImpl()); assertTrue(BinaryDataProvider.class == writer.getClass()); } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookServer.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookServer.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookServer.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookServer.java Fri Mar 20 10:46:33 2009 @@ -19,8 +19,14 @@ package org.apache.cxf.systest.jaxrs; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.cxf.interceptor.Interceptor; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider; +import org.apache.cxf.jaxrs.provider.BinaryDataProvider; import org.apache.cxf.testutil.common.AbstractBusTestServerBase; public class BookServer extends AbstractBusTestServerBase { @@ -29,6 +35,13 @@ JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setResourceClasses(BookStore.class); //default lifecycle is per-request, change it to singleton + BinaryDataProvider p = new BinaryDataProvider(); + p.setProduceMediaTypes(Collections.singletonList("application/bar")); + p.setEnableBuffering(true); + sf.setProvider(p); + List<Interceptor> ints = new ArrayList<Interceptor>(); + ints.add(new CustomOutInterceptor()); + sf.setOutInterceptors(ints); sf.setResourceProvider(BookStore.class, new SingletonResourceProvider(new BookStore())); sf.setAddress("http://localhost:9080/"); Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Fri Mar 20 10:46:33 2009 @@ -21,6 +21,7 @@ import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.util.Calendar; @@ -264,11 +265,26 @@ return doGetBook(currentBookId); } + @GET - @Path("/books/stream") - @ProduceMime("application/xml") + @Path("/books/buffer") + @ProduceMime("application/bar") + public InputStream getBufferedBook() { + return getClass().getResourceAsStream("resources/expected_get_book123.txt"); + } + + @GET + @Path("/books/fail-early") + @ProduceMime("application/bar") + public StreamingOutput failEarlyInWrite() { + return new StreamingOutputImpl(true); + } + + @GET + @Path("/books/fail-late") + @ProduceMime("application/bar") public StreamingOutput writeToStreamAndFail() { - return new StreamingOutputImpl(); + return new StreamingOutputImpl(false); } private Book doGetBook(String id) throws BookNotFoundFault { @@ -522,11 +538,21 @@ private static class StreamingOutputImpl implements StreamingOutput { + private boolean failEarly; + + public StreamingOutputImpl(boolean failEarly) { + this.failEarly = failEarly; + } + public void write(OutputStream output) throws IOException, WebApplicationException { - //output.write("This is not supposed to go on the wire".getBytes()); - throw new WebApplicationException( - Response.status(410).type("text/plain") - .entity("This is supposed to go on the wire").build()); + if (failEarly) { + throw new WebApplicationException( + Response.status(410).type("text/plain") + .entity("This is supposed to go on the wire").build()); + } else { + output.write("This is not supposed to go on the wire".getBytes()); + throw new WebApplicationException(410); + } } } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreJaxrsJaxws.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreJaxrsJaxws.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreJaxrsJaxws.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreJaxrsJaxws.java Fri Mar 20 10:46:33 2009 @@ -49,4 +49,8 @@ @Path("/books/{id}") @WebMethod(exclude = true) BookSubresource getBookSubresource(@PathParam("id") String id); + + @Path("/thestore/{id}") + @WebMethod(exclude = true) + BookStoreJaxrsJaxws getBookStore(@PathParam("id") String id); } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java Fri Mar 20 10:46:33 2009 @@ -104,5 +104,13 @@ public BookSubresource getBookSubresource(String id) { return new BookSubresourceImpl(Long.valueOf(id)); } + + @WebMethod(exclude = true) + public BookStoreJaxrsJaxws getBookStore(String id) { + if (!"number1".equals(id)) { + throw new WebApplicationException(404); + } + return this; + } } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/BookSubresource.java Fri Mar 20 10:46:33 2009 @@ -40,7 +40,7 @@ Book getTheBook() throws BookNotFoundFault; @POST - @Path("/subresource2/{n1}") + @Path("/subresource2/{n1:.*}") @ConsumeMime("text/plain") @ProduceMime("application/xml") Book getTheBook2(@PathParam("n1") String name1, Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Fri Mar 20 10:46:33 2009 @@ -87,9 +87,15 @@ @Test public void testWriteAndFailEarly() throws Exception { - getAndCompare("http://localhost:9080/bookstore/books/stream", + getAndCompare("http://localhost:9080/bookstore/books/fail-early", "This is supposed to go on the wire", - "application/xml, text/plain", 410); + "application/bar, text/plain", 410); + } + + @Test + public void testWriteAndFailLate() throws Exception { + getAndCompare("http://localhost:9080/bookstore/books/fail-late", + "", "application/bar", 410); } @@ -258,6 +264,13 @@ } @Test + public void testGetBookBuffer() throws Exception { + getAndCompareAsStrings("http://localhost:9080/bookstore/books/buffer", + "resources/expected_get_book123.txt", + "application/bar", 200); + } + + @Test public void testGetBookBySegment() throws Exception { getAndCompareAsStrings("http://localhost:9080/bookstore/segment/matrix2;first=12;second=3", "resources/expected_get_book123.txt", @@ -729,6 +742,9 @@ String content = getStringFromInputStream(get.getResponseBodyAsStream()); assertEquals("Expected value is wrong", expectedValue, content); + if (expectedStatus == 200) { + assertEquals("123", get.getResponseHeader("BookId").getValue()); + } } finally { get.releaseConnection(); } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java Fri Mar 20 10:46:33 2009 @@ -37,7 +37,7 @@ @BeforeClass public static void startServers() throws Exception { assertTrue("server did not launch correctly", - launchServer(BookServerResourceCreatedSpringProviders.class)); + launchServer(BookServerResourceCreatedSpringProviders.class, true)); } @Test Copied: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java (from r750522, cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java) URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java?p2=cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java&p1=cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java&r1=750522&r2=756410&rev=756410&view=diff ============================================================================== --- cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerStreamingTest.java Fri Mar 20 10:46:33 2009 @@ -20,6 +20,8 @@ package org.apache.cxf.systest.jaxrs; import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; @@ -51,7 +53,9 @@ p.setEnableStreaming(true); sf.setProvider(p); sf.setAddress("http://localhost:9080/"); - + Map<String, Object> properties = new HashMap<String, Object>(); + properties.put("org.apache.cxf.serviceloader-context", "true"); + sf.setProperties(properties); sf.create(); } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java Fri Mar 20 10:46:33 2009 @@ -23,6 +23,7 @@ import java.io.InputStream; import java.net.URL; import java.net.URLConnection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -45,7 +46,6 @@ import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.ext.form.Form; import org.apache.cxf.jaxrs.impl.MetadataMap; -import org.apache.cxf.jaxrs.provider.ProviderFactory; import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase; import org.junit.BeforeClass; @@ -92,7 +92,7 @@ @Test public void testGetBook123WebClient() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest"; - WebClient client = new WebClient(baseAddress); + WebClient client = WebClient.create(baseAddress); client.path("/bookstore/123").accept(MediaType.APPLICATION_XML_TYPE); Book b = client.get(Book.class); assertEquals(123L, b.getId()); @@ -102,7 +102,7 @@ @Test public void testGetBook123WebClientBean() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest"; - WebClient client = WebClient.createClient(baseAddress); + WebClient client = WebClient.create(baseAddress); client.path("/bookstore/123").accept(MediaType.APPLICATION_XML_TYPE); Book b = client.get(Book.class); assertEquals(123, b.getId()); @@ -112,7 +112,7 @@ @Test public void testNoBookWebClient() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest"; - WebClient client = new WebClient(baseAddress); + WebClient client = WebClient.create(baseAddress); client.path("/bookstore/books/0/subresource").accept(MediaType.APPLICATION_XML_TYPE); Book b = client.get(Book.class); assertNull(b); @@ -122,7 +122,7 @@ @Test public void testGetBook123WebClientResponse() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest"; - WebClient client = new WebClient(baseAddress); + WebClient client = WebClient.create(baseAddress); client.path("/bookstore/123").accept(MediaType.APPLICATION_XML_TYPE); Book b = readBook((InputStream)client.get().getEntity()); assertEquals(123L, b.getId()); @@ -134,9 +134,9 @@ String baseAddress = "http://localhost:9092/test/services/rest"; BookStoreJaxrsJaxws proxy = JAXRSClientFactory.create(baseAddress, - BookStoreJaxrsJaxws.class); + BookStoreJaxrsJaxws.class, + Collections.singletonList(new TestResponseExceptionMapper())); - ProviderFactory.getInstance().registerUserProvider(new TestResponseExceptionMapper()); try { proxy.getBook(356L); fail(); @@ -165,29 +165,16 @@ BookStoreJaxrsJaxws proxy = JAXRSClientFactory.create(baseAddress, BookStoreJaxrsJaxws.class); doTestSubresource(proxy); - } - - @Test - public void testGetBookSubresourceWebClientProxyDirect() throws Exception { - - WebClient client = new WebClient("http://localhost:9092/test/services/rest"); - client.type(MediaType.TEXT_PLAIN_TYPE) - .accept(MediaType.APPLICATION_XML_TYPE, MediaType.TEXT_XML_TYPE); - BookStoreJaxrsJaxws proxy = - JAXRSClientFactory.fromClient(client, BookStoreJaxrsJaxws.class, true, true); - - doTestSubresource(proxy); - - BookStoreJaxrsJaxws proxy2 = JAXRSClientFactory.fromClient( - WebClient.client(proxy), BookStoreJaxrsJaxws.class); + BookStoreJaxrsJaxws proxy2 = proxy.getBookStore("number1"); doTestSubresource(proxy2); - + BookStoreJaxrsJaxws proxy3 = proxy2.getBookStore("number1"); + doTestSubresource(proxy3); } @Test public void testGetBookSubresourceWebClientProxyBean() throws Exception { - WebClient client = new WebClient("http://localhost:9092/test/services/rest"); + WebClient client = WebClient.create("http://localhost:9092/test/services/rest"); client.type(MediaType.TEXT_PLAIN_TYPE) .accept(MediaType.APPLICATION_XML_TYPE, MediaType.TEXT_XML_TYPE); BookStoreJaxrsJaxws proxy = @@ -205,7 +192,7 @@ @Test public void testGetBookSubresourceWebClientProxy2() throws Exception { - WebClient client = new WebClient("http://localhost:9092/test/services/rest/bookstore") + WebClient client = WebClient.create("http://localhost:9092/test/services/rest/bookstore") .path("/books/378"); client.type(MediaType.TEXT_PLAIN_TYPE).accept(MediaType.APPLICATION_XML_TYPE); BookSubresource proxy = JAXRSClientFactory.fromClient(client, BookSubresource.class); @@ -227,13 +214,16 @@ b = bs.getTheBook2("CXF ", "in ", "Action ", null, "7", "8"); assertEquals(378L, b.getId()); assertEquals("CXF in Action - 478", b.getName()); + + + } @Test public void testGetBookWebClientForm() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest/bookstore/books/679/subresource3"; - WebClient wc = new WebClient(baseAddress); + WebClient wc = WebClient.create(baseAddress); MultivaluedMap<String, Object> map = new MetadataMap<String, Object>(); map.putSingle("id", "679"); map.putSingle("name", "CXF in Action - 679"); @@ -247,7 +237,7 @@ public void testGetBookWebClientForm2() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest/bookstore/books/679/subresource3"; - WebClient wc = new WebClient(baseAddress); + WebClient wc = WebClient.create(baseAddress); Form f = new Form(); f.set("id", "679").set("name", "CXF in Action - 679"); Book b = readBook((InputStream)wc.accept("application/xml") @@ -274,7 +264,7 @@ @Test public void testAddGetBook123WebClient() throws Exception { String baseAddress = "http://localhost:9092/test/services/rest"; - WebClient client = new WebClient(baseAddress); + WebClient client = WebClient.create(baseAddress); client.path("/bookstore/books").accept(MediaType.APPLICATION_XML_TYPE) .type(MediaType.APPLICATION_XML_TYPE); Book b = new Book(); Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSHttpsBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSHttpsBookTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSHttpsBookTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSHttpsBookTest.java Fri Mar 20 10:46:33 2009 @@ -21,11 +21,7 @@ import javax.ws.rs.core.MediaType; -import org.apache.cxf.Bus; -import org.apache.cxf.BusFactory; -import org.apache.cxf.bus.spring.SpringBusFactory; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; -import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.systest.jaxrs.Book; import org.apache.cxf.systest.jaxrs.BookStore; @@ -46,34 +42,59 @@ } @Test - public void testGetBook123Client() throws Exception { + public void testGetBook123Proxy() throws Exception { - SpringBusFactory bf = new SpringBusFactory(); - Bus bus = bf.createBus(CLIENT_CONFIG_FILE); - BusFactory.setDefaultBus(bus); - - BookStore bs = JAXRSClientFactory.create("https://localhost:9095", BookStore.class); + BookStore bs = JAXRSClientFactory.create("https://localhost:9095", BookStore.class, + CLIENT_CONFIG_FILE); // just to verify the interface call goes through CGLIB proxy too assertEquals("https://localhost:9095", WebClient.client(bs).getBaseURI().toString()); Book b = bs.getSecureBook("123"); assertEquals(b.getId(), 123); + b = bs.getSecureBook("123"); + assertEquals(b.getId(), 123); + } + + @Test + public void testGetBook123ProxyToWebClient() throws Exception { + + BookStore bs = JAXRSClientFactory.create("https://localhost:9095", BookStore.class, + CLIENT_CONFIG_FILE); + Book b = bs.getSecureBook("123"); + assertEquals(b.getId(), 123); + WebClient wc = WebClient.fromClient(WebClient.client(bs)); + wc.path("/bookstore/securebooks/123").accept(MediaType.APPLICATION_XML_TYPE); + Book b2 = wc.get(Book.class); + assertEquals(123, b2.getId()); } + + @Test + public void testGetBook123WebClientToProxy() throws Exception { + + WebClient wc = WebClient.create("https://localhost:9095", CLIENT_CONFIG_FILE); + wc.path("/bookstore/securebooks/123").accept(MediaType.APPLICATION_XML_TYPE); + Book b = wc.get(Book.class); + assertEquals(123, b.getId()); + + wc.back(true); + + BookStore bs = JAXRSClientFactory.fromClient(wc, BookStore.class); + Book b2 = bs.getSecureBook("123"); + assertEquals(b2.getId(), 123); + + } + + @Test public void testGetBook123WebClient() throws Exception { - SpringBusFactory bf = new SpringBusFactory(); - Bus bus = bf.createBus(CLIENT_CONFIG_FILE); - BusFactory.setDefaultBus(bus); - - JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean(); - bean.setAddress("https://localhost:9095"); - WebClient client = bean.createWebClient(); + WebClient client = WebClient.create("https://localhost:9095", CLIENT_CONFIG_FILE); assertEquals("https://localhost:9095", client.getBaseURI().toString()); client.path("/bookstore/securebooks/123").accept(MediaType.APPLICATION_XML_TYPE); Book b = client.get(Book.class); assertEquals(123, b.getId()); + } } Modified: cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java Fri Mar 20 10:46:33 2009 @@ -19,6 +19,13 @@ package org.apache.cxf.systest.jaxrs.security; +import javax.ws.rs.core.Response; + +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.WebClient; +import org.apache.cxf.systest.jaxrs.Book; +import org.apache.cxf.systest.jaxrs.BookNotFoundFault; + import org.junit.BeforeClass; import org.junit.Test; @@ -68,4 +75,48 @@ getBook(endpointAddress, "foo", "bar", 200); getBook(endpointAddress, "bob", "bobspassword", 403); } + + @Test + public void testWebClientAdmin() throws Exception { + String address = "http://localhost:9080/bookstorestorage/thosebooks"; + doGetBookWebClient(address, "foo", "bar", 200); + } + + @Test + public void testProxyClientAdmin() throws Exception { + String address = "http://localhost:9080/bookstorestorage"; + doGetBookProxyClient(address, "foo", "bar", 200); + } + + @Test + public void testWebClientUserUnauthorized() throws Exception { + String address = "http://localhost:9080/bookstorestorage/thosebooks"; + doGetBookWebClient(address, "bob", "bobspassword", 403); + } + + @Test + public void testWebClientUserAuthorized() throws Exception { + String address = "http://localhost:9080/bookstorestorage/thosebooks/123/123"; + doGetBookWebClient(address, "bob", "bobspassword", 200); + } + + private void doGetBookWebClient(String address, String username, String password, int expectedStatus) { + WebClient wc = WebClient.create(address, username, password, null); + Response r = wc.get(); + assertEquals(expectedStatus, r.getStatus()); + WebClient wc2 = WebClient.fromClient(wc); + r = wc2.get(); + assertEquals(expectedStatus, r.getStatus()); + } + + private void doGetBookProxyClient(String address, String username, String password, int expectedStatus) + throws BookNotFoundFault { + SecureBookInterface books = JAXRSClientFactory.create(address, SecureBookInterface.class, + username, password, null); + Book b = books.getThatBook(); + assertEquals(123, b.getId()); + Response r = WebClient.client(books).getResponse(); + assertEquals(expectedStatus, r.getStatus()); + + } } Modified: cxf/branches/2.1.x-fixes/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml?rev=756410&r1=756409&r2=756410&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml (original) +++ cxf/branches/2.1.x-fixes/systests/src/test/resources/jaxrs_atom/WEB-INF/beans.xml Fri Mar 20 10:46:33 2009 @@ -80,6 +80,9 @@ <jaxrs:extensionMappings> <entry key="json" value="application/json"/> </jaxrs:extensionMappings> + <jaxrs:properties> + <entry key="org.apache.cxf.output.buffering" value="true"/> + </jaxrs:properties> </jaxrs:server> <bean id="atomstore" class="org.apache.cxf.systest.jaxrs.AtomBookStore"/>
