Example usage for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes

List of usage examples for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model GetQueueAttributesResult getAttributes.

Prototype


public java.util.Map<String, String> getAttributes() 

Source Link

Document

A map of attributes to their respective values.

Usage

From source file:aws.example.sqs.DeadLetterQueues.java

License:Open Source License

public static void main(String[] args) {
    if (args.length != 2) {
        System.out.println("Usage: DeadLetterQueues <src_queue_name> <dl_queue_name>");
        System.exit(1);/*from   ww  w  .j a va2 s . c  o m*/
    }

    String src_queue_name = args[0];
    String dl_queue_name = args[1];

    final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // Create source queue
    try {
        sqs.createQueue(src_queue_name);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Create dead-letter queue
    try {
        sqs.createQueue(dl_queue_name);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Get dead-letter queue ARN
    String dl_queue_url = sqs.getQueueUrl(dl_queue_name).getQueueUrl();

    GetQueueAttributesResult queue_attrs = sqs
            .getQueueAttributes(new GetQueueAttributesRequest(dl_queue_url).withAttributeNames("QueueArn"));

    String dl_queue_arn = queue_attrs.getAttributes().get("QueueArn");

    // Set dead letter queue with redrive policy on source queue.
    String src_queue_url = sqs.getQueueUrl(src_queue_name).getQueueUrl();

    SetQueueAttributesRequest request = new SetQueueAttributesRequest().withQueueUrl(src_queue_url)
            .addAttributesEntry("RedrivePolicy",
                    "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + dl_queue_arn + "\"}");

    sqs.setQueueAttributes(request);
}

From source file:awslabs.lab31.SolutionCode.java

License:Open Source License

@Override
public String getQueueArn(AmazonSQSClient sqsClient, String queueUrl) {
    // TODO: Construct a GetQueueAttributesRequest for the specified queue and for the attribute named "QueueArn".
    GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest().withQueueUrl(queueUrl)
            .withAttributeNames("QueueArn");

    // TODO: Submit the request using the getQueueAttributes method of the sqsClient object.
    GetQueueAttributesResult getQueueAttributesResult = sqsClient.getQueueAttributes(getQueueAttributesRequest);

    // TODO: Return the QueueArn attribute value.
    return getQueueAttributesResult.getAttributes().get("QueueArn");
}

From source file:awslabs.lab31.StudentCode.java

License:Open Source License

/**
 * Query the SQS service for the ARN of the specified queue and return it. Hint: Use the getQueueAttributes() method
 * of the client object. The attribute to request is named QueueArn.
 * //from   www  .j a  va 2  s . c om
 * @param sqsClient The SQS Client object.
 * @param queueUrl The URL for the queue to inspect.
 * @return A string containing the ARN for the queue.
 */
@Override
public String getQueueArn(AmazonSQSClient sqsClient, String queueUrl) {
    GetQueueAttributesRequest request = new GetQueueAttributesRequest().withAttributeNames("QueueArn")
            .withQueueUrl(queueUrl);
    GetQueueAttributesResult result = sqsClient.getQueueAttributes(request);

    return result.getAttributes().get("QueueArn");
}

From source file:com.clicktravel.infrastructure.messaging.aws.sqs.SqsQueueResource.java

License:Apache License

/**
 * @return The ARN of the AWS SQS queue/*from  www  .j  a  va2s.c om*/
 */
public String queueArn() throws AmazonClientException {
    if (queueArn == null) {
        final GetQueueAttributesRequest request = new GetQueueAttributesRequest(queueUrl)
                .withAttributeNames(SQS_QUEUE_ARN_ATTRIBUTE);
        final GetQueueAttributesResult getQueueAttributesResult = amazonSqsClient.getQueueAttributes(request);
        queueArn = getQueueAttributesResult.getAttributes().get(SQS_QUEUE_ARN_ATTRIBUTE);
    }
    return queueArn;
}

From source file:com.comcast.cqs.controller.CQSEditQueueAttributePage.java

License:Apache License

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;/*w w  w  . j  a  v a 2  s  .  c  om*/
    }

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String userId = request.getParameter("userId");
    Map<?, ?> params = request.getParameterMap();
    String queueName = request.getParameter("queueName");
    String queueUrl = Util.getAbsoluteQueueUrlForName(queueName, userId);

    connect(request);

    out.println("<html>");

    simpleHeader(request, out, "View/Edit Queue Attributes");

    if (params.containsKey("Update")) {

        String visibilityTimeout = request.getParameter("visibilityTimeout");
        String maximumMessageSize = request.getParameter("maximumMessageSize");
        String messageRetentionPeriod = request.getParameter("messageRetentionPeriod");
        String delaySeconds = request.getParameter("delaySeconds");
        String receiveMessageWaitTimeSeconds = request.getParameter("receiveMessageWaitTimeSeconds");
        String numberOfPartitions = request.getParameter("numberOfPartitions");
        String numberOfShards = request.getParameter("numberOfShards");
        String isCompressed = request.getParameter("isCompressed");

        try {

            Map<String, String> attributes = new HashMap<String, String>();

            if (visibilityTimeout != null && !visibilityTimeout.equals("")) {
                attributes.put("VisibilityTimeout", visibilityTimeout);
            }

            if (maximumMessageSize != null && !maximumMessageSize.equals("")) {
                attributes.put("MaximumMessageSize", maximumMessageSize);
            }

            if (messageRetentionPeriod != null && !messageRetentionPeriod.equals("")) {
                attributes.put("MessageRetentionPeriod", messageRetentionPeriod);
            }

            if (delaySeconds != null && !delaySeconds.equals("")) {
                attributes.put("DelaySeconds", delaySeconds);
            }

            if (receiveMessageWaitTimeSeconds != null && !receiveMessageWaitTimeSeconds.equals("")) {
                attributes.put("ReceiveMessageWaitTimeSeconds", receiveMessageWaitTimeSeconds);
            }

            if (numberOfPartitions != null && !numberOfPartitions.equals("")) {
                attributes.put("NumberOfPartitions", numberOfPartitions);
            }

            if (numberOfPartitions != null && !numberOfPartitions.equals("")) {
                attributes.put("NumberOfShards", numberOfShards);
            }

            if (isCompressed != null && !isCompressed.equals("")) {
                attributes.put("IsCompressed", isCompressed);
            }

            SetQueueAttributesRequest setQueueAttributesRequest = new SetQueueAttributesRequest(queueUrl,
                    attributes);
            sqs.setQueueAttributes(setQueueAttributesRequest);

            logger.debug("event=set_queue_attributes queue_ulr=" + queueUrl + " user_id= " + userId);

        } catch (Exception ex) {
            logger.error("event=set_queue_attributes queue_ulr=" + queueUrl + " user_id= " + userId, ex);
            throw new ServletException(ex);
        }

        out.println("<body onload='javascript:window.opener.location.reload();window.close();'>");

    } else {

        String visibilityTimeout = "";
        String maximumMessageSize = "";
        String messageRetentionPeriod = "";
        String delaySeconds = "";
        String receiveMessageWaitTimeSeconds = "";
        String numberOfPartitions = "";
        String numberOfShards = "";
        String isCompressed = "";

        if (queueUrl != null) {

            Map<String, String> attributes = null;

            try {
                GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(queueUrl);
                getQueueAttributesRequest
                        .setAttributeNames(Arrays.asList("VisibilityTimeout", "MaximumMessageSize",
                                "MessageRetentionPeriod", "DelaySeconds", "ReceiveMessageWaitTimeSeconds",
                                "NumberOfPartitions", "NumberOfShards", "IsCompressed"));
                GetQueueAttributesResult getQueueAttributesResult = sqs
                        .getQueueAttributes(getQueueAttributesRequest);
                attributes = getQueueAttributesResult.getAttributes();
                visibilityTimeout = attributes.get("VisibilityTimeout");
                maximumMessageSize = attributes.get("MaximumMessageSize");
                messageRetentionPeriod = attributes.get("MessageRetentionPeriod");
                delaySeconds = attributes.get("DelaySeconds");
                receiveMessageWaitTimeSeconds = attributes.get("ReceiveMessageWaitTimeSeconds");
                numberOfPartitions = attributes.get("NumberOfPartitions");
                numberOfShards = attributes.get("NumberOfShards");
                isCompressed = attributes.get("IsCompressed");
            } catch (Exception ex) {
                logger.error("event=failed_to_get_attributes queue_url=" + queueUrl, ex);
                throw new ServletException(ex);
            }
        }

        out.println("<body>");
        out.println("<h1>View/Edit Queue Attributes</h1>");
        out.println("<h3>" + queueUrl + "</h3>");
        out.println(
                "<form action=\"/webui/cqsuser/editqueueattributes?queueName=" + queueName + "\" method=POST>");
        out.println("<input type='hidden' name='userId' value='" + userId + "'>");
        out.println("<table>");
        out.println("<tr><td colspan=2><b><font color='orange'>Queue Attributes</font></b></td></tr>");
        out.println("<tr><td colspan=2><b>Apply these attributes to the queue:</b></td></tr>");

        out.println(
                "<tr><td>Visibility Timeout:</td><td><input type='text' name='visibilityTimeout' size='50' value='"
                        + visibilityTimeout + "'></td></tr>");
        out.println("<tr><td>&nbsp;</td><td><I><font color='grey'>Default "
                + CMBProperties.getInstance().getCQSVisibilityTimeOut() + " sec</font></I></td></tr>");

        out.println(
                "<tr><td>Maximum Message Size:</td><td><input type='text' name='maximumMessageSize' size='50' value='"
                        + maximumMessageSize + "'></td></tr>");
        out.println("<tr><td>&nbsp;</td><td><I><font color='grey'>Default "
                + CMBProperties.getInstance().getCQSMaxMessageSize() + " bytes</font></I></td></tr>");

        out.println(
                "<tr><td>Message Retention Period:</td><td><input type='text' name='messageRetentionPeriod' size='50' value='"
                        + messageRetentionPeriod + "'></td></tr>");
        out.println("<tr><td>&nbsp;</td><td><I><font color='grey'>Default "
                + CMBProperties.getInstance().getCQSMessageRetentionPeriod() + " sec</font></I></td></tr>");

        out.println("<tr><td>Delay Seconds:</td><td><input type='text' name='delaySeconds' size='50' value='"
                + delaySeconds + "'></td></tr>");
        out.println("<tr><td>&nbsp;</td><td><I><font color='grey'>Default "
                + CMBProperties.getInstance().getCQSMessageDelaySeconds() + " sec</font></I></td></tr>");

        out.println(
                "<tr><td>Receive Message Wait Time Seconds:</td><td><input type='text' name='receiveMessageWaitTimeSeconds' size='50' value='"
                        + receiveMessageWaitTimeSeconds + "'></td></tr>");
        out.println(
                "<tr><td>&nbsp;</td><td><I><font color='grey'>Default 0 sec, max 20 sec</font></I></td></tr>");

        out.println(
                "<tr><td>Number Of Partitions:</td><td><input type='text' name='numberOfPartitions' size='50' value='"
                        + numberOfPartitions + "'></td></tr>");
        out.println(
                "<tr><td>&nbsp;</td><td><I><font color='grey'>Default 100, minimum 1 partition(s)</font></I></td></tr>");

        out.println(
                "<tr><td>Number Of Shards:</td><td><input type='text' name='numberOfShards' size='50' value='"
                        + numberOfShards + "'></td></tr>");
        out.println(
                "<tr><td>&nbsp;</td><td><I><font color='grey'>Default 1, maximum 100 shards</font></I></td></tr>");

        out.println("<tr><td>Compressed:</td><td><input type='text' name='isCompressed' size='50' value='"
                + isCompressed + "'></td></tr>");
        out.println(
                "<tr><td>&nbsp;</td><td><I><font color='grey'>Valid values: true or false</font></I></td></tr>");

        out.println("<tr><td>&nbsp;</td><td>&nbsp;</td></tr>");

        out.println("<tr><td colspan=2><hr/></td></tr>");
        out.println(
                "<tr><td colspan=2 align=right><input type='button' onclick='window.close()' value='Cancel'><input type='submit' name='Update' value='Update'></td></tr></table></form>");
    }

    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:com.comcast.cqs.controller.CQSQueueMessagesPageServlet.java

License:Apache License

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;//from  w ww .j a  v  a 2  s.  c  om
    }

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    String userId = request.getParameter("userId");
    String queueName = request.getParameter("queueName");
    String msgStr = request.getParameter("message");
    String prevHandle = request.getParameter("prevHandle");
    String nextHandle = request.getParameter("nextHandle");
    String receiptHandle = request.getParameter("receiptHandle");
    Map<?, ?> parameters = request.getParameterMap();
    Message receivedMessage = null;
    int shard = 0;

    if (request.getParameter("shard") != null) {
        shard = Integer.parseInt(request.getParameter("shard"));
    }

    String queueUrl = Util.getAbsoluteQueueUrlForName(queueName, userId);

    connect(request);

    if (parameters.containsKey("Send")) {

        try {

            SendMessageRequest sendMessageRequest = new SendMessageRequest(queueUrl, msgStr);
            sqs.sendMessage(sendMessageRequest);
            logger.debug("event=send_message queue_url= " + queueUrl + " user_id=" + userId);

        } catch (Exception ex) {
            logger.error("event=send_message queue_url= " + queueUrl + " user_id=" + userId, ex);
            throw new ServletException(ex);
        }

    } else if (parameters.containsKey("Delete")) {

        try {

            DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest(queueUrl, receiptHandle);
            sqs.deleteMessage(deleteMessageRequest);
            logger.debug("event=delete_message queue_url= " + queueUrl + " receipt_handle=" + receiptHandle);

        } catch (Exception ex) {
            logger.error("event=delete_message queue_url= " + queueUrl + " receipt_handle=" + receiptHandle,
                    ex);
            throw new ServletException(ex);
        }
    } else if (parameters.containsKey("Receive")) {

        try {

            ReceiveMessageResult result = sqs.receiveMessage(new ReceiveMessageRequest(queueUrl));
            logger.debug("event=receive_message queue_url= " + queueUrl + " user_id=" + userId);
            List<Message> receivedMessages = null;

            if (result != null) {
                receivedMessages = result.getMessages();
                if (receivedMessages != null && receivedMessages.size() > 0) {
                    receivedMessage = receivedMessages.get(0);
                }
            }
        } catch (Exception ex) {
            logger.error("event=receive_message queue_url= " + queueUrl + " user_id=" + userId, ex);
            throw new ServletException(ex);
        }

    }

    int numberOfShards = 1;

    try {

        GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(queueUrl);
        getQueueAttributesRequest.setAttributeNames(Arrays.asList("NumberOfShards"));
        GetQueueAttributesResult getQueueAttributesResult = sqs.getQueueAttributes(getQueueAttributesRequest);
        Map<String, String> attributes = getQueueAttributesResult.getAttributes();
        numberOfShards = Integer.parseInt(attributes.get("NumberOfShards"));

    } catch (Exception ex) {
        logger.error("event=get_queue_attributes url=" + queueUrl);
    }

    out.println("<html>");

    out.println("<script type='text/javascript' language='javascript'>");
    out.println("function setVisibility(id, buttonid) {");
    out.println("if(document.getElementById(buttonid).value=='Less'){");
    out.println("document.getElementById(buttonid).value = 'More';");
    out.println("document.getElementById(id).style.display = 'none';");
    out.println("}else{");
    out.println("document.getElementById(buttonid).value = 'Less';");
    out.println("document.getElementById(id).style.display = 'inline';");
    out.println("}");
    out.println("}");
    out.println("</script>");

    header(request, out, "Peek Messages for Queue " + queueName);

    out.println("<body>");
    out.println("<h2>Peek Messages for Queue " + queueName + "</h2>");

    if (user != null) {
        out.println("<table><tr><td><b>User Name:</b></td><td>" + user.getUserName() + "</td></tr>");
        out.println("<tr><td><b>User ID:</b></td><td>" + user.getUserId() + "</td></tr>");
        out.println("<tr><td><b>Access Key:</b></td><td>" + user.getAccessKey() + "</td></tr>");
        out.println("<tr><td><b>Access Secret:</b></td><td>" + user.getAccessSecret() + "</td></tr>");
        out.println("<tr><td><b>Queue Name:</b></td><td>" + queueName + "</td></tr></table>");
    }

    out.println("<p><table><tr><td><b>Send message:</b></td><td></td></tr>");
    out.println("<form id='frm1' action=\"/webui/cqsuser/message/?userId=" + userId + "&queueName=" + queueName
            + "\" method=POST>");
    out.println(
            "<tr><td><textarea rows='3' cols='50' name='message'></textarea><input type='hidden' name='userId' value='"
                    + userId
                    + "'></td><td valign='bottom'><input type='submit' value='Send' name='Send' /></td></tr></form>");
    out.println("<tr><td>&nbsp;</td></tr>");

    if (numberOfShards > 1) {
        out.println("<form id='frm2' action=\"/webui/cqsuser/message/?userId=" + userId + "&queueName="
                + queueName + "\" method=POST>");
        out.println(
                "<tr><td>Shard: <select name='shard' onChange='document.getElementById(\"frm2\").submit();'>");
        for (int i = 0; i < numberOfShards; i++) {
            out.print("<option value='" + i + "'");
            if (shard == i) {
                out.print(" selected");
            }
            out.println(">" + i + "</option>");
        }
        out.println("</form></select></td></tr></table></p>");
    } else {
        out.println("</table></p>");
    }

    // for receive message

    out.println("<form id='formsendmessage' action=\"/webui/cqsuser/message/?userId=" + userId + "&queueName="
            + queueName + "\" method=POST>");
    out.println("<table><tr><td><b>Receive Message:</b></td>");
    out.println("<td><input type='hidden' name='userId' value='" + userId
            + "'></td><td valign='bottom'><input type='submit' value='Receive Message' name='Receive' /></td>");
    out.println("</form></tr></table>");

    // showing received message

    out.println("<p><hr width='100%' align='left' /><p>");
    out.println("<h3>Received Messages</h3>");

    if (receivedMessage != null) {

        Map<String, String> attributes = receivedMessage.getAttributes();

        String timeSent = "";

        if (attributes.get("SentTimestamp") != null) {
            try {
                timeSent = new Date(Long.parseLong(attributes.get("SentTimestamp"))).toString();
            } catch (Exception ex) {
            }
        }

        String timeReceived = "";

        if (attributes.get("ApproximateFirstReceiveTimestamp") != null) {
            try {
                timeReceived = new Date(Long.parseLong(attributes.get("ApproximateFirstReceiveTimestamp")))
                        .toString();
            } catch (Exception ex) {
            }
        }

        out.println("<table class = 'alternatecolortable'>");
        out.println(
                "<tr><th></th><th>Receipt Handle</th><th>MD5</th><th>Body</th><th>Time Sent</th><th>Time First Received (Appr.)</th><th>Receive Count (Appr.)</th><th>Sender</th><th>&nbsp;</th></tr>");

        out.println("<tr>");
        out.println("<td>0</td>");
        out.println("<td>" + receivedMessage.getReceiptHandle() + "</td>");
        out.println("<td>" + receivedMessage.getMD5OfBody() + "</td>");
        String messageBody = receivedMessage.getBody();
        String messageBodyPart1 = null;
        String messageBodyPart2 = null;

        if ((messageBody != null) && (messageBody.length() > 300)) {

            messageBodyPart1 = messageBody.substring(0, 299);
            messageBodyPart2 = messageBody.substring(299);

            out.println("<td>");
            out.println(messageBodyPart1);
            out.println("<div id='rdetail' style=\"display: none;\">" + messageBodyPart2 + "</div>");
            out.println(
                    "<input type=button name=type id='rbt' value='More' onclick=\"setVisibility('rdetail', 'rbt');\";> ");
            out.println("</td>");
        } else {
            out.println("<td>" + receivedMessage.getBody() + "</td>");
        }

        out.println("<td>" + timeSent + "</td>");
        out.println("<td>" + timeReceived + "</td>");
        out.println("<td>" + attributes.get("ApproximateReceiveCount") + "</td>");
        out.println("<td>" + attributes.get("SenderId") + "</td>");
        out.println("<td><form action=\"/webui/cqsuser/message/?userId=" + user.getUserId() + "&queueName="
                + queueName + "&receiptHandle=" + receivedMessage.getReceiptHandle()
                + "\" method=POST><input type='submit' value='Delete' name='Delete'/><input type='hidden' name='queueUrl' value='"
                + queueUrl + "' /></form></td></tr>");
        out.println("</table>");

    } else {
        out.println("<p><i>no messages</i></p>");
    }

    List<CQSMessage> availableMessages = null;
    String queueFirstMessageHandle = null;

    try {

        if (queueUrl != null) {

            String peekRequestUrl = cqsServiceBaseUrl + user.getUserId() + "/" + queueName
                    + "?Action=PeekMessage&AWSAccessKeyId=" + user.getAccessKey()
                    + "&MaxNumberOfMessages=10&Shard=" + shard;

            if (prevHandle != null) {
                peekRequestUrl += "&PreviousReceiptHandle=" + prevHandle;
            } else if (nextHandle != null) {
                peekRequestUrl += "&NextReceiptHandle=" + nextHandle;
            }

            AWSCredentials awsCredentials = new BasicAWSCredentials(user.getAccessKey(),
                    user.getAccessSecret());
            String peekXml = httpPOST(cqsServiceBaseUrl, peekRequestUrl, awsCredentials);
            Element root = XmlUtil.buildDoc(peekXml);

            List<Element> messageElements = XmlUtil.getCurrentLevelChildNodes(
                    XmlUtil.getCurrentLevelChildNodes(root, "ReceiveMessageResult").get(0), "Message");

            for (Element messageElement : messageElements) {

                if (availableMessages == null) {
                    availableMessages = new ArrayList<CQSMessage>();
                }

                String body = XmlUtil.getCurrentLevelTextValue(messageElement, "Body");
                String id = XmlUtil.getCurrentLevelTextValue(messageElement, "MessageId").trim();
                String handle = XmlUtil.getCurrentLevelTextValue(messageElement, "ReceiptHandle").trim();

                CQSMessage msg = new CQSMessage(id, body);
                msg.setReceiptHandle(handle);

                List<Element> attributeElements = XmlUtil.getCurrentLevelChildNodes(messageElement,
                        "Attribute");
                Map<String, String> attributes = new HashMap<String, String>();

                for (Element attribute : attributeElements) {

                    String name = XmlUtil.getCurrentLevelTextValue(attribute, "Name");
                    String value = XmlUtil.getCurrentLevelTextValue(attribute, "Value");

                    if (name != null && value != null) {
                        attributes.put(name, value);
                    }
                }

                msg.setAttributes(attributes);

                availableMessages.add(msg);
            }

            //retrieve first messageId from queue. this is for pagination
            String peekRequestFirstMessageUrl = cqsServiceBaseUrl + user.getUserId() + "/" + queueName
                    + "?Action=PeekMessage&AWSAccessKeyId=" + user.getAccessKey()
                    + "&MaxNumberOfMessages=1&Shard=" + shard;
            String peekFirstMessageXml = httpPOST(cqsServiceBaseUrl, peekRequestFirstMessageUrl,
                    awsCredentials);
            Element rootFirstMessage = XmlUtil.buildDoc(peekFirstMessageXml);

            List<Element> messageElementsForFirstMessage = XmlUtil.getCurrentLevelChildNodes(
                    XmlUtil.getCurrentLevelChildNodes(rootFirstMessage, "ReceiveMessageResult").get(0),
                    "Message");
            if (messageElementsForFirstMessage.size() == 1) {
                queueFirstMessageHandle = XmlUtil
                        .getCurrentLevelTextValue(messageElementsForFirstMessage.get(0), "ReceiptHandle")
                        .trim();
            }
        }

    } catch (Exception ex) {
        logger.error("event=peek_message queue_url=" + queueUrl, ex);
        throw new ServletException(ex);
    }

    String previousHandle = null;
    nextHandle = null;

    out.println("<p><hr width='100%' align='left' /><p>");
    out.println("<h3>Available Messages</h3>");

    if ((availableMessages == null) || (availableMessages.size() == 0)) {
        out.println("<p><i>no messages</i></p>");
    }

    for (int i = 0; availableMessages != null && i < availableMessages.size(); i++) {

        CQSMessage message = availableMessages.get(i);

        Map<String, String> attributes = message.getAttributes();

        String timeSent = "";

        if (attributes.get("SentTimestamp") != null) {
            try {
                timeSent = new Date(Long.parseLong(attributes.get("SentTimestamp"))).toString();
            } catch (Exception ex) {
            }
        }

        String timeReceived = "";

        if (attributes.get("ApproximateFirstReceiveTimestamp") != null) {
            try {
                timeReceived = new Date(Long.parseLong(attributes.get("ApproximateFirstReceiveTimestamp")))
                        .toString();
            } catch (Exception ex) {
            }
        }

        if (i == 0) {
            out.println("<table class = 'alternatecolortable'>");
            out.println(
                    "<tr><th></th><th>Receipt Handle</th><th>MD5</th><th>Body</th><th>Time Sent</th><th>Time First Received (Appr.)</th><th>Receive Count (Appr.)</th><th>Sender</th><th>&nbsp;</th></tr>");
            previousHandle = message.getReceiptHandle();
        }

        out.println("<tr>");
        out.println("<td>" + i + "</td>");
        out.println("<td>" + message.getReceiptHandle() + "</td>");
        out.println("<td>" + message.getMD5OfBody() + "</td>");
        String messageBody = message.getBody();
        String messageBodyPart1 = null;
        String messageBodyPart2 = null;
        if ((messageBody != null) && (messageBody.length() > 300)) {
            messageBodyPart1 = messageBody.substring(0, 299);
            messageBodyPart2 = messageBody.substring(299);

            out.println("<td>");
            out.println(messageBodyPart1);
            out.println("<div id='detail" + i + "' style=\"display: none;\">" + messageBodyPart2 + "</div>");
            out.println("<input type=button name=type id='bt" + i
                    + "' value='More' onclick=\"setVisibility('detail" + i + "', 'bt" + i + "');\";> ");
            out.println("</td>");
        } else {
            out.println("<td>" + message.getBody() + "</td>");
        }
        out.println("<td>" + timeSent + "</td>");
        out.println("<td>" + timeReceived + "</td>");
        out.println("<td>" + attributes.get("ApproximateReceiveCount") + "</td>");
        out.println("<td>" + attributes.get("SenderId") + "</td>");
        out.println("<td></td></tr>");

        if (i == availableMessages.size() - 1) {
            nextHandle = message.getReceiptHandle();
        }
    }

    out.println("</table>");

    //This case is for click on "Next" button of the previous page
    if (prevHandle != null) {

        if ((previousHandle) != null) {
            out.println("<a style='float:left;' href='/webui/cqsuser/message/?userId=" + user.getUserId()
                    + "&queueName=" + queueName + "&nextHandle=" + previousHandle + "'>Prev</a>");
        } else {
            out.println("<a style='float:left;' href='javascript:history.back()'>Prev</a>");
        }
    } else if ((previousHandle != null) && (!previousHandle.equals(queueFirstMessageHandle))) { //this is for all other cases
        out.println("<a style='float:left;' href='/webui/cqsuser/message/?userId=" + user.getUserId()
                + "&queueName=" + queueName + "&nextHandle=" + previousHandle + "'>Prev</a>");
    }

    if (availableMessages != null && availableMessages.size() > 0) {
        out.println("<a style='float:right;' href='/webui/cqsuser/message/?userId=" + user.getUserId()
                + "&queueName=" + queueName + "&prevHandle=" + nextHandle + "'>Next</a>");
    }

    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a>");
    out.println("<a href='/webui/cqsuser?userId=" + userId + "'>BACK TO QUEUE</a></h5>");

    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:com.comcast.cqs.controller.CQSQueuePermissionsPage.java

License:Apache License

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;/*from  ww w.j a  v  a 2 s  .  c  o  m*/
    }

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String userId = request.getParameter("userId");
    String queueName = request.getParameter("queueName");
    String labelSid = request.getParameter("sid");
    Map<?, ?> params = request.getParameterMap();

    String queueUrl = Util.getAbsoluteQueueUrlForName(queueName, userId);

    connect(request);

    if (params.containsKey("Remove")) {

        try {
            RemovePermissionRequest removePermissionRequest = new RemovePermissionRequest(queueUrl, labelSid);
            sqs.removePermission(removePermissionRequest);
            logger.debug("event=remove_permission queue_url=" + queueUrl + " label=" + labelSid + " user_id="
                    + userId);
        } catch (Exception ex) {
            logger.error("event=remove_permission queue_url=" + queueUrl + " label=" + labelSid + " user_id="
                    + userId, ex);
            throw new ServletException(ex);
        }
    }

    out.println("<html>");

    header(request, out, "Permissions for Queue " + Util.getNameForAbsoluteQueueUrl(queueUrl));

    out.println("<body>");

    out.println("<h2>Permissions for Queue " + Util.getNameForAbsoluteQueueUrl(queueUrl) + "</h2>");

    if (user != null) {

        out.println("<table><tr><td><b>User Name:</b></td><td>" + user.getUserName() + "</td></tr>");
        out.println("<tr><td><b>User ID:</b></td><td>" + user.getUserId() + "</td></tr>");
        out.println("<tr><td><b>Access Key:</b></td><td>" + user.getAccessKey() + "</td></tr>");
        out.println("<tr><td><b>Access Secret:</b></td><td>" + user.getAccessSecret() + "</td></tr>");
        out.println("<tr><td><b>Queue Name:</b></td><td>" + Util.getNameForAbsoluteQueueUrl(queueUrl)
                + "</td></tr>");
        out.println("<tr><td><b>Queue Url:</b></td><td>" + queueUrl + "</td></tr></table><br>");
    }

    Map<String, String> attributes = null;

    try {
        GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(queueUrl);
        getQueueAttributesRequest.setAttributeNames(Arrays.asList("Policy"));
        GetQueueAttributesResult getQueueAttributesResult = sqs.getQueueAttributes(getQueueAttributesRequest);
        attributes = getQueueAttributesResult.getAttributes();
    } catch (Exception ex) {
        logger.error("event_failed_to_get_attributes queue_url=" + queueUrl, ex);
        throw new ServletException(ex);
    }

    CMBPolicy policy;

    try {
        policy = new CMBPolicy(attributes.get("Policy"));
    } catch (Exception ex) {
        throw new ServletException(ex);
    }

    if (policy != null && !policy.getStatements().isEmpty()) {

        List<CMBStatement> stmts = policy.getStatements();

        if (stmts != null && stmts.size() > 0) {
            out.println(
                    "<span class='content'><table border='1' width='70%'><tr><th>Effect</th><th>Principals</th><th>Actions</th><th>Label</th><th>&nbsp;</th></tr>");
        }

        for (int i = 0; stmts != null && i < stmts.size(); i++) {

            out.print("<form action=\"/webui/cqsuser/permissions/?userId=" + user.getUserId() + "&queueUrl="
                    + queueUrl + "\" method=POST>");

            CMBStatement stmt = stmts.get(i);

            out.println("<tr><td>" + stmt.getEffect().toString() + "</td><td>");

            if (stmt.getPrincipal() != null && stmt.getPrincipal().size() > 0) {

                for (int k = 0; k < stmt.getPrincipal().size(); k++) {
                    String user1 = stmt.getPrincipal().get(k);
                    out.println(user1 + "<br>");
                }
            }

            out.println("</td><td>");

            if (stmt.getAction() != null && stmt.getAction().size() > 0) {

                for (int j = 0; j < stmt.getAction().size(); j++) {
                    String action1 = stmt.getAction().get(j);
                    out.println(action1 + "<br>");
                }
            }

            String sid = stmt.getSid();
            out.println("</td>");
            out.println("<td>" + sid + "</td>");
            out.println(
                    "<td><input type='submit' value='Remove' name='Remove'><input type='hidden' name='sid' value='"
                            + sid + "'><input type='hidden' name='userId' value='" + userId
                            + "'><input type='hidden' name='queueName' value='" + queueName
                            + "'></td></tr></form>");
        }

        out.println("</table></span>");
    }

    out.println("<p><a href='' onclick=\"window.open('/webui/cqsuser/addpermission/?queueName=" + queueName
            + "&userId=" + userId
            + "', 'AddQueuePermission', 'location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0,height=470,width=730')\">Add permission</a></p>");
    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a>");
    out.println("<a href='/webui/cqsuser?userId=" + userId + "'>BACK TO QUEUE</a></h5>");
    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:com.comcast.cqs.controller.CQSUserPageServlet.java

License:Apache License

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;// w  w  w  .j a va 2 s  . c o m
    }

    boolean showQueueAttributes = false;
    boolean showQueuesWithMessagesOnly = false;

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    Map<?, ?> parameters = request.getParameterMap();
    String userId = request.getParameter("userId");
    String queueName = request.getParameter("queueName");
    String queueNamePrefix = request.getParameter("queueNamePrefix");
    String queueUrl = request.getParameter("qUrl");

    if (request.getParameter("ShowMessagesOnly") != null) {
        showQueuesWithMessagesOnly = true;
    }

    if (request.getParameter("ShowAttributes") != null) {
        showQueueAttributes = true;
    }

    List<String> queueUrls = new ArrayList<String>();

    connect(request);

    if (parameters.containsKey("Search")) {
    }

    try {

        String url = cqsServiceBaseUrl + "?Action=ListQueues&AWSAccessKeyId=" + user.getAccessKey();

        if (queueNamePrefix != null && !queueNamePrefix.equals("")) {
            url += "&QueueNamePrefix=" + queueNamePrefix;
        }

        if (showQueuesWithMessagesOnly) {
            url += "&ContainingMessagesOnly=true";
        }

        AWSCredentials awsCredentials = new BasicAWSCredentials(user.getAccessKey(), user.getAccessSecret());
        String apiStateXml = httpPOST(cqsServiceBaseUrl, url, awsCredentials);
        Element root = XmlUtil.buildDoc(apiStateXml);
        List<Element> resultList = XmlUtil.getCurrentLevelChildNodes(root, "ListQueuesResult");

        for (Element resultElement : resultList) {
            List<Element> urls = XmlUtil.getCurrentLevelChildNodes(resultElement, "QueueUrl");
            for (Element urlElement : urls) {
                queueUrls.add(urlElement.getTextContent().trim());
            }
        }

    } catch (Exception ex) {
        logger.error("event=list_queues user_id= " + userId, ex);
        throw new ServletException(ex);
    }

    if (parameters.containsKey("Create")) {

        try {
            CreateQueueRequest createQueueRequest = new CreateQueueRequest(queueName);
            CreateQueueResult createQueueResult = sqs.createQueue(createQueueRequest);
            queueUrl = createQueueResult.getQueueUrl();
            queueUrls.add(queueUrl);
            logger.debug("event=create_queue queue_url=" + queueUrl + " user_id= " + userId);
        } catch (Exception ex) {
            logger.error("event=create_queue queue_url=" + queueUrl + " user_id= " + userId, ex);
            throw new ServletException(ex);
        }

    } else if (parameters.containsKey("Delete")) {

        try {
            DeleteQueueRequest deleteQueueRequest = new DeleteQueueRequest(queueUrl);
            sqs.deleteQueue(deleteQueueRequest);
            queueUrls.remove(queueUrl);
            logger.debug("event=delete_queue queue_url=" + queueUrl + " user_id= " + userId);
        } catch (Exception ex) {
            logger.error("event=delete_queue queue_url=" + queueUrl + " user_id= " + userId, ex);
            throw new ServletException(ex);
        }

    } else if (parameters.containsKey("DeleteAll")) {

        for (int i = 0; queueUrls != null && i < queueUrls.size(); i++) {

            try {
                DeleteQueueRequest deleteQueueRequest = new DeleteQueueRequest(queueUrls.get(i));
                sqs.deleteQueue(deleteQueueRequest);
                logger.debug("event=delete_queue queue_url=" + queueUrls.get(i) + " user_id= " + userId);
            } catch (Exception ex) {
                logger.error("event=delete_queue queue_url=" + queueUrls.get(i) + " user_id= " + userId, ex);
            }
        }

        queueUrls = new ArrayList<String>();

    } else if (parameters.containsKey("ClearQueue")) {

        String qName = Util.getNameForAbsoluteQueueUrl(queueUrl);
        String qUserId = Util.getUserIdForAbsoluteQueueUrl(queueUrl);

        try {
            String url = cqsServiceBaseUrl;
            if (!url.endsWith("/")) {
                url += "/";
            }
            url += qUserId + "/" + qName + "?Action=ClearQueue&AWSAccessKeyId=" + user.getAccessKey();
            httpGet(url);
            logger.debug("event=clear_queue url=" + url + " user_id= " + userId);
        } catch (Exception ex) {
            logger.error("event=clear_queue queue_name=" + qName + " user_id= " + userId, ex);
            throw new ServletException(ex);
        }

    } else if (parameters.containsKey("ClearAllQueues")) {

        for (int i = 0; queueUrls != null && i < queueUrls.size(); i++) {

            String qName = Util.getNameForAbsoluteQueueUrl(queueUrls.get(i));
            String qUserId = Util.getUserIdForAbsoluteQueueUrl(queueUrls.get(i));

            try {
                String url = cqsServiceBaseUrl;
                if (!url.endsWith("/")) {
                    url += "/";
                }
                url += qUserId + "/" + qName + "?Action=ClearQueue&AWSAccessKeyId=" + user.getAccessKey();
                httpGet(url);
                logger.debug("event=clear_queue url=" + url + " user_id= " + userId);
            } catch (Exception ex) {
                logger.error("event=clear_queue queue_name=" + qName + " user_id= " + userId, ex);
            }
        }
    }

    out.println("<html>");

    header(request, out, "Queues");

    out.println("<body>");

    out.println("<h2>Queues</h2>");

    long numQueues = 0;

    try {
        numQueues = PersistenceFactory.getUserPersistence().getNumUserQueues(userId);
    } catch (PersistenceException ex) {
        logger.warn("event=queue_count_failure", ex);
    }

    if (user != null) {
        out.println("<table><tr><td><b>User Name:</b></td><td>" + user.getUserName() + "</td></tr>");
        out.println("<tr><td><b>User ID:</b></td><td>" + user.getUserId() + "</td></tr>");
        out.println("<tr><td><b>Access Key:</b></td><td>" + user.getAccessKey() + "</td></tr>");
        out.println("<tr><td><b>Access Secret:</b></td><td>" + user.getAccessSecret() + "</td>");
        out.println("<tr><td><b>Queue Count</b></td><td>" + numQueues + "</td></tr></table>");
    }

    out.println("<p><table>");

    out.println("<tr><td>Search queues with name prefix:</td><td></td></tr>");
    out.println("<tr><form action=\"/webui/cqsuser?userId=" + user.getUserId() + "\" method=POST>");
    out.println("<td><input type='text' name='queueNamePrefix' value='"
            + (queueNamePrefix != null ? queueNamePrefix : "") + "'/><input type='hidden' name='userId' value='"
            + userId + "'/>");
    out.println("<input type='checkbox' " + (showQueueAttributes ? "checked='true' " : "")
            + "name='ShowAttributes' value='ShowAttributes'>Show Attributes</input>");
    out.println("<input type='checkbox' " + (showQueuesWithMessagesOnly ? "checked='true' " : "")
            + " name='ShowMessagesOnly' value='ShowMessagesOnly'>Only Queues With Messages</input></td>");
    out.println("<td><input type='submit' value='Search' name='Search' /></td></form></tr>");

    out.println("<tr><td>Create queue with name:</td><td></td></tr>");
    out.println("<tr><form action=\"/webui/cqsuser?userId=" + user.getUserId() + "\" method=POST>");
    out.println("<td><input type='text' name='queueName' /><input type='hidden' name='userId' value='" + userId
            + "'></td>");
    out.println("<input type='hidden' name='queueNamePrefix' value='"
            + (queueNamePrefix != null ? queueNamePrefix : "") + "'/>");
    if (showQueuesWithMessagesOnly) {
        out.println("<input type='hidden' name='ShowMessagesOnly' value='true'/>");
    }
    if (showQueueAttributes) {
        out.println("<input type='hidden' name='ShowAttributes' value='true'/>");
    }
    out.println("<td><input type='submit' value='Create' name='Create' /></td></form></tr>");

    out.println("<tr><td>Delete all queues:</td><td></td></tr>");
    out.println("<tr><form action=\"/webui/cqsuser?userId=" + user.getUserId() + "\" "
            + "method=POST><td><input type='hidden' name='userId' value='" + userId + "'/>");
    out.println("<input type='hidden' name='queueNamePrefix' value='"
            + (queueNamePrefix != null ? queueNamePrefix : "") + "'/></td>");
    if (showQueuesWithMessagesOnly) {
        out.println("<input type='hidden' name='ShowMessagesOnly' value='true'/>");
    }
    if (showQueueAttributes) {
        out.println("<input type='hidden' name='ShowAttributes' value='true'/>");
    }
    out.println(
            "<td><input type='submit' value='Delete All' name='DeleteAll' onclick=\"return confirm('Are you sure you want to delete all?')\" /></td></form></tr>");

    out.println("<tr><td>Clear all queues:</td><td></td></tr>");
    out.println("<tr><form action=\"/webui/cqsuser?userId=" + user.getUserId() + "\" "
            + "method=POST><td><input type='hidden' name='userId' value='" + userId + "'/>");
    out.println("<input type='hidden' name='queueNamePrefix' value='"
            + (queueNamePrefix != null ? queueNamePrefix : "") + "'/></td>");
    if (showQueuesWithMessagesOnly) {
        out.println("<input type='hidden' name='ShowMessagesOnly' value='true'/>");
    }
    if (showQueueAttributes) {
        out.println("<input type='hidden' name='ShowAttributes' value='true'/>");
    }
    out.println("<td><input type='submit' value='Clear All' name='ClearAllQueues'/></td></form></tr>");

    out.println("</table></p>");

    out.println("<p><hr width='100%' align='left' /></p>");

    if ((queueUrls != null) && (queueUrls.size() >= 1000)) {
        out.println("Warning: Only first 1000 queues listed.  Use the search prefix method to find queues");
    }
    out.println("<p><table class = 'alternatecolortable' border='1'>");
    out.println("<tr><th>&nbsp;</th>");
    out.println("<th>Queue Url</th>");
    out.println("<th>Queue Arn</th>");
    out.println("<th>Queue Name</th>");
    out.println("<th>User Id</th>");
    out.println("<th>Region</th>");
    out.println("<th>Visibility TO</th>");
    out.println("<th>Max Msg Size</th>");
    out.println("<th>Msg Rention Period</th>");
    out.println("<th>Delay Seconds</th>");
    out.println("<th>Wait Time Seconds</th>");
    out.println("<th>Num Partitions</th>");
    out.println("<th>Num Shards</th>");
    out.println("<th>Compressed</th>");
    out.println("<th>Approx Num Msg</th>");
    out.println("<th>Approx Num Msg Not Visible</th>");
    out.println("<th>Approx Num Msg Delayed</th>");
    out.println("<th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th></tr>");

    for (int i = 0; queueUrls != null && i < queueUrls.size(); i++) {

        Map<String, String> attributes = new HashMap<String, String>();

        if (showQueueAttributes) {
            try {
                GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(
                        queueUrls.get(i));
                getQueueAttributesRequest.setAttributeNames(Arrays.asList("VisibilityTimeout",
                        "MaximumMessageSize", "MessageRetentionPeriod", "DelaySeconds",
                        "ApproximateNumberOfMessages", "ApproximateNumberOfMessagesNotVisible",
                        "ApproximateNumberOfMessagesDelayed", "ReceiveMessageWaitTimeSeconds",
                        "NumberOfPartitions", "NumberOfShards", "IsCompressed"));
                GetQueueAttributesResult getQueueAttributesResult = sqs
                        .getQueueAttributes(getQueueAttributesRequest);
                attributes = getQueueAttributesResult.getAttributes();
            } catch (Exception ex) {
                logger.error("event=get_queue_attributes url=" + queueUrls.get(i));
            }
        }

        out.println("<tr>");
        out.println("<form action=\"/webui/cqsuser?userId=" + user.getUserId() + "\" method=POST>");
        out.println("<td>" + i + "</td>");
        out.println("<td>" + queueUrls.get(i) + "<input type='hidden' name='qUrl' value=" + queueUrls.get(i)
                + "><input type='hidden' name='qName' value="
                + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "></td>");
        out.println("<td>" + Util.getArnForAbsoluteQueueUrl(queueUrls.get(i))
                + "<input type='hidden' name='arn' value=" + Util.getArnForAbsoluteQueueUrl(queueUrls.get(i))
                + "></td>");
        out.println("<td>" + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "</td>");
        out.println("<td>" + user.getUserId() + "<input type='hidden' name='userId' value=" + user.getUserId()
                + "></td>");
        out.println("<td>" + CMBProperties.getInstance().getRegion() + "</td>");

        out.println("<td>"
                + (attributes.get("VisibilityTimeout") != null ? attributes.get("VisibilityTimeout") : "")
                + "</td>");
        out.println("<td>"
                + (attributes.get("MaximumMessageSize") != null ? attributes.get("MaximumMessageSize") : "")
                + "</td>");
        out.println("<td>"
                + (attributes.get("MessageRetentionPeriod") != null ? attributes.get("MessageRetentionPeriod")
                        : "")
                + "</td>");
        out.println("<td>" + (attributes.get("DelaySeconds") != null ? attributes.get("DelaySeconds") : "")
                + "</td>");
        out.println("<td>" + (attributes.get("ReceiveMessageWaitTimeSeconds") != null
                ? attributes.get("ReceiveMessageWaitTimeSeconds")
                : "") + "</td>");
        out.println("<td>"
                + (attributes.get("NumberOfPartitions") != null ? attributes.get("NumberOfPartitions") : "")
                + "</td>");
        out.println("<td>" + (attributes.get("NumberOfShards") != null ? attributes.get("NumberOfShards") : "")
                + "</td>");
        out.println("<td>" + (attributes.get("IsCompressed") != null ? attributes.get("IsCompressed") : "")
                + "</td>");
        out.println("<td>" + (attributes.get("ApproximateNumberOfMessages") != null
                ? attributes.get("ApproximateNumberOfMessages")
                : "") + "</td>");
        out.println("<td>" + (attributes.get("ApproximateNumberOfMessagesNotVisible") != null
                ? attributes.get("ApproximateNumberOfMessagesNotVisible")
                : "") + "</td>");
        out.println("<td>" + (attributes.get("ApproximateNumberOfMessagesDelayed") != null
                ? attributes.get("ApproximateNumberOfMessagesDelayed")
                : "") + "</td>");

        out.println("<td><a href='/webui/cqsuser/message?userId=" + user.getUserId() + "&queueName="
                + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "'>Messages</a></td>");
        out.println("<td><a href='/webui/cqsuser/permissions?userId=" + user.getUserId() + "&queueName="
                + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "'>Permissions</a></td>");
        out.println("<td><a href='' onclick=\"window.open('/webui/cqsuser/editqueueattributes?queueName="
                + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "&userId=" + userId
                + "', 'EditQueueAttributes', 'height=630,width=580,toolbar=no')\">Attributes</a></td>");

        out.println("<input type='hidden' name='queueNamePrefix' value='"
                + (queueNamePrefix != null ? queueNamePrefix : "") + "'/>");
        if (showQueuesWithMessagesOnly) {
            out.println("<input type='hidden' name='ShowMessagesOnly' value='true'/>");
        }
        if (showQueueAttributes) {
            out.println("<input type='hidden' name='ShowAttributes' value='true'/>");
        }

        out.println(
                "<td><input type='submit' value='Clear' name='ClearQueue'/> <br/><input type='submit' value='Delete' name='Delete' onclick=\"return confirm('Are you sure you want to delete queue "
                        + Util.getNameForAbsoluteQueueUrl(queueUrls.get(i)) + "?')\" /></td></form></tr>");

    }

    out.println("</table></p>");
    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a></h5>");
    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:com.connexience.server.model.archive.glacier.SetupUtils.java

License:Open Source License

public static SQSInfo setupSQS(String accessKey, String secretKey, String domainName, String vaultName) {
    SQSInfo sqsInfo = null;/*from   w w  w. j a  v a  2  s.  c o m*/
    try {
        AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);

        AmazonSQSClient amazonSQSClient = new AmazonSQSClient(awsCredentials);
        amazonSQSClient.setEndpoint("https://sqs." + domainName + ".amazonaws.com/");

        String queueName = vaultName + "-inkspot_glacier-queue";
        CreateQueueRequest createQueueRequest = new CreateQueueRequest();
        createQueueRequest.withQueueName(queueName);

        CreateQueueResult createQueueResult = amazonSQSClient.createQueue(createQueueRequest);
        if (createQueueResult != null) {
            String queueURL = createQueueResult.getQueueUrl();

            GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest();
            getQueueAttributesRequest.withQueueUrl(queueURL);
            getQueueAttributesRequest.withAttributeNames("QueueArn");

            GetQueueAttributesResult getQueueAttributesResult = amazonSQSClient
                    .getQueueAttributes(getQueueAttributesRequest);

            if (getQueueAttributesResult != null) {
                String queueARN = getQueueAttributesResult.getAttributes().get("QueueArn");

                Statement sqsStatement = new Statement(Effect.Allow);
                sqsStatement.withPrincipals(Principal.AllUsers);
                sqsStatement.withActions(SQSActions.SendMessage);
                sqsStatement.withResources(new Resource(queueARN));

                Policy sqsPolicy = new Policy();
                sqsPolicy.withStatements(sqsStatement);

                Map<String, String> sqsAttributes = new HashMap<>();
                sqsAttributes.put("Policy", sqsPolicy.toJson());

                SetQueueAttributesRequest setQueueAttributesRequest = new SetQueueAttributesRequest();
                setQueueAttributesRequest.withQueueUrl(queueURL);
                setQueueAttributesRequest.withAttributes(sqsAttributes);

                amazonSQSClient.setQueueAttributes(setQueueAttributesRequest);

                sqsInfo = new SQSInfo(queueARN, queueURL);
            } else
                logger.warn("Unable to get queue attributes: \"" + queueName + "\"");
        } else
            logger.warn("Unable to create queue: \"" + queueName + "\"");

        amazonSQSClient.shutdown();
    } catch (AmazonServiceException amazonServiceException) {
        logger.warn("AmazonServiceException: " + amazonServiceException);
        logger.debug(amazonServiceException);
    } catch (IllegalArgumentException illegalArgumentException) {
        logger.warn("IllegalArgumentException: " + illegalArgumentException);
        logger.debug(illegalArgumentException);
    } catch (AmazonClientException amazonClientException) {
        logger.warn("AmazonClientException: " + amazonClientException);
        logger.debug(amazonClientException);
    } catch (Throwable throwable) {
        logger.warn("Throwable: " + throwable);
        logger.debug(throwable);
    }

    return sqsInfo;
}

From source file:com.easarrive.aws.plugins.common.service.impl.SQSService.java

License:Open Source License

@Override
public Map<String, String> getQueueAllAttributes(AmazonSQS client, String queueUrl) {
    GetQueueAttributesRequest getQueueAttributesRequest = new GetQueueAttributesRequest(queueUrl);
    getQueueAttributesRequest.withAttributeNames(Constant.SQS.Attribute.ALL);
    GetQueueAttributesResult result = client.getQueueAttributes(getQueueAttributesRequest);
    return result.getAttributes();
}