This component provides AMQP 1.0 producer and consumer support via a bridging layer implementing the Vert.x event bus MessageProducer and MessageConsumer APIs over the top of vertx-proton.

Warning
this module has the tech preview status, this means the API can change between versions.

Using Vert.x AMQP Bridge

To use Vert.x AMQP Bridge, add the following dependency to the dependencies section of your build descriptor:

  • Maven (in your pom.xml):

<dependency>
  <groupId>io.vertx</groupId>
  <artifactId>vertx-amqp-bridge</artifactId>
  <version>3.3.0.CR2</version>
</dependency>
  • Gradle (in your build.gradle file):

compile io.vertx:vertx-amqp-bridge:3.3.0.CR2

Sending a Message

Here is a simple example of creating a MessageProducer and sending a message with it. First, an AmqpBridge is created and started to establish the underlying AMQP connection, then when this is complete the producer is created and a message sent using it. You can also optionally supply AmqpBridgeOptions when creating the bridge in order to configure various options, such as SSL connections.

import io.vertx.groovy.amqpbridge.AmqpBridge
def bridge = AmqpBridge.create(vertx)
// Start the bridge, then use the event loop thread to process things thereafter.
bridge.start("localhost", 5672, { res ->
  // Set up a producer using the bridge, send a message with it.
  def producer = bridge.createProducer("myAmqpAddress")

  def amqpMsgPayload = [:]
  amqpMsgPayload.body = "myStringContent"

  producer.send(amqpMsgPayload)
})

Receiving a Message

Here is a simple example of creating a MessageConsumer and registering a handler with it. First, an AmqpBridge is created and started to establish the underlying AMQP connection, then when this is complete the consumer is created and a handler registered that prints the body of incoming AMQP messages.

import io.vertx.groovy.amqpbridge.AmqpBridge
def bridge = AmqpBridge.create(vertx)
// Start the bridge, then use the event loop thread to process things thereafter.
bridge.start("localhost", 5672, { res ->
  // Set up a consumer using the bridge, register a handler for it.
  def consumer = bridge.createConsumer("myAmqpAddress")
  consumer.handler({ vertxMsg ->
    def amqpMsgPayload = vertxMsg.body()
    def amqpBody = amqpMsgPayload.body

    println("Received a message with body: ${amqpBody}")
  })
})