private XNode getXNode(Service service) { XDef xdef = new XDef(); xdef.setTargetNamespace(service.getQName().getNamespaceURI()); XService sNode = new XService(); sNode.setName(service.getQName().getLocalPart()); sNode.setParentNode(xdef); return sNode; }
@Test public void nonQualifiedPortName() throws Exception { PortName portName = new PortName("HelloWebServicePortFrench"); Service service = WSDLUtil.getService("MultiplePortService.wsdl", portName); Assert.assertNotNull(service); Assert.assertEquals( service.getQName(), new QName("urn:switchyard-component-soap:test-ws:1.0", "GoodbyeWebService")); service = WSDLUtil.getService("MultiplePortService.wsdl", new PortName("HelloWebService:")); Assert.assertNotNull(service); Assert.assertEquals( service.getQName(), new QName("urn:switchyard-component-soap:test-ws:1.0", "HelloWebService")); Port port = WSDLUtil.getPort(service, portName); Assert.assertEquals(port.getName(), "HelloWebServicePortFrench"); }
@Test(expected = WSDLException.class) public void nonExistentPortName() throws Exception { Service service = WSDLUtil.getService("MultiplePortService.wsdl", new PortName("HelloWebService:")); Assert.assertNotNull(service); Assert.assertEquals( service.getQName(), new QName("urn:switchyard-component-soap:test-ws:1.0", "HelloWebService")); WSDLUtil.getPort(service, new PortName("HelloWebServiceSpanishPort")); }
public static QName getServiceName(Binding binding, Definition wsdlDef) { LOG.log(Level.FINE, "Getting service name for an object reference"); Collection<Service> services = CastUtils.cast(wsdlDef.getServices().values()); for (Service serv : services) { Collection<Port> ports = CastUtils.cast(serv.getPorts().values()); for (Port pt : ports) { if (pt.getBinding().equals(binding)) { return serv.getQName(); } } } return null; }
@Test public void soapAction() throws Exception { Service service = WSDLUtil.getService("HelloWebService.wsdl", new PortName("HelloWebService:")); Assert.assertNotNull(service); Assert.assertEquals( service.getQName(), new QName("urn:switchyard-component-soap:test-ws:1.0", "HelloWebService")); Port port = WSDLUtil.getPort(service, new PortName("HelloWebServicePort")); Assert.assertNotNull(port); String action = WSDLUtil.getSoapAction(port, "sayHello"); Assert.assertEquals(action, "uri:something:that:needs#tobevalid"); action = WSDLUtil.getSoapAction(port, "helloWS"); Assert.assertEquals(action, ""); }
private Map<QName, XNode> getBindings(Service service) { Map<QName, XNode> bindings = new HashMap<QName, XNode>(); if (service.getPorts().values().size() == 0) { throw new ToolException( "Service " + service.getQName() + " does not contain any usable ports"); } Collection<Port> ports = CastUtils.cast(service.getPorts().values()); for (Port port : ports) { Binding binding = port.getBinding(); bindings.put(binding.getQName(), getXNode(service, port)); if (WSDLConstants.NS_WSDL11.equals(binding.getQName().getNamespaceURI())) { throw new ToolException( "Binding " + binding.getQName().getLocalPart() + " namespace set improperly."); } } return bindings; }
public static void populateEprInfo(EprMetaData info) { if (!info.isValid()) { return; } Binding match = info.getBinding(); Definition wsdlDef = info.getCandidateWsdlDef(); Collection<Service> services = CastUtils.cast(wsdlDef.getServices().values()); for (Service serv : services) { Collection<Port> ports = CastUtils.cast(serv.getPorts().values()); for (Port pt : ports) { if (pt.getBinding().equals(match)) { info.setPortName(pt.getName()); info.setServiceQName(serv.getQName()); break; } } } if (info.getServiceQName() == null) { Iterator<?> importLists = wsdlDef.getImports().values().iterator(); while (info.getServiceQName() == null && importLists.hasNext()) { List<?> imports = (List<?>) importLists.next(); for (java.lang.Object imp : imports) { if (imp instanceof Import) { Definition importDef = ((Import) imp).getDefinition(); LOG.log(Level.FINE, "following wsdl import " + importDef.getDocumentBaseURI()); info.setCandidateWsdlDef(importDef); populateEprInfo(info); if (info.getServiceQName() != null) { break; } } } } } }
protected static void initializeService( org.w3c.dom.Element service, TProcess bpelProcess, TPartnerLink pl, java.util.Collection<javax.wsdl.Definition> wsdls, org.w3c.dom.Element partnerLinkTypes, java.util.Map<String, String> nsMap) { QName serviceName = null; String servicePort = null; // Get partner link type details QName partnerLinkType = pl.getPartnerLinkType(); org.w3c.dom.NodeList nl = partnerLinkTypes.getChildNodes(); String portType = null; for (int i = 0; portType == null && i < nl.getLength(); i++) { org.w3c.dom.Node n = nl.item(i); if (n instanceof org.w3c.dom.Element && XMLUtils.getLocalname(n.getNodeName()).equals(PARTNER_LINK_TYPE)) { org.w3c.dom.Element plt = (org.w3c.dom.Element) nl.item(i); String name = plt.getAttribute("name"); if (name != null && name.equals(partnerLinkType.getLocalPart())) { org.w3c.dom.NodeList nl2 = plt.getChildNodes(); for (int j = 0; portType == null && j < nl2.getLength(); j++) { org.w3c.dom.Node n2 = nl2.item(j); if (n2 instanceof org.w3c.dom.Element && XMLUtils.getLocalname(n2.getNodeName()).equals("role")) { org.w3c.dom.Element role = (org.w3c.dom.Element) n2; String roleName = role.getAttribute("name"); if ((pl.getMyRole() != null && pl.getMyRole().equals(roleName)) || (pl.getPartnerRole() != null && pl.getPartnerRole().equals(roleName))) { portType = role.getAttribute("portType"); String ptprefix = XMLUtils.getPrefix(portType); String ptns = partnerLinkTypes.getAttribute("xmlns:" + ptprefix); String newprefix = XMLUtils.getPrefixForNamespace(ptns, nsMap); portType = newprefix + ":" + XMLUtils.getLocalname(portType); } } } } } } if (portType != null) { String portTypePrefix = XMLUtils.getPrefix(portType); String portTypeNS = XMLUtils.getNamespaceForPrefix(portTypePrefix, nsMap); QName ptQName = new QName(portTypeNS, XMLUtils.getLocalname(portType)); for (javax.wsdl.Definition wsdl : wsdls) { if (wsdl.getTargetNamespace().equals(portTypeNS)) { @SuppressWarnings("unchecked") java.util.Collection<javax.wsdl.Service> services = wsdl.getServices().values(); for (javax.wsdl.Service s : services) { @SuppressWarnings("unchecked") java.util.Collection<javax.wsdl.Port> ports = s.getPorts().values(); for (javax.wsdl.Port p : ports) { if (p.getBinding() != null && p.getBinding().getPortType() != null && p.getBinding().getPortType().getQName().equals(ptQName)) { serviceName = s.getQName(); servicePort = p.getName(); } } } } } if (serviceName != null) { String prefix = XMLUtils.getPrefixForNamespace(serviceName.getNamespaceURI(), nsMap); service.setAttribute("name", prefix + ":" + serviceName.getLocalPart()); } if (servicePort != null) { service.setAttribute("port", servicePort); } } }