@Singleton public class ConfigurationServiceLocator extends Object implements ServiceLocator
Constructor and Description |
---|
ConfigurationServiceLocator(play.Configuration configuration) |
Modifier and Type | Method and Description |
---|---|
<T> java.util.concurrent.CompletionStage<java.util.Optional<T>> |
doWithService(String name,
Descriptor.Call<?,?> serviceCall,
java.util.function.Function<java.net.URI,java.util.concurrent.CompletionStage<T>> block)
Do the given action with the given service.
|
java.util.concurrent.CompletionStage<java.util.Optional<java.net.URI>> |
locate(String name,
Descriptor.Call<?,?> serviceCall)
Locate a service with the given name.
|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
locate
@Inject public ConfigurationServiceLocator(play.Configuration configuration)
public java.util.concurrent.CompletionStage<java.util.Optional<java.net.URI>> locate(String name, Descriptor.Call<?,?> serviceCall)
ServiceLocator
locate
in interface ServiceLocator
name
- The name of the service.serviceCall
- The service call descriptor that this lookup is for.public <T> java.util.concurrent.CompletionStage<java.util.Optional<T>> doWithService(String name, Descriptor.Call<?,?> serviceCall, java.util.function.Function<java.net.URI,java.util.concurrent.CompletionStage<T>> block)
ServiceLocator
ServiceLocator.locate(String, Descriptor.Call)
when possible as it will allow the
service locator to add in things like circuit breakers.
It is required that the service locator will, based on the service call circuit breaker configuration, wrap the
invocation of the passed in block with a circuit breaker.doWithService
in interface ServiceLocator
name
- The name of the service.serviceCall
- The service call descriptor that this lookup is for.block
- A block of code that takes the URI for the service, and returns a future of some work done on the
service. This will only be executed if the service was found.