You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2008/10/08 19:21:48 UTC
svn commit: r702930 - in
/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests:
wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/
wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/
wsa-test-war/src/main/java/org/apache/geronimo/j...
Author: gawor
Date: Wed Oct 8 10:21:47 2008
New Revision: 702930
URL: http://svn.apache.org/viewvc?rev=702930&view=rev
Log:
add a test to check for wsa:Action attribute and wsa:UseAddressing element in WSDL
Modified:
geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/WSATest.java
geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/CalculatorBean.java
geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestServlet.java
geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestUtils.java
geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-war/src/main/java/org/apache/geronimo/jaxws/test/CalculatorImpl.java
Modified: geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/WSATest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/WSATest.java?rev=702930&r1=702929&r2=702930&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/WSATest.java (original)
+++ geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ear/src/test/java/org/apache/geronimo/jaxws/wsa/WSATest.java Wed Oct 8 10:21:47 2008
@@ -85,6 +85,11 @@
public void testReferencePropertiesDispatch() throws Exception {
runTest("testReferencePropertiesDispatch");
}
+
+ @Test
+ public void testWSDL() throws Exception {
+ runTest("testWSDL");
+ }
protected void runTest(String testName) throws Exception {
String warName = System.getProperty("webAppName");
Modified: geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/CalculatorBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/CalculatorBean.java?rev=702930&r1=702929&r2=702930&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/CalculatorBean.java (original)
+++ geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-ejb/src/main/java/org/apache/geronimo/jaxws/test/CalculatorBean.java Wed Oct 8 10:21:47 2008
@@ -24,6 +24,7 @@
import javax.ejb.Stateless;
import javax.jws.HandlerChain;
import javax.jws.WebService;
+import javax.xml.ws.Action;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.soap.Addressing;
@@ -41,6 +42,7 @@
@Resource
private WebServiceContext context;
+ @Action(input="http://geronimo.apache.org/calculator/CalculatorPortType/getmyepr")
public W3CEndpointReference getEPR() {
return (W3CEndpointReference)context.getEndpointReference();
}
Modified: geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestServlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestServlet.java?rev=702930&r1=702929&r2=702930&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestServlet.java (original)
+++ geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestServlet.java Wed Oct 8 10:21:47 2008
@@ -21,6 +21,8 @@
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.text.MessageFormat;
import java.util.UUID;
@@ -28,6 +30,14 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.wsdl.Binding;
+import javax.wsdl.Definition;
+import javax.wsdl.Input;
+import javax.wsdl.Operation;
+import javax.wsdl.PortType;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.BindingProvider;
@@ -43,23 +53,27 @@
import org.apache.geronimo.calculator.Calculator;
import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
public abstract class TestServlet extends HttpServlet {
+ private static final String NAMESPACE =
+ "http://geronimo.apache.org/calculator";
+
private static final QName PORT =
- new QName("http://geronimo.apache.org/calculator", "CalculatorPort");
+ new QName(NAMESPACE, "CalculatorPort");
private static final QName SERVICE =
- new QName("http://geronimo.apache.org/calculator", "CalculatorService");
+ new QName(NAMESPACE, "CalculatorService");
private static final String BASE_ACTION =
"http://geronimo.apache.org/calculator/Calculator";
private static final String MULTIPLY_REQUEST_ACTION =
- "http://geronimo.apache.org/calculator/Calculator/multiply";
+ "http://geronimo.apache.org/calculator/Calculator/multiplyRequest";
private static final String ADD_REQUEST_ACTION =
- "http://geronimo.apache.org/calculator/Calculator/add";
+ "http://geronimo.apache.org/calculator/Calculator/addRequest";
public static final String MSG1 =
"<?xml version=\"1.0\"?><S:Envelope " +
@@ -278,6 +292,43 @@
Assert.assertEquals(12, calc.add(6, 6));
}
+ public void testWSDL() throws Exception {
+ URL url = new URL(this.address + "?wsdl");
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setConnectTimeout(30 * 1000);
+ conn.setReadTimeout(30 * 1000);
+ conn.setUseCaches(false);
+
+ QName useAddressing = new QName("http://www.w3.org/2006/05/addressing/wsdl", "UsingAddressing");
+ QName actionAttr = new QName("http://www.w3.org/2006/05/addressing/wsdl", "Action");
+
+ WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader();
+ try {
+ Definition def =
+ wsdlReader.readWSDL(null, new InputSource(conn.getInputStream()));
+
+ // check for right wsa:Action element
+ Assert.assertEquals(1, def.getPortTypes().size());
+ PortType portType = (PortType)def.getPortTypes().values().iterator().next();
+ Assert.assertEquals(3, portType.getOperations().size());
+ Operation operation1 = portType.getOperation("getEPR", null, null);
+ Assert.assertNotNull("operation", operation1);
+ Input input1 = operation1.getInput();
+ Assert.assertNotNull("input", input1);
+ Object action = input1.getExtensionAttribute(actionAttr);
+ Assert.assertNotNull("action", action);
+ Assert.assertEquals("http://geronimo.apache.org/calculator/CalculatorPortType/getmyepr", action.toString());
+
+ // check for presence wsaw:UsingAddressing element
+ Assert.assertEquals(1, def.getBindings().size());
+ Binding binding = (Binding)def.getBindings().values().iterator().next();
+ Assert.assertEquals(3, binding.getBindingOperations().size());
+ ExtensibilityElement wsa = TestUtils.getExtensibilityElement(binding.getExtensibilityElements(), useAddressing);
+ Assert.assertNotNull("UsingAddressing", wsa);
+ } finally {
+ conn.disconnect();
+ }
+ }
private void testAddResponse(SOAPMessage message, int sum, boolean mtom) throws Exception {
TestUtils.testResponse(message, BASE_ACTION + "/addResponse", "addResponse", sum, mtom);
Modified: geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestUtils.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestUtils.java?rev=702930&r1=702929&r2=702930&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestUtils.java (original)
+++ geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-test-war/src/main/java/org/apache/geronimo/jaxws/wsa/TestUtils.java Wed Oct 8 10:21:47 2008
@@ -21,7 +21,9 @@
import java.io.IOException;
import java.io.StringReader;
import java.util.Iterator;
+import java.util.List;
+import javax.wsdl.extensions.ExtensibilityElement;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -108,5 +110,15 @@
Assert.assertTrue(attrValue,
"true".equalsIgnoreCase(attrValue) || "1".equalsIgnoreCase(attrValue));
}
-
+
+ public static ExtensibilityElement getExtensibilityElement(List elements, QName queryElement) {
+ for (int i = 0; i < elements.size(); i++) {
+ ExtensibilityElement element = (ExtensibilityElement)elements.get(i);
+ if (queryElement.equals(element.getElementType())) {
+ return element;
+ }
+ }
+ return null;
+ }
+
}
\ No newline at end of file
Modified: geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-war/src/main/java/org/apache/geronimo/jaxws/test/CalculatorImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-war/src/main/java/org/apache/geronimo/jaxws/test/CalculatorImpl.java?rev=702930&r1=702929&r2=702930&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-war/src/main/java/org/apache/geronimo/jaxws/test/CalculatorImpl.java (original)
+++ geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-wsa-tests/wsa-war/src/main/java/org/apache/geronimo/jaxws/test/CalculatorImpl.java Wed Oct 8 10:21:47 2008
@@ -23,6 +23,7 @@
import javax.annotation.Resource;
import javax.jws.HandlerChain;
import javax.jws.WebService;
+import javax.xml.ws.Action;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.soap.Addressing;
@@ -39,6 +40,7 @@
@Resource
private WebServiceContext context;
+ @Action(input="http://geronimo.apache.org/calculator/CalculatorPortType/getmyepr")
public W3CEndpointReference getEPR() {
return (W3CEndpointReference)context.getEndpointReference();
}