Package org.eclipse.aether.impl
Class DefaultServiceLocator
- java.lang.Object
-
- org.eclipse.aether.impl.DefaultServiceLocator
-
- All Implemented Interfaces:
ServiceLocator
public final class DefaultServiceLocator extends Object implements ServiceLocator
A simple service locator that is already setup with all components from this library. To acquire a complete repository system, clients need to add an artifact descriptor reader, a version resolver, a version range resolver and optionally some repository connector and transporter factories to access remote repositories. Once the locator is fully populated, the repository system can be created like this:RepositorySystem repoSystem = serviceLocator.getService( RepositorySystem.class );
Note: This class is not thread-safe. Clients are expected to create the service locator and the repository system on a single thread.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultServiceLocator.ErrorHandlerA hook to customize the handling of errors encountered while locating a service implementation.
-
Constructor Summary
Constructors Constructor Description DefaultServiceLocator()Creates a new service locator that already knows about all service implementations included this library.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> DefaultServiceLocatoraddService(Class<T> type, Class<? extends T> impl)Adds an implementation class for a service.<T> TgetService(Class<T> type)<T> List<T>getServices(Class<T> type)voidsetErrorHandler(DefaultServiceLocator.ErrorHandler errorHandler)Sets the error handler to use.<T> DefaultServiceLocatorsetService(Class<T> type, Class<? extends T> impl)Sets the implementation class for a service.<T> DefaultServiceLocatorsetServices(Class<T> type, T... services)Sets the instances for a service.
-
-
-
Constructor Detail
-
DefaultServiceLocator
public DefaultServiceLocator()
Creates a new service locator that already knows about all service implementations included this library.
-
-
Method Detail
-
setService
public <T> DefaultServiceLocator setService(Class<T> type, Class<? extends T> impl)
Sets the implementation class for a service. The specified class must have a no-arg constructor (of any visibility). If the service implementation itself requires other services for its operation, it should implementServiceto gain access to this service locator.- Type Parameters:
T- The service type.- Parameters:
type- The interface describing the service, must not benull.impl- The implementation class of the service, must not benull.- Returns:
- This locator for chaining, never
null.
-
addService
public <T> DefaultServiceLocator addService(Class<T> type, Class<? extends T> impl)
Adds an implementation class for a service. The specified class must have a no-arg constructor (of any visibility). If the service implementation itself requires other services for its operation, it should implementServiceto gain access to this service locator.- Type Parameters:
T- The service type.- Parameters:
type- The interface describing the service, must not benull.impl- The implementation class of the service, must not benull.- Returns:
- This locator for chaining, never
null.
-
setServices
public <T> DefaultServiceLocator setServices(Class<T> type, T... services)
Sets the instances for a service.- Type Parameters:
T- The service type.- Parameters:
type- The interface describing the service, must not benull.services- The instances of the service, may benullbut must not containnullelements.- Returns:
- This locator for chaining, never
null.
-
getService
public <T> T getService(Class<T> type)
- Specified by:
getServicein interfaceServiceLocator
-
getServices
public <T> List<T> getServices(Class<T> type)
- Specified by:
getServicesin interfaceServiceLocator
-
setErrorHandler
public void setErrorHandler(DefaultServiceLocator.ErrorHandler errorHandler)
Sets the error handler to use.- Parameters:
errorHandler- The error handler to use, may benullto ignore/swallow errors.
-
-