Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 1. Deploying using an OSGi bundle

Abstract

The usual and most common method of deploying into Apache Karaf is using an OSGi bundle.

1.1. OSGi overview

Apache Karaf is structured to use OSGi functionality. For more information about the structure of Apache Karaf see Chapter 2, Introduction to OSGi.

An OSGi bundle is a collection of JAR files with configuration files, bundled up into a JAR. For more information about creating OSGi bundles see Chapter 3, Building an OSGi Bundle.

1.2. Prerequisites

Before following the instructions make sure that you have completed the following prerequisites:

1.3. Preparing the OSGi bundle

For this example we will use a quickstart, which is a ready-prepared bundle. Quickstarts can be found in FUSE_HOME/quickstarts

To find out more about how to build your own OSGi bundle, see Section 3.1, “Generating a Bundle Project” .

1.4. Deploying the OSGi bundle

The OSGi bundle is deployed into a running Apache Karaf instance.

  1. Start Apache Karaf from the bin direction by executing the ./karaf script in the FUSE_HOME/bin/ directory.

    You will see the prompt:

    karaf@root()>
  2. On a separate terminal, navigate to the FUSE_HOME/quickstarts/beginner/camel-log directory. camel-log is the name of the quickstart we will use to create a bundle.
  3. Compile the camel-log quickstart using Maven:

    $  mvn clean install
  4. Return to the Karaf terminal and install the project:

    karaf@root()> osgi:install -s mvn:org.jboss.fuse.quickstarts/beginner-camel-log/7.0.0.fuse-000145-redhat-1

    You will see a bundle ID returned:

    Bundle ID: 228

    This is a unique identifier for this bundle on this instance of Apache Karaf

  5. To see the output of project, look in the log file at FUSE_HOME/data/log/fuse.log The output will look like this:
12:07:34.542 INFO [Camel (log-example-context) thread #1 - timer://foo] >>> Hello from Fuse based Camel route! :
12:07:39.530 INFO [Camel (log-example-context) thread #1 - timer://foo] >>> Hello from Fuse based Camel route! :
12:07:44.530 INFO [Camel (log-example-context) thread #1 - timer://foo] >>> Hello from Fuse based Camel route! :

For more information about deploying OSGi bundles, see Chapter 5, Hot deployment vs manual deployment.