// name is in the jms:input list. Parts defined in the
// WSDL but not in the input message defualt to null.
String partName;
ArrayList wsdlInputParts = getWSDLInputPartNames();
HashMap propertyParts = getPropertyParts();
WSIFMessage message = createInputMessage();
for (Iterator i = input.getPartNames(); i.hasNext();) {
partName = (String) i.next();
if (propertyParts.containsKey(partName)) {
String name = (String) propertyParts.get(partName);
Object value = input.getObjectPart(partName);
if (!timeoutProperty(name, value)) {
jmsDest.setProperty(name, value);
}
} else if (wsdlInputParts.contains(partName)) {
wsdlInputParts.remove(partName);
if (fieldInput == null) {
message.setObjectPart(
partName,
input.getObjectPart(partName));
} else if (fieldInput.getParts().contains(partName)) {
message.setObjectPart(
partName,
input.getObjectPart(partName));
}
}
}
// default missing parts to null
for (Iterator i = wsdlInputParts.iterator(); i.hasNext();) {
message.setObjectPart((String) i.next(), null);
}
// properties from the context
setDestinationContext();