if (portExtensors != null) { Iterator<ExtensibilityElement> extensionElements = portExtensors.iterator(); QName wsaEpr = new QName(Names.WSA_NAMESPACE_NAME, "EndpointReference"); while (extensionElements.hasNext()) { ExtensibilityElement ext = extensionElements.next(); if (ext instanceof UnknownExtensibilityElement && wsaEpr.equals(ext.getElementType())) { Element eprEle = ((UnknownExtensibilityElement)ext).getElement(); List<Element> addressElements = DOMUtils.getChildrenWithName(eprEle, Names.WSA_NAMESPACE_NAME, addressElements.get(0).setTextContent(this.endpoint.getEndpointInfo().getAddress());
private static UnknownExtensibilityElement createWSPolicyRef(DOMImplementation dImpl, String id) { Document doc = dImpl.createDocument(WSP_NAMESPACE, "wsp:PolicyReference", null); Element policyRef = doc.getDocumentElement(); policyRef.setAttribute("URI", "#" + id); UnknownExtensibilityElement elem = new UnknownExtensibilityElement(); elem.setElement(policyRef); elem.setElementType(new QName(WSP_NAMESPACE, "PolicyReference")); return elem; }
public Policy resolveReference(String uri) { List<UnknownExtensibilityElement> extensions = descriptionInfo.getExtensors(UnknownExtensibilityElement.class); if (extensions != null) { for (UnknownExtensibilityElement e : extensions) { if (Constants.isPolicyElement(e.getElementType()) && uri.equals(e.getElement().getAttributeNS(PolicyConstants.WSU_NAMESPACE_URI, PolicyConstants.WSU_ID_ATTR_NAME))) { return builder.getPolicy(e.getElement()); } } } return null; }
public ExtensibilityElement unmarshall(Class parentType, QName elementType, Element el, Definition def, ExtensionRegistry extReg) throws WSDLException { UnknownExtensibilityElement unknownExt = new UnknownExtensibilityElement(); String requiredStr = DOMUtils.getAttributeNS(el, Constants.NS_URI_WSDL, Constants.ATTR_REQUIRED); unknownExt.setElementType(elementType); if (requiredStr != null) { unknownExt.setRequired(new Boolean(requiredStr)); } unknownExt.setElement(el); return unknownExt; } }
bindingInfo.addExtensor(el); StringBuilder polRefId = new StringBuilder(bindingInfo.getName().getLocalPart()); polRefId.append("_WSAM_Addressing_Policy"); UnknownExtensibilityElement uel = new UnknownExtensibilityElement(); writer.writeEndElement(); Element pr = writer.getDocument().getDocumentElement(); uel.setElement(pr); uel.setElementType(DOMUtils.getElementQName(pr)); bindingInfo.addExtensor(uel); uel = new UnknownExtensibilityElement(); uel.setElement(pr); uel.setElementType(DOMUtils.getElementQName(pr)); if (bindingInfo.getService().getDescription() == null) { DescriptionInfo description = new DescriptionInfo();
/** * Return the endpoint address from a <soap:address location="..."> tag */ public static String getAddressFromPort(Port p) { // Get the endpoint for a port List extensibilityList = p.getExtensibilityElements(); for (ListIterator li = extensibilityList.listIterator(); li.hasNext();) { Object obj = li.next(); if (obj instanceof SOAPAddress) { return ((SOAPAddress) obj).getLocationURI(); } else if (obj instanceof UnknownExtensibilityElement){ //TODO: After WSDL4J supports soap12, change this code UnknownExtensibilityElement unkElement = (UnknownExtensibilityElement) obj; QName name = unkElement.getElementType(); if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && name.getLocalPart().equals("address")) { return unkElement.getElement().getAttribute("location"); } } } // didn't find it return null; } // getAddressFromPort
.equals(new QName(WSIConstants.NS_URI_XSD, "schema"))) ((UnknownExtensibilityElement) extElem).getElement(); break; typesElement.getElementsByTagNameNS( WSIConstants.NS_URI_XSD, "complexType"); if (type.getLocalPart().equals(typeElem.getAttribute("name")))
Document doc = DOMUtils.newDocument(); Element service = doc.createElementNS(Namespaces.WSDL_11, "service"); service.setAttribute("name", serviceDef.getQName().getLocalPart()); service.setAttribute("targetNamespace", serviceDef.getQName().getNamespaceURI()); Element port = doc.createElementNS(Namespaces.WSDL_11, "port"); service.appendChild(port); port.setAttribute("name", portDef.getName()); port.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:bindns", portDef.getBinding().getQName().getNamespaceURI()); port.setAttribute("bindns:binding", portDef.getName()); for (Object extElmt : portDef.getExtensibilityElements()) { } else { port.appendChild( doc.importNode(((UnknownExtensibilityElement) extElmt).getElement(), true));
continue; UnknownExtensibilityElement uee = (UnknownExtensibilityElement) ee; if(uee.getElementType().getLocalPart().equals("PolicyReference")){ String uri = uee.getElement().getAttribute("URI").substring(1); NodeList policyNodeList = uee.getElement().getOwnerDocument().getElementsByTagNameNS("*", "Policy"); for (int j = 0; j < policyNodeList.getLength(); j++) { Element element = (Element) policyNodeList.item(j); String refUri = element.getAttributeNS("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", "Id"); if (refUri != null && refUri.equals(uri)) { NodeList nlist = element.getElementsByTagNameNS("http://docs.oasis-open.org/ws-tx/wsat/2006/06","ATAssertion");
/** * ODE extends the wsdl spec by allowing definition of the HTTP verb at the operation level. * <br/> If you do so, an {@link UnknownExtensibilityElement} will be added to the list of extensibility elements of the {@link javax.wsdl.BindingOperation}. * <br/> This method looks up for such an element and return the value of the verb attribute if the underlying {@link org.w3c.dom.Element} is {@literal <binding xmlns="http://schemas.xmlsoap.org/wsdl/http/"/>} * or null. * * @param bindingOperation */ public static String getOperationVerb(BindingOperation bindingOperation) { final Collection<UnknownExtensibilityElement> unknownExtElements = CollectionsX.filter(bindingOperation.getExtensibilityElements(), UnknownExtensibilityElement.class); for (UnknownExtensibilityElement extensibilityElement : unknownExtElements) { final Element e = extensibilityElement.getElement(); if (Namespaces.ODE_HTTP_EXTENSION_NS.equalsIgnoreCase(e.getNamespaceURI()) && "binding".equals(extensibilityElement.getElement().getLocalName()) && e.hasAttribute("verb")) { return e.getAttribute("verb"); } } return null; }
(UnknownExtensibilityElement) obj; QName name = unkElement.getElementType(); if (name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && name.getLocalPart().equals("binding")) { use = Use.ENCODED; + prefix + ":RPC" + "\"" + styleStr + useStr + ">"); pw.println(" <parameter name=\"wsdlTargetNamespace\" value=\"" + service.getQName().getNamespaceURI() + "\"/>"); pw.println(" <parameter name=\"wsdlServiceElement\" value=\"" + service.getQName().getLocalPart() + "\"/>");
Schema unknownExtensibilityElement = (Schema) o; QName elementType = unknownExtensibilityElement.getElementType(); if (new QName("http://www.w3.org/2001/XMLSchema", "schema").equals(elementType)) { Element element = unknownExtensibilityElement.getElement(); addSchemaElement(element, namespaceMap, schemaList); Element element = unknownExtensibilityElement.getElement(); String elementNamespace = element.getNamespaceURI(); String elementLocalName = element.getNodeName(); if ("http://www.w3.org/2001/XMLSchema".equals(elementNamespace) && "schema".equals(elementLocalName)) { addSchemaElement(element, namespaceMap, schemaList);
private void addPolicyRef(Extensible ext, Policy p) { Document doc = DOMUtils.getEmptyDocument(); Element el = doc.createElementNS(p.getNamespace(), Constants.ELEM_POLICY_REF); el.setPrefix(Constants.ATTR_WSP); el.setAttribute(Constants.ATTR_URI, "#" + p.getId()); UnknownExtensibilityElement uee = new UnknownExtensibilityElement(); uee.setElementType(new QName(p.getNamespace(), Constants.ELEM_POLICY_REF)); uee.setElement(el); uee.setRequired(true); ext.addExtensor(uee); }
UnknownExtensibilityElement unknownExtensibilityElement = (UnknownExtensibilityElement) extensibilityElement; if (unknownExtensibilityElement.getElementType().getLocalPart().equals("PolicyReference")) { String uri = unknownExtensibilityElement.getElement().getAttributeNS(null, "URI").substring(1); NodeList policyNodeList = unknownExtensibilityElement.getElement().getOwnerDocument().getElementsByTagNameNS("*", "Policy"); for (int j = 0; j < policyNodeList.getLength(); j++) { Element element = (Element) policyNodeList.item(j); String refUri = element.getAttributeNS(WSSConstants.NS_WSU10, "Id"); if (refUri != null && refUri.equals(uri)) { found = true; throw new WSSPolicyException("Referenced Policy not found " + uri); } else if (unknownExtensibilityElement.getElementType().getLocalPart().equals("Policy")) { Element element = unknownExtensibilityElement.getElement(); Policy policy = parsePolicy(element); policies.add(policy);
BindingEntry bEntry) { String layout = unkElement.getElement().getAttribute("layout"); (org.w3c.dom.Element) XMLUtils.findNode( element, new QName( Constants.URI_DIME_CONTENT, "mediaType")); String value = e.getAttribute("value");
private List findAllHeaderFaults(BindingOperation bindingOp) { List headerFaults = new ArrayList(); if (bindingOp == null) return headerFaults; List ioElements = bindingOp.getBindingInput().getExtensibilityElements(); ioElements.addAll(bindingOp.getBindingOutput().getExtensibilityElements()); for (int i = 0; i < ioElements.size(); i++) { ExtensibilityElement extElem = (ExtensibilityElement) ioElements.get(i); if (extElem.getElementType().equals(WSDL_SOAP_HEADER)) { List shfList = ((SOAPHeader) extElem).getSOAPHeaderFaults(); for (int j = 0; j < shfList.size(); j++) headerFaults.add(((SOAPHeaderFault) shfList.get(j)).getPart()); } else if (!extElem.getElementType().equals(WSDL_SOAP_BODY)) { List elList = getHeaderFaults(( (UnknownExtensibilityElement) extElem).getElement()); for (int j = 0; j < elList.size(); j++) headerFaults.add(((Element)elList.get(j)).getAttribute("part")); } } return headerFaults; } /**
private Element getPolicy(List<?> extensibilityElements, String name) { for (Object ep : extensibilityElements) { ExtensibilityElement ext = (ExtensibilityElement)ep; if (ext instanceof UnknownExtensibilityElement) { UnknownExtensibilityElement uExt = (UnknownExtensibilityElement)ext; if (RMUtils.getPolicyConstants().getPolicyQName().equals(ext.getElementType())) { Element elem = uExt.getElement(); String id = elem.getAttributeNS(RMUtils.getPolicyConstants().getWSUNamespaceURI(), "Id"); if (null == name || name.equals(id)) { return elem; } } else if (RMUtils.getPolicyConstants().getPolicyReferenceQName() .equals(ext.getElementType())) { Element elem = uExt.getElement(); String uri = elem.getAttribute("URI"); if (uri.startsWith("#") && uri.length() > 1) { Element referenced = getPolicy(def.getExtensibilityElements(), uri.substring(1)); if (null != referenced) { return referenced; } } else { LOG.log(Level.SEVERE, "POLICY_REFERENCE_RESOLUTION_EXC", uri); } } } } return null; }
private void extractWsdlEprs(EndpointInfo endpoint) { //parse the EPR in wsdl List<ExtensibilityElement> portExtensors = endpoint.getExtensors(ExtensibilityElement.class); if (portExtensors != null) { Iterator<ExtensibilityElement> extensionElements = portExtensors.iterator(); QName wsaEpr = new QName(Names.WSA_NAMESPACE_NAME, "EndpointReference"); while (extensionElements.hasNext()) { ExtensibilityElement ext = extensionElements.next(); if (ext instanceof UnknownExtensibilityElement && wsaEpr.equals(ext.getElementType())) { DOMSource domSource = new DOMSource(((UnknownExtensibilityElement)ext).getElement()); W3CEndpointReference w3cEPR = new W3CEndpointReference(domSource); EndpointReferenceType ref = ProviderImpl.convertToInternal(w3cEPR); endpoint.getTarget().setMetadata(ref.getMetadata()); endpoint.getTarget().setReferenceParameters(ref.getReferenceParameters()); endpoint.getTarget().getOtherAttributes().putAll(ref.getOtherAttributes()); } } } }
String thisNamespace = extElem.getElement().getAttribute(Constants.ATTR_TARGET_NAMESPACE); if (thisNamespace != null && !thisNamespace.equalsIgnoreCase(targetNamespace)) Element element = extElem.getElement();
protected void addExtensibilityElements(Definition def, ElementExtensible elementExtensible, List<ExtensibilityElement> extensibilityElements) { if (extensibilityElements != null) { for (ExtensibilityElement element : extensibilityElements) { if (element instanceof UnknownExtensibilityElement) { UnknownExtensibilityElement uee = (UnknownExtensibilityElement)element; String pfx = uee.getElement().getPrefix(); addNamespace(pfx, element.getElementType().getNamespaceURI(), def); } else { QName qn = element.getElementType(); addNamespace(qn.getNamespaceURI(), def); } elementExtensible.addExtensibilityElement(element); } } }