Note 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 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 the publish-local, or publish-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 Express SDK:

Command What it does When you might use it

ant ivy-cleancache

removes all artifacts from the cache

when a build is not working for unknown reasons, to reset the cache and try again

ant ivy-report

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 Express product, these include:

Repository URL Purpose

https://repo.opencloud.com/artifactory/opencloud-sentinel-express-2.8.0/

serves OpenCloud artifacts for the Sentinel Express SDK

https://repo.opencloud.com/artifactory/opencloud-sentinel-express-2.8.0-third-party/

serves third party artifacts for the Sentinel Express SDK

 

Tip
Using proxies and local servers

Advanced users may want to consider:

  • using a network local Artifactory caching proxy, to speed up (and potentially cache longer) the resolution of OpenCloud artifacts

  • publishing their own artifacts into a repository server such as Artifactory.

Previous page Next page