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 and Description
    --- | ---
    `static class` | `DefaultServiceLocator.ErrorHandler` A hook to customize the handling of errors encountered while locating a service implementation.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultServiceLocator()` Creates a new service locator that already knows about all service implementations included this library.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> DefaultServiceLocator` | `addService(Class<T> type, Class<? extends T> impl)` Adds an implementation class for a service.
    `<T> T` | `getService(Class<T> type)` Gets an instance of the specified service.
    `<T> List<T>` | `getServices(Class<T> type)` Gets all available instances of the specified service.
    `void` | `setErrorHandler(DefaultServiceLocator.ErrorHandler errorHandler)` Sets the error handler to use.
    `<T> DefaultServiceLocator` | `setService(Class<T> type, Class<? extends T> impl)` Sets the implementation class for a service.
    `<T> DefaultServiceLocator` | `setServices(Class<T> type, T... services)` Sets the instances for a service.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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 implement `Service` to gain access to this service locator.
      Type Parameters:
        `T` - The service type.
      Parameters:
        `type` - The interface describing the service, must not be `null`.
        `impl` - The implementation class of the service, must not be `null`.
      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 implement `Service` to gain access to this service locator.
      Type Parameters:
        `T` - The service type.
      Parameters:
        `type` - The interface describing the service, must not be `null`.
        `impl` - The implementation class of the service, must not be `null`.
      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 be `null`.
        `services` - The instances of the service, may be `null` but must not contain `null` elements.
      Returns:
        This locator for chaining, never `null`.

    - #### getService

          public <T> T getService(Class<T> type)

      Description copied from interface: `ServiceLocator`
      Gets an instance of the specified service.
      Specified by:
        `getService` in interface `ServiceLocator`
      Type Parameters:
        `T` - The service type.
      Parameters:
        `type` - The interface describing the service, must not be `null`.
      Returns:
        The service instance or `null` if the service could not be located/initialized.

    - #### getServices

          public <T> List<T> getServices(Class<T> type)

      Description copied from interface: `ServiceLocator`
      Gets all available instances of the specified service.
      Specified by:
        `getServices` in interface `ServiceLocator`
      Type Parameters:
        `T` - The service type.
      Parameters:
        `type` - The interface describing the service, must not be `null`.
      Returns:
        The (read-only) list of available service instances, never `null`.

    - #### setErrorHandler

          public void setErrorHandler(DefaultServiceLocator.ErrorHandler errorHandler)

      Sets the error handler to use.
      Parameters:
        `errorHandler` - The error handler to use, may be `null` to ignore/swallow errors.

Copyright © 2010-2013 The Eclipse Foundation. All Rights Reserved.