Package org.wildfly.discovery.impl
Class AggregateDiscoveryProvider
java.lang.Object
org.wildfly.discovery.impl.AggregateDiscoveryProvider
- All Implemented Interfaces:
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
-
Field Summary
Fields inherited from interface org.wildfly.discovery.spi.DiscoveryProvider
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionAggregateDiscoveryProvider(DiscoveryProvider[] delegates) Construct a new instance. -
Method Summary
Modifier and TypeMethodDescriptiondiscover(ServiceType serviceType, FilterSpec filterSpec, DiscoveryResult result) Attempt to discover implementations of a service.voidprocessMissingTarget(URI location, Exception cause) This method is invoked on provider if the invocation using discovered URI was not successful.
-
Constructor Details
-
AggregateDiscoveryProvider
Construct a new instance.- Parameters:
delegates- the array of delegates (must not benull)
-
-
Method Details
-
discover
public DiscoveryRequest discover(ServiceType serviceType, FilterSpec filterSpec, DiscoveryResult result) Description copied from interface:DiscoveryProviderAttempt to discover implementations of a service. Matches must be written to theDiscoveryResult.addMatch(ServiceURL)method on theresultparameter as they are found. TheDiscoveryResult.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:
discoverin interfaceDiscoveryProvider- Parameters:
serviceType- the service type to matchfilterSpec- the service attribute filter expression, ornullto return all matchesresult- the discovery result
-
processMissingTarget
Description copied from interface:DiscoveryProviderThis 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:
processMissingTargetin interfaceDiscoveryProvider- Parameters:
location- location on which invocations has failedcause- the cause of the failure
-