Author: bfitzpat
Date: 2010-08-18 18:08:08 -0400 (Wed, 18 Aug 2010)
New Revision: 24278
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java
Log:
OPEN - issue JBIDE-6865: WS Tester fails to parse some WSDL operations
https://jira.jboss.org/browse/JBIDE-6865
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java 2010-08-18
21:07:32 UTC (rev 24277)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java 2010-08-18
22:08:08 UTC (rev 24278)
@@ -260,6 +260,14 @@
String partName = part.getName();
if (parts.size() == 1) partName = null;
String out = createMessageForSchemaElement(wsdlDefinition, partName,
schemaName, ns);
+ if (out == null) {
+ StringBuffer tempBuffer = new StringBuffer();
+ tempBuffer.append('<' + part.getName());
+ // tempBuffer.append(" xmlns = \"" + ns + "\"");
//$NON-NLS-1$ //$NON-NLS-2$
+ tempBuffer.append(">?"); //$NON-NLS-1$
+ tempBuffer.append("</" + part.getName() +
">\n");//$NON-NLS-1$//$NON-NLS-2$
+ out = tempBuffer.toString();
+ }
return out;
}
}
@@ -477,35 +485,37 @@
Iterator<?> vectorIter = schemaImportVector.iterator();
while (vectorIter.hasNext()) {
SchemaImport schemaImport = (SchemaImport) vectorIter.next();
- org.jdom.Element jdomSchemaImportElement =
domBuilder.build(schemaImport.getReferencedSchema().getElement());
- List<?> innerList = jdomSchemaImportElement.getChildren();
-
- for (int i = 0; i < innerList.size(); i++){
- org.jdom.Element temp = (org.jdom.Element) innerList.get(i);
- String rootName = null;
- if (temp.getAttribute(NAME_ATTR) != null)
- rootName = temp.getAttribute(NAME_ATTR).getValue();
+ if (schemaImport.getReferencedSchema() != null) {
+ org.jdom.Element jdomSchemaImportElement =
domBuilder.build(schemaImport.getReferencedSchema().getElement());
+ List<?> innerList = jdomSchemaImportElement.getChildren();
- if (rootName != null && rootName.equalsIgnoreCase(messageName)) {
- StringBuffer buf = new StringBuffer();
- buf.append('<' + rootName);
- buf.append(" xmlns = \"" + namespace + "\"");
//$NON-NLS-1$ //$NON-NLS-2$
- buf.append(">\n"); //$NON-NLS-1$
- if (!temp.getChildren().isEmpty()){
- org.jdom.Element temp2 = (org.jdom.Element)temp.getChildren().get(0);
- if (temp2.getName().contains(COMPLEX_TYPE_NAME)) {
- String elementStr = processComplexType(wsdlDefinition, temp2);
- buf.append(elementStr);
- } else if (temp2.getName().contains(RESTRICTION_NAME)){
- String elementStr = processType(wsdlDefinition, temp2, RESTRICTION_NAME,
false);
- buf.append(elementStr);
- } else {
- String elementStr = processChild(wsdlDefinition, temp2);
- buf.append(elementStr);
+ for (int i = 0; i < innerList.size(); i++){
+ org.jdom.Element temp = (org.jdom.Element) innerList.get(i);
+ String rootName = null;
+ if (temp.getAttribute(NAME_ATTR) != null)
+ rootName = temp.getAttribute(NAME_ATTR).getValue();
+
+ if (rootName != null && rootName.equalsIgnoreCase(messageName)) {
+ StringBuffer buf = new StringBuffer();
+ buf.append('<' + rootName);
+ buf.append(" xmlns = \"" + namespace + "\"");
//$NON-NLS-1$ //$NON-NLS-2$
+ buf.append(">\n"); //$NON-NLS-1$
+ if (!temp.getChildren().isEmpty()){
+ org.jdom.Element temp2 = (org.jdom.Element)temp.getChildren().get(0);
+ if (temp2.getName().contains(COMPLEX_TYPE_NAME)) {
+ String elementStr = processComplexType(wsdlDefinition, temp2);
+ buf.append(elementStr);
+ } else if (temp2.getName().contains(RESTRICTION_NAME)){
+ String elementStr = processType(wsdlDefinition, temp2, RESTRICTION_NAME,
false);
+ buf.append(elementStr);
+ } else {
+ String elementStr = processChild(wsdlDefinition, temp2);
+ buf.append(elementStr);
+ }
}
+ buf.append("</" + rootName +
">\n");//$NON-NLS-1$//$NON-NLS-2$
+ return buf.toString();
}
- buf.append("</" + rootName +
">\n");//$NON-NLS-1$//$NON-NLS-2$
- return buf.toString();
}
}
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java 2010-08-18
21:07:32 UTC (rev 24277)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java 2010-08-18
22:08:08 UTC (rev 24278)
@@ -18,6 +18,7 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Comparator;
import java.util.Iterator;
import javax.wsdl.Binding;
@@ -491,10 +492,14 @@
PortType portType = wsdlBinding.getPortType();
@SuppressWarnings("rawtypes")
java.util.List operations = portType.getOperations();
+
+ @SuppressWarnings("unchecked")
+ Operation[] operationsArray =
+ (Operation[]) operations.toArray(new Operation[operations.size()]);
+ Arrays.sort(operationsArray, new WSDLOperationComparator());
- Iterator<?> iter = operations.iterator();
- while (iter.hasNext()) {
- Operation operation = (Operation) iter.next();
+ for (int i = 0; i < operationsArray.length; i++) {
+ Operation operation = (Operation) operationsArray[i];//iter.next();
opList.add(operation.getName());
opList.setData(operation.getName(), operation);
}
@@ -517,6 +522,13 @@
}
}
+ class WSDLOperationComparator implements Comparator<Operation>{
+
+ public int compare(Operation o1, Operation o2) {
+ return o1.getName().compareToIgnoreCase(o2.getName());
+ }
+ }
+
private void updatePortCombo(){
if (serviceCombo.getSelectionIndex() > -1) {
String text = serviceCombo.getItem(serviceCombo.getSelectionIndex());