public static String toString(CloudQueueMessage cloudQueueMessage){ Map<String, Object> map = new LinkedHashMap<>(); try { map.put("body", cloudQueueMessage.getMessageContentAsString()); } catch (StorageException e) { throw new StorageQueueRuntimeException("Failed to get storage queue message content", e); } map.put("dequeueCount", cloudQueueMessage.getDequeueCount()); map.put("id", cloudQueueMessage.getId()); return map.toString(); } }
public static String toString(CloudQueueMessage cloudQueueMessage){ Map<String, Object> map = new LinkedHashMap<>(); try { map.put("body", cloudQueueMessage.getMessageContentAsString()); } catch (StorageException e) { throw new StorageQueueRuntimeException("Failed to get storage queue message content", e); } map.put("dequeueCount", cloudQueueMessage.getDequeueCount()); map.put("id", cloudQueueMessage.getId()); return map.toString(); } }
@Override public boolean advance() throws IOException { advanceable = messages.hasNext(); if (advanceable) { dataCount++; current = messages.next(); if (delete) { try { queueService.deleteMessage(queueName, current); } catch (StorageException | InvalidKeyException | URISyntaxException e) { LOGGER.error(i18nMessages.getMessage("error.Cannotdelete", current.getId(), e.getLocalizedMessage())); } } } return advanceable; }
@Override public boolean advance() throws IOException { advanceable = messages.hasNext(); if (advanceable) { dataCount++; current = messages.next(); if (delete) { try { queueService.deleteMessage(queueName, current); } catch (StorageException | InvalidKeyException | URISyntaxException e) { LOGGER.error(i18nMessages.getMessage("error.Cannotdelete", current.getId(), e.getLocalizedMessage())); } } } return advanceable; }
private StorageRequest<CloudQueueClient, CloudQueue, Void> deleteMessageImpl(final CloudQueueMessage message, final QueueRequestOptions options) { final String messageId = message.getId(); final String messagePopReceipt = message.getPopReceipt(); final StorageRequest<CloudQueueClient, CloudQueue, Void> putRequest = new StorageRequest<CloudQueueClient, CloudQueue, Void>( options, this.getStorageUri()) { @Override public HttpURLConnection buildRequest(CloudQueueClient client, CloudQueue queue, OperationContext context) throws Exception { return QueueRequest.deleteMessage( queue.getIndividualMessageAddress(messageId, context).getUri(this.getCurrentLocation()), options, context, messagePopReceipt); } @Override public void signRequest(HttpURLConnection connection, CloudQueueClient client, OperationContext context) throws Exception { StorageRequest.signBlobQueueAndFileRequest(connection, client, -1L, context); } @Override public Void preProcessResponse(CloudQueue parentObject, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_NO_CONTENT) { this.setNonExceptionedRetryableFailure(true); } return null; } }; return putRequest; }
private StorageRequest<CloudQueueClient, CloudQueue, Void> deleteMessageImpl(final CloudQueueMessage message, final QueueRequestOptions options) { final String messageId = message.getId(); final String messagePopReceipt = message.getPopReceipt(); final StorageRequest<CloudQueueClient, CloudQueue, Void> putRequest = new StorageRequest<CloudQueueClient, CloudQueue, Void>( options, this.getStorageUri()) { @Override public HttpURLConnection buildRequest(CloudQueueClient client, CloudQueue queue, OperationContext context) throws Exception { return QueueRequest.deleteMessage( queue.getIndividualMessageAddress(messageId, context).getUri(this.getCurrentLocation()), options, context, messagePopReceipt); } @Override public void signRequest(HttpURLConnection connection, CloudQueueClient client, OperationContext context) throws Exception { StorageRequest.signBlobQueueAndFileRequest(connection, client, -1L, context); } @Override public Void preProcessResponse(CloudQueue parentObject, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_NO_CONTENT) { this.setNonExceptionedRetryableFailure(true); } return null; } }; return putRequest; }
@Override public boolean start() throws IOException { try { if (peek) { messages = queueService.peekMessages(queueName, nbMsg).iterator(); } else { messages = queueService.retrieveMessages(queueName, nbMsg, visibilityTimeout).iterator(); } startable = messages.hasNext(); if (startable) { dataCount++; current = messages.next(); if (delete) { try { queueService.deleteMessage(queueName, current); } catch (StorageException e) { LOGGER.error(i18nMessages.getMessage("error.Cannotdelete", current.getId(), e.getLocalizedMessage())); } } } } catch (InvalidKeyException | URISyntaxException | StorageException e) { LOGGER.error(e.getLocalizedMessage()); if (dieOnError) throw new ComponentException(e); } return startable; }
@Override public boolean start() throws IOException { try { if (peek) { messages = queueService.peekMessages(queueName, nbMsg).iterator(); } else { messages = queueService.retrieveMessages(queueName, nbMsg, visibilityTimeout).iterator(); } startable = messages.hasNext(); if (startable) { dataCount++; current = messages.next(); if (delete) { try { queueService.deleteMessage(queueName, current); } catch (StorageException e) { LOGGER.error(i18nMessages.getMessage("error.Cannotdelete", current.getId(), e.getLocalizedMessage())); } } } } catch (InvalidKeyException | URISyntaxException | StorageException e) { LOGGER.error(e.getLocalizedMessage()); if (dieOnError) throw new ComponentException(e); } return startable; }
@Override public HttpURLConnection buildRequest(CloudQueueClient client, CloudQueue queue, OperationContext context) throws Exception { if (messageUpdateFields.contains(MessageUpdateFields.CONTENT)) { final byte[] messageBytes = QueueMessageSerializer.generateMessageRequestBody(stringToSend); this.setSendStream(new ByteArrayInputStream(messageBytes)); this.setLength((long) messageBytes.length); } return QueueRequest.updateMessage( queue.getIndividualMessageAddress(message.getId(), context).getUri(this.getCurrentLocation()), options, context, message.getPopReceipt(), visibilityTimeoutInSeconds); }
@NotNull public List<QueueMessage> getQueueMessages(@NotNull StorageAccount storageAccount, @NotNull Queue queue) throws AzureCmdException { List<QueueMessage> qmList = new ArrayList<QueueMessage>(); try { CloudQueueClient client = getCloudQueueClient(storageAccount); String queueName = queue.getName(); CloudQueue cloudQueue = client.getQueueReference(queueName); for (CloudQueueMessage cqm : cloudQueue.peekMessages(32)) { String id = Strings.nullToEmpty(cqm.getId()); String content = Strings.nullToEmpty(cqm.getMessageContentAsString()); Calendar insertionTime = new GregorianCalendar(); if (cqm.getInsertionTime() != null) { insertionTime.setTime(cqm.getInsertionTime()); } Calendar expirationTime = new GregorianCalendar(); if (cqm.getExpirationTime() != null) { expirationTime.setTime(cqm.getExpirationTime()); } int dequeueCount = cqm.getDequeueCount(); qmList.add(new QueueMessage(id, queueName, content, insertionTime, expirationTime, dequeueCount)); } return qmList; } catch (Throwable t) { throw new AzureCmdException("Error retrieving the Queue Message list", t); } }
id = Strings.nullToEmpty(cqm.getId()); content = Strings.nullToEmpty(cqm.getMessageContentAsString());
@Override public HttpURLConnection buildRequest(CloudQueueClient client, CloudQueue queue, OperationContext context) throws Exception { if (messageUpdateFields.contains(MessageUpdateFields.CONTENT)) { try { final byte[] messageBytes = QueueMessageSerializer.generateMessageRequestBody(stringToSend); this.setSendStream(new ByteArrayInputStream(messageBytes)); this.setLength((long) messageBytes.length); } catch (IllegalArgumentException e) { // The request was not even made. There was an error while trying to write the message. Just throw. StorageException translatedException = StorageException.translateClientException(e); throw translatedException; } catch (IllegalStateException e) { // The request was not even made. There was an error while trying to write the message. Just throw. StorageException translatedException = StorageException.translateClientException(e); throw translatedException; } catch (IOException e) { // The request was not even made. There was an error while trying to write the message. Just throw. StorageException translatedException = StorageException.translateClientException(e); throw translatedException; } } return QueueRequest.updateMessage( queue.getIndividualMessageAddress(message.getId(), context).getUri(this.getCurrentLocation()), options, context, message.getPopReceipt(), visibilityTimeoutInSeconds); }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testPeekMessagesFromEmptyQueue() throws StorageException { for (CloudQueueMessage m : this.queue.peekMessages(32)) { assertTrue(m.getId() != null); assertTrue(m.getPopReceipt() == null); } }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testRetrieveMessagesFromEmptyQueue() throws StorageException { for (CloudQueueMessage m : this.queue.retrieveMessages(32)) { assertTrue(m.getId() != null); assertTrue(m.getPopReceipt() == null); } }
throws StorageException { Utility.assertNotNull("message", message); Utility.assertNotNullOrEmpty("messageId", message.getId()); Utility.assertNotNullOrEmpty("popReceipt", message.getPopReceipt());
throws StorageException { Utility.assertNotNull("message", message); Utility.assertNotNullOrEmpty("messageId", message.getId()); Utility.assertNotNullOrEmpty("popReceipt", message.getPopReceipt());
private void VerifyAddMessageResult(CloudQueueMessage originalMessage, String expectedMessageContent) { assertFalse(Utility.isNullOrEmpty(originalMessage.getId())); assertNotNull(originalMessage.getInsertionTime()); assertNotNull(originalMessage.getExpirationTime()); assertFalse(Utility.isNullOrEmpty(originalMessage.getPopReceipt())); assertTrue(originalMessage.messageContent.equals(expectedMessageContent)); assertNotNull(originalMessage.getNextVisibleTime()); } }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testPeekMessage() throws StorageException { CloudQueueMessage message1 = new CloudQueueMessage("messagetest1"); this.queue.addMessage(message1); CloudQueueMessage msg = this.queue.peekMessage(); assertTrue(msg.getId() != null); assertTrue(msg.getPopReceipt() == null); this.queue.delete(); }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testPeekMessages() throws StorageException { CloudQueueMessage message1 = new CloudQueueMessage("messagetest1"); this.queue.addMessage(message1); CloudQueueMessage message2 = new CloudQueueMessage("messagetest2"); this.queue.addMessage(message2); for (CloudQueueMessage m : this.queue.peekMessages(32)) { assertTrue(m.getId() != null); assertTrue(m.getPopReceipt() == null); } }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testRetrieveMessages() throws StorageException { CloudQueueMessage message1 = new CloudQueueMessage("messagetest1"); this.queue.addMessage(message1); CloudQueueMessage message2 = new CloudQueueMessage("messagetest2"); this.queue.addMessage(message2); for (CloudQueueMessage m : this.queue.retrieveMessages(32)) { assertTrue(m.getId() != null); assertTrue(m.getPopReceipt() != null); } }