- Documentation (2.5.1-local-20221102182706)
- Release Notes
- Tutorials
- Reference
- Introduction
- Settings Files
- Ivy Files
- Ant Tasks
- artifactproperty
- artifactreport
- buildlist
- buildnumber
- buildobr
- cachefileset
- cachepath
- checkdepsupdate
- cleancache
- configure
- convertmanifest
- convertpom
- deliver
- dependencytree
- findrevision
- fixdeps
- info
- install
- listmodules
- makepom
- post resolve tasks
- publish
- report
- repreport
- resolve
- resources
- retrieve
- settings
- var
- Using standalone
- OSGi
- Developer doc
OSGi Bundle Repository
Tag |
obr |
Handle latest |
yes |
Handle publish |
no |
[since 2.3]
This resolver is one of the resolver which supports OSGi™ dependencies. A part of the OSGi specification defines OBR (OSGi Bundle Repository). OBR aggregates the OSGi metadata of every bundle included in a repository. So contrary to the other resolvers, this resolver needs to get the descriptor of the repository (an obr.xml) before starting to resolve modules.
Attributes
This resolver shares the common attributes of composite resolvers.
Attribute | Description | Required |
---|---|---|
repoXmlURL |
the URL of the obr.xml to load. |
Yes |
repoXmlFile |
the local path of the obr.xml to load. |
Yes |
requirementStrategy |
defines how strict should be the OSGi resolution. Can be one of |
No, default to |
metadataTtl |
the time in milliseconds the obr.xml is considered up to date |
No, default to 3600000 (1 hour) |
forceMetadataUpdate |
force the update of the obr.xml without checking its freshness |
No, default to false |
The requirement strategy is defining how the resolver should behave when facing several choices. In the OSGi dependency model, an Import-Package
requirement can be satisfied by several different bundles. So when resolving such requirement, Ivy will first look into the already resolved bundles if one provides that package. If it fails to find one, then two behaviours can occur:
-
if the requirement strategy is
first
, among the bundles satisfying the requirement, it will choose the first one. A warning will be logged about the choice Ivy has to arbitrarily do. -
if the requirement strategy is
noambiguity
, Ivy will make the resolution fail.
Examples
<obr name="felix-repo" repoXmlURL="http://felix.apache.org/obr/releases.xml"/>
A simple repository configured to use the Felix OBR.
<obr name="my-osgi-repo" repoXmlFile="${ivy.settings.dir}/obr/obr.xml" requirementStrategy="first"/>
A local repository which is trusted to always provide correct dependency for the Import-Package
requirements.