Class DiscoveryDelegate<A,S>

java.lang.Object
org.gcube.common.clients.delegates.AbstractDelegate<A,S,DiscoveryConfig<A,S>>
org.gcube.common.clients.delegates.DiscoveryDelegate<A,S>
Type Parameters:
A - the type of service addresses
S - the type of service stubs
All Implemented Interfaces:
ProxyDelegate<S>

public class DiscoveryDelegate<A,S> extends AbstractDelegate<A,S,DiscoveryConfig<A,S>>
A ProxyDelegate that discovers service endpoints.

The delegates attempt to make Calls to endpoints cached in an EndpointCache. If the calls fail, or the cache is empty, they execute a Query for endpoints and call the results in turn until the call succeeds or there are no more endpoints to call. If the call succeeds with one endpoint, the delegates cache the endpoint in the EndpointCache.

Author:
Fabio Simeoni
See Also:
  • Constructor Details

  • Method Details

    • make

      public <V> V make(Call<S,V> call) throws Exception
      Description copied from interface: ProxyDelegate
      Makes a Call to a given service endpoint.
      Type Parameters:
      V - the type of the value returned from the call
      Parameters:
      call - the call
      Returns:
      the value returned from the call
      Throws:
      Exception - if the call fails