You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/07/13 19:10:43 UTC
svn commit: r793628 - in
/tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src:
main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java
Author: rfeng
Date: Mon Jul 13 17:10:43 2009
New Revision: 793628
URL: http://svn.apache.org/viewvc?rev=793628&view=rev
Log:
Merge the fix for TUSCANY-3141 and xs:import fix from 2.x
Modified:
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java
Modified: tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java?rev=793628&r1=793627&r2=793628&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java Mon Jul 13 17:10:43 2009
@@ -439,17 +439,30 @@
if (!"".equals(nsURI)) {
imp.setAttribute("namespace", nsURI);
}
- NodeList childNodes = schema.getChildNodes();
+ // Scan all xs:import elements to match namespace
+ NodeList childNodes = schema.getElementsByTagNameNS(SCHEMA_NS, "import");
for (int i = 0; i < childNodes.getLength(); i++) {
Node childNode = childNodes.item(i);
if (childNode instanceof Element) {
- schema.insertBefore(imp, childNode);
- imp = null;
- break;
+ String ns = ((Element)childNode).getAttributeNS(SCHEMA_NS, "namespace");
+ if (nsURI.equals(ns)) {
+ // The xs:import with the same namespace has been declared
+ return;
+ }
}
}
- if (imp != null) {
+ // Try to find the first node after the import elements
+ Node firstNodeAfterImport = null;
+ if (childNodes.getLength() > 0) {
+ firstNodeAfterImport = childNodes.item(childNodes.getLength() - 1).getNextSibling();
+ } else {
+ firstNodeAfterImport = schema.getFirstChild();
+ }
+
+ if (firstNodeAfterImport == null) {
schema.appendChild(imp);
+ } else {
+ schema.insertBefore(imp, firstNodeAfterImport);
}
}
@@ -602,8 +615,8 @@
outputMsg.addPart(generateWrapperPart(definition, op, helpers, wrappers, false));
} else {
DataType outputType = op.getOutputType();
- outputMsg.addPart(generatePart(definition, outputType, "return"));
if (outputType != null) {
+ outputMsg.addPart(generatePart(definition, outputType, "return"));
elements = new ArrayList<ElementInfo>();
ElementInfo element = getElementInfo(outputType.getPhysical(), outputType, null, helpers);
elements.add(element);
Modified: tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java?rev=793628&r1=793627&r2=793628&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/TestJavaInterface.java Mon Jul 13 17:10:43 2009
@@ -21,6 +21,8 @@
import javax.jws.WebMethod;
import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.soap.SOAPBinding.ParameterStyle;
import org.osoa.sca.annotations.OneWay;
import org.osoa.sca.annotations.Remotable;
@@ -54,4 +56,12 @@
@WebMethod
void m7(TestJavaClass info) throws TestFault;
+
+ @WebMethod
+ @SOAPBinding(parameterStyle=ParameterStyle.BARE)
+ void m8(String str);
+
+ @WebMethod
+ @SOAPBinding(parameterStyle=ParameterStyle.BARE)
+ int m9(String str);
}