List of usage examples for com.amazonaws.services.sns.model Topic getTopicArn
public String getTopicArn()
The topic's ARN.
From source file:com.carrotgarden.log4j.aws.sns.Appender.java
License:BSD License
/** resolve topic ARN from topic name */ protected boolean ensureTopicARN() { try {//w ww .j a v a2 s. c o m final ListTopicsResult result = amazonClient.listTopics(); final List<Topic> topicList = result.getTopics(); for (final Topic entry : topicList) { final String arn = entry.getTopicArn(); final String name = Util.topicNameFromARN(arn); if (getTopicName().equals(name)) { topicARN = arn; return true; } } LogLog.error("sns: unknown topic name", new IllegalArgumentException(getTopicName())); return false; } catch (final Exception e) { LogLog.error("sns: amazon topic lookup failure", e); return false; } }
From source file:com.clicktravel.infrastructure.messaging.aws.sns.DefaultSnsTopicResourceFactory.java
License:Apache License
private String topicArnForNameInTopics(final String name, final List<Topic> topics) { final String topicArnSuffix = ":" + name; for (final Topic topic : topics) { final String topicArn = topic.getTopicArn(); final int pos = topicArn.lastIndexOf(topicArnSuffix); if (pos == -1) { continue; }/* www . j av a 2 s. c o m*/ final String actualName = topicArn.substring(pos + 1); if (actualName.equals(name)) { return topicArn; } } return null; }
From source file:com.comcast.cns.controller.CNSUserPageServlet.java
License:Apache License
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (redirectUnauthenticatedUser(request, response)) { return;//www. j a v a 2 s . c o m } CMBControllerServlet.valueAccumulator.initializeAllCounters(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); Map<?, ?> parameters = request.getParameterMap(); String userId = request.getParameter("userId"); String topicName = request.getParameter("topic"); String arn = request.getParameter("arn"); String displayName = request.getParameter("display"); String nextToken = request.getParameter("nextToken"); List<Topic> topics = new ArrayList<Topic>(); connect(request); if (parameters.containsKey("Create")) { try { CreateTopicRequest createTopicRequest = new CreateTopicRequest(topicName); CreateTopicResult createTopicResult = sns.createTopic(createTopicRequest); arn = createTopicResult.getTopicArn(); SetTopicAttributesRequest setTopicAttributesRequest = new SetTopicAttributesRequest(arn, "DisplayName", displayName); sns.setTopicAttributes(setTopicAttributesRequest); logger.debug("event=create topic_name=" + topicName + " topic_arn=" + arn + " user_id=" + userId); } catch (Exception ex) { logger.error("event=create topic_name=" + topicName + " user_id=" + userId); throw new ServletException(ex); } } else if (parameters.containsKey("Delete")) { try { DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(arn); sns.deleteTopic(deleteTopicRequest); logger.debug("event=delete_topic topic_arn=" + arn + " user_id= " + userId); } catch (Exception ex) { logger.error("event=delete_topic topic_arn=" + arn + " user_id= " + userId, ex); throw new ServletException(ex); } } else if (parameters.containsKey("DeleteAll")) { try { ListTopicsRequest listTopicRequest = new ListTopicsRequest(); if (nextToken != null) { listTopicRequest.setNextToken(nextToken); } ListTopicsResult listTopicResult = sns.listTopics(listTopicRequest); topics = listTopicResult.getTopics(); } catch (Exception ex) { logger.error("event=list_topics user_id= " + userId, ex); throw new ServletException(ex); } for (int i = 0; topics != null && i < topics.size(); i++) { Topic t = topics.get(i); try { DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(t.getTopicArn()); sns.deleteTopic(deleteTopicRequest); logger.debug("event=delete_topic topic_arn=" + (t != null ? t.getTopicArn() : "null") + " user_id= " + userId); } catch (Exception ex) { logger.error("event=delete_topic topic_arn=" + (t != null ? t.getTopicArn() : "null") + " user_id= " + userId, ex); } } } out.println("<html>"); header(request, out, "Topics"); out.println("<body>"); out.println("<h2>Topics</h2>"); long numTopics = 0; try { numTopics = PersistenceFactory.getUserPersistence().getNumUserTopics(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>Topic Count</b></td><td>" + numTopics + "</td></tr></table>"); } out.println("<p><table>"); out.println("<tr><td><b>Topic Name</b></td><td><b>Topic Display Name</b></td><td></td></tr>"); out.println("<form action=\"/webui/cnsuser?userId=" + userId + "\" " + "method=POST>"); out.println( "<tr><td><input type='text' name='topic' /></td><td><input type='text' name='display'><input type='hidden' name='userId' value='" + userId + "'></td><td><input type='submit' value='Create' name='Create' /></td></tr></form></table></p>"); out.println("<p><table>"); out.println("<form action=\"/webui/cnsuser?userId=" + userId + "\" " + "method=POST>"); out.println("<tr><td><input type='hidden' name='userId' value='" + userId + "'></td><td><input type='submit' value='Delete All' name='DeleteAll' onclick=\"return confirm('Are you sure you want to delete all topics?')\" /></td></tr></form></table></p>"); ListTopicsResult listTopicResult = null; try { ListTopicsRequest listTopicRequest = new ListTopicsRequest(); if (nextToken != null) { listTopicRequest.setNextToken(nextToken); } listTopicResult = sns.listTopics(listTopicRequest); topics = listTopicResult.getTopics(); } catch (Exception ex) { logger.error("event=list_topics user_id= " + userId, ex); throw new ServletException(ex); } out.println("<p><hr width='100%' align='left' /></p>"); out.println("<p><table class = 'alternatecolortable' border='1'>"); out.println("<tr><th> </th>"); out.println("<th>Topic Arn</th>"); out.println("<th>Topic Name</th>"); out.println("<th>Topic Display Name</th>"); out.println("<th>User ID</th>"); out.println("<th>Subscriptions Pending</th>"); out.println("<th>Subscriptions Confirmed</th>"); out.println("<th> </th>"); out.println("<th> </th>"); out.println("<th> </th>"); out.println("<th> </th>"); out.println("<th> </th></tr>"); for (int i = 0; topics != null && i < topics.size(); i++) { Topic t = topics.get(i); GetTopicAttributesRequest getTopicAttributesRequest = new GetTopicAttributesRequest(t.getTopicArn()); GetTopicAttributesResult getTopicAttributesResult = sns.getTopicAttributes(getTopicAttributesRequest); Map<String, String> attributes = getTopicAttributesResult.getAttributes(); out.println("<tr>"); out.println("<form action=\"/webui/cnsuser?userId=" + userId + "\" method=POST>"); out.println("<td>" + i + "</td>"); out.println("<td>" + t.getTopicArn() + "<input type='hidden' name='arn' value=" + t.getTopicArn() + "></td>"); out.println("<td>" + Util.getNameFromTopicArn(t.getTopicArn()) + "</td>"); out.println("<td><a href='' onclick=\"window.open('/webui/cnsuser/editdisplayname?topicArn=" + t.getTopicArn() + "&userId=" + userId + "', 'EditDisplayName', 'height=300,width=700,toolbar=no')\">" + (attributes.get("DisplayName") == null ? "{unset}" : attributes.get("DisplayName")) + "</a></td>"); out.println("<td>" + user.getUserId() + "<input type='hidden' name='userId' value=" + user.getUserId() + "></td>"); out.println("<td>" + attributes.get("SubscriptionsPending") + "</td>"); out.println("<td>" + attributes.get("SubscriptionsConfirmed") + "</td>"); out.println("<td><a href='/webui/cnsuser/subscription?userId=" + userId + "&topicArn=" + t.getTopicArn() + "'>Subscriptions</a></td>"); out.println("<td><a href='/webui/cnsuser/publish?userId=" + userId + "&topicArn=" + t.getTopicArn() + "' target='_blank'>Publish</a></td>"); out.println("<td><a href='' onclick=\"window.open('/webui/cnsuser/editdeliverypolicy?topicArn=" + t.getTopicArn() + "&userId=" + userId + "', 'EditDeliveryPolicy', 'height=630,width=580,toolbar=no')\">View/Edit Topic Delivery Policy</a></td>"); out.println("<td><a href='/webui/cnsuser/permission?topicArn=" + t.getTopicArn() + "&userId=" + userId + "'>Permission</a></td>"); out.println( "<td><input type='submit' value='Delete' name='Delete' onclick=\"return confirm('Are you sure you want to delete topic " + Util.getNameFromTopicArn(t.getTopicArn()) + "?')\" /></td></form></tr>"); } out.println("</table></p>"); if (listTopicResult != null && listTopicResult.getNextToken() != null) { out.println("<p><a href='/webui/cnsuser?userId=" + userId + "&nextToken=" + response.encodeURL(listTopicResult.getNextToken()) + "'>next ></a></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.intuit.tank.vmManager.environment.amazon.CloudwatchInstance.java
License:Open Source License
/** * /*from ww w . j a v a 2 s .c o m*/ * @param email * @return */ public String getOrCreateNotification(String email) { String ret = null; String topicName = getTopicName(email); String nextToken = null; do { ListTopicsResult listTopics = asyncSnsClient.listTopics(nextToken); List<Topic> topics = listTopics.getTopics(); for (Topic s : topics) { if (s.getTopicArn().endsWith(topicName)) { ret = s.getTopicArn(); break; } } nextToken = listTopics.getNextToken(); } while (ret == null && nextToken != null); if (ret == null) { // create the topic and the subscription CreateTopicResult topic = asyncSnsClient.createTopic(topicName); SubscribeRequest req = new SubscribeRequest(topic.getTopicArn(), "email", email); asyncSnsClient.subscribeAsync(req); ret = topic.getTopicArn(); } return ret; }
From source file:com.pocketdealhunter.HotDealsMessagesUtil.java
License:Open Source License
protected String findTopicArn() { try {//from w ww . j a va2 s.co m String topicNameToFind = ":" + Constants.TOPIC_NAME; String nextToken = null; do { ListTopicsRequest listTopicsRequest = new ListTopicsRequest(nextToken); ListTopicsResult result = this.snsClient.listTopics(listTopicsRequest); for (Topic topic : (List<Topic>) result.getTopics()) { if (topic.getTopicArn().endsWith(topicNameToFind)) { return topic.getTopicArn(); } } nextToken = result.getNextToken(); } while (nextToken != null); return null; } catch (Exception exception) { System.out.println("Exception = " + exception); return null; } }
From source file:eu.openg.aws.sns.internal.AmazonSNSFake.java
License:Apache License
@Override public CreateTopicResult createTopic(String name) { if (!authorized) throw newAuthorizationErrorException(name).build(); if (!isValidTopicName(name)) throw newInvalidParameterException(name).build(); final Topic topic = new Topic().withTopicArn("arn:aws:sns:us-east-1:" + clientTokenId + ":" + name); topics.add(topic.getTopicArn()); return new CreateTopicResult().withTopicArn(topic.getTopicArn()); }
From source file:org.lendingclub.mercator.aws.SNSScanner.java
License:Apache License
private void projectTopic(Topic topic) { String arn = topic.getTopicArn(); List<String> parts = Splitter.on(":").splitToList(arn); incrementEntityCount();//from ww w . j a v a2s . c om ObjectNode n = mapper.createObjectNode(); n.put("aws_account", getAccountId()); n.put("aws_region", getRegion().getName()); n.put("name", parts.get(parts.size() - 1)); String cypher = "merge (t:AwsSnsTopic {aws_arn:{arn}}) set t+={props}, t.updateTs=timestamp() return t"; getNeoRxClient().execCypher(cypher, "arn", arn, "props", n).forEach(r -> { getShadowAttributeRemover().removeTagAttributes("AwsSnsTopic", n, r); }); cypher = "match (a:AwsAccount {aws_account:{account}}), (t:AwsSnsTopic {aws_account:{account}}) MERGE (a)-[r:OWNS]->(t) set r.updateTs=timestamp()"; getNeoRxClient().execCypher(cypher, "account", getAccountId()); }
From source file:org.lendingclub.mercator.aws.SNSScanner.java
License:Apache License
private void scanSubscriptions(Topic topic) { ListSubscriptionsByTopicResult result = getClient().listSubscriptionsByTopic(topic.getTopicArn()); String token = null;/*from w w w . j a v a2 s .c om*/ do { token = result.getNextToken(); for (Subscription subscription : result.getSubscriptions()) { projectSubscription(topic, subscription); } result = getClient().listSubscriptionsByTopic(topic.getTopicArn(), token); } while ((!Strings.isNullOrEmpty(token)) && (!token.equals("null"))); }
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()); 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); }/* ww w . ja v a 2 s. co m*/ }
From source file:org.springframework.cloud.aws.messaging.support.destination.DynamicTopicDestinationResolver.java
License:Apache License
private String getTopicResourceName(String marker, String topicName) { ListTopicsResult listTopicsResult = this.amazonSns.listTopics(new ListTopicsRequest(marker)); for (Topic topic : listTopicsResult.getTopics()) { if (AmazonResourceName.isValidAmazonResourceName(topicName)) { if (topic.getTopicArn().equals(topicName)) { return topic.getTopicArn(); }//from w w w . j a v a2 s . c o m } else { AmazonResourceName resourceName = AmazonResourceName.fromString(topic.getTopicArn()); if (resourceName.getResourceType().equals(topicName)) { return topic.getTopicArn(); } } } if (StringUtils.hasText(listTopicsResult.getNextToken())) { return getTopicResourceName(listTopicsResult.getNextToken(), topicName); } else { throw new IllegalArgumentException("No topic found for name :'" + topicName + "'"); } }