Skip to content

Commit 0453bb4

Browse files
committed
Working on WSDLs
1 parent fa37361 commit 0453bb4

File tree

3 files changed

+41
-13
lines changed

3 files changed

+41
-13
lines changed

core/src/main/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11Definition.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@
1919
import java.io.IOException;
2020
import javax.xml.transform.Source;
2121

22+
import org.xml.sax.SAXException;
23+
import org.xml.sax.XMLReader;
24+
import org.xml.sax.helpers.XMLReaderFactory;
25+
2226
import org.springframework.beans.factory.InitializingBean;
2327
import org.springframework.core.io.Resource;
2428
import org.springframework.util.Assert;
2529
import org.springframework.ws.wsdl.WsdlDefinitionException;
2630
import org.springframework.xml.transform.ResourceSource;
27-
import org.xml.sax.SAXException;
28-
import org.xml.sax.XMLReader;
29-
import org.xml.sax.helpers.XMLReaderFactory;
3031

3132
/**
3233
* The default {@link Wsdl11Definition} implementation.
@@ -88,4 +89,9 @@ public void setWsdl(Resource wsdlResource) {
8889
this.wsdlResource = wsdlResource;
8990
}
9091

92+
public String toString() {
93+
return "SimpleWsdl11Definition " + wsdlResource;
94+
}
95+
96+
9197
}

core/src/main/java/org/springframework/ws/wsdl/wsdl11/Wsdl4jDefinition.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@
2323
import javax.xml.transform.Source;
2424
import javax.xml.transform.dom.DOMSource;
2525

26+
import org.w3c.dom.Document;
27+
2628
import org.springframework.util.Assert;
2729
import org.springframework.util.StringUtils;
2830
import org.springframework.ws.wsdl.WsdlDefinitionException;
29-
import org.w3c.dom.Document;
3031

3132
/**
3233
* Implementation of the <code>Wsdl11Definition</code> based on WSDL4J. A {@link javax.wsdl.Definition} can be given as
@@ -66,7 +67,9 @@ public Wsdl4jDefinition(Definition definition) {
6667

6768
/** Returns the WSDL4J <code>Definition</code>. */
6869
public Definition getDefinition() {
69-
return definition;
70+
synchronized (monitor) {
71+
return definition;
72+
}
7073
}
7174

7275
/** Set the WSDL4J <code>Definition</code>. */

core/src/main/java/org/springframework/ws/wsdl/wsdl11/builder/AbstractBindingWsdl4jDefinitionBuilder.java

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import javax.wsdl.Fault;
2727
import javax.wsdl.Input;
2828
import javax.wsdl.Operation;
29+
import javax.wsdl.OperationType;
2930
import javax.wsdl.Output;
3031
import javax.wsdl.Port;
3132
import javax.wsdl.PortType;
@@ -101,15 +102,19 @@ private void createBindingOperations(Definition definition, Binding binding, Por
101102
BindingOperation bindingOperation = definition.createBindingOperation();
102103
bindingOperation.setOperation(operation);
103104
populateBindingOperation(bindingOperation, operation);
104-
if (operation.getInput() != null) {
105-
BindingInput bindingInput = definition.createBindingInput();
106-
populateBindingInput(bindingInput, operation.getInput());
107-
bindingOperation.setBindingInput(bindingInput);
105+
if (operation.getStyle() == null || operation.getStyle().equals(OperationType.REQUEST_RESPONSE)) {
106+
createBindingInput(definition, operation, bindingOperation);
107+
createBindingOutput(definition, operation, bindingOperation);
108108
}
109-
if (operation.getOutput() != null) {
110-
BindingOutput bindingOutput = definition.createBindingOutput();
111-
populateBindingOutput(bindingOutput, operation.getOutput());
112-
bindingOperation.setBindingOutput(bindingOutput);
109+
else if (operation.getStyle().equals(OperationType.ONE_WAY)) {
110+
createBindingInput(definition, operation, bindingOperation);
111+
}
112+
else if (operation.getStyle().equals(OperationType.NOTIFICATION)) {
113+
createBindingOutput(definition, operation, bindingOperation);
114+
}
115+
else if (operation.getStyle().equals(OperationType.SOLICIT_RESPONSE)) {
116+
createBindingOutput(definition, operation, bindingOperation);
117+
createBindingInput(definition, operation, bindingOperation);
113118
}
114119
for (Iterator faultIterator = operation.getFaults().values().iterator(); faultIterator.hasNext();) {
115120
Fault fault = (Fault) faultIterator.next();
@@ -121,6 +126,20 @@ private void createBindingOperations(Definition definition, Binding binding, Por
121126
}
122127
}
123128

129+
private void createBindingOutput(Definition definition, Operation operation, BindingOperation bindingOperation)
130+
throws WSDLException {
131+
BindingOutput bindingOutput = definition.createBindingOutput();
132+
populateBindingOutput(bindingOutput, operation.getOutput());
133+
bindingOperation.setBindingOutput(bindingOutput);
134+
}
135+
136+
private void createBindingInput(Definition definition, Operation operation, BindingOperation bindingOperation)
137+
throws WSDLException {
138+
BindingInput bindingInput = definition.createBindingInput();
139+
populateBindingInput(bindingInput, operation.getInput());
140+
bindingOperation.setBindingInput(bindingInput);
141+
}
142+
124143
/**
125144
* Called after the {@link BindingOperation} has been created, but before any sub-elements are added. Subclasses can
126145
* implement this method to define the binding name, or add extensions to it.

0 commit comments

Comments
 (0)