Refine search
/** * Generate a WsdlOpParameter from the message part. * * @param part * A list of message part. * @param requesPart * true if part from request message. */ private List<WsdlOpParameter> getParameter( Part part, boolean requesPart ) throws KettleStepException { List<WsdlOpParameter> params = new ArrayList<WsdlOpParameter>(); if ( part.getElementName() != null ) { if ( WsdlUtils.isWrappedParameterStyle( _operation.getName(), !requesPart, part.getName() ) ) { _parameterStyle = WsdlOperation.SOAPParameterStyle.WRAPPED; } params.addAll( resolvePartElement( part ) ); } else { params.add( new WsdlOpParameter( part.getName(), part.getTypeName(), _wsdlTypes.findNamedType( part .getTypeName() ), _wsdlTypes ) ); } return params; }
protected Part parsePart(Element partEl, Definition def) throws WSDLException Part part = def.createPart(); String name = DOMUtils.getAttribute(partEl, Constants.ATTR_NAME); QName elementName = getQualifiedAttributeValue(partEl, part.setName(name); part.setElementName(elementName); part.setTypeName(typeName); part.setDocumentationElement(tempEl); part.addExtensibilityElement( parseExtensibilityElement(Part.class, tempEl, def));
/** * Create a WsdlOpFault from the Fault. * * @param fault * Fault to process. * @return WsdlOpFault Result of processing. */ @SuppressWarnings( "unchecked" ) private WsdlOpFault getFault( Fault fault ) throws KettleStepException { Message m = fault.getMessage(); // a fault should only have one message part. Map<?, Part> partMap = m.getParts(); if ( partMap.size() != 1 ) { throw new IllegalArgumentException( "Invalid part count for fault!!" ); } Part faultPart = partMap.values().iterator().next(); boolean complexType = false; // type of fault is specified either in Part's type or element attribute. QName type = faultPart.getTypeName(); if ( type == null ) { type = faultPart.getElementName(); Element schemaElement = _wsdlTypes.findNamedElement( type ); type = _wsdlTypes.getTypeQName( schemaElement.getAttribute( "type" ) ); complexType = true; } return new WsdlOpFault( fault.getName(), type, complexType, _wsdlTypes ); } }
Element schemaElement = _wsdlTypes.findNamedElement( p.getElementName() ); resolvedParams.add( new WsdlOpParameter( p.getName(), schemaElement, _wsdlTypes ) ); } else {
Part part = def.createPart(); part.setDocumentationElement( createDocumentationElement( param.getDocumentation())); part.setName(param.getName()); part.setTypeName(typeQName); msg.addPart(part); if (param.getTypeQName().getNamespaceURI().equals("")) { param.setTypeQName( new QName(intfNS, param.getTypeQName().getLocalPart())); param.getItemQName()); part.setName(param.getName()); part.setElementName(qname); msg.addPart(part);
String actualLN = inputMessage.getLocalName(); @SuppressWarnings("unchecked") List<Part> parts = operation.getInput().getMessage().getOrderedParts(null); throw SOAPMessages.MESSAGES.invalidInputSOAPPayloadForServiceOperation(operation.getName(), _service.getName().toString(), actualLN); if (parts.get(0).getElementName() != null) { expectedPayloadType = parts.get(0).getElementName(); } else if (parts.get(0).getTypeName() != null) { expectedPayloadType = parts.get(0).getTypeName(); expectedPayloadType = new QName(_targetNamespace, operation.getName()); expectedNS = expectedPayloadType.getNamespaceURI(); expectedLN = expectedPayloadType.getLocalPart();
private static void createInput(Wsdl1SoapOperationImpl operation, BindingOperation wsdlBindingOperation) { Operation wsdlOperation = wsdlBindingOperation.getOperation(); Input wsdlInput = wsdlOperation.getInput(); if (wsdlInput == null) { return; for (Iterator itPart = wsdlInput.getMessage().getOrderedParts(null).iterator(); itPart.hasNext();) { Part wsdlPart = (Part) itPart.next(); Wsdl1SoapPartImpl part = new Wsdl1SoapPartImpl(); part.setName(wsdlPart.getName()); part.setType(wsdlPart.getTypeName()); part.setElement(wsdlPart.getElementName()); if ((wsdlSoapBody.getParts() == null && wsdlInput.getMessage().getOrderedParts(null).size() == 1) || wsdlSoapBody.getParts().contains(part.getName())) { part.setBody(true); input.setElementName(wsdlPart.getElementName()); } else { boolean header = false; for (SOAP12Header h : wsdlSoapHeaders) { if (wsdlPart.getName().equals(h.getPart())) { header = true; input.setElementName(new QName(input.getNamespace(), operation.getName().getLocalPart()));
Input input = def.createInput(); Set<String> inParam = this.getInParamNames(); Message inMessage = def.createMessage(); inMessage.setQName(new QName(TNS, this.name + "Request")); inMessage.setUndefined(false); Part parametersPart = def.createPart(); parametersPart.setName("map-Map"); parametersPart.setTypeName(new QName(TNS, "map-Map")); inMessage.addPart(parametersPart); Element documentation = document.createElement("wsdl:documentation"); for (String paramName : inParam) { Element attribute = document.createElement("attribute"); attribute.setAttribute("name", paramName); attribute.setAttribute("type", part.getTypeName().getLocalPart()); attribute.setAttribute("namespace", part.getTypeName().getNamespaceURI()); attribute.setAttribute("java-class", param.type); attribute.setAttribute("optional", Boolean.toString(param.optional)); parametersPart.setDocumentationElement(documentation); def.addMessage(inMessage); input.setMessage(inMessage); resultsPart.setName("map-Map"); resultsPart.setTypeName(new QName(TNS, "map-Map")); Element attribute = document.createElement("attribute"); attribute.setAttribute("name", paramName); attribute.setAttribute("type", part.getTypeName().getLocalPart());
private Message copyMessage(Message defMessage, Definition flat) { Message flatMsg = flat.createMessage(); flatMsg.setUndefined(false); if (defMessage.getQName() != null) { flatMsg.setQName(new QName(flat.getTargetNamespace(), defMessage.getQName().getLocalPart())); } for (Iterator itPart = defMessage.getParts().values().iterator(); itPart.hasNext();) { Part defPart = (Part) itPart.next(); Part flatPart = flat.createPart(); flatPart.setName(defPart.getName()); flatPart.setElementName(defPart.getElementName()); flatMsg.addPart(flatPart); } return flatMsg; }
if (!mie.getKey().getNamespaceURI().equals(definition.getTargetNamespace())) { continue; if (definition.getMessage(mie.getKey()) != null) { continue; Message message = definition.createMessage(); addDocumentation(message, mie.getValue().getMessageDocumentation()); message.setUndefined(false); message.setQName(mie.getKey()); for (MessagePartInfo mpi : mie.getValue().getMessageParts()) { Part part = definition.createPart(); part.setElementName(mpi.getElementQName()); } else { part.setTypeName(mpi.getTypeQName()); part.setName(mpi.getName().getLocalPart()); message.addPart(part); addDocumentation(serv, serviceInfo.getDocumentation()); serv.setQName(serviceInfo.getName()); addNamespace(serviceInfo.getName().getNamespaceURI(), definition); addExtensibilityElements(definition, serv, getWSDL11Extensors(serviceInfo)); definition.addService(serv);
public static QName getInputPartName(Operation op) { Input input = op.getInput(); Map parts = input.getMessage().getParts(); // // one message, one part, one XSD element - that's the system // if (parts.size() != 1) { Object[] filler = { op.getName() }; throw new RuntimeException(_MESSAGES.get("NotDocLiteral", filler)); } Part docLiteralPart = (Part)parts.values().iterator().next(); QName partName = docLiteralPart.getElementName(); // // HACK: this is for Axis/Axiom - they don't handle the default // namespace/prefix well, so we always use a prefix // String prefix = partName.getPrefix(); if (prefix == null || prefix.length() == 0) partName = new QName(partName.getNamespaceURI(), partName.getLocalPart(), "muse-op"); return partName; }
protected void buildMessage(Message message, AbstractMessageContainer messageContainer, final Definition def) { addDocumentation(message, messageContainer.getMessageDocumentation()); message.setQName(messageContainer.getName()); message.setUndefined(false); def.addMessage(message); List<MessagePartInfo> messageParts = messageContainer.getMessageParts(); Part messagePart = null; for (MessagePartInfo messagePartInfo : messageParts) { messagePart = def.createPart(); messagePart.setName(messagePartInfo.getName().getLocalPart()); if (messagePartInfo.isElement()) { messagePart.setElementName(messagePartInfo.getElementQName()); addNamespace(messagePartInfo.getElementQName().getNamespaceURI(), def); } else if (messagePartInfo.getTypeQName() != null) { messagePart.setTypeName(messagePartInfo.getTypeQName()); addNamespace(messagePartInfo.getTypeQName().getNamespaceURI(), def); } message.addPart(messagePart); } }
private void createFaultMessage(QName qname) { String exceptionName = qname.getLocalPart(); // messages Message faultMsg = definition.createMessage(); faultMsg.setQName(new QName(definition.getTargetNamespace(), exceptionName)); faultMsg.setUndefined(false); // message - part Part part = definition.createPart(); part.setName("exception"); part.setElementName(qname); faultMsg.addPart(part); //add the fault element namespace to the definition String nsURI = qname.getNamespaceURI(); manager.addWSDLDefinitionNamespace(definition, mapper.mapNSToPrefix(nsURI), nsURI); definition.addMessage(faultMsg); }
protected void visit(Input input) { if (isWrapped) { Part part = (Part) input.getMessage().getParts().values().iterator().next(); MessageInfo info = opInfo.createMessage(new QName(part.getElementName().getNamespaceURI(), input.getMessage().getQName().getLocalPart())); winput2msg.put(input, info); opInfo.setInputMessage(info); createMessageParts(info, getWrappedSchema(input.getMessage())); } else { MessageInfo info = opInfo.createMessage(input.getMessage().getQName()); winput2msg.put(input, info); opInfo.setInputMessage(info); createMessageParts(info, input.getMessage()); } }
private static OMElement buildSoapDetail( final BPELMessageContext bpelMessageContext, final MessageExchange odeMessageContext) throws AxisFault { Element message = odeMessageContext.getResponse().getMessage(); QName faultName = odeMessageContext.getFault(); Operation operation = odeMessageContext.getOperation(); SOAPFactory soapFactory = bpelMessageContext.getSoapFactoryForCurrentMessageFlow(); if (faultName.getNamespaceURI() == null) { return toFaultDetail(message, soapFactory); } Fault f = operation.getFault(faultName.getLocalPart()); if (f == null) { return toFaultDetail(message, soapFactory); } // For faults, there will be exactly one part. Part p = (Part) f.getMessage().getParts().values().iterator().next(); if (p == null) { return toFaultDetail(message, soapFactory); } Element partEl = DOMUtils.findChildByName(message, new QName(null, p.getName())); if (partEl == null) { return toFaultDetail(message, soapFactory); } Element detail = DOMUtils.findChildByName(partEl, p.getElementName()); if (detail == null) { return toFaultDetail(message, soapFactory); } return OMUtils.toOM(detail, soapFactory); }
/** * Get the SOAP {@link Operation} instance for the specified message element. * * @param port The WSDL port. * @param elementName The SOAP Body element QName. * @param documentStyle true if it is 'document', false if 'rpc'. * @return The Operation instance, or null if the operation was not found on the port. */ public static Operation getOperationByElement(Port port, QName elementName, Boolean documentStyle) { List<Operation> operations = port.getBinding().getPortType().getOperations(); for (Operation operation : operations) { if (!documentStyle && (elementName.getLocalPart().equals(operation.getName()))) { return operation; } else { // Note: WS-I Profile allows only one child under SOAPBody. Part part = (Part)operation.getInput().getMessage().getParts().values().iterator().next(); if ((part.getElementName() != null) && elementName.equals(part.getElementName()) || (part.getTypeName() != null) && elementName.equals(part.getTypeName())) { return operation; } else if (elementName.getLocalPart().equals(operation.getName())) { return operation; } } } return null; }
private static String findHeaderPartName(List<javax.wsdl.extensions.soap.SOAPHeader> headerDefs, Definition wsdl, QName elmtName) { for (javax.wsdl.extensions.soap.SOAPHeader headerDef : headerDefs) { Message hdrMsg = wsdl.getMessage(headerDef.getMessage()); for (Object o : hdrMsg.getParts().values()) { Part p = (Part) o; if (p.getElementName().equals(elmtName)) { return p.getName(); } } } return elmtName.getLocalPart(); }
Part part = def.createPart(); String name = DOMUtils.getAttribute(partEl, Constants.ATTR_NAME); String localPart = prefixedValue.substring(index + 1); elementName = new QName(localPart); part.setName(name); part.setElementName(elementName); part.setTypeName(typeName); part.setDocumentationElement(tempEl); Map extensionAttributes = part.getExtensionAttributes();
/** * Called after the {@link Part} has been created. * * <p>Default implementation sets the element name of the part. * * @param definition the WSDL4J {@code Definition} * @param part the WSDL4J {@code Part} * @param elementName the elementName @throws WSDLException in case of errors * @see Part#setElementName(javax.xml.namespace.QName) */ protected void populatePart(Definition definition, Part part, QName elementName) throws WSDLException { part.setElementName(elementName); part.setName(elementName.getLocalPart()); }
Operation operation) { Input input = operation.getInput(); Output output = operation.getOutput(); Collection parts = input.getMessage().getParts().values(); for (Iterator i = parts.iterator(); i.hasNext();) { Part part = (Part)i.next(); OperationWebParam p = new OperationWebParam(part.getElementName().getLocalPart(), part.getName(), Mode.IN, part.getElementName().getNamespaceURI()); parms.add(p); parmMap.put(part.getName(), p); parts = output.getMessage().getParts().values(); for (Iterator i = parts.iterator(); i.hasNext();) { Part part = (Part)i.next(); OperationWebParam p = parmMap.get(part.getName()); if (p == null) { p = new OperationWebParam(part.getElementName().getLocalPart(), part.getName(), Mode.OUT, part.getElementName().getNamespaceURI()); parms.add(p); parmMap.put(part.getName(), p); } else { p.setMode(Mode.INOUT);