Ce contenu n'est pas disponible dans la langue sélectionnée.

6.2. FABs and Features


Overview

FABs have been designed to integrate smoothly with Apache Karaf features. Although there is some overlap in the capabilities of FABs and features, FABs cannot replace features completely. There are some cases, involving third-party dependencies, where figuring out the correct set of dependencies is inherently difficult and unavoidably it remains a manual process. Features remain the ideal mechanism for encapsulating these kinds of hand-crafted dependencies.

Requiring features

A FAB can be configured to require specific features, so that the required features are automatically installed at deploy time. For details of how to configure this, see the section called “Requiring features”.

Automatic feature detection

Automatic feature detection is a special case of requiring features. When the FAB runtime scans an embedded pom.xml file, it automatically maps certain Maven dependencies to features and installs the corresponding feature instead of the Maven dependency.
For example, if the FAB runtime finds a Maven dependency on the the org.apache.camel/camel-jetty artifact, it will automatically install the camel-jetty feature.

Respecting features

The basic FAB model of deployment is rather aggressive: the FAB runtime walks the tree of Maven transitive dependencies, installing (and if necessary, also downloading) all of the dependencies that it finds along the way. This deployment model must be softened, however, if FABs are to integrate properly with features.
Features are manually constructed deployment units and, in many cases, they include combinations of bundles that an automated tool would never be able to figure out. For this reason, it is better if the FAB runtime respects the judgement of the developer who constructed the feature and does not try to install dependencies for bundles belonging to a feature. To avoid clobbering feature dependencies, the FAB runtime applies the following rule: by default, FAB does not try to install dependencies for a provided bundle, if that bundle is already installed.
This rule ensures that the FAB runtime does not try to second-guess the dependencies installed by a feature.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat