Fuse ESB uses Maven as the primary mechanism for locating features, bundles, and their dependencies. By default, Maven is an inherently online tool: if Maven is unable to find a required artifact in its local repository, it automatically searches remote repositories on the Internet and downloads the required artifacts on demand.
If you start up a Fuse ESB console and enter the command:
karaf@root> features:list
You will see a complete list of the available features. The first column of the
listing indicates whether each feature is [installed]
or
[uninstalled]
. If you run this command immediatetly after
installing Fuse ESB, the installed features are the core Fuse ESB
features. These core features and all of their dependencies are
provided in the Fuse ESB installation under the following directory:
EsbInstallDir
/system
In other words, none of the core features need to fetched online, they are all provided in the system repository.
If you run features:list
immediately after installing Fuse ESB, the
features listed as uninstalled are the optional Fuse ESB features.
In contrast to the core features, the optional features are not
provided in the system repository. If you try to install one of the optional
features, for example:
karaf@root> features:install camel-jms
The Fuse ESB container now attempts to locate and to download the
camel-jms
feature and, all of its dependencies, from remote
repositories over the Internet.
If you are working in an offline environment, you need to make sure that all of the Fuse ESB features you require are available locally, from internal repositories. One way to achieve this is to create a smaller custom offline repository, which contains just the features and artifacts you need to run your application. For more details, see Generating a Custom Offline Repository.