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 2010/09/02 15:00:11 UTC
svn commit: r991923 - in /cxf/trunk:
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/
rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/
systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/
testutils/src/main/java/org/apache/locat...
Author: sergeyb
Date: Thu Sep 2 13:00:10 2010
New Revision: 991923
URL: http://svn.apache.org/viewvc?rev=991923&view=rev
Log:
Updating ProviderImpl to have wsdlLocation attribute contain a pair of values by default
Added:
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java (with props)
cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java (with props)
Removed:
cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProverImplTest.java
cxf/trunk/testutils/src/main/java/org/apache/locator_test/LocatorServiceImpl.java
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorClientServerTest.java
Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java?rev=991923&r1=991922&r2=991923&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java Thu Sep 2 13:00:10 2010
@@ -49,6 +49,8 @@ import org.apache.cxf.common.logging.Log
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.jaxws.EndpointUtils;
import org.apache.cxf.jaxws.ServiceImpl;
+import org.apache.cxf.message.MessageUtils;
+import org.apache.cxf.phase.PhaseInterceptorChain;
import org.apache.cxf.staxutils.StaxUtils;
import org.apache.cxf.staxutils.W3CDOMStreamWriter;
import org.apache.cxf.ws.addressing.JAXWSAConstants;
@@ -62,7 +64,7 @@ public class ProviderImpl extends javax.
static {
boolean b = false;
try {
- //JAX-WS 2.2 would have the HttpContext class in the classloader
+ //JAX-WS 2.2 would have the HttpCoPhaseInterceptorChainntext class in the classloader
Class<?> cls = ClassLoaderUtils.loadClass("javax.xml.ws.spi.http.HttpContext",
ProviderImpl.class);
//In addition to that, the Endpoint class we pick up on the classloader
@@ -215,12 +217,21 @@ public class ProviderImpl extends javax.
writer.writeNamespace(JAXWSAConstants.WSAW_PREFIX, JAXWSAConstants.NS_WSAW);
writer.writeNamespace(JAXWSAConstants.WSAM_PREFIX, JAXWSAConstants.NS_WSAM);
if (wsdlDocumentLocation != null) {
+ boolean includeLocationOnly = false;
+ org.apache.cxf.message.Message message = PhaseInterceptorChain.getCurrentMessage();
+ if (message != null) {
+ includeLocationOnly = MessageUtils.isTrue(
+ message.getContextualProperty("org.apache.cxf.wsa.metadata.wsdlLocationOnly"));
+ }
+ String attrubuteValue = serviceName != null && !includeLocationOnly
+ ? serviceName.getNamespaceURI() + " " + wsdlDocumentLocation
+ : wsdlDocumentLocation;
writer.writeNamespace(JAXWSAConstants.WSDLI_PFX,
JAXWSAConstants.NS_WSDLI);
writer.writeAttribute(JAXWSAConstants.WSDLI_PFX,
JAXWSAConstants.NS_WSDLI,
JAXWSAConstants.WSDLI_WSDLLOCATION,
- wsdlDocumentLocation);
+ attrubuteValue);
}
if (interfaceName != null) {
writer.writeStartElement(JAXWSAConstants.WSAM_PREFIX,
Added: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java?rev=991923&view=auto
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java (added)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java Thu Sep 2 13:00:10 2010
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.jaxws.spi;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.apache.cxf.BusFactory;
+import org.junit.After;
+
+
+public class ProviderImplTest extends org.junit.Assert {
+ @org.junit.Test
+ public void testCreateW3CEpr() throws Exception {
+ QName serviceName = new QName("http://cxf.apache.org", "ServiceName");
+ QName portName = new QName("http://cxf.apache.org", "PortName");
+ ProviderImpl impl = new ProviderImpl();
+ W3CEndpointReference w3Epr = impl.createW3CEndpointReference("http://myaddress", serviceName,
+ portName, null, "wsdlLoc",
+ null);
+
+ java.io.StringWriter sw = new java.io.StringWriter();
+ StreamResult result = new StreamResult(sw);
+ w3Epr.writeTo(result);
+ String expected = "<wsdl:definitions";
+ assertTrue("Embeded wsdl element is not generated", sw.toString().indexOf(expected) > -1);
+ assertTrue("wsdlLocation attribute has the wrong value",
+ sw.toString().contains("wsdli:wsdlLocation=\"http://cxf.apache.org wsdlLoc\""));
+ System.out.println(sw.toString());
+
+ }
+ @After
+ public void tearDown() {
+ BusFactory.setDefaultBus(null);
+ }
+
+
+
+}
Propchange: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spi/ProviderImplTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorClientServerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorClientServerTest.java?rev=991923&r1=991922&r2=991923&view=diff
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorClientServerTest.java (original)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorClientServerTest.java Thu Sep 2 13:00:10 2010
@@ -34,7 +34,7 @@ import org.apache.cxf.testutil.common.Ab
import org.apache.locator.LocatorService;
import org.apache.locator.LocatorService_Service;
import org.apache.locator.types.QueryEndpoints;
-import org.apache.locator_test.LocatorServiceImpl;
+
import org.junit.BeforeClass;
import org.junit.Test;
@@ -103,6 +103,34 @@ public class LocatorClientServerTest ext
port.queryEndpoints(new QueryEndpoints());
}
+
+ @Test
+ public void testLookupEndpointAndVerifyWsdlLocationAndNamespace() throws Exception {
+ URL wsdl = getClass().getResource("/wsdl/locator.wsdl");
+ assertNotNull(wsdl);
+
+ LocatorService_Service ss = new LocatorService_Service(wsdl, serviceName);
+ LocatorService port = ss.getLocatorServicePort();
+ updateAddressPort(port, PORT);
+
+ W3CEndpointReference epr = port.lookupEndpoint(new QName("http://service/1", "Number"));
+ String eprString = epr.toString();
+ assertTrue(eprString.contains("Metadata wsdli:wsdlLocation=\"http://service/1 wsdlLoc\""));
+ }
+
+ @Test
+ public void testLookupEndpointAndVerifyWsdlLocationOnly() throws Exception {
+ URL wsdl = getClass().getResource("/wsdl/locator.wsdl");
+ assertNotNull(wsdl);
+
+ LocatorService_Service ss = new LocatorService_Service(wsdl, serviceName);
+ LocatorService port = ss.getLocatorServicePort();
+ updateAddressPort(port, PORT);
+
+ W3CEndpointReference epr = port.lookupEndpoint(new QName("http://service/2", "Number"));
+ String eprString = epr.toString();
+ assertTrue(eprString.contains("Metadata wsdli:wsdlLocation=\"wsdlLoc\""));
+ }
@Test
public void testIllegalState() throws Exception {
Added: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java?rev=991923&view=auto
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java (added)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java Thu Sep 2 13:00:10 2010
@@ -0,0 +1,113 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Please modify this class to meet your needs
+ * This class is not complete
+ */
+
+package org.apache.cxf.systest.jaxws;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.PhaseInterceptorChain;
+import org.apache.locator.EndpointNotExistFault;
+import org.apache.locator.LocatorService;
+import org.apache.locator.types.EndpointIdentity;
+import org.apache.locator.types.ListEndpointsResponse.Endpoint;
+import org.apache.locator.types.QueryEndpoints;
+import org.apache.locator.types.QueryEndpointsResponse;
+
+
+/**
+ *
+ */
+
+@javax.jws.WebService(name = "LocatorService",
+ serviceName = "LocatorService",
+ portName = "LocatorServicePort",
+ targetNamespace = "http://apache.org/locator",
+ endpointInterface = "org.apache.locator.LocatorService",
+ wsdlLocation = "testutils/locator.wsdl")
+public class LocatorServiceImpl implements LocatorService {
+
+ static final Logger LOG = LogUtils.getL7dLogger(LocatorServiceImpl.class);
+
+ public void registerPeerManager(
+ javax.xml.ws.wsaddressing.W3CEndpointReference peerManager,
+ javax.xml.ws.Holder<
+ javax.xml.ws.wsaddressing.W3CEndpointReference>
+ peerManagerReference,
+ javax.xml.ws.Holder<java.lang.String> nodeId) {
+ LOG.info("Executing operation registerPeerManager");
+ }
+
+ public void deregisterPeerManager(java.lang.String nodeId) {
+ LOG.info("Executing operation deregisterPeerManager");
+ }
+
+ public void registerEndpoint(EndpointIdentity endpointId,
+ javax.xml.ws.wsaddressing.W3CEndpointReference endpointReference) {
+ LOG.info("Executing operation registerEndpoint");
+ }
+
+ public void deregisterEndpoint(EndpointIdentity endpointId,
+ javax.xml.ws.wsaddressing.W3CEndpointReference endpointReference) {
+ LOG.info("Executing operation deregisterEndpoint");
+ }
+
+ public javax.xml.ws.wsaddressing.W3CEndpointReference lookupEndpoint(
+ javax.xml.namespace.QName serviceQname)
+ throws EndpointNotExistFault {
+ LOG.info("Executing operation lookupEndpoint");
+ W3CEndpointReferenceBuilder eprBuilder = new W3CEndpointReferenceBuilder();
+ eprBuilder.address("http://bar");
+ eprBuilder.serviceName(serviceQname);
+ eprBuilder.wsdlDocumentLocation("wsdlLoc");
+
+ // just in case, for backward compatibility, the builder may be asked to
+ // create a wsdlLocation attribute with a location only
+ if (serviceQname.getNamespaceURI().endsWith("2")) {
+ Message m = PhaseInterceptorChain.getCurrentMessage();
+ m.setContextualProperty("org.apache.cxf.wsa.metadata.wsdlLocationOnly", "true");
+ }
+
+ return eprBuilder.build();
+ }
+
+
+ public List<Endpoint> listEndpoints() {
+ LOG.info("Executing operation listEndpoints");
+ return new ArrayList<Endpoint>();
+ }
+
+
+
+ public QueryEndpointsResponse queryEndpoints(QueryEndpoints parameters) {
+ LOG.info("Executing operation queryEndpoints");
+ return null;
+ }
+
+}
Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/LocatorServiceImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date