Ivy Protocol

Warning

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.

Configuration

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

Description

org.ops4j.pax.url.ivy.settings

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

org.ops4j.pax.url.ivy.localRepository

optional; the path to local repository directory; see below

org.ops4j.pax.url.ivy.sharedRepository

optional; the path to shared repository directory; see below

org.ops4j.pax.url.ivy.repositories

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

org.ops4j.pax.url.ivy.proxySupport

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

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.