protected final String sendSQSMessage(NevadoQueue queue, String serializedMessage)
     throws JMSException {
   SQSQueue sqsQueue = getSQSQueue(queue);
   if (_log.isDebugEnabled()) {
     _log.debug("Sending message: " + serializedMessage);
   }
   return sqsQueue.sendMessage(serializedMessage);
 }
 public final void resetMessage(NevadoMessage message) throws JMSException {
   String sqsReceiptHandle = (String) message.getNevadoProperty(NevadoProperty.SQSReceiptHandle);
   if (sqsReceiptHandle == null) {
     throw new JMSException(
         "Message does not contain an SQSReceiptHandle, so cannot be reset.  "
             + "Did this come from an SQS queue?");
   }
   SQSQueue sqsQueue = getSQSQueue(message.getNevadoDestination());
   sqsQueue.setMessageVisibilityTimeout(sqsReceiptHandle, 0);
 }
  protected final SQSMessage receiveSQSMessage(
      NevadoConnection connection,
      NevadoDestination destination,
      long timeoutMs,
      long startTimeMs,
      SQSQueue sqsQueue)
      throws JMSException, InterruptedException {
    SQSMessage sqsMessage;
    while (true) {
      if (connection.isRunning()) {
        sqsMessage = sqsQueue.receiveMessage();
        if (sqsMessage != null && !connection.isRunning()) {
          // Connection was stopped while the REST call to SQS was being made
          try {
            sqsQueue.setMessageVisibilityTimeout(
                sqsMessage.getReceiptHandle(),
                0); // Make it immediately available to the next requestor
          } catch (JMSException e) {
            String exMessage = "Unable to reset visibility timeout for message: " + e.getMessage();
            _log.warn(
                exMessage,
                e); // Non-fatal.  Just means the message will disappear until the visibility
                    // timeout expires.
          }
          sqsMessage = null;
        }
      } else {
        _log.debug("Not accepting messages.  Connection is paused or not started.");
        sqsMessage = null;
      }

      // Check for message or timeout
      if (sqsMessage != null
          || (timeoutMs > -1 && (new Date().getTime() - startTimeMs) >= timeoutMs)) {
        break;
      }

      Thread.sleep(_receiveCheckIntervalMs);
    }
    if (_log.isDebugEnabled()) {
      _log.debug(
          "Received message: " + ((sqsMessage != null) ? sqsMessage.getMessageBody() : null));
    }
    return sqsMessage;
  }
 @Override
 public void deleteQueue(NevadoQueue queue) throws JMSException {
   SQSQueue sqsQueue = getSQSQueue(queue);
   sqsQueue.deleteQueue();
 }
 public final void deleteMessage(NevadoMessage message) throws JMSException {
   SQSQueue sqsQueue = getSQSQueue(message.getNevadoDestination());
   String sqsReceiptHandle = getSQSReceiptHandle(message);
   sqsQueue.deleteMessage(sqsReceiptHandle);
 }