This section explains Apache Ivy and how to use it with the Sentinel VoLTE SDK. |
What is Apache Ivy ?
The Sentinel VoLTE SDK uses Apache Ivy as its “dependency manager”. Ivy is used to describe what modules publish, and depend on. This allows repeatable builds to be made and maintained.
For more about Ivy itself, please see http://ant.apache.org/ivy/.
Use of Ivy in the Sentinel VoLTE SDK
Here are some details of how Ivy works with the the Sentinel VoLTE SDK:
-
Modules are built and published into a local filesystem-based repository, inside the user’s SDK install directory. The supplied
build.xml
files in a module provide default behaviour. -
The supplied Ivy repository information, for publication and resolution, is located in the
build/ivy
directory. -
The OpenCloud-supplied tools all read from one or more Ivy repositories and then read/write state in the Rhino SLEE. Once modules have been built and published, the various tools in the SDK can operate on the modules.
-
The organization of an SDK determines which repositories should be used. Artifacts with an Ivy organization of ‘opencloud’ are resolved from OpenCloud repositories.
-
The SDK organization is not ‘opencloud’; so when artifacts are published or resolved, they are published to (or resolved) from a repository stored in the user’s own local filesystem.
-
This local filesystem-based repository is stored under the user’s
~/.ivy2/opencloud-local/
directory. Artifacts that are published locally (using thepublish-local
, orpublish-local-branch
build targets) live in subdirectories under that directory, based on the Ivy organization of the publisher.For example, if the SDK organization is “rocket” then artifacts published will reside under the
~/.ivy2/opencloud-local/rocket
directory.
Cache settings
Ivy uses an artifact cache to speed up builds. This is useful to stop large artifacts being downloaded multiple times during a build, as well as store them for some time across builds.
The Ivy cache is located in the ~/.ivy2/cache
directory.
The cache settings can be found in the SDK’s build/ivy/ivysettings.xml
file.
All OpenCloud supplied artifacts use the “release-cache” settings, and as such are valid for one day within a user’s build environment. This means that the cached artifact can be used for one day. After that, it will be re-downloaded.
Useful Ivy commands
Here are a couple of Ivy commands that are useful with the Sentinel VoLTE SDK:
Command | What it does | When you might use it |
---|---|---|
|
removes all artifacts from the cache |
when a build is not working for unknown reasons, to reset the cache and try again |
|
produces an HTML report of all dependencies |
when something is not retrieving or is being evicted, for some unknown reason |
Repositories
OpenCloud serves repositories for various products from some web sites, using a product called Artifactory. OpenCloud’s Artifactory server is configured to let authorised users (with validated name and password) access various repositories. For the Sentinel VoLTE product, these include:
Repository URL | Purpose |
---|---|
https://repo.opencloud.com/artifactory/opencloud-sentinel-volte-2.7.0/ |
serves OpenCloud artifacts for the Sentinel VoLTE SDK |
https://repo.opencloud.com/artifactory/opencloud-sentinel-volte-2.7.0-third-party/ |
serves third party artifacts for the Sentinel VoLTE SDK |
Using proxies and local servers
Advanced users may want to consider:
|