public Accepted newInstance(Object described) { return Accepted.getInstance(); }
public Accepted newInstance(Object described) { return Accepted.getInstance(); }
public Accepted newInstance(Object described) { return Accepted.getInstance(); }
public Accepted newInstance(Object described) { return Accepted.getInstance(); }
/** * Settle the delivery for a received message * * @param messageId message identifier to settle */ public void settle(Object messageId) { if (this.deliveries.containsKey(messageId)) { ProtonDelivery delivery = this.deliveries.remove(messageId); delivery.disposition(Accepted.getInstance(), true); LOG.info("AMQP message [{}] settled", messageId); } }
/** * Settle the delivery for a received message * * @param messageId message identifier to settle */ public void settle(Object messageId) { if (this.deliveries.containsKey(messageId)) { ProtonDelivery delivery = this.deliveries.remove(messageId); delivery.disposition(Accepted.getInstance(), true); } } }
/** * Send an "accepted" delivery to the AMQP remote sender * * @param linkName AMQP link name * @param delivery AMQP delivery */ private void acceptedDelivery(String linkName, ProtonDelivery delivery) { delivery.disposition(Accepted.getInstance(), true); log.debug("Delivery sent [accepted] on link {}", linkName); }
public CompletableFuture<Void> completeMessageAsync(byte[] deliveryTag, TransactionContext transaction) { Outcome outcome = Accepted.getInstance(); return this.updateMessageStateAsync(deliveryTag, outcome, transaction); }
/** * Accept the given delivery by applying Accepted disposition state, and optionally settling. * * @param delivery * the delivery to update * @param settle * whether to settle * @return the delivery */ public static ProtonDelivery accepted(ProtonDelivery delivery, boolean settle) { delivery.disposition(Accepted.getInstance(), settle); return delivery; }
private void handleMessage(ProtonSender protonSender, ProtonReceiver protonReceiver, ProtonDelivery protonDelivery, Message message) { if (log.isDebugEnabled()) { log.debug(this + ": forwarding message"); } if (!isMessageReplicated(message)) { forwardMessage(protonSender, protonReceiver, protonDelivery, message); } else { protonDelivery.disposition(Accepted.getInstance(), true); } }
/** * Send the AMQP_CLOSE message to the Subscription Service * * @param amqpCloseMessage AMQP_CLOSE message * @param handler callback called on message delivered */ public void sendClose(AmqpCloseMessage amqpCloseMessage, Handler<AsyncResult<ProtonDelivery>> handler) { // send AMQP_CLOSE message this.sender.send(amqpCloseMessage.toAmqp(), delivery -> { if (delivery.getRemoteState() == Accepted.getInstance()) { LOG.info("AMQP close delivery {}", delivery.getRemoteState()); handler.handle(Future.succeededFuture(delivery)); } else { handler.handle(Future.failedFuture(String.format("AMQP close delivery %s", delivery.getRemoteState()))); } }); }
/** * Send the AMQP_UNSUBSCRIBE message to the Subscription Service * * @param amqpUnsubscribeMessage AMQP_UNSUBSCRIBE message * @param handler callback called on message delivered */ public void sendUnsubscribe(AmqpUnsubscribeMessage amqpUnsubscribeMessage, Handler<AsyncResult<ProtonDelivery>> handler) { // send AMQP_UNSUBSCRIBE message this.sender.send(amqpUnsubscribeMessage.toAmqp(), delivery -> { if (delivery.getRemoteState() == Accepted.getInstance()) { LOG.info("AMQP unsubscribe delivery {}", delivery.getRemoteState()); handler.handle(Future.succeededFuture(delivery)); } else { handler.handle(Future.failedFuture(String.format("AMQP unsubscribe delivery %s", delivery.getRemoteState()))); } }); }
/** * Send the AMQP_WILL message to the Last Will and Testament Service * * @param amqpWillMessage AMQP_WILL message * @param handler callback called on message delivered */ public void sendWill(AmqpWillMessage amqpWillMessage, Handler<AsyncResult<ProtonDelivery>> handler) { // send AMQP_WILL message with will information this.sender.send(amqpWillMessage.toAmqp(), delivery -> { if (delivery.getRemoteState() == Accepted.getInstance()) { LOG.info("AMQP will delivery {}", delivery.getRemoteState()); handler.handle(Future.succeededFuture(delivery)); } else { handler.handle(Future.failedFuture(String.format("AMQP will delivery %s", delivery.getRemoteState()))); } }); }
/** * Send the AMQP_SUBSCRIBE message to the Subscription Service * * @param amqpSubscribeMessage AMQP_SUBSCRIBE message * @param handler callback called on message delivered */ public void sendSubscribe(AmqpSubscribeMessage amqpSubscribeMessage, Handler<AsyncResult<ProtonDelivery>> handler) { // send AMQP_SUBSCRIBE message this.sender.send(amqpSubscribeMessage.toAmqp(), delivery -> { if ((delivery.getRemoteState() == Accepted.getInstance()) || (delivery.getRemoteState() instanceof Rejected)) { LOG.info("AMQP subscribe delivery {}", delivery.getRemoteState()); handler.handle(Future.succeededFuture(delivery)); } else { handler.handle(Future.failedFuture(String.format("AMQP subscribe delivery %s", delivery.getRemoteState()))); } }); }
private byte deduceEncodingCode(Disposition value, int elementCount) { if (value.getState() == null) { return EncodingCodes.LIST8; } else if (value.getState() == Accepted.getInstance() || value.getState() == Released.getInstance()) { return EncodingCodes.LIST8; } else { return EncodingCodes.LIST32; } }
@Override public void onResponse(AmqpProtocolConverter converter, Response response) throws IOException { if (response.isException()) { ExceptionResponse er = (ExceptionResponse) response; Rejected rejected = new Rejected(); rejected.setError(new ErrorCondition(Symbol.valueOf("failed"), er.getException().getMessage())); delivery.disposition(rejected); } else { delivery.disposition(Accepted.getInstance()); } LOG.debug("TX: {} settling {}", operation, action); delivery.settle(); session.pumpProtonToSocket(); } });
@Override public void onResponse(AmqpProtocolConverter converter, Response response) throws IOException { if (response.isException()) { ExceptionResponse er = (ExceptionResponse) response; Rejected rejected = new Rejected(); rejected.setError(new ErrorCondition(Symbol.valueOf("failed"), er.getException().getMessage())); delivery.disposition(rejected); } else { delivery.disposition(Accepted.getInstance()); } LOG.debug("TX: {} settling {}", operation, action); delivery.settle(); session.pumpProtonToSocket(); } });
@Override public void done() { connection.runLater(() -> { if (delivery.getRemoteState() instanceof TransactionalState) { TransactionalState txAccepted = new TransactionalState(); txAccepted.setOutcome(Accepted.getInstance()); txAccepted.setTxnId(((TransactionalState) delivery.getRemoteState()).getTxnId()); delivery.disposition(txAccepted); } else { delivery.disposition(Accepted.getInstance()); } delivery.settle(); context.flow(); connection.flush(); }); }
@Override public void onSuccess() { current = txId; cachedAcceptedState = new TransactionalState(); cachedAcceptedState.setOutcome(Accepted.getInstance()); cachedAcceptedState.setTxnId(getAmqpTransactionId()); cachedTransactedState = new TransactionalState(); cachedTransactedState.setTxnId(getAmqpTransactionId()); request.onSuccess(); }
@Override public void onSuccess() { current = txId; cachedAcceptedState = new TransactionalState(); cachedAcceptedState.setOutcome(Accepted.getInstance()); cachedAcceptedState.setTxnId(getAmqpTransactionId()); cachedTransactedState = new TransactionalState(); cachedTransactedState.setTxnId(getAmqpTransactionId()); request.onSuccess(); }