Ejemplo n.º 1
0
  /** {@inheritDoc} */
  @SuppressWarnings("unchecked")
  public Endpoint selectEndpoint() {
    if (getEntityRoleMetadata() == null) {
      return null;
    }

    List<? extends Endpoint> endpoints = getEntityRoleMetadata().getEndpoints(getEndpointType());
    if (endpoints == null || endpoints.size() == 0) {
      return null;
    }

    Endpoint selectedEndpoint;
    endpoints = filterEndpointsByProtocolBinding(endpoints);
    if (endpoints == null || endpoints.size() == 0) {
      return null;
    }
    if (endpoints.get(0) instanceof IndexedEndpoint) {
      selectedEndpoint = selectIndexedEndpoint((List<IndexedEndpoint>) endpoints);
    } else {
      selectedEndpoint = selectNonIndexedEndpoint((List<Endpoint>) endpoints);
    }

    log.debug("Selected endpoint {} for request", selectedEndpoint.getLocation());
    return selectedEndpoint;
  }