This section explains Apache Ivy and how to use it with the Sentinel Express SDK. |
What is Apache Ivy ?
The Sentinel Express 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 Express SDK
Here are some details of how Ivy works with the the Sentinel Express 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 read from the Ivy repository provided with the SDK located in
repositories/opencloud-offline-mirror
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 filesystem-based repository is stored under the user’s
~/.ivy2/opencloud-local/
directory. Artifacts that are published (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.
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.
Useful Ivy commands
Here are a couple of Ivy commands that are useful with the Sentinel Express 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 |
SDK Ivy Repository
Previous to SDK version 4.1 OpenCloud served repositories for various products from some web sites, using a product called Artifactory. As of SDK version 4.1 these are now included
in the SDK located in repositories/opencloud-offline-mirror
.