public List<Endpoint> findEndpoint(String uri) {
List<Endpoint> foundEndpoints = new ArrayList<Endpoint>();
for (Object v : endpointMap.values()) {
Endpoint endpoint = (Endpoint)v;
logger.fine("Matching against - " + endpoint);
if (endpoint.matches(uri)) {
if (!isLocal(endpoint)) {
endpoint.setRemote(true);
((RuntimeEndpoint)endpoint).bind(registry, this);
} else {
// get the local version of the endpoint