Author: sergeyb Date: Mon Jul 9 17:52:45 2012 New Revision: 1359314 URL: http://svn.apache.org/viewvc?rev=1359314&view=rev Log: Merged revisions 1359308 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
................ r1359308 | sergeyb | 2012-07-09 18:47:34 +0100 (Mon, 09 Jul 2012) | 20 lines Merged revisions 1359302 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes ................ r1359302 | sergeyb | 2012-07-09 18:35:25 +0100 (Mon, 09 Jul 2012) | 13 lines Merged revisions 1359298,1359300 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1359298 | sergeyb | 2012-07-09 18:29:14 +0100 (Mon, 09 Jul 2012) | 1 line Updates to the test filter to validate that UriInfo.getPathParameters is working as expected ........ r1359300 | sergeyb | 2012-07-09 18:30:44 +0100 (Mon, 09 Jul 2012) | 1 line [CXF-4409] Updating ProviderFactory to avoid clearing the proxies during recursive calls ........ ................ ................ Modified: cxf/branches/2.4.x-fixes/ (props changed) cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/FaultyRequestHandler.java cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java Propchange: cxf/branches/2.4.x-fixes/ ------------------------------------------------------------------------------ Merged /cxf/branches/2.5.x-fixes:r1359308 Merged /cxf/trunk:r1359298-1359300 Merged /cxf/branches/2.6.x-fixes:r1359302 Propchange: cxf/branches/2.4.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java (original) +++ cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java Mon Jul 9 17:52:45 2012 @@ -74,6 +74,7 @@ import org.apache.cxf.message.MessageUti public class MultipartProvider extends AbstractConfigurableProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> { + private static final String ACTIVE_JAXRS_PROVIDER_KEY = "active.jaxrs.provider"; private static final Logger LOG = LogUtils.getL7dLogger(MultipartProvider.class); private static final ResourceBundle BUNDLE = BundleUtils.getBundle(MultipartProvider.class); @@ -357,8 +358,14 @@ public class MultipartProvider extends A Annotation[] anns, String mimeType, int id) { MediaType mt = MediaType.valueOf(mimeType); - MessageBodyWriter<Object> r = - (MessageBodyWriter)mc.getProviders().getMessageBodyWriter(cls, genericType, anns, mt); + mc.put(ACTIVE_JAXRS_PROVIDER_KEY, this); + + MessageBodyWriter<Object> r = null; + try { + r = (MessageBodyWriter)mc.getProviders().getMessageBodyWriter(cls, genericType, anns, mt); + } finally { + mc.put("active.jaxrs.provider", null); + } if (r == null) { org.apache.cxf.common.i18n.Message message = new org.apache.cxf.common.i18n.Message("NO_MSG_WRITER", Modified: cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java (original) +++ cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java Mon Jul 9 17:52:45 2012 @@ -63,6 +63,7 @@ import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageUtils; public final class ProviderFactory { + private static final String ACTIVE_JAXRS_PROVIDER_KEY = "active.jaxrs.provider"; private static final Logger LOG = LogUtils.getL7dLogger(ProviderFactory.class); private static final ProviderFactory SHARED_FACTORY = new ProviderFactory(); @@ -642,7 +643,8 @@ public final class ProviderFactory { return false; } boolean injected = false; - if (this != SHARED_FACTORY || !isJaxbBasedProvider(ep)) { + if ((this != SHARED_FACTORY || !isJaxbBasedProvider(ep)) + && m.get(ACTIVE_JAXRS_PROVIDER_KEY) != ep) { injectContextValues(pi, m); injected = true; } Modified: cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original) +++ cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Mon Jul 9 17:52:45 2012 @@ -215,6 +215,12 @@ public class BookStore { } @GET + @Path("propogateExceptionVar/{i}") + public Book propogateExceptionWithVar() throws BookNotFoundFault { + return null; + } + + @GET @Path("name-in-query") @Produces("application/xml") @XMLInstruction("<!DOCTYPE Something SYSTEM 'my.dtd'><?xmlstylesheet href='common.css'?>") Modified: cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/FaultyRequestHandler.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/FaultyRequestHandler.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/FaultyRequestHandler.java (original) +++ cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/FaultyRequestHandler.java Mon Jul 9 17:52:45 2012 @@ -19,6 +19,7 @@ package org.apache.cxf.systest.jaxrs; import javax.ws.rs.core.Context; +import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; @@ -32,9 +33,16 @@ public class FaultyRequestHandler implem private UriInfo uriInfo; public Response handleRequest(Message m, ClassResourceInfo resourceClass) { - if (uriInfo.getPath().endsWith("/propogateexception4")) { - m.getExchange().put("org.apache.cxf.systest.for-out-fault-interceptor", Boolean.TRUE); - throw new RuntimeException(); + if (uriInfo.getPath().endsWith("/propogateExceptionVar/1")) { + MultivaluedMap<String, String> vars = uriInfo.getPathParameters(); + if (vars.size() == 1 + && vars.get("i") != null + && vars.get("i").size() == 1 + && "1".equals(vars.getFirst("i"))) { + + m.getExchange().put("org.apache.cxf.systest.for-out-fault-interceptor", Boolean.TRUE); + throw new RuntimeException(); + } } return null; } Modified: cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original) +++ cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Mon Jul 9 17:52:45 2012 @@ -375,7 +375,7 @@ public class JAXRSClientServerBookTest e @Test public void testPropogateException4() throws Exception { String data = "<nobook/>"; - getAndCompare("http://localhost:" + PORT + "/bookstore/propogateexception4", + getAndCompare("http://localhost:" + PORT + "/bookstore/propogateExceptionVar/1", data, "application/xml", 500); } Modified: cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java (original) +++ cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java Mon Jul 9 17:52:45 2012 @@ -240,7 +240,6 @@ public class JAXRSMultipartTest extends public void testAddBookAsJAXBJSONProxy() throws Exception { MultipartStore store = JAXRSClientFactory.create("http://localhost:" + PORT, MultipartStore.class); - Book b = store.addBookJaxbJsonWithConsumes(new Book2("CXF in Action", 1L), new Book("CXF in Action - 2", 2L)); assertEquals(124L, b.getId()); @@ -248,6 +247,15 @@ public class JAXRSMultipartTest extends } @Test + public void testUseProxyToAddBookAndSimpleParts() throws Exception { + MultipartStore store = + JAXRSClientFactory.create("http://localhost:" + PORT, MultipartStore.class); + Book b = store.testAddBookAndSimpleParts(new Book("CXF in Action", 124L), "1", "2"); + assertEquals(124L, b.getId()); + assertEquals("CXF in Action - 12", b.getName()); + } + + @Test public void testAddBookAsJAXBOnlyProxy() throws Exception { MultipartStore store = JAXRSClientFactory.create("http://localhost:" + PORT, MultipartStore.class); Modified: cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java?rev=1359314&r1=1359313&r2=1359314&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java (original) +++ cxf/branches/2.4.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java Mon Jul 9 17:52:45 2012 @@ -374,6 +374,17 @@ public class MultipartStore { } @POST + @Path("/books/jaxbandsimpleparts") + @Consumes("multipart/related") + @Produces("text/xml") + public Book testAddBookAndSimpleParts( + @Multipart(value = "rootPart", type = "text/xml") Book b1, + @Multipart(value = "simplePart1") String simplePart1, + @Multipart(value = "simplePart2") String simplePart2) throws Exception { + return new Book(b1.getName() + " - " + simplePart1 + simplePart2, b1.getId()); + } + + @POST @Path("/books/jaxbonly") @Consumes("multipart/related") @Produces("text/xml")
