Example usage for com.amazonaws.services.sns.model Subscription getProtocol

List of usage examples for com.amazonaws.services.sns.model Subscription getProtocol

Introduction

In this page you can find the example usage for com.amazonaws.services.sns.model Subscription getProtocol.

Prototype


public String getProtocol() 

Source Link

Document

The subscription's protocol.

Usage

From source file:com.comcast.cns.controller.CNSSubscriptionPageServlet.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  2s  .c o  m
    }

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

    Map<?, ?> parameters = request.getParameterMap();

    String userId = request.getParameter("userId");
    String topicArn = request.getParameter("topicArn");
    String endPoint = request.getParameter("endPoint");
    String protocol = request.getParameter("protocol");
    String arn = request.getParameter("arn");
    String nextToken = request.getParameter("nextToken");

    connect(request);

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

        try {

            SubscribeRequest subscribeRequest = new SubscribeRequest(topicArn, protocol.toLowerCase(),
                    endPoint);
            sns.subscribe(subscribeRequest);

        } catch (Exception ex) {
            logger.error("event=subscribe", ex);
            throw new ServletException(ex);
        }

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

        try {
            UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest(arn);
            sns.unsubscribe(unsubscribeRequest);
        } catch (Exception ex) {
            logger.error("event=unsubscribe arn=" + arn, ex);
            throw new ServletException(ex);
        }
    }

    List<Subscription> subscriptions = new ArrayList<Subscription>();
    ListSubscriptionsByTopicResult listSubscriptionsByTopicResult = null;

    try {

        listSubscriptionsByTopicResult = sns
                .listSubscriptionsByTopic(new ListSubscriptionsByTopicRequest(topicArn, nextToken));
        subscriptions = listSubscriptionsByTopicResult.getSubscriptions();

    } catch (Exception ex) {
        logger.error("event=listAllSubscriptionsByTopic topic_arn=" + topicArn, ex);
        throw new ServletException(ex);
    }

    ICNSTopicPersistence topicHandler = PersistenceFactory.getTopicPersistence();
    CNSTopic topic = null;

    try {
        topic = topicHandler.getTopic(topicArn);
    } catch (Exception ex) {
        logger.error("event=getTopic topic_arn=" + topicArn, ex);
        throw new ServletException(ex);
    }

    out.println("<html>");
    out.println("<script type='text/javascript' language='javascript'>");
    out.println("function changeEndpointHint(protocol){ ");
    out.println(" if (protocol == 'HTTP' || protocol == 'HTTPS') { ");
    out.println(" document.getElementById('endPoint').placeholder = 'e.g. http://company.com'; }");
    out.println(" else if (protocol == 'EMAIL' || protocol == 'EMAIL_JSON') { ");
    out.println(" document.getElementById('endPoint').placeholder = 'e.g. user@domain.com'; }");
    out.println(" else if (protocol == 'CQS' || protocol == 'SQS') { ");
    out.println(
            " document.getElementById('endPoint').placeholder = 'e.g. arn:aws:cqs:ccp:555555555555:my-queue'; } ");
    out.println(
            " else if (protocol == 'redis') { document.getElementById('endPoint').placeholder = 'e.g. redis://server:port/channelname'; }");
    out.println("}");
    out.println("</script>");

    header(request, out, "Subscriptions for Topic " + ((topic != null) ? topic.getName() : ""));

    out.println("<body>");

    out.println("<h2>Subscriptions for Topic " + ((topic != null) ? topic.getName() : "") + "</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>Topic Name:</b></td><td>" + topic.getName() + "</td></tr>");
        out.println("<tr><td><b>Topic Display Name:</b></td><td>" + topic.getDisplayName() + "</td></tr>");
        out.println("<tr><td><b>Topic Arn:</b></td><td>" + topic.getArn() + "</td></tr>");
        out.println("<tr><td><b>Num Subscriptions:</b></td><td>" + subscriptions.size() + "</td></tr></table>");
    }

    out.println("<p><table><tr><td><b>Protocol</b></td><td><b>End Point</b></td><td>&nbsp;</td></tr>");
    out.println("<form action=\"/webui/cnsuser/subscription/?userId=" + userId + "&topicArn=" + topicArn
            + "\" method=POST>");
    out.println(
            "<tr><td><select name='protocol' onchange='changeEndpointHint(this.value)'><option value='HTTP'>HTTP</option><option value='HTTPS'>HTTPS</option><option value='EMAIL'>EMAIL</option><option value='EMAIL_JSON'>EMAIL_JSON</option><option value='CQS'>CQS</option><option value='SQS'>SQS</option><option value='redis'>REDIS</option></select></td>");
    out.println(
            "<td><input type='text' name='endPoint' id = 'endPoint' size='65' placeholder='e.g. http://company.com'><input type='hidden' name='userId' value='"
                    + userId
                    + "'></td><td><input type='submit' value='Subscribe' name='Subscribe' /></td></tr>");
    out.println("</form></table>");

    out.println("<p><hr width='100%' align='left' />");
    out.println("<p><table class = 'alternatecolortable' border='1'>");
    out.println("<tr><th>Row</th>");
    out.println("<th>Arn</th>");
    out.println("<th>Protocol</th>");
    out.println("<th>End Point</th>");
    out.println("<th>Subscription Attributes</th>");
    out.println("<th>Raw Message Delivery</th>");
    out.println("<th>&nbsp;</th></tr>");

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

        Subscription s = subscriptions.get(i);
        out.println("<tr>");
        out.println("<form action=\"/webui/cnsuser/subscription/?userId=" + user.getUserId() + "&arn="
                + s.getSubscriptionArn() + "&topicArn=" + topicArn + "\" method=POST>");
        out.println("<td>" + i + "</td>");
        out.println("<td>" + s.getSubscriptionArn() + "<input type='hidden' name='arn' value="
                + s.getSubscriptionArn() + "></td>");
        out.println("<td>" + s.getProtocol() + "</td>");
        if (s.getProtocol().toLowerCase().equals("cqs") && isAdmin(request)) {
            out.println("<td><a href='/webui/cqsuser?userId=" + Util.getUserIdForQueueArn(s.getEndpoint())
                    + "'>" + s.getEndpoint() + "</a></td>");
        } else {
            out.println("<td>" + s.getEndpoint() + "</td>");
        }

        if (s.getProtocol().toString().equals("http")
                && !s.getSubscriptionArn().equals("PendingConfirmation")) {
            out.println(
                    "<td><a href='#' onclick=\"window.open('/webui/cnsuser/subscription/editdeliverypolicy?subscriptionArn="
                            + s.getSubscriptionArn() + "&userId=" + userId
                            + "', 'EditDeliveryPolicy', 'height=630,width=580,toolbar=no')\">View/Edit Delivery Policy</a></td>");
        } else {
            out.println("<td>&nbsp;</td>");
        }

        if ((s.getProtocol().toString().equals("https") || s.getProtocol().toString().equals("http")
                || s.getProtocol().toString().equals("cqs") || s.getProtocol().toString().equals("sqs"))
                && !s.getSubscriptionArn().equals("PendingConfirmation")) {
            String url = "/webui/cnsuser/subscription/rawmessagedeliverypolicy/?subscriptionArn="
                    + s.getSubscriptionArn() + "&userId=" + userId;
            out.println("<td><a href='#' onclick=\"window.open('" + url
                    + "', 'RawMessageDelivery', 'height=200,width=580,toolbar=no')\">Raw Message Delivery</a></td>");
        } else {
            out.println("<td>&nbsp;</td>");
        }

        if (s.getSubscriptionArn().equals("PendingConfirmation")) {
            out.println("<td>&nbsp;</td>");
        } else {
            out.println("<td><input type='submit' value='Unsubscribe' name='Unsubscribe'/></td>");
        }

        out.println("</form></tr>");
    }

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

    if (listSubscriptionsByTopicResult != null && listSubscriptionsByTopicResult.getNextToken() != null) {
        out.println("<p><a href='/webui/cnsuser/subscription/?userId=" + userId + "&topicArn=" + topicArn
                + "&nextToken=" + response.encodeURL(listSubscriptionsByTopicResult.getNextToken())
                + "'>next&nbsp;&gt;</a></p>");
    }

    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a>");
    out.println(
            "<a href='/webui/cnsuser?userId=" + userId + "&topicArn=" + topicArn + "'>BACK TO TOPIC</a></h5>");
    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:org.lendingclub.mercator.aws.SNSScanner.java

License:Apache License

private void projectSubscription(Topic topic, Subscription subscription) {

    ObjectNode n = mapper.createObjectNode();
    n.put("aws_topicArn", subscription.getTopicArn());
    n.put("aws_endpoint", subscription.getEndpoint());
    n.put("aws_protocol", subscription.getProtocol());
    n.put("aws_owner", subscription.getOwner());
    n.put("aws_region", getRegion().getName());
    n.put("aws_account", getAccountId());
    String cypher = "merge (s:AwsSnsSubscription {aws_arn:{arn}}) set s+={props}, s.updateTs=timestamp()";

    getNeoRxClient().execCypher(cypher, "arn", subscription.getSubscriptionArn(), "props", n);

    cypher = "match (a:AwsSnsSubscription {aws_arn:{subscriptionArn}}), (t:AwsSnsTopic {aws_arn:{topicArn}}) MERGE (t)-[r:HAS_SUBSCRIPTION]->(a) set r.updateTs=timestamp()";

    getNeoRxClient().execCypher(cypher, "subscriptionArn", subscription.getSubscriptionArn(), "topicArn",
            topic.getTopicArn());/*from   ww  w.j  a  v a2  s  .c o m*/

    String targetArn = subscription.getEndpoint();
    if (targetArn.startsWith("arn:aws:sqs:")) {
        cypher = "match (a:AwsSnsTopic {aws_arn:{topicArn}}),(q:AwsSqsQueue {aws_arn:{queueArn}}) MERGE (a)-[r:PUBLISHES]->(q) set r.updateTs=timestamp()";
        getNeoRxClient().execCypher(cypher, "topicArn", subscription.getTopicArn(), "queueArn", targetArn);

    }
}

From source file:shnakkydoodle.notifying.provider.aws.AwsProvider.java

License:Open Source License

/**
 * Retrieve a specific subsctipion id/*from www.  j av a2  s .  c  om*/
 * 
 * @param topicName
 * @param protocol
 * @param endpoint
 * @return
 */
private String retrieveSubscriptionId(String topicName, String protocol, String endpoint) {

    // find the topic
    NotificationTopic notificationTopic = this.retrieveNotificationTopic(topicName);
    if (notificationTopic == null) {
        return null;
    }

    AmazonSNSClient snsClient = getSNSClient();
    for (Subscription subscription : snsClient.listSubscriptions().getSubscriptions()) {
        if (subscription.getTopicArn().equals(notificationTopic.getTopicId())) {
            if (subscription.getProtocol().equals(protocol) && subscription.getEndpoint().equals(endpoint)) {
                return subscription.getSubscriptionArn();
            }
        }
    }

    return null;
}

From source file:shnakkydoodle.notifying.provider.aws.AwsProvider.java

License:Open Source License

/**
 * Retrieve the notifcation subscriptions for a topic
 * //from   w  ww .  j  a v  a2  s .c o m
 * @param topicName
 */
@Override
public ArrayList<NotificationSubscription> retrieveNotificationSubscriptions(String topicName) {
    ArrayList<NotificationSubscription> data = new ArrayList<NotificationSubscription>();

    // find the topic
    NotificationTopic notificationTopic = this.retrieveNotificationTopic(topicName);
    if (notificationTopic == null) {
        return data;
    }

    AmazonSNSClient snsClient = getSNSClient();
    for (Subscription subscription : snsClient.listSubscriptions().getSubscriptions()) {
        if (subscription.getTopicArn().equals(notificationTopic.getTopicId())) {
            NotificationSubscription instance = new NotificationSubscription();
            instance.setNotificationTopic(notificationTopic);
            instance.setProtocol(subscription.getProtocol());
            instance.setEndPoint(subscription.getEndpoint());
            data.add(instance);
        }
    }
    return data;
}