@Before public void setUp() { testObject = new MyTestObject(1, "test", 2.0); qMessage = new AWSIotMqttQueueMessage("test-topic", "test-message".getBytes(StringUtils.UTF8), AWSIotMqttQos.QOS0, new PublishMessageUserData(mdcb, testObject)); }
@Override public void deliveryComplete(IMqttDeliveryToken token) { LOGGER.info("delivery is complete"); if (token != null) { final Object o = token.getUserContext(); if (o instanceof PublishMessageUserData) { final PublishMessageUserData pmud = (PublishMessageUserData) o; notifyPublishResult(pmud.getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Success, pmud.getUserData(), null); } } } });
/** * Add a message to the publishing queue. A publish call adds to the queue * if the client is unable to publish (offline). * Behavior on a full queue is defined by fullQueueKeepsOldest. If this is true * we keep the oldest values so we skip adding on a full queue. If this is false * we want the queue to always have the latest values so pop the first element out * and append. * * @param data byte array of message payload. * @param topic message topic. * @param qos The quality of service requested for this message. * @param publishMessageUserData The user supplied data for this message including a * callback and context. */ void putMessageInQueueAndNotify(byte[] data, String topic, AWSIotMqttQos qos, PublishMessageUserData publishMessageUserData) { final AWSIotMqttQueueMessage message = new AWSIotMqttQueueMessage(topic, data, qos, publishMessageUserData); if (mqttMessageQueue.size() >= offlinePublishQueueBound) { if (fullQueueKeepsOldest) { notifyPublishResult(publishMessageUserData.getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Fail, publishMessageUserData.getUserData(), new AmazonClientException("Failed to publish the message. Queue is full and set to hold onto the oldest messages.")); return; } else { mqttMessageQueue.remove(0); } } mqttMessageQueue.add(message); }
final PublishMessageUserData publishMessageUserData = new PublishMessageUserData(callback, userData);
@Test public void testGetMessageUserData() throws Exception { assertEquals(mdcb, qMessage.getUserData().getUserCallback()); assertEquals(testObject, qMessage.getUserData().getUserData()); }
final PublishMessageUserData publishMessageUserData = new PublishMessageUserData(callback, userData);
if (message != null) { try { if (message.getUserData() != null && message.getUserData().getUserCallback() != null) { notifyPublishResult(message.getUserData().getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Fail, message.getUserData().getUserData(), new AmazonClientException("Client error while publishing.", e));
@Override public void deliveryComplete(IMqttDeliveryToken token) { LOGGER.info("delivery is complete"); if (token != null) { final Object o = token.getUserContext(); if (o instanceof PublishMessageUserData) { final PublishMessageUserData pmud = (PublishMessageUserData) o; notifyPublishResult(pmud.getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Success, pmud.getUserData(), null); } } } });
/** * Add a message to the publishing queue. A publish call adds to the queue * if the client is unable to publish (offline). * Behavior on a full queue is defined by fullQueueKeepsOldest. If this is true * we keep the oldest values so we skip adding on a full queue. If this is false * we want the queue to always have the latest values so pop the first element out * and append. * * @param data byte array of message payload. * @param topic message topic. * @param qos The quality of service requested for this message. * @param publishMessageUserData The user supplied data for this message including a * callback and context. */ void putMessageInQueueAndNotify(byte[] data, String topic, AWSIotMqttQos qos, PublishMessageUserData publishMessageUserData) { final AWSIotMqttQueueMessage message = new AWSIotMqttQueueMessage(topic, data, qos, publishMessageUserData); if (mqttMessageQueue.size() >= offlinePublishQueueBound) { if (fullQueueKeepsOldest) { notifyPublishResult(publishMessageUserData.getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Fail, publishMessageUserData.getUserData(), new AmazonClientException("Failed to publish the message. Queue is full and set to hold onto the oldest messages.")); return; } else { mqttMessageQueue.remove(0); } } mqttMessageQueue.add(message); }
if (message != null) { try { if (message.getUserData() != null && message.getUserData().getUserCallback() != null) { notifyPublishResult(message.getUserData().getUserCallback(), AWSIotMqttMessageDeliveryCallback.MessageDeliveryStatus.Fail, message.getUserData().getUserData(), new AmazonClientException("Client error while publishing.", e));