Class AggregateDiscoveryProvider

java.lang.Object
org.wildfly.discovery.impl.AggregateDiscoveryProvider
All Implemented Interfaces:
DiscoveryProvider

public final class AggregateDiscoveryProvider extends Object implements DiscoveryProvider
A discovery provider which aggregates multiple other providers together. The aggregate request is complete when all of the delegate provider requests are complete.
Author:
David M. Lloyd
  • Constructor Details

    • AggregateDiscoveryProvider

      public AggregateDiscoveryProvider(DiscoveryProvider[] delegates)
      Construct a new instance.
      Parameters:
      delegates - the array of delegates (must not be null)
  • Method Details

    • discover

      public DiscoveryRequest discover(ServiceType serviceType, FilterSpec filterSpec, DiscoveryResult result)
      Description copied from interface: DiscoveryProvider
      Attempt to discover implementations of a service. Matches must be written to the DiscoveryResult.addMatch(ServiceURL) method on the result parameter as they are found. The DiscoveryResult.complete() method must be called when the discovery process is complete or has timed out or failed for any other reason, otherwise discovery clients may hang indefinitely.

      The discovery process should be asynchronous if possible. In this case, this method should return as soon as possible in order to unblock the calling thread quickly and allow other discovery mechanisms to proceed. The discovery process will not be considered complete until the result's completion method is called, even if such a call comes from a different thread.

      Specified by:
      discover in interface DiscoveryProvider
      Parameters:
      serviceType - the service type to match
      filterSpec - the service attribute filter expression, or null to return all matches
      result - the discovery result
    • processMissingTarget

      public void processMissingTarget(URI location, Exception cause)
      Description copied from interface: DiscoveryProvider
      This method is invoked on provider if the invocation using discovered URI was not successful. This method is supposed to be used by lazy discovery algorithms. By default, it is set to empty method so it could be skipped by providers implementing polling algorithms.
      Specified by:
      processMissingTarget in interface DiscoveryProvider
      Parameters:
      location - location on which invocations has failed
      cause - the cause of the failure