MessageInfo wrappedMsgInfo; if (Boolean.TRUE.equals(message.get(Message.REQUESTOR_ROLE))) { wrappedMsgInfo = newbop.getInput().getMessageInfo(); } else { wrappedMsgInfo = newbop.getOutput().getMessageInfo();
@Override public boolean appliesTo(BindingMessageInfo bmi) { if (bmi == null) { return false; } if ((bmi.getMessageInfo() != null) && (bmi.getMessageInfo().getName() != null) && wsdl11XPointer.matchesMessage( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getMessageInfo().getName().getLocalPart())) { return true; } if (checkBindingOperationInOut(bmi)) { return true; } return checkPortTypeOperationInOut(bmi); }
@Override public boolean appliesTo(BindingMessageInfo bmi) { if (bmi == null) { return false; } if ((bmi.getMessageInfo() != null) && (bmi.getMessageInfo().getName() != null) && wsdl11XPointer.matchesMessage( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getMessageInfo().getName().getLocalPart())) { return true; } if (checkBindingOperationInOut(bmi)) { return true; } return checkPortTypeOperationInOut(bmi); }
private void setTypeAttr(XMLStreamWriter xmlWriter, Message message) throws XMLStreamException { BindingOperationInfo wsdlOperation = getOperation(message); BindingMessageInfo wsdlMessage = isRequestor(message) ? wsdlOperation.getInput() : wsdlOperation.getOutput(); String typeNamespace = wsdlMessage.getMessageInfo().getName().getNamespaceURI(); if (typeNamespace == null || typeNamespace.length() == 0) { throw new IllegalArgumentException("messageType namespace is null or empty"); } xmlWriter.writeAttribute(XMLConstants.XMLNS_ATTRIBUTE + ":" + "msg", typeNamespace); String typeLocalName = wsdlMessage.getMessageInfo().getName().getLocalPart(); if (typeLocalName == null || typeLocalName.length() == 0) { throw new IllegalArgumentException("messageType local name is null or empty"); } xmlWriter.writeAttribute("type", "msg" + ":" + typeLocalName); }
private boolean isOutOfBandHeader(BindingMessageInfo bmi, ExtensibilityElement ext) { SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext); return soapHeader.getMessage() != null && !bmi.getMessageInfo().getName().equals(soapHeader.getMessage()); }
private BindingOperationInfo findAnyOp(Exchange exchange) { Endpoint ep = exchange.get(Endpoint.class); BindingInfo service = ep.getEndpointInfo().getBinding(); for (BindingOperationInfo b : service.getOperations()) { if (b.getInput() != null && !b.getInput().getMessageInfo().getMessageParts().isEmpty()) { MessagePartInfo inf = b.getInput().getMessageInfo().getMessagePart(0); if (XMLSchemaQNames.XSD_ANY.equals(inf.getTypeQName())) { return b; } } } return null; }
private BindingOperationInfo findAnyOp(Exchange exchange) { Endpoint ep = exchange.get(Endpoint.class); BindingInfo service = ep.getEndpointInfo().getBinding(); for (BindingOperationInfo b : service.getOperations()) { if (b.getInput() != null && !b.getInput().getMessageInfo().getMessageParts().isEmpty()) { MessagePartInfo inf = b.getInput().getMessageInfo().getMessagePart(0); if (XMLSchemaQNames.XSD_ANY.equals(inf.getTypeQName())) { return b; } } } return null; }
private boolean checkBindingOperationInOut(BindingMessageInfo bmi) { if ((bmi.getMessageInfo() != null) && (bmi.getMessageInfo().getName() != null) && (bmi.getBindingOperation() != null) && (bmi.getBindingOperation().getName() != null) && (bmi.getBindingOperation().getBinding() != null) && (bmi.getBindingOperation().getBinding().getName() != null)) { if ((Type.INPUT == bmi.getMessageInfo().getType()) && wsdl11XPointer.matchesBindingOperationInput( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getBindingOperation().getBinding().getName().getLocalPart(), bmi.getBindingOperation().getName().getLocalPart())) { return true; } if ((Type.OUTPUT == bmi.getMessageInfo().getType()) && wsdl11XPointer.matchesBindingOperationOutput( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getBindingOperation().getBinding().getName().getLocalPart(), bmi.getBindingOperation().getName().getLocalPart())) { return true; } } return false; }
private boolean checkBindingOperationInOut(BindingMessageInfo bmi) { if ((bmi.getMessageInfo() != null) && (bmi.getMessageInfo().getName() != null) && (bmi.getBindingOperation() != null) && (bmi.getBindingOperation().getName() != null) && (bmi.getBindingOperation().getBinding() != null) && (bmi.getBindingOperation().getBinding().getName() != null)) { if ((Type.INPUT == bmi.getMessageInfo().getType()) && wsdl11XPointer.matchesBindingOperationInput( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getBindingOperation().getBinding().getName().getLocalPart(), bmi.getBindingOperation().getName().getLocalPart())) { return true; } if ((Type.OUTPUT == bmi.getMessageInfo().getType()) && wsdl11XPointer.matchesBindingOperationOutput( bmi.getMessageInfo().getName().getNamespaceURI(), bmi.getBindingOperation().getBinding().getName().getLocalPart(), bmi.getBindingOperation().getName().getLocalPart())) { return true; } } return false; }
private static Set<QName> getHeaderQNames(BindingMessageInfo bmi) { Set<QName> set = new HashSet<>(); List<MessagePartInfo> mps = bmi.getMessageInfo().getMessageParts(); List<ExtensibilityElement> extList = bmi.getExtensors(ExtensibilityElement.class); if (extList != null) { for (ExtensibilityElement ext : extList) { if (SOAPBindingUtil.isSOAPHeader(ext)) { SoapHeader header = SOAPBindingUtil.getSoapHeader(ext); String pn = header.getPart(); for (MessagePartInfo mpi : mps) { if (pn.equals(mpi.getName().getLocalPart())) { if (mpi.isElement()) { set.add(mpi.getElementQName()); } else { set.add(mpi.getTypeQName()); } break; } } } } } return set; }
@Override public boolean appliesTo(BindingMessageInfo bmi) { String serviceName = bmi.getBindingOperation().getBinding().getService().getName().getLocalPart(); if ("JavaFirstAttachmentPolicyService".equals(serviceName) && "usernamepassword".equals(url)) { return ("doInputMessagePolicy".equals(bmi.getBindingOperation().getName().getLocalPart()) && MessageInfo.Type.INPUT.equals(bmi.getMessageInfo().getType())) || ("doOutputMessagePolicy".equals(bmi.getBindingOperation().getName().getLocalPart()) && MessageInfo.Type.OUTPUT.equals(bmi.getMessageInfo().getType())); } else if ("SslUsernamePasswordAttachmentService".equals(serviceName) && "sslusernamepassword".equals(url)) { return MessageInfo.Type.INPUT.equals(bmi.getMessageInfo().getType()); } else { return false; } }
protected void buildBindingInput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingInput bindingInput = null; if (bindingMessageInfo != null) { bindingInput = def.createBindingInput(); addDocumentation(bindingInput, bindingMessageInfo.getDocumentation()); bindingInput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingInput(bindingInput); addExtensibilityAttributes(def, bindingInput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingInput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingOutput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingOutput bindingOutput = null; if (bindingMessageInfo != null) { bindingOutput = def.createBindingOutput(); addDocumentation(bindingOutput, bindingMessageInfo.getDocumentation()); bindingOutput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingOutput(bindingOutput); addExtensibilityAttributes(def, bindingOutput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingOutput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingInput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingInput bindingInput = null; if (bindingMessageInfo != null) { bindingInput = def.createBindingInput(); addDocumentation(bindingInput, bindingMessageInfo.getDocumentation()); bindingInput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingInput(bindingInput); addExtensibilityAttributes(def, bindingInput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingInput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingOutput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingOutput bindingOutput = null; if (bindingMessageInfo != null) { bindingOutput = def.createBindingOutput(); addDocumentation(bindingOutput, bindingMessageInfo.getDocumentation()); bindingOutput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingOutput(bindingOutput); addExtensibilityAttributes(def, bindingOutput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingOutput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingInput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingInput bindingInput = null; if (bindingMessageInfo != null) { bindingInput = def.createBindingInput(); addDocumentation(bindingInput, bindingMessageInfo.getDocumentation()); bindingInput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingInput(bindingInput); addExtensibilityAttributes(def, bindingInput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingInput, getWSDL11Extensors(bindingMessageInfo)); } }
protected void buildBindingOutput(Definition def, BindingOperation bindingOperation, BindingMessageInfo bindingMessageInfo) { BindingOutput bindingOutput = null; if (bindingMessageInfo != null) { bindingOutput = def.createBindingOutput(); addDocumentation(bindingOutput, bindingMessageInfo.getDocumentation()); bindingOutput.setName(bindingMessageInfo.getMessageInfo().getName().getLocalPart()); bindingOperation.setBindingOutput(bindingOutput); addExtensibilityAttributes(def, bindingOutput, bindingMessageInfo.getExtensionAttributes()); addExtensibilityElements(def, bindingOutput, getWSDL11Extensors(bindingMessageInfo)); } }
/** * The effective policy for a specific WSDL message (input or output) is calculated * in relation to a specific port, and includes the element policy of the wsdl:message * element that defines the message's type merged with the element policy of the * wsdl11:binding and wsdl11:portType message definitions that describe the message. * For example, the effective policy of a specific input message for a specific port * would be the (element policies of the) wsdl11:message element defining the message type, * the wsdl11:portType/wsdl11:operation/wsdl11:input element and the corresponding * wsdl11:binding/wsdl11:operation/wsdl11:input element for that message. * * @param bmi the BindingMessageInfo identifiying the message * @return the effective policy */ public Policy getEffectivePolicy(BindingMessageInfo bmi, Message m) { ServiceInfo si = bmi.getBindingOperation().getBinding().getService(); DescriptionInfo di = si.getDescription(); Policy p = getElementPolicy(bmi, false, di); MessageInfo mi = bmi.getMessageInfo(); p = mergePolicies(p, getElementPolicy(mi, true, di)); Extensible ex = getMessageTypeInfo(mi.getName(), di); p = mergePolicies(p, getElementPolicy(ex, false, di)); return p; }
public void handleMessage(JBIMessage message) throws Fault { Exchange ex = message.getExchange(); Endpoint ep = ex.get(Endpoint.class); BindingOperationInfo boi = ex.get(BindingOperationInfo.class); if (boi == null) { if (message.getJbiExchange().getOperation() != null) { BindingInfo service = ep.getEndpointInfo().getBinding(); boi = getBindingOperationInfo(service, message.getJbiExchange().getOperation()); if (boi == null) { throw new Fault(new Message("UNKNOWN_OPERATION", BUNDLE, message.getJbiExchange().getOperation().toString())); } } else { throw new Fault(new Message("UNKNOWN_OPERATION", BUNDLE, message.getJbiExchange().getInterfaceName().toString())); } ex.put(BindingOperationInfo.class, boi); ex.put(OperationInfo.class, boi.getOperationInfo()); ex.setOneWay(boi.getOperationInfo().isOneWay()); message.put(MessageInfo.class, boi.getInput().getMessageInfo()); } }
public void handleMessage(NMRMessage message) throws Fault { Exchange ex = message.getExchange(); Endpoint ep = ex.get(Endpoint.class); BindingOperationInfo boi = ex.get(BindingOperationInfo.class); if (boi == null && message.getNmrExchange()!= null && message.getNmrExchange().getOperation() != null) { BindingInfo service = ep.getEndpointInfo().getBinding(); boi = getBindingOperationInfo(service, message.getNmrExchange().getOperation()); if (boi == null) { throw new Fault(new Message("UNKNOWN_OPERATION", BUNDLE, message.getNmrExchange().getOperation().toString())); } ex.put(BindingOperationInfo.class, boi); ex.put(OperationInfo.class, boi.getOperationInfo()); ex.setOneWay(boi.getOperationInfo().isOneWay()); message.put(MessageInfo.class, boi.getInput().getMessageInfo()); } }