@Override public void onSuccess(IMqttToken token) { if (token.getUserContext() instanceof MqttActionCallback) { MqttActionCallback subscriber = (MqttActionCallback) token.getUserContext(); subscriber.onSuccess(token.getTopics()[0]); } else if (token.getUserContext() instanceof CompletableFuture) { @SuppressWarnings("unchecked") CompletableFuture<Boolean> future = (CompletableFuture<Boolean>) token.getUserContext(); future.complete(true); } }
@Override public void onFailure(IMqttToken token, Throwable throwable) { if (token.getUserContext() instanceof MqttActionCallback) { MqttActionCallback subscriber = (MqttActionCallback) token.getUserContext(); subscriber.onFailure(token.getTopics()[0], throwable); } else if (token.getUserContext() instanceof CompletableFuture) { @SuppressWarnings("unchecked") CompletableFuture<Boolean> future = (CompletableFuture<Boolean>) token.getUserContext(); future.completeExceptionally(throwable); } } }
/** * @see org.eclipse.paho.client.mqttv3.IMqttActionListener#onFailure(org.eclipse.paho.client.mqttv3.IMqttToken, * java.lang.Throwable) */ @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { if (this.reconnectAttempt > 0 && asyncActionToken.getUserContext().toString().equals(OPERATION_CONNECT)) { this.logger.info("Reconnect failed."); tryReconnect(); } else { this.logger.error("Async error during operation \"{}\".", asyncActionToken.getUserContext(), exception); } }
/** * @see org.eclipse.paho.client.mqttv3.IMqttActionListener#onSuccess(org.eclipse.paho.client.mqttv3.IMqttToken) */ @Override public void onSuccess(IMqttToken asyncActionToken) { if (asyncActionToken.isComplete() && asyncActionToken.getUserContext().toString().equals(OPERATION_CONNECT)) { this.logger.info("MQTT Adapter connected."); this.reconnectAttempt = 0; if (!this.running) { this.running = true; this.onSuccesfullStartCallback.run(); } } }
@Override public void onFailure(IMqttToken token, Throwable cause) { final AWSIotMessage message = (AWSIotMessage) token.getUserContext(); if (message == null) { LOGGER.warning("Request failed: " + token.getException()); return; } LOGGER.warning("Request failed for topic " + message.getTopic() + ": " + token.getException()); client.scheduleTask(new Runnable() { @Override public void run() { message.onFailure(); } }); }
@Override public void onFailure(IMqttToken token, Throwable cause) { final AWSIotMessage message = (AWSIotMessage) token.getUserContext(); if (message == null) { LOGGER.warning("Request failed: " + token.getException()); return; } LOGGER.warning("Request failed for topic " + message.getTopic() + ": " + token.getException()); client.scheduleTask(new Runnable() { @Override public void run() { message.onFailure(); } }); }
@Override public void onSuccess(IMqttToken token) { final AWSIotMessage message = (AWSIotMessage) token.getUserContext(); if (message == null) { return; } boolean forceFailure = false; if (token.getResponse() instanceof MqttSuback) { MqttSuback subAck = (MqttSuback) token.getResponse(); int qos[] = subAck.getGrantedQos(); for (int i = 0; i < qos.length; i++) { if (qos[i] == SUB_ACK_RETURN_CODE_FAILURE) { LOGGER.warning("Request failed: likely due to too many subscriptions or policy violations"); forceFailure = true; break; } } } final boolean isSuccess = !forceFailure; client.scheduleTask(new Runnable() { @Override public void run() { if (isSuccess) { message.onSuccess(); } else { message.onFailure(); } } }); }
@Override public void onSuccess(IMqttToken token) { final AWSIotMessage message = (AWSIotMessage) token.getUserContext(); if (message == null) { return; } boolean forceFailure = false; if (token.getResponse() instanceof MqttSuback) { MqttSuback subAck = (MqttSuback) token.getResponse(); int qos[] = subAck.getGrantedQos(); for (int i = 0; i < qos.length; i++) { if (qos[i] == SUB_ACK_RETURN_CODE_FAILURE) { LOGGER.warning("Request failed: likely due to too many subscriptions or policy violations"); forceFailure = true; break; } } } final boolean isSuccess = !forceFailure; client.scheduleTask(new Runnable() { @Override public void run() { if (isSuccess) { message.onSuccess(); } else { message.onFailure(); } } }); }