Author: bdaniel
Date: Sun Oct 17 01:35:26 2010
New Revision: 1023400
URL: http://svn.apache.org/viewvc?rev=1023400&view=rev
Log:
TUSCANY-3711 Change generated binding and port names to match recommended
values from the ws binding spec appendix D. The old value for service name is
still being used for the time being.
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java
tuscany/sca-java-2.x/trunk/testing/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLDefinitionGenerator.java
Sun Oct 17 01:35:26 2010
@@ -51,6 +51,7 @@ import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
import org.w3c.dom.Element;
/**
@@ -81,10 +82,16 @@ public class WSDLDefinitionGenerator {
private QName soapBody;
private QName soapFault;
private QName soapOperation;
-
- public WSDLDefinitionGenerator(boolean requiresSOAP12) {
+ private String wsBindingName;
+
+ public WSDLDefinitionGenerator(WebServiceBinding wsBinding) {
+ this(BindingWSDLGenerator.requiresSOAP12(wsBinding));
+ wsBindingName = wsBinding.getName();
+ }
+
+ public WSDLDefinitionGenerator(boolean isSOAP12) {
super();
- this.requiresSOAP12 = requiresSOAP12;
+ this.requiresSOAP12 = isSOAP12;
soapAddress = requiresSOAP12 ? SOAP12_ADDRESS : SOAP_ADDRESS;
soapBinding = requiresSOAP12 ? SOAP12_BINDING : SOAP_BINDING;
soapBody = requiresSOAP12 ? SOAP12_BODY : SOAP_BODY;
@@ -127,6 +134,14 @@ public class WSDLDefinitionGenerator {
}
protected void configureBinding(Definition definition, Binding binding,
PortType portType) throws WSDLException {
+ if ( wsBindingName != null ) {
+ QName name = new QName(definition.getTargetNamespace(),
wsBindingName + getSOAPVersionString() + BINDING_SUFFIX);
+ if ( definition.getBinding(name) == null ) {
+ binding.setQName(name);
+ return;
+ }
+ }
+
QName portTypeName = portType.getQName();
if (portTypeName != null) {
// Choose <porttype>Binding if available. If this name is in use,
insert
@@ -235,11 +250,10 @@ public class WSDLDefinitionGenerator {
}
}
- public Service createService(Definition definition, PortType portType) {
+ public Service createService(Definition definition, PortType portType,
String serviceName) {
try {
Service service = definition.createService();
- configureService(definition, service, portType);
- // createPort(definition, binding, service);
+ configureService(definition, service, portType, serviceName);
definition.addService(service);
return service;
} catch (WSDLException e) {
@@ -247,11 +261,10 @@ public class WSDLDefinitionGenerator {
}
}
- public Service createService(Definition definition, Binding binding) {
+ public Service createService(Definition definition, Binding binding,
String serviceName) {
try {
Service service = definition.createService();
- configureService(definition, service, binding.getPortType());
- // createPort(definition, binding, service);
+ configureService(definition, service, binding.getPortType(),
serviceName);
definition.addService(service);
return service;
} catch (WSDLException e) {
@@ -259,7 +272,17 @@ public class WSDLDefinitionGenerator {
}
}
- protected void configureService(Definition definition, Service service,
PortType portType) throws WSDLException {
+ protected void configureService(Definition definition, Service service,
PortType portType, String serviceName) throws WSDLException {
+ // TODO -- this is the recommended mapping in the ws binding spec, but
for some reason it is causing ?wsdl to not be available
+ // in binding-ws-runtime-jaxws-ri
WSDLPortTestCase.testQuestionMarkWSDL().
+// if ( serviceName != null ) {
+// QName name = new QName(definition.getTargetNamespace(),
serviceName);
+// if ( definition.getService(name) == null ) {
+// service.setQName(name);
+// return;
+// }
+// }
+
QName portTypeName = portType.getQName();
if (portTypeName != null) {
// Choose <porttype>Service if available. If this name is in use,
insert
@@ -297,9 +320,19 @@ public class WSDLDefinitionGenerator {
}
protected void configurePort(Port port, Binding binding) throws
WSDLException {
- if (binding.getPortType() != null && binding.getPortType().getQName()
!= null) {
+ if ( wsBindingName != null ) {
+ port.setName(wsBindingName + getSOAPVersionString() +
PORT_SUFFIX);
+ } else if (binding.getPortType() != null &&
binding.getPortType().getQName() != null) {
port.setName(binding.getPortType().getQName().getLocalPart() +
PORT_SUFFIX);
}
}
+
+ private String getSOAPVersionString() {
+ if ( requiresSOAP12 ) {
+ return "SOAP12";
+ } else {
+ return "SOAP11";
+ }
+ }
}
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/WSDLServiceGenerator.java
Sun Oct 17 01:35:26 2010
@@ -249,10 +249,10 @@ public class WSDLServiceGenerator {
// add a service and ports to the generated definition
WSDLDefinitionGenerator helper =
- new
WSDLDefinitionGenerator(BindingWSDLGenerator.requiresSOAP12(wsBinding));
+ new WSDLDefinitionGenerator(wsBinding);
WSDLInterface wi =
(WSDLInterface)wsBinding.getBindingInterfaceContract().getInterface();
PortType portType = wi.getPortType();
- Service service = helper.createService(def, portType);
+ Service service = helper.createService(def, portType,
contract.getName());
if (wsBinding.getBinding() == null && ports.size() == 0) {
Binding binding = helper.createBinding(def, portType);
if (BindingWSDLGenerator.requiresSOAP12(wsBinding)) {
Modified:
tuscany/sca-java-2.x/trunk/testing/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/testing/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/testing/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
Sun Oct 17 01:35:26 2010
@@ -205,7 +205,7 @@ public class BuilderTestCase {
TestUtils.writeWSDL(def);
javax.wsdl.Service svc = def.getService(new
QName("http://builder.itest.sca.tuscany.apache.org/", "Service3Service"));
- Port port = svc.getPort("Service3Port");
+ Port port = svc.getPort("Service2SOAP11Port");
Assert.assertEquals("/ComponentB/Service2",TestUtils.getPortAddress(port));
}
Modified:
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java
Sun Oct 17 01:35:26 2010
@@ -67,7 +67,7 @@ public class QuestionMarkWSDLImportTestC
Definition definition =
wsdlReader.readWSDL("http://localhost:8086/AccountService?wsdl");
assertNotNull(definition);
Service service = definition.getService(new
QName("http://account2/AccountService/Account", "AccountService"));
- Port port = service.getPort("AccountPort");
+ Port port = service.getPort("AccountSOAP11Port");
String endpoint = getEndpoint(port);
// String ip = HttpUtils.getIpAddress();
Modified:
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java
Sun Oct 17 01:35:26 2010
@@ -67,7 +67,7 @@ public class QuestionMarkWSDLIncludeTest
Definition definition =
wsdlReader.readWSDL("http://localhost:8085/AccountService?wsdl");
assertNotNull(definition);
Service service = definition.getService(new
QName("http://accounts/AccountService/Account", "AccountService"));
- Port port = service.getPort("AccountPort");
+ Port port = service.getPort("AccountSOAP11Port");
String endpoint = getEndpoint(port);
assertEquals("http://localhost:8085/AccountService", endpoint);
Modified:
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java?rev=1023400&r1=1023399&r2=1023400&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java
Sun Oct 17 01:35:26 2010
@@ -68,7 +68,7 @@ public class QuestionMarkWSDLTestCase ex
assertNotNull(definition);
Service service = definition.getService(new
QName("http://helloworld/HelloWorldService/HelloWorld",
"HelloWorldService"));
- Port port = service.getPort("HelloWorldPort");
+ Port port = service.getPort("ep2SOAP11Port");
String endpoint = getEndpoint(port);
assertEquals("http://localhost:8085/services/HelloWorldWebService2",
endpoint);
@@ -94,7 +94,7 @@ public class QuestionMarkWSDLTestCase ex
assertNotNull(definition);
Service service = definition.getService(new
QName("http://axis2.ws.binding.sca.tuscany.apache.org/",
"HelloWorldService"));
- Port port = service.getPort("HelloWorldPort");
+ Port port = service.getPort("ep1SOAP11Port");
String endpoint = getEndpoint(port);
// TODO - used to get the real host here but WSDL seems to have
localhost in it atm?