Introduction
The core services provided by Shale are packaged in a series of
JAR files, so that applications not utiizing some of the optional
services need not include them. For each service, the APIs in
particular Java packages are intended for public use by application
developers, while other packages represent the internal implementation
of Shale features, and would only be accessed directly if you intend to
modify Shale's standard functionality. In the tables below, the
intended target audience of each package is described by one of the
following terms:
- Application - Applications based on Shale may
depend on APIs provided by this package. In general,
such APIs will focus on avoiding backwards incompatble
changes as they evolve.
- Framework - Developers who wish to extend or
modify the default implementation of Shale features
may depend on APIs provided by this package. Stability
of APIs across releases will still be a goal, but
ongoing evolution will likely lead to some incompatible
changes.
- Private - This package is not intended for public
use by developers, and its APIs are subject to change
in later releases at any time.
In addition to the intent described above, each package is also
annotated with a stability rating, which is an indication of the
expected rate of future change, described by one of the following
terms:
- Private - This package is not intended for public
use by developers, and its APIs are subject to change
in later releases at any time.
- Developing - This package is under active development,
and changes (including backwards incompatible changes) are likely
in future versions.
- Evolving - This package is continuing to be developed,
but changes will generally add new features only, while maintaing
backwards compatibility.
- Stable - This package may continue to be developed,
but offers the highest possible assurance of backwards compatibility
in both public API and in functionality.
- Deprecated - This package contains API that was available
in previous versions, and is maintained (for a short while) for
backwards compatibility purposes. However, dependencies on these
APIs should be migrated appropriately, as at some point in time
the package will be subject to removal.