Repository

Jazz® includes an extensible repository that provides a central location for tool-specific information. Data is stored in the repository as top-level objects called items. A single repository can contain multiple project areas and the artifacts that are related to each project area.

The repository includes auditable item types, which maintain a history of item creation and subsequent modifications for audit purposes. The audit trail includes a record of past states of the item, the user who saved the item, and the time of the change. For item types that do not require audit history, the repository retains only the latest state of the item.

Each item in the repository has a unique identifier, which can be used as a key to retrieve it. These universally unique identifiers (UUIDs) are applied to items, item states, and content values. Therefore when content is replicated from one repository to another it retains its unique identity.

The repository component provides server-side API methods for creating, retrieving, updating, and deleting items in the repository. The server-side API includes operations for running complex queries for items in the repository, based on their properties and relationships.

Jazz also provides a feed service that is backed by the repository. Components report change events using a server-side API to announce events, such as the completion of a build or a delivery to a CCM stream. Change events are recorded in the repository. The feed service publishes a web feed (either Atom or RSS), suitable for parsing by a standards-compliant feed reader.

The repository is supported by a relational database. Jazz currently supports the following relational database management systems:
  • Apache Derby, an open source relational database system most suited for small repositories.
  • IBM® Db2®, a commercially available product which offers solutions for repositories of various sizes.
  • Oracle.
  • SQL Server.

Creating, updating, and deleting items in a repository can only be done by using the server-side mechanisms. The repository provides a client-side item manager that helps coordinate client elements, such as views and editors, with items in the repository.