blob: 5ca702a90c6e35bbfefb4445f144aa7564905dd0 [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Apache Karaf JMS Example
## Abstract
The JMS section of the user guide shows how to create connection factories and manipulate JMS using the Apache Karaf provided `jms:*` commands and related.
This example shows how to use the JMS Karaf feature from a developer perspective. It directly uses a JMS `ConnectionFactory` service in code that you can implement to interact with JMS.
## Artifacts
* **karaf-jms-example-command** is a command bundle using JMS code with a `ConnectionFactory` service.
* **karaf-jms-example-features** is a features repository used for the deployment.
## Build
The build uses Apache Maven. Simply use:
```
mvn clean install
```
## Features and Deployment
On a running Karaf instance, register the features repository:
```
karaf@root()> feature:repo-add mvn:org.apache.karaf.examples/karaf-jms-example-features/LATEST/xml
```
Then, you can install the `karaf-jms-example-activemq` feature:
```
karaf@root()> feature:install karaf-jms-example-activemq
```
It will install an Apache ActiveMQ in your running Karaf instance, providing a complete embedded ActiveMQ broker, listening on port 61616 by default.
Then, you can install the `karaf-jms-example-connectionfactory` feature:
```
karaf@root()> feature:install karaf-jms-example-connectionfactory
```
This feature is the "client" part: it uses the Karaf `jms` feature and related (like `pax-jms`) to create a `ConnectionFactory` service to the embedded ActiveMQ instance.
Finally, the `karaf-jms-example-command` feature installs a shell commands bundle:
```
karaf@root()> feature:install karaf-jms-example-command
```
## Usage
The `karaf-jms-example-command` feature installed a bundle providing `example:*` commands.
You can use the `example:send` command to send a message to the ActiveMQ broker:
```
karaf@root()> example:send TEST FOO
```
where `TEST` is the JMS queue name and `FOO` the JMS message payload.
Then, you can consume the latest message in a queue using `example:consume`:
```
karaf@root()> example:consume TEST
```