# Package org.hibernate.search.engine.service.spi

Classes offering a service infrastructure for Search.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Service | Marker interface for services.
  ServiceManager | The `ServiceManager` is used to manage services in and runtime discovery of service implementations in the scope of a single `SearchFactory`.
  Startable | Lifecycle contract for services which wish to be notified when it is time to start.
  Stoppable | Lifecycle contract for services which wish to be notified when it is time to stop.

- Class Summary
  Class | Description
  --- | ---
  ServiceReference<S extends Service> | A auto-closable reference to a `Service`.

## Package org.hibernate.search.engine.service.spi Description

Classes offering a service infrastructure for Search. Entry point is the `ServiceManager` which allows to retrieve and release services. Services can be provided programmatically or discovered via Java's `ServiceLoader` mechanism. In order to be a service an interface must extend the `Service` interface. Optionally a service implementation can also implement `Startable` and/or `Stoppable` in order to get life cycle callbacks.

Author:
  Hardy Ferentschik

Copyright © 2006-2017 Red Hat, Inc. All Rights Reserved