This is an automated email from the ASF dual-hosted git repository. tsato pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k-examples.git
The following commit(s) were added to refs/heads/main by this push: new 1ea2905 fix errors and add context to amqp example (#55) 1ea2905 is described below commit 1ea29054e6865bb18ec4ffa35acc90d221d1774f Author: Kuthumi Pepple <kuthumipep...@gmail.com> AuthorDate: Thu Jun 23 03:17:40 2022 +0100 fix errors and add context to amqp example (#55) --- .../amqp/AmqpConnectionBeanProducer.java | 2 +- generic-examples/amqp/README.md | 46 +++++++++++++++++++++- generic-examples/amqp/amqp.groovy | 2 +- generic-examples/amqp/artemis/README.md | 3 +- 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/generic-examples/amqp/AmqpConnectionBeanProducer.java b/generic-examples/amqp/AmqpConnectionBeanProducer.java index c766426..5b5a7aa 100644 --- a/generic-examples/amqp/AmqpConnectionBeanProducer.java +++ b/generic-examples/amqp/AmqpConnectionBeanProducer.java @@ -27,6 +27,6 @@ public class AmqpConnectionBeanProducer extends org.apache.camel.builder.RouteBu from("timer:foo?period=1000") .setBody() .simple("Hello Camel K") - .to("amqp:queue:example?exchangePattern=InOnly") + .to("amqp:queue:example?exchangePattern=InOnly"); } } diff --git a/generic-examples/amqp/README.md b/generic-examples/amqp/README.md index a23983d..4d2b075 100644 --- a/generic-examples/amqp/README.md +++ b/generic-examples/amqp/README.md @@ -1,5 +1,47 @@ # AMQP Camel K examples -Find useful examples about how to use AMQP in a Camel K integration. +These examples demonstrate how to use AMQP in a Camel K integration. -You may find useful instructions [how to install a JMS/AMQP Broker on Kubernetes](./artemis/) for demo purposes. \ No newline at end of file +You can find more information about Apache Camel and Apache Camel K on the [official Camel website](https://camel.apache.org). + +## Before you begin + +Read the general instructions in the [root README.md file](/README.md) for setting up your environment and the Kubernetes cluster before looking at this example. + +Make sure you've read the [installation instructions](https://camel.apache.org/camel-k/latest/installation/installation.html) for your specific +cluster before starting the example. + +## Additional Requirements for running this example + +**An AMQP Broker**: needed MoM for running the examples. For installation instructions, see [how to install a JMS/AMQP Broker on Kubernetes](./artemis/) for demo purposes. + +## Understanding the Example + +- [`AmqpConnectionBeanProducer.java`](./AmqpConnectionBeanProducer.java) defines a route that generates a message every second and sends it to an amqp queue. +- [`AmqpConnectionBeanConsumer.java`](./AmqpConnectionBeanConsumer.java) consumes messages from the amqp queue, logs them to the logger using the info level +- [`amqp.groovy`](./amqp.groovy) generates a message every second and sends to amqp topic +- [`amqp.properties`](./amqp.properties) holds required credentials to connect to broker. + +## Running the Example +You should have an amqp broker running in a namespace, if not, see [how to install a JMS/AMQP Broker on Kubernetes](./artemis/) + +To create a secret for your credentials, run: +``` +kubectl create secret generic my-amqp --from-file=amqp.properties +``` + +To run an integration that sends message to amqp queue, run: +``` +kamel run AmqpConnectionBeanProducer.java --config secret:my-amqp +``` + +To consume messages from the amqp queue, run: +``` +kamel run AmqpConnectionBeanConsumer.java --dev --config secret:my-amqp +``` +The terminal should show the logged messages: +```console +[1] 2022-06-21 15:44:46,513 INFO [info] (Camel (camel-1) thread #1 - JmsConsumer[example]) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K] +[1] 2022-06-21 15:44:47,513 INFO [info] (Camel (camel-1) thread #1 - JmsConsumer[example]) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K] +[1] 2022-06-21 15:44:48,517 INFO [info] (Camel (camel-1) thread #1 - JmsConsumer[example]) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K] +``` \ No newline at end of file diff --git a/generic-examples/amqp/amqp.groovy b/generic-examples/amqp/amqp.groovy index 73b6320..aebb3fb 100644 --- a/generic-examples/amqp/amqp.groovy +++ b/generic-examples/amqp/amqp.groovy @@ -19,7 +19,7 @@ // // To run this integrations use: // -// kamel run -e BROKER_URL=event-bus-amqp-0-svc.messaging.svc.cluster.local -d camel-amqp examples/amqp.groovy +// kamel run -e BROKER_URL=<service-name>.<namespace>.svc.cluster.local -d camel-amqp amqp.groovy // camel { diff --git a/generic-examples/amqp/artemis/README.md b/generic-examples/amqp/artemis/README.md index 15db404..565fe87 100644 --- a/generic-examples/amqp/artemis/README.md +++ b/generic-examples/amqp/artemis/README.md @@ -4,7 +4,8 @@ This is a very simple example to show how to create a JMS/AMQP broker. **Note**, ## Create a Kubernetes Deployment -You can [install ActiveMQ Artemis on Kubernetes](https://artemiscloud.io/blog/using_operator/) thanks to ArtemisCloud.io. It would be enough to execute step 1, 2 and 3 of the linked blog post. +You can [install ActiveMQ Artemis Operator on Kubernetes](https://artemiscloud.io/docs/tutorials/using_operator/) thanks to ArtemisCloud.io. It would be enough to execute steps 1 and 2 of the linked tutorial post. \ +**Note:** Openshift environments may require some adjustments, see [Installing the AMQ Broker Operator](https://access.redhat.com/documentation/en-us/red_hat_amq/7.4/html/deploying_amq_broker_on_openshift_container_platform/broker-operator-broker-ocp#install-broker-operator-broker-ocp) ## Create an AMQP broker instance