You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2001/11/02 17:11:08 UTC
cvs commit: xml-axis/java/src/org/apache/axis/wsdl JavaTestCaseWriter.java JavaStubWriter.java JavaSkelWriter.java JavaServiceInterfaceWriter.java JavaInterfaceWriter.java JavaImplWriter.java Emitter.java
butek 01/11/02 08:11:08
Modified: java/src/org/apache/axis/wsdl JavaTestCaseWriter.java
JavaStubWriter.java JavaSkelWriter.java
JavaServiceInterfaceWriter.java
JavaInterfaceWriter.java JavaImplWriter.java
Emitter.java
Log:
Fix for 2 import bugs.
1. In some import scenarios, we might encounter PortTypes or Bindings that are not
defined. These should be ignored.
2. portTypesInfo HashMap is keyed on objects (PortType and
Operation), but in some import scenarios, these objects might not be the same on
creation of portTypesInfo vs use of portTypesInfo (defined vs undefined). So now
the HashMap is keyed on NAMES of objects.
Revision Changes Path
1.2 +2 -2 xml-axis/java/src/org/apache/axis/wsdl/JavaTestCaseWriter.java
Index: JavaTestCaseWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaTestCaseWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaTestCaseWriter.java 2001/10/30 22:24:56 1.1
+++ JavaTestCaseWriter.java 2001/11/02 16:11:08 1.2
@@ -158,12 +158,12 @@
private final void writePortTestCode(PortType port) throws IOException {
Iterator ops = port.getOperations().iterator();
- HashMap operationParameters = (HashMap) portTypeOperationParameters.get(port);
+ HashMap operationParameters = (HashMap) portTypeOperationParameters.get(port.getQName());
while (ops.hasNext()) {
pw.println(" try {");
Operation op = (Operation) ops.next();
String namespace = (String) emitter.getNamespaces().get(port.getQName().getNamespaceURI());
- Emitter.Parameters params = (Emitter.Parameters) operationParameters.get(op);
+ Emitter.Parameters params = (Emitter.Parameters) operationParameters.get(op.getName());
if ( !"void".equals( params.returnType ) ) {
pw.print(" ");
1.3 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/JavaStubWriter.java
Index: JavaStubWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaStubWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JavaStubWriter.java 2001/11/01 18:41:23 1.2
+++ JavaStubWriter.java 2001/11/02 16:11:08 1.3
@@ -183,7 +183,7 @@
List operations = binding.getBindingOperations();
for (int i = 0; i < operations.size(); ++i) {
BindingOperation operation = (BindingOperation) operations.get(i);
- Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
+ Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
// Get the soapAction from the <soap:operation>
String soapAction = "";
1.2 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/JavaSkelWriter.java
Index: JavaSkelWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaSkelWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaSkelWriter.java 2001/10/30 19:36:09 1.1
+++ JavaSkelWriter.java 2001/11/02 16:11:08 1.2
@@ -122,7 +122,7 @@
List operations = binding.getBindingOperations();
for (int i = 0; i < operations.size(); ++i) {
BindingOperation operation = (BindingOperation) operations.get(i);
- Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
+ Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
// Get the soapAction from the <soap:operation>
String soapAction = "";
1.2 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/JavaServiceInterfaceWriter.java
Index: JavaServiceInterfaceWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaServiceInterfaceWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaServiceInterfaceWriter.java 2001/10/31 21:46:07 1.1
+++ JavaServiceInterfaceWriter.java 2001/11/02 16:11:08 1.2
@@ -102,7 +102,7 @@
* This method generates the axis server side impl interface signatures operation.
*/
private void writeOperationAxisSkelSignatures(Operation operation) throws IOException {
- Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation);
+ Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation.getName());
pw.println(parms.axisSignature + ";");
} // writeOperationAxisSkelSignatures
1.2 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/JavaInterfaceWriter.java
Index: JavaInterfaceWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaInterfaceWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaInterfaceWriter.java 2001/10/31 21:46:07 1.1
+++ JavaInterfaceWriter.java 2001/11/02 16:11:08 1.2
@@ -107,7 +107,7 @@
*/
private void writeOperation(PortType portType, Operation operation, String namespace) throws IOException {
writeComment(pw, operation.getDocumentationElement());
- Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation);
+ Emitter.Parameters parms = (Emitter.Parameters) operationParameters.get(operation.getName());
pw.println(parms.signature + ";");
} // writeOperation
1.2 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/JavaImplWriter.java
Index: JavaImplWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/JavaImplWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavaImplWriter.java 2001/10/30 19:36:09 1.1
+++ JavaImplWriter.java 2001/11/02 16:11:08 1.2
@@ -122,7 +122,7 @@
List operations = binding.getBindingOperations();
for (int i = 0; i < operations.size(); ++i) {
BindingOperation operation = (BindingOperation) operations.get(i);
- Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation());
+ Emitter.Parameters parameters = (Emitter.Parameters) operationParameters.get(operation.getOperation().getName());
// Get the soapAction from the <soap:operation>
String soapAction = "";
1.96 +34 -19 xml-axis/java/src/org/apache/axis/wsdl/Emitter.java
Index: Emitter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/Emitter.java,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- Emitter.java 2001/10/31 21:46:07 1.95
+++ Emitter.java 2001/11/02 16:11:08 1.96
@@ -260,20 +260,25 @@
while (i.hasNext()) {
PortType portType = (PortType) i.next();
- HashMap portTypeInfo = new HashMap();
+ // If the portType is undefined, then we're parsing a Definition
+ // that didn't contain a portType, merely a binding that referred
+ // to a non-existent port type. Don't bother with it.
+ if (!portType.isUndefined()) {
+ HashMap portTypeInfo = new HashMap();
// Remove Duplicates - happens with only a few WSDL's. No idea why!!!
// (like http://www.xmethods.net/tmodels/InteropTest.wsdl)
// TODO: Remove this patch...
// NOTE from RJB: this is a WSDL4J bug and the WSDL4J guys have been notified.
- Iterator operations = (new HashSet(portType.getOperations())).iterator();
- while(operations.hasNext()) {
- Operation operation = (Operation) operations.next();
- String namespace = portType.getQName().getNamespaceURI();
- Parameters parms = parameters(operation, namespace);
- portTypeInfo.put(operation, parms);
+ Iterator operations = (new HashSet(portType.getOperations())).iterator();
+ while(operations.hasNext()) {
+ Operation operation = (Operation) operations.next();
+ String namespace = portType.getQName().getNamespaceURI();
+ Parameters parms = parameters(operation, namespace);
+ portTypeInfo.put(operation.getName(), parms);
+ }
+ portTypesInfo.put(portType.getQName(), portTypeInfo);
}
- portTypesInfo.put(portType, portTypeInfo);
}
} // createPortTypesInfo
@@ -399,9 +404,15 @@
while (i.hasNext()) {
PortType portType = (PortType) i.next();
- HashMap operationParameters = (HashMap) portTypesInfo.get(portType);
- Writer writer = writerFactory.getWriter(portType, operationParameters);
- writer.write();
+
+ // If the portType is undefined, then we're parsing a Definition
+ // that didn't contain a portType, merely a binding that referred
+ // to a non-existent port type. Don't bother writing it.
+ if (!portType.isUndefined()) {
+ HashMap operationParameters = (HashMap) portTypesInfo.get(portType.getQName());
+ Writer writer = writerFactory.getWriter(portType, operationParameters);
+ writer.write();
+ }
}
} // writePortTypes
@@ -747,16 +758,20 @@
while (i.hasNext()) {
Binding binding = (Binding) i.next();
- // If this isn't a SOAP binding, skip it
- if (wsdlAttr.getBindingType(binding) != WsdlAttributes.TYPE_SOAP) {
- continue;
- }
+ // If the binding is undefined, then we're parsing a Definition
+ // that didn't contain a binding, merely a service that referred
+ // to a non-existent binding. Don't bother writing it.
+ if (!binding.isUndefined()) {
- HashMap portTypeInfo = (HashMap) portTypesInfo.get(binding.getPortType());
+ // If this isn't a SOAP binding, skip it
+ if (wsdlAttr.getBindingType(binding) != WsdlAttributes.TYPE_SOAP) {
+ continue;
+ }
- HashMap operationParameters = (HashMap) portTypesInfo.get(binding.getPortType());
- Writer writer = writerFactory.getWriter(binding, operationParameters);
- writer.write();
+ HashMap operationParameters = (HashMap) portTypesInfo.get(binding.getPortType().getQName());
+ Writer writer = writerFactory.getWriter(binding, operationParameters);
+ writer.write();
+ }
}
} // writeBindings