此内容没有您所选择的语言版本。

12.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 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.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat