An OSGi repository is generic description of a resource and its dependencies. (The OSGi Bundle Repository specification refers to a bundle as a resource.) The resource description is used to discover applicable resources and deploy those resources without causing installation errors due to missing dependencies.
In addition to enabling bundle discovery, you can use an OBR to simplify bundle provisioning by automating the processing of deployment-related bundle requirements. The OSGi Framework processes bundle requirements, including resolving imported packages, required bundles, and execution environments. However the OSGi Framework only manages these requirements after the bundles are installed locally. An OBR repository server is not necessary, since all functionality can reside on the client side.
Figure 3.1 shows the relationship between the entities in an OBR:
Repository Admin
— Service to access a federation of repositories.
Repository
— Provides access to a set of resources defined in a
repository file.
Resource
— Description of a bundle or an artifact that can be
installed.
Capability
— Named set of properties.
Requirement
— Assertion on a resource's capabilities.
Resolver
— Object to find dependent and extensions resources and
install them.
Repository file
— XML file containing the metadata of resources and
referrals to other repository files.