package examples;
import io.vertx.amqpbridge.AmqpBridge;
import io.vertx.amqpbridge.AmqpBridgeOptions;
import io.vertx.core.Vertx;
import io.vertx.core.eventbus.MessageConsumer;
import io.vertx.core.eventbus.MessageProducer;
import io.vertx.core.json.JsonObject;
import io.vertx.core.net.PfxOptions;
import io.vertx.docgen.Source;
@Source
public class VertxAmqpBridgeExamples {
public void example1(Vertx vertx) {
AmqpBridge bridge = AmqpBridge.create(vertx);
bridge.start("localhost", 5672, res -> {
MessageProducer<JsonObject> producer = bridge.createProducer("myAmqpAddress");
JsonObject amqpMsgPayload = new JsonObject();
amqpMsgPayload.put("body", "myStringContent");
producer.send(amqpMsgPayload);
});
}
public void example2(Vertx vertx) {
AmqpBridge bridge = AmqpBridge.create(vertx);
bridge.start("localhost", 5672, res -> {
MessageConsumer<JsonObject> consumer = bridge.createConsumer("myAmqpAddress");
consumer.handler(vertxMsg -> {
JsonObject amqpMsgPayload = vertxMsg.body();
Object amqpBody = amqpMsgPayload.getValue("body");
System.out.println("Received a message with body: " + amqpBody);
});
});
}
public void example3(MessageProducer<JsonObject> producer) {
JsonObject applicationProperties = new JsonObject();
applicationProperties.put("name", "value");
JsonObject amqpMsgPayload = new JsonObject();
amqpMsgPayload.put("application_properties", applicationProperties);
producer.send(amqpMsgPayload);
}
@SuppressWarnings("unused")
public void example4(JsonObject amqpMsgPayload) {
JsonObject appProps = amqpMsgPayload.getJsonObject("application_properties");
if(appProps != null) {
Object propValue = appProps.getValue("propertyName");
}
}
public void example5(MessageProducer<JsonObject> producer) {
producer.writeQueueFull();
}
public void example6(MessageProducer<JsonObject> producer) {
producer.drainHandler(v -> {
});
}
public void example7(MessageConsumer<JsonObject> consumer) {
consumer.setMaxBufferedMessages(5);
consumer.handler(msg -> {
});
}
public void example8(Vertx vertx) {
AmqpBridgeOptions bridgeOptions = new AmqpBridgeOptions();
bridgeOptions.setSsl(true);
PfxOptions trustOptions = new PfxOptions().setPath("path/to/pkcs12.truststore")
.setPassword("password");
bridgeOptions.setPfxTrustOptions(trustOptions);
AmqpBridge bridge = AmqpBridge.create(vertx, bridgeOptions);
bridge.start("localhost", 5672, "username", "password", res -> {
});
}
public void example9(Vertx vertx) {
AmqpBridgeOptions bridgeOptions = new AmqpBridgeOptions();
bridgeOptions.setSsl(true);
PfxOptions trustOptions = new PfxOptions().setPath("path/to/pkcs12.truststore")
.setPassword("password");
bridgeOptions.setPfxTrustOptions(trustOptions);
PfxOptions keyCertOptions = new PfxOptions().setPath("path/to/pkcs12.keystore")
.setPassword("password");
bridgeOptions.setPfxKeyCertOptions(keyCertOptions);
AmqpBridge bridge = AmqpBridge.create(vertx, bridgeOptions);
bridge.start("localhost", 5672, res -> {
});
}
@SuppressWarnings("unused")
public void example10(MessageProducer<JsonObject> producer) {
JsonObject amqpMsgPayload = new JsonObject();
amqpMsgPayload.put("body", "myRequest");
producer.<JsonObject> send(amqpMsgPayload, res -> {
JsonObject amqpReplyMessagePayload = res.result().body();
});
}
public void example11(MessageConsumer<JsonObject> consumer) {
consumer.handler(msg -> {
String replyAddress = msg.replyAddress();
if(replyAddress != null) {
JsonObject amqpReplyMessagePayload = new JsonObject();
amqpReplyMessagePayload.put("body", "myResponse");
msg.reply(amqpReplyMessagePayload);
}
});
}
}