Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6B4B2D0A6 for ; Sun, 12 Aug 2012 15:09:27 +0000 (UTC) Received: (qmail 34127 invoked by uid 500); 12 Aug 2012 15:09:26 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 34085 invoked by uid 500); 12 Aug 2012 15:09:26 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 34076 invoked by uid 99); 12 Aug 2012 15:09:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Aug 2012 15:09:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Aug 2012 15:09:22 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 45CFA23888E3; Sun, 12 Aug 2012 15:08:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1372124 - in /cxf/trunk: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/ rt/frontend/jaxrs/src/main/resources/schemas/ rt/frontend/jaxrs/src/main/resources/schemas/blue... Date: Sun, 12 Aug 2012 15:08:37 -0000 To: commits@cxf.apache.org From: sergeyb@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120812150838.45CFA23888E3@eris.apache.org> Author: sergeyb Date: Sun Aug 12 15:08:37 2012 New Revision: 1372124 URL: http://svn.apache.org/viewvc?rev=1372124&view=rev Log: Get WADLGenerator support publishedEndpointUrl property, same was as for JAX-WS Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/blueprint/jaxrs.xsd cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/jaxrs.xsd cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java Sun Aug 12 15:08:37 2012 @@ -39,6 +39,7 @@ import org.apache.cxf.binding.BindingFac import org.apache.cxf.binding.BindingFactoryManager; import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.common.logging.LogUtils; +import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.databinding.DataBinding; import org.apache.cxf.databinding.PropertiesAwareDataBinding; import org.apache.cxf.endpoint.AbstractEndpointFactory; @@ -150,6 +151,11 @@ public class AbstractJAXRSFactoryBean ex BindingInfo bindingInfo = createBindingInfo(); ei.setBinding(bindingInfo); + + if (!StringUtils.isEmpty(publishedEndpointUrl)) { + ei.setProperty("publishedEndpointUrl", publishedEndpointUrl); + } + serviceFactory.sendEvent(FactoryBeanListener.Event.ENDPOINTINFO_CREATED, ei); return ei; Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Sun Aug 12 15:08:37 2012 @@ -104,6 +104,7 @@ import org.apache.cxf.jaxrs.utils.Resour import org.apache.cxf.jaxrs.utils.schemas.SchemaHandler; import org.apache.cxf.message.Message; import org.apache.cxf.service.Service; +import org.apache.cxf.service.model.EndpointInfo; import org.apache.cxf.staxutils.DelegatingXMLStreamWriter; import org.apache.cxf.staxutils.StaxUtils; import org.apache.ws.commons.schema.XmlSchema; @@ -210,7 +211,7 @@ public class WadlGenerator implements Re sbGrammars.append(""); StringBuilder sbResources = new StringBuilder(); - sbResources.append(""); + sbResources.append(""); List cris = getResourcesList(m, resource); @@ -268,8 +269,14 @@ public class WadlGenerator implements Re } } - private String getBaseURI(UriInfo ui) { - return ui.getBaseUri().toString(); + private String getBaseURI(Message m, UriInfo ui) { + EndpointInfo ei = m.getExchange().get(Endpoint.class).getEndpointInfo(); + String publishedEndpointUrl = (String)ei.getProperty("publishedEndpointUrl"); + if (publishedEndpointUrl == null) { + return ui.getBaseUri().toString(); + } else { + return publishedEndpointUrl; + } } private void handleGrammars(StringBuilder sbApp, StringBuilder sbGrammars, @@ -860,7 +867,7 @@ public class WadlGenerator implements Re WadlGenerator.WADL_NS, "resources"); if (resourceEls.size() == 1) { - DOMUtils.setAttribute(resourceEls.get(0), "base", getBaseURI(ui)); + DOMUtils.setAttribute(resourceEls.get(0), "base", getBaseURI(m, ui)); return Response.ok().type(mt).entity(new DOMSource(appEl)).build(); } Modified: cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/blueprint/jaxrs.xsd URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/blueprint/jaxrs.xsd?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/blueprint/jaxrs.xsd (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/blueprint/jaxrs.xsd Sun Aug 12 15:08:37 2012 @@ -66,6 +66,7 @@ + Modified: cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/jaxrs.xsd URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/jaxrs.xsd?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/jaxrs.xsd (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/resources/schemas/jaxrs.xsd Sun Aug 12 15:08:37 2012 @@ -66,6 +66,7 @@ + Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java Sun Aug 12 15:08:37 2012 @@ -40,6 +40,7 @@ import org.apache.cxf.message.ExchangeIm import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageImpl; import org.apache.cxf.service.Service; +import org.apache.cxf.service.model.BindingInfo; import org.apache.cxf.service.model.EndpointInfo; import org.apache.cxf.transport.servlet.ServletDestination; import org.easymock.EasyMock; @@ -129,6 +130,8 @@ public class RequestPreprocessorTest ext epr.setAddress(baseAddress); d.getEndpointInfo(); EasyMock.expectLastCall().andReturn(epr).anyTimes(); + endp.getEndpointInfo(); + EasyMock.expectLastCall().andReturn(epr).anyTimes(); m.put(Message.REQUEST_URI, pathInfo); m.put(Message.QUERY_STRING, query); m.put(Message.HTTP_REQUEST_METHOD, method); @@ -137,6 +140,11 @@ public class RequestPreprocessorTest ext headers.put("X-HTTP-Method-Override", Collections.singletonList(methodHeader)); } m.put(Message.PROTOCOL_HEADERS, headers); + BindingInfo bi = control.createMock(BindingInfo.class); + epr.setBinding(bi); + bi.getProperties(); + EasyMock.expectLastCall().andReturn(Collections.emptyMap()).anyTimes(); + control.replay(); return m; } Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/wadl/WadlGeneratorTest.java Sun Aug 12 15:08:37 2012 @@ -40,6 +40,7 @@ import org.w3c.dom.Element; import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.common.xmlschema.XmlSchemaConstants; +import org.apache.cxf.endpoint.Endpoint; import org.apache.cxf.helpers.DOMUtils; import org.apache.cxf.jaxrs.JAXRSServiceImpl; import org.apache.cxf.jaxrs.model.ClassResourceInfo; @@ -49,6 +50,7 @@ import org.apache.cxf.message.ExchangeIm import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageImpl; import org.apache.cxf.service.Service; +import org.apache.cxf.service.model.BindingInfo; import org.apache.cxf.service.model.EndpointInfo; import org.apache.cxf.transport.servlet.ServletDestination; import org.easymock.EasyMock; @@ -755,15 +757,22 @@ public class WadlGeneratorTest extends A Message m = new MessageImpl(); Exchange e = new ExchangeImpl(); e.put(Service.class, new JAXRSServiceImpl(cris)); - + Endpoint endpoint = control.createMock(Endpoint.class); + e.put(Endpoint.class, endpoint); m.setExchange(e); control.reset(); ServletDestination d = control.createMock(ServletDestination.class); - EndpointInfo epr = new EndpointInfo(); + EndpointInfo epr = new EndpointInfo(); epr.setAddress(baseAddress); d.getEndpointInfo(); EasyMock.expectLastCall().andReturn(epr).anyTimes(); + endpoint.getEndpointInfo(); + EasyMock.expectLastCall().andReturn(epr).anyTimes(); e.setDestination(d); + BindingInfo bi = control.createMock(BindingInfo.class); + epr.setBinding(bi); + bi.getProperties(); + EasyMock.expectLastCall().andReturn(Collections.emptyMap()).anyTimes(); m.put(Message.REQUEST_URI, pathInfo); m.put(Message.QUERY_STRING, query); m.put(Message.HTTP_REQUEST_METHOD, "GET"); Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java (original) +++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceCreatedSpringProviderTest.java Sun Aug 12 15:08:37 2012 @@ -105,6 +105,22 @@ public class JAXRSClientServerResourceCr checkPetStoreInfo(resourceEls.get(0)); } + @Test + public void testWadlPublishedEndpointUrl() throws Exception { + String requestURI = "http://localhost:" + PORT + "/webapp/resources2"; + WebClient client = WebClient.create(requestURI + "?_wadl&_type=xml"); + Document doc = DOMUtils.readXml(new InputStreamReader(client.get(InputStream.class), "UTF-8")); + Element root = doc.getDocumentElement(); + assertEquals(WadlGenerator.WADL_NS, root.getNamespaceURI()); + assertEquals("application", root.getLocalName()); + List resourcesEls = DOMUtils.getChildrenWithName(root, + WadlGenerator.WADL_NS, "resources"); + assertEquals(1, resourcesEls.size()); + Element resourcesEl = resourcesEls.get(0); + assertEquals("http://proxy", resourcesEl.getAttribute("base")); + + } + private void checkBookStoreInfo(Element resource) { assertEquals("/bookstore", resource.getAttribute("path")); Modified: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml?rev=1372124&r1=1372123&r2=1372124&view=diff ============================================================================== --- cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml (original) +++ cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_spring_providers/WEB-INF/beans.xml Sun Aug 12 15:08:37 2012 @@ -48,4 +48,12 @@ http://cxf.apache.org/schemas/jaxrs.xsd" + + + + + +