# Package com.google.appengine.spi

Support for alternate implementations of Google App Engine services.

See: Description

- Class Summary
  Class | Description
  --- | ---
  FactoryProvider<I> | A base class for service factory creation that can be registered with the ProviderRegistry.
  ServiceFactoryFactory | This class is not intended for end users.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  ServiceProvider | Specifies the precedence that `ServiceFactoryFactory` gives to the annotated `FactoryProvider`.

## Package com.google.appengine.spi Description

Support for alternate implementations of Google App Engine services. This package is not intended for use by application code.

If, for example, vendor X wanted to provide an alternate implementation of the DatastoreService, they would have to provide an implementation of `com.google.appengine.api.datastore.IDatastoreServiceFactory` that returns their implementation for `com.google.appengine.api.datastore.DatastoreService`.

Factory implementations are acquired using a `FactoryProvider` registered with `ServiceFactoryFactory`. These providers are typically discovered using `ServiceLoader`; see `ServiceFactoryFactory` for details.

This package include utilities (`ServiceProvider` and `ServiceProviderProcessor`) for inserting the appropriate "service" entries into a jar file.