LOG.debug("Failed to disconnect from " + configuration.getHost());
}
});
}
});
final Promise promise = new Promise();
connection.connect(new Callback<Void>() {
public void onSuccess(Void value) {
String subscribeTopicName = configuration.getSubscribeTopicName();
subscribeTopicName = subscribeTopicName != null ? subscribeTopicName.trim() : null;
if (subscribeTopicName != null && !subscribeTopicName.isEmpty()) {
Topic[] topics = {new Topic(subscribeTopicName, configuration.getQoS())};
connection.subscribe(topics, new Callback<byte[]>() {
public void onSuccess(byte[] value) {
promise.onSuccess(value);
}
public void onFailure(Throwable value) {
promise.onFailure(value);
connection.disconnect(null);
}
});
} else {
promise.onSuccess(value);
}
}
public void onFailure(Throwable value) {
promise.onFailure(value);
connection.disconnect(null);
}
});
promise.await(configuration.getConnectWaitInSeconds(), TimeUnit.SECONDS);
}