in core/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Registry.java [350:393]
public ServiceEndpoint resolveStandardEPR(DocumentFragment epr) {
try {
NodeList children = epr.getChildNodes();
for (int i = 0; i < children.getLength(); ++i) {
Node n = children.item(i);
if (n.getNodeType() != Node.ELEMENT_NODE) {
continue;
}
Element elem = (Element) n;
String[] namespaces = new String[] {WSAddressingConstants.WSA_NAMESPACE_200508,
WSAddressingConstants.WSA_NAMESPACE_200408,
WSAddressingConstants.WSA_NAMESPACE_200403,
WSAddressingConstants.WSA_NAMESPACE_200303 };
NodeList nl = null;
for (int ns = 0; ns < namespaces.length; ns++) {
NodeList tnl = elem.getElementsByTagNameNS(namespaces[ns], WSAddressingConstants.EL_ADDRESS);
if (tnl.getLength() == 1) {
nl = tnl;
break;
}
}
if (nl != null) {
Element address = (Element) nl.item(0);
String uri = DOMUtil.getElementText(address);
if (uri != null) {
uri = uri.trim();
}
if (uri.startsWith("endpoint:")) {
uri = uri.substring("endpoint:".length());
String[] parts = URIResolver.split3(uri);
return getInternalEndpoint(new QName(parts[0], parts[1]), parts[2]);
} else if (uri.startsWith("service:")) {
uri = uri.substring("service:".length());
String[] parts = URIResolver.split2(uri);
return getEndpoint(new QName(parts[0], parts[1]), parts[1]);
}
// TODO should we support interface: and operation: here?
}
}
} catch (Exception e) {
LOGGER.debug("Unable to resolve EPR: " + e);
}
return null;
}