Working on WSDLs
This commit is contained in:
@@ -19,14 +19,15 @@ package org.springframework.ws.wsdl.wsdl11;
|
||||
import java.io.IOException;
|
||||
import javax.xml.transform.Source;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.XMLReader;
|
||||
import org.xml.sax.helpers.XMLReaderFactory;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.ws.wsdl.WsdlDefinitionException;
|
||||
import org.springframework.xml.transform.ResourceSource;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.XMLReader;
|
||||
import org.xml.sax.helpers.XMLReaderFactory;
|
||||
|
||||
/**
|
||||
* The default {@link Wsdl11Definition} implementation.
|
||||
@@ -88,4 +89,9 @@ public class SimpleWsdl11Definition implements Wsdl11Definition, InitializingBea
|
||||
this.wsdlResource = wsdlResource;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "SimpleWsdl11Definition " + wsdlResource;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -23,10 +23,11 @@ import javax.wsdl.xml.WSDLWriter;
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.ws.wsdl.WsdlDefinitionException;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
/**
|
||||
* Implementation of the <code>Wsdl11Definition</code> based on WSDL4J. A {@link javax.wsdl.Definition} can be given as
|
||||
@@ -66,7 +67,9 @@ public class Wsdl4jDefinition implements Wsdl11Definition {
|
||||
|
||||
/** Returns the WSDL4J <code>Definition</code>. */
|
||||
public Definition getDefinition() {
|
||||
return definition;
|
||||
synchronized (monitor) {
|
||||
return definition;
|
||||
}
|
||||
}
|
||||
|
||||
/** Set the WSDL4J <code>Definition</code>. */
|
||||
|
||||
@@ -26,6 +26,7 @@ import javax.wsdl.Definition;
|
||||
import javax.wsdl.Fault;
|
||||
import javax.wsdl.Input;
|
||||
import javax.wsdl.Operation;
|
||||
import javax.wsdl.OperationType;
|
||||
import javax.wsdl.Output;
|
||||
import javax.wsdl.Port;
|
||||
import javax.wsdl.PortType;
|
||||
@@ -101,15 +102,19 @@ public abstract class AbstractBindingWsdl4jDefinitionBuilder extends AbstractWsd
|
||||
BindingOperation bindingOperation = definition.createBindingOperation();
|
||||
bindingOperation.setOperation(operation);
|
||||
populateBindingOperation(bindingOperation, operation);
|
||||
if (operation.getInput() != null) {
|
||||
BindingInput bindingInput = definition.createBindingInput();
|
||||
populateBindingInput(bindingInput, operation.getInput());
|
||||
bindingOperation.setBindingInput(bindingInput);
|
||||
if (operation.getStyle() == null || operation.getStyle().equals(OperationType.REQUEST_RESPONSE)) {
|
||||
createBindingInput(definition, operation, bindingOperation);
|
||||
createBindingOutput(definition, operation, bindingOperation);
|
||||
}
|
||||
if (operation.getOutput() != null) {
|
||||
BindingOutput bindingOutput = definition.createBindingOutput();
|
||||
populateBindingOutput(bindingOutput, operation.getOutput());
|
||||
bindingOperation.setBindingOutput(bindingOutput);
|
||||
else if (operation.getStyle().equals(OperationType.ONE_WAY)) {
|
||||
createBindingInput(definition, operation, bindingOperation);
|
||||
}
|
||||
else if (operation.getStyle().equals(OperationType.NOTIFICATION)) {
|
||||
createBindingOutput(definition, operation, bindingOperation);
|
||||
}
|
||||
else if (operation.getStyle().equals(OperationType.SOLICIT_RESPONSE)) {
|
||||
createBindingOutput(definition, operation, bindingOperation);
|
||||
createBindingInput(definition, operation, bindingOperation);
|
||||
}
|
||||
for (Iterator faultIterator = operation.getFaults().values().iterator(); faultIterator.hasNext();) {
|
||||
Fault fault = (Fault) faultIterator.next();
|
||||
@@ -121,6 +126,20 @@ public abstract class AbstractBindingWsdl4jDefinitionBuilder extends AbstractWsd
|
||||
}
|
||||
}
|
||||
|
||||
private void createBindingOutput(Definition definition, Operation operation, BindingOperation bindingOperation)
|
||||
throws WSDLException {
|
||||
BindingOutput bindingOutput = definition.createBindingOutput();
|
||||
populateBindingOutput(bindingOutput, operation.getOutput());
|
||||
bindingOperation.setBindingOutput(bindingOutput);
|
||||
}
|
||||
|
||||
private void createBindingInput(Definition definition, Operation operation, BindingOperation bindingOperation)
|
||||
throws WSDLException {
|
||||
BindingInput bindingInput = definition.createBindingInput();
|
||||
populateBindingInput(bindingInput, operation.getInput());
|
||||
bindingOperation.setBindingInput(bindingInput);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after the {@link BindingOperation} has been created, but before any sub-elements are added. Subclasses can
|
||||
* implement this method to define the binding name, or add extensions to it.
|
||||
|
||||
Reference in New Issue
Block a user