Author: nagy
Date: Fri Mar 5 21:14:01 2010
New Revision: 919621
URL: http://svn.apache.org/viewvc?rev=919621&view=rev
Log:
Added new tests to verify the RespectBindingFeature JAX-WS API functionality.
Contributor: Roy Wood
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/AddressingProvider.java
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java?rev=919621&r1=919620&r2=919621&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
Fri Mar 5 21:14:01 2010
@@ -31,11 +31,14 @@
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPMessage;
+
+import org.apache.axis2.jaxws.spi.Binding;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.RespectBindingFeature;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -130,6 +133,51 @@
System.out.println(response.toString());
}
+ /**
+ * Message already contains wsa headers. Make sure there is no mismatch
between
+ * SOAPAction and wsa:Action.
+ */
+ public void testWithRespectBinding() throws Exception {
+
+ Dispatch<SOAPMessage> dispatch = createDispatchWithRespectBinding();
+
+ BindingProvider bp = (BindingProvider) dispatch;
+ Binding binding = (Binding) bp.getBinding();
+
+ WebServiceFeature addressingFeature =
binding.getFeature(AddressingFeature.ID);
+ assertNotNull(addressingFeature);
+ assertTrue("Expecting AddressingFeature to be enabled.",
addressingFeature.isEnabled());
+
+ WebServiceFeature respectBindingFeature =
binding.getFeature(RespectBindingFeature.ID);
+ assertNotNull(respectBindingFeature);
+ assertTrue("Expecting RespectBindingFeature to be enabled.",
respectBindingFeature.isEnabled());
+
+ bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
endpointUrl);
+
+ String msg = MessageFormat.format(SOAP_MESSAGE_2,
+ endpointUrl,
+ "urn:" + UUID.randomUUID(),
+ ACTION);
+
+ System.out.println(msg);
+
+ MessageFactory factory = MessageFactory.newInstance();
+ SOAPMessage request = factory.createMessage(null, new
ByteArrayInputStream(msg.getBytes()));
+
+ SOAPMessage response = dispatch.invoke(request);
+
+ assertResponseXML(response, "Hello Response");
+
+ System.out.println(response.toString());
+
+ // Try again to verify
+ response = dispatch.invoke(request);
+
+ assertResponseXML(response, "Hello Response");
+
+ System.out.println(response.toString());
+ }
+
private SOAPElement assertResponseXML(SOAPMessage msg, String
expectedText) throws Exception {
assertTrue(msg != null);
SOAPBody body = msg.getSOAPBody();
@@ -163,6 +211,19 @@
return dispatch;
}
+ private Dispatch<SOAPMessage> createDispatchWithRespectBinding() throws
Exception {
+ URL wsdlURL = getWsdl();
+ assertNotNull(wsdlURL);
+ Service svc = Service.create(wsdlURL, serviceName);
+
+ WebServiceFeature[] wsf = {new AddressingFeature(true), new
RespectBindingFeature(true)};
+
+ Dispatch<SOAPMessage> dispatch =
+ svc.createDispatch(portName, SOAPMessage.class,
Service.Mode.MESSAGE, wsf);
+
+ return dispatch;
+ }
+
private URL getWsdl() throws Exception {
String wsdlLocation =
"/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl";
String baseDir = new
File(System.getProperty("basedir",".")).getCanonicalPath();
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/AddressingProvider.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/AddressingProvider.java?rev=919621&r1=919620&r2=919621&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/AddressingProvider.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/AddressingProvider.java
Fri Mar 5 21:14:01 2010
@@ -29,6 +29,7 @@
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceProvider;
import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.RespectBinding;
import javax.xml.ws.soap.SOAPBinding;
import javax.xml.ws.soap.SOAPFaultException;
@@ -38,6 +39,7 @@
portName="AddressingProviderPort")
@BindingType(SOAPBinding.SOAP11HTTP_BINDING)
@Addressing(enabled=true)
+...@respectbinding
@ServiceMode(value=Service.Mode.MESSAGE)
public class AddressingProvider implements Provider<SOAPMessage> {
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl?rev=919621&r1=919620&r2=919621&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/AddressingProvider.wsdl
Fri Mar 5 21:14:01 2010
@@ -25,6 +25,8 @@
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://addressing.provider.jaxws.axis2.apache.org"
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+
targetNamespace="http://addressing.provider.jaxws.axis2.apache.org"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
@@ -65,6 +67,8 @@
<soap:body use="literal" />
</output>
</operation>
+ <wsaw:UsingAddressing required="true" />
+
</binding>
<service name="AddressingProviderService">