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

Chapter 10. OSGi Bundle Tutorials


Abstract

This chapter presents tutorials for Apache Camel and Apache CXF applications. Each tutorial describes how to generate, build, run, and deploy an application as an OSGi bundle.

10.1. Generating and Running an EIP Bundle

Overview

This section explains how to generate, build, and run a complete Apache Camel example as an OSGi bundle, where the starting point code is generated with the help of a Maven archetype.

Prerequisites

In order to generate a project using an Red Hat JBoss Fuse Maven archetype, you must have the following prerequisites:
  • Maven installation—Maven is a free, open source build tool from Apache. You can download the latest version from http://maven.apache.org/download.html (minimum is 3.x).
  • Internet connection—whilst performing a build, Maven dynamically searches external repositories and downloads the required artifacts on the fly. In order for this to work, your build machine must be connected to the Internet.
  • fusesource Maven repository is configured—in order to locate the archetypes, Maven's settings.xml file must be configured with the location of the fusesource Maven repository. For details of how to set this up, see the section called “Adding the Red Hat JBoss Fuse repository”.

Generating an EIP bundle

The karaf-camel-cbr-archetype archetype creates a router project, which is configured to deploy as a bundle. To generate a Maven project with the coordinates, org.fusesource.example:camel-bundle, enter the following command:
mvn archetype:generate \
  -DarchetypeGroupId=io.fabric8.archetypes \
  -DarchetypeArtifactId=karaf-camel-cbr-archetype \
  -DarchetypeVersion=1.2.0.redhat-621084 \
  -DgroupId=org.fusesource.example \
  -DartifactId=camel-bundle \
  -Dversion=1.0-SNAPSHOT \
  -Dfabric8-profile=camel-bundle-profile
Note
The backslash character, \, indicates line continuation on Linux and UNIX operating systems. On Windows platforms, you must omit the backslash character and put all of the arguments on a single line.
The result of this command is a directory, ProjectDir/camel-bundle, containing the files for the generated bundle project.

Running the EIP bundle

To install and run the generated camel-bundle project, perform the following steps:
  1. Build the project—open a command prompt and change directory to ProjectDir/camel-bundle. Use Maven to build the demonstration by entering the following command:
    mvn install
    If this command runs successfully, the ProjectDir/camel-bundle/target directory should contain the bundle file, camel-bundle.jar and the bundle will also be installed in the local Maven repository.
  2. Install prerequisite features (optional)—by default, the camel-core feature and some related features are pre-installed in the OSGi container. But many of the Apache Camel components are not installed by default. To check which features are available and whether or not they are installed, enter the following console command:
    JBossFuse:karaf@root> features:list
    Apache Camel features are identifiable by the camel- prefix. For example, if one of your routes requires the HTTP component, you can make sure that it is installed in the OSGi container by issuing the following console command:
    JBossFuse:karaf@root> features:install camel-http
  3. Install and start the camel-bundle bundle—at the Red Hat JBoss Fuse console, enter the following command to install the bundle from the local Maven repository (see Section A.3, “Mvn URL Handler”):
    JBossFuse:karaf@root> osgi:install -s mvn:org.fusesource.example/camel-bundle/1.0-SNAPSHOT
  4. Provide the route with file data to process—after the route has started, you should find the following directory under your JBoss Fuse installation:
    InstallDir/work/cbr/input
    To initiate content routing in this example, copy the provided data files from the ProjectDir/camel-bundle/src/main/fabric8/data directory into the InstallDir/work/cbr/input directory.
  5. View the output—after a second or two, the data files disappear from the work/cbr/input directory, as the route moves the data files into various sub-directories of the work/cbr/output directory.
  6. Stop the camel-bundle bundle—to stop the camel-bundle bundle, you first need to discover the relevant bundle number. To find the bundle number, enter the following console command:
    JBossFuse:karaf@root> osgi:list
    At the end of the listing, you should see an entry like the following:
    [ 265] [Active     ] [Created     ] [       ] [   80] JBoss Fuse Quickstart: camel-cbr (1.0.0.SNAPSHOT)
    Where, in this example, the bundle number is 265. To stop this bundle, enter the following console command:
    JBossFuse:karaf@root> osgi:stop 265
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.