Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 5. Building a FAB

Abstract

A FAB is essentially a JAR file built using Maven, where the Maven pom.xml file declares the complete set of dependencies for the JAR. It is recommended that you adopt FABs as your standard unit of deployment for the Red Hat JBoss Fuse container, because FABs are easy to use and less likely to fail at deploy time (for example, due to missing dependencies). For more background information, see Chapter 6, Deploying a FAB.

5.1. Generating a FAB Project

Generating FAB projects with Maven archetypes

To help you get started quickly, you can invoke a Maven archetype to generate the initial outline of a Maven project (a Maven archetype is analogous to a project wizard). Because FABs do not require any special configuration (apart from the presence of a pom.xml file, which is always present in a Maven-generated JAR), you can use almost any Maven archetype, as long as the generated Maven project has the jar packaging type.

Archetypes

The following Maven archetypes are useful for generating Apache Camel projects:
camel-archetype-java
Demonstrates a route defined using the Java DSL.
camel-archetype-blueprint
Demonstrates a route defined using the XML DSL in an OSGi blueprint file.
camel-archetype-activemq
Demonstrates how to use a message broker in a route.
camel-archetype-component
Demonstrates how to define a custom Apache Camel component.

camel-archetype-blueprint archetype

For example, consider an archetype for building an Apache Camel project. The camel-archetype-blueprint archetype creates a project that demonstrates a simple Apache Camel route written in the XML DSL using the Blueprint injection framework. To generate a Maven project with the coordinates, GroupId:ArtifactId:Version, enter the following command:
mvn archetype:generate
-DarchetypeGroupId=org.apache.camel.archetypes
-DarchetypeArtifactId=camel-archetype-blueprint
-DarchetypeVersion=2.10.0.redhat-60024
-DgroupId=GroupId
-DartifactId=ArtifactId
-Dversion=Version
Note
The arguments to the mvn command are shown on separate lines purely for the sake of readability. When you are entering the command at a command prompt, you must ensure that all of the parameters are on the same line.

Building the FAB

The archetype creates a project in a new directory whose name is that of the specified artifact ID, ArtifactId. To build the FAB defined by the new project, open a command prompt, go to the project directory (that is, the directory containing the pom.xml file), and enter the following Maven command:
mvn install
The effect of this command is to compile all of the Java source files, to generate a FAB JAR under the ArtifactId/target directory, and then to install the generated JAR in the local Maven repository.