Chapter 4. Locating Dependencies

Abstract

In Red Hat JBoss Fuse, Maven is the primary mechanism for locating artifacts and dependencies, both at build time and at run time. Normally, Maven requires Internet connectivity, so that dependencies can be downloaded from remote repositories on demand. But, as explained here, it is also possible to provide dependencies locally, so that the need for Internet connectivity is reduced.

4.1. Understanding Where Red Hat JBoss Fuse Bundles are Stored

Overview

Red Hat JBoss Fuse uses Maven as the primary mechanism for locating features, bundles, and their dependencies. Maven is an inherently online tool and will automatically search remote repositories if it cannot locate a dependency in a local repository. Most of the repositories Maven uses by default are accessed through the Internet. A few of them are also public repositories.
It is important to understand where the bundles for the JBoss Fuse features are stored to make sure you understand the connectivity requirements for using JBoss Fuse. It is also useful to know this information so that you understand the potential risks involved. If your systems are not able to connect to the public Internet, you can create either request a copy of the JBoss Fuse off-line repository or build a repository to be hosted on your local network.

Core Red Hat JBoss Fuse features

If you start up a JBoss Fuse console and enter the features:list command 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 immediately after installing JBoss Fuse, the installed features are the core JBoss Fuse features. These core features and all of their dependencies are provided in the JBoss Fuse installation under the EsbInstallDir/system directory.
All of the core features are contained locally to the installation. Maven will not need to access a network to search for anything.

Optional Red Hat JBoss Fuse features

If you run features:list immediately after installing JBoss Fuse, the features listed as uninstalled are the optional JBoss Fuse features. The optional features are not provided in the system repository and must be downloaded over a network connection.
The default configuration for a standalone container will look for these in the FuseSource repositories first. If it cannot find some artifacts, it will then begin looking in other repositories such as Maven central and SpringSource's repositories.

Custom offline repository

If you are working in an environment that does not allow access to the Internet, you need to make sure that all of the JBoss Fuse features you require are available 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 Section 4.5, “Generating a Custom Offline Repository”.