private void createSender(Vertx vertx, String address, CompletableFuture<Void> promise, int retries) { sender = connection.createSender(address); sender.openHandler(result -> { if (result.succeeded()) { createReceiver(vertx, address, promise, 0); } else { if (retries > maxRetries) { promise.completeExceptionally(result.cause()); } else { log.info("Error creating sender, retries = {}", retries); vertx.setTimer(1000, id -> createSender(vertx, address, promise, retries + 1)); } } }); sender.open(); }
public void send(String address, List<Message> messages, long timeout, TimeUnit timeUnit) throws InterruptedException { ProtonClient client = ProtonClient.create(vertx); CountDownLatch latch = new CountDownLatch(1); Queue<Message> messageQueue = new ArrayDeque<>(messages); client.connect(host, port, connectEvent -> { if (connectEvent.succeeded()) { ProtonConnection connection = connectEvent.result(); connection.open(); ProtonSender sender = connection.createSender(address); sender.openHandler(senderOpenEvent -> { if (senderOpenEvent.succeeded()) { sendNext(connection, sender, messageQueue, latch); } }); sender.open(); } }); boolean ok = latch.await(timeout, timeUnit); if (!ok) { throw new RuntimeException("Sending messages timed out, " + messageQueue.size() + " messages unsent"); } }
sender.setQoS(qos); sender.sendQueueDrainHandler(sendQueueDrainHandler); sender.openHandler(openAttempt -> { if (openAttempt.succeeded()) { LOG.debug(
final Future<ProtonSender> senderTracker = Future.future(); final ProtonSender sender = adapterConnection.createSender(null); sender.openHandler(senderTracker); sender.open(); return senderTracker;
senderConnection = Optional.of(connection); ProtonSender sender = connection.createSender(address); sender.openHandler(handler -> { log.info(this + ": sender opened to " + connection.getRemoteContainer()); startReceiver(sender, connection.getRemoteContainer());
@Override public void connectionOpened(ProtonConnection connection) { ProtonSender sender = connection.createSender(linkOptions.getTarget().getAddress()); sender.setTarget(linkOptions.getTarget()); sender.setQoS(clientOptions.getQos()); sender.openHandler(result -> { if (result.succeeded()) { log.info("Sender link '" + sender.getTarget().getAddress() + "' opened, sending messages"); connectPromise.complete(null); sendNext(connection, sender); } else { handleError(connection, sender.getRemoteCondition()); } }); sender.closeHandler(result -> handleError(connection, sender.getRemoteCondition())); sender.open(); }
}); sender.openHandler(res -> { LOG.trace("Attach received"); });
sender.setQoS(qos); sender.setAutoSettle(true); sender.openHandler(senderOpen -> {