Ivy Protocol


This documentation is not yet backed by an implementation!!!!

Ivy protocol enables you access to Ivy repository artifacts based on well organization, name, revision and type.

In the process of resolving the artifact the handler will make use of a local repository, shared repositories and any set of remote repositories.

Syntax ( see #examples )

ivy-uri := 'ivy:' [ ivy-settings-url '!' ] organization '/' name '/' revision [ '?' artifacts ] ]
ivy-settings-url := < rfc2396 uri > ; an url that points to a Ivy Settings file
organization := < ivy organization > ; organization of the Ivy module
name := < ivy module name > ; name of the ivy module
revision := < ivy version > ; revision of ivy module
artifacts := artifact [ ',' artifact ] ; list of artifacts in the module
artifact := artifactName ['#' extension] [ '@' type ] ; the module artifact
type := < ivy type> ; type of ivy artifact
extension := < ivy extension > ; The extension of the ivy artifact.


The service can be configured in two ways: via configuration admin if available and via framework/system properties where the configuration via config admin has priority.

Option key



optional; The URL of the ivy-settings.xml file. Default ./ivy-settings.xml


optional; the path to local repository directory; see below


optional; the path to shared repository directory; see below


optional; a comma separated list for repositories urls; see below


optional; true/false if the proxy support is enabled . Default true.

Ivy Settings.xml

Ivy Settings file is required to resolve artifacts. This can either be specified in the URL itself, or via a property see above

Local repository

The local repository will be resolved by using the following resolution:

  1. looks for the #configuration property org.ops4j.pax.url.ivy.localRepository;
  2. falls back to ${user.home}/.ivy/repository.

Shared Repository

In Ivy, teams are likely to share a repository to avoid that every team member is hitting the Internet for every artifact used. It is also common that the access to the external/Internet repositories are disabled, and it is expected that the resolution is kept on the intranet, for instance goes to a network-mounted file system.

The local repository will be resolved by using the following resolution:

  1. looks for the #configuration property org.ops4j.pax.url.ivy.sharedRepository;
  2. falls back to ${user.home}/.ivy/repository.


Repositories is a comma separated list of repositories to be used. If repository access requests authentication the user name and password must be specified in the repository url as for example http://user:password@repository.ops4j.org/ivy.

Repositories resolution:

  1. looks for the #configuration property org.ops4j.pax.url.ivy.repositories.