List of usage examples for com.amazonaws.services.sqs.model CreateQueueRequest setAttributes
public void setAttributes(java.util.Map<String, String> attributes)
A map of attributes with their corresponding values.
From source file:com.comcast.cmb.test.tools.CMBTutorial.java
License:Apache License
public static void main(String[] args) { try {/*from www . ja v a 2s. c om*/ Util.initLog4jTest(); //TODO: set user id and credentials for two distinct users // user "cqs_test_1" //BasicAWSCredentials user1Credentials = new BasicAWSCredentials("<access_key>", "<secret_key>"); BasicAWSCredentials user1Credentials = new BasicAWSCredentials("Z2DVBFRNZ2C2SSXDWS5F", "bH2UQiJkpctBaE3eaDob19fj5J9Q1FVafrZantBp"); // user "cqs_test_2" //String user2Id = "<user_id>"; String user2Id = "389653920093"; //BasicAWSCredentials user2Credentials = new BasicAWSCredentials("<access_key>", "<secret_key>"); BasicAWSCredentials user2Credentials = new BasicAWSCredentials("QL8Q1VOBCSJC5FZ2DMIU", "n6a82gyJZ04Z+Xqp7OgfqPtbbKqVc3UbuOTNrF+7"); // service urls //TODO: add service URLs //String cqsServerUrl = "http://<host>:<port>"; //String cnsServerUrl = "http://<host>:<port>"; String cqsServerUrl = "http://localhost:6059"; String cnsServerUrl = "http://localhost:6061"; // initialize service AmazonSQSClient sqs = new AmazonSQSClient(user1Credentials); sqs.setEndpoint(cqsServerUrl); AmazonSNSClient sns = new AmazonSNSClient(user2Credentials); sns.setEndpoint(cnsServerUrl); // create queue Random randomGenerator = new Random(); String queueName = QUEUE_PREFIX + randomGenerator.nextLong(); HashMap<String, String> attributeParams = new HashMap<String, String>(); CreateQueueRequest createQueueRequest = new CreateQueueRequest(queueName); createQueueRequest.setAttributes(attributeParams); String queueUrl = sqs.createQueue(createQueueRequest).getQueueUrl(); AddPermissionRequest addPermissionRequest = new AddPermissionRequest(); addPermissionRequest.setQueueUrl(queueUrl); addPermissionRequest.setActions(Arrays.asList("SendMessage")); addPermissionRequest.setLabel(UUID.randomUUID().toString()); addPermissionRequest.setAWSAccountIds(Arrays.asList(user2Id)); sqs.addPermission(addPermissionRequest); // create topic String topicName = "TSTT" + randomGenerator.nextLong(); CreateTopicRequest createTopicRequest = new CreateTopicRequest(topicName); CreateTopicResult createTopicResult = sns.createTopic(createTopicRequest); String topicArn = createTopicResult.getTopicArn(); // subscribe and confirm cqs endpoint SubscribeRequest subscribeRequest = new SubscribeRequest(); String queueArn = getArnForQueueUrl(queueUrl); subscribeRequest.setEndpoint(queueArn); subscribeRequest.setProtocol("cqs"); subscribeRequest.setTopicArn(topicArn); SubscribeResult subscribeResult = sns.subscribe(subscribeRequest); String subscriptionArn = subscribeResult.getSubscriptionArn(); if (subscriptionArn.equals("pending confirmation")) { Thread.sleep(500); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(); receiveMessageRequest.setQueueUrl(queueUrl); receiveMessageRequest.setMaxNumberOfMessages(1); ReceiveMessageResult receiveMessageResult = sqs.receiveMessage(receiveMessageRequest); List<Message> messages = receiveMessageResult.getMessages(); if (messages != null && messages.size() == 1) { JSONObject o = new JSONObject(messages.get(0).getBody()); if (!o.has("SubscribeURL")) { throw new Exception("message is not a confirmation messsage"); } String subscriptionUrl = o.getString("SubscribeURL"); httpGet(subscriptionUrl); DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest(); deleteMessageRequest.setReceiptHandle(messages.get(0).getReceiptHandle()); deleteMessageRequest.setQueueUrl(queueUrl); sqs.deleteMessage(deleteMessageRequest); } else { throw new Exception("no confirmation message found"); } } // publish and receive message PublishRequest publishRequest = new PublishRequest(); String messageText = "quamvis sint sub aqua, sub aqua maledicere temptant"; publishRequest.setMessage(messageText); publishRequest.setSubject("unit test message"); publishRequest.setTopicArn(topicArn); sns.publish(publishRequest); Thread.sleep(500); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(); receiveMessageRequest.setQueueUrl(queueUrl); receiveMessageRequest.setMaxNumberOfMessages(1); ReceiveMessageResult receiveMessageResult = sqs.receiveMessage(receiveMessageRequest); List<Message> messages = receiveMessageResult.getMessages(); if (messages != null && messages.size() == 1) { String messageBody = messages.get(0).getBody(); if (!messageBody.contains(messageText)) { throw new Exception("message text not found"); } DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest(); deleteMessageRequest.setReceiptHandle(messages.get(0).getReceiptHandle()); deleteMessageRequest.setQueueUrl(queueUrl); sqs.deleteMessage(deleteMessageRequest); } else { throw new Exception("no messages found"); } // subscribe and confirm http endpoint String id = randomGenerator.nextLong() + ""; String endPointUrl = CMBTestingConstants.HTTP_ENDPOINT_BASE_URL + "recv/" + id; String lastMessageUrl = CMBTestingConstants.HTTP_ENDPOINT_BASE_URL + "info/" + id + "?showLast=true"; subscribeRequest = new SubscribeRequest(); subscribeRequest.setEndpoint(endPointUrl); subscribeRequest.setProtocol("http"); subscribeRequest.setTopicArn(topicArn); subscribeResult = sns.subscribe(subscribeRequest); subscriptionArn = subscribeResult.getSubscriptionArn(); if (subscriptionArn.equals("pending confirmation")) { Thread.sleep(500); String response = httpGet(lastMessageUrl); JSONObject o = new JSONObject(response); if (!o.has("SubscribeURL")) { throw new Exception("message is not a confirmation messsage"); } String subscriptionUrl = o.getString("SubscribeURL"); response = httpGet(subscriptionUrl); } // publish and receive message publishRequest = new PublishRequest(); publishRequest.setMessage(messageText); publishRequest.setSubject("unit test message"); publishRequest.setTopicArn(topicArn); sns.publish(publishRequest); Thread.sleep(500); String response = httpGet(lastMessageUrl); if (response != null && response.length() > 0) { if (!response.contains(messageText)) { throw new Exception("message text not found"); } } else { throw new Exception("no messages found"); } // delete queue and topic DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(topicArn); sns.deleteTopic(deleteTopicRequest); sqs.deleteQueue(new DeleteQueueRequest(queueUrl)); System.out.println("OK"); } catch (Exception ex) { ex.printStackTrace(); } }
From source file:com.comcast.cns.tools.CQSHandler.java
License:Apache License
public static synchronized void ensureQueuesExist(String queueNamePrefix, int numShards) { for (int i = 0; i < numShards; i++) { GetQueueUrlRequest getQueueUrlRequest = new GetQueueUrlRequest(queueNamePrefix + i); try {//from w ww .ja v a 2 s. c om sqs.getQueueUrl(getQueueUrlRequest); } catch (AmazonServiceException ex) { if (ex.getStatusCode() == 400) { CreateQueueRequest createQueueRequest = new CreateQueueRequest(queueNamePrefix + i); Map<String, String> attributes = new HashMap<String, String>(); if (queueNamePrefix .startsWith(CMBProperties.getInstance().getCNSEndpointPublishQueueNamePrefix())) { attributes.put("VisibilityTimeout", CMBProperties.getInstance().getCNSEndpointPublishJobVisibilityTimeout() + ""); } else { attributes.put("VisibilityTimeout", CMBProperties.getInstance().getCNSPublishJobVisibilityTimeout() + ""); } createQueueRequest.setAttributes(attributes); CreateQueueResult createQueueResponse = sqs.createQueue(createQueueRequest); if (createQueueResponse.getQueueUrl() == null) { throw new IllegalStateException("Could not create queue with name " + queueNamePrefix + i); } logger.info("event=created_missing_queue name=" + queueNamePrefix + i + " url=" + createQueueResponse.getQueueUrl()); } else { throw ex; } } } }
From source file:com.eucalyptus.portal.SimpleQueueClientManager.java
License:Open Source License
public void createQueue(final String queueName, final Map<String, String> queueAttributes) throws Exception { try {//from w w w . ja v a 2 s . c om final CreateQueueRequest req = new CreateQueueRequest(); if (queueAttributes != null) req.setAttributes(queueAttributes); req.setQueueName(queueName); if (getSimpleQueueClient().createQueue(req).getQueueUrl() == null) throw new Exception("Null queue URL is returned"); } catch (final AmazonServiceException ex) { throw new Exception("Failed to create queue due to service error", ex); } catch (final AmazonClientException ex) { throw new Exception("Failed to create queue due to client error", ex); } }
From source file:org.duracloud.common.sns.SnsSubscriptionManager.java
License:Apache License
public synchronized void connect() { if (initialized) { throw new DuraCloudRuntimeException("this manager is already connected"); }//from w ww .j a v a2s . c om //create sqs queue log.info("creating sqs queue"); CreateQueueRequest request = new CreateQueueRequest(this.queueName); Map<String, String> attributes = new HashMap<String, String>(); attributes.put("ReceiveMessageWaitTimeSeconds", "20"); request.setAttributes(attributes); CreateQueueResult result; try { result = sqsClient.createQueue(request); this.queueUrl = result.getQueueUrl(); log.info("sqs queue created: {}", this.queueUrl); } catch (QueueNameExistsException ex) { log.info("queue with name {} already exists."); GetQueueUrlResult queueUrlResult = sqsClient.getQueueUrl(this.queueName); this.queueUrl = queueUrlResult.getQueueUrl(); log.info("sqs queue url retrieved: {}", this.queueUrl); } String queueArnKey = "QueueArn"; GetQueueAttributesResult getQueueAttrResult = sqsClient.getQueueAttributes(this.queueUrl, Arrays.asList(queueArnKey)); log.info("subscribing {} to {}", queueUrl, topicArn); String queueArn = getQueueAttrResult.getAttributes().get(queueArnKey); SubscribeResult subscribeResult = this.snsClient.subscribe(topicArn, "sqs", queueArn); this.subscriptionArn = subscribeResult.getSubscriptionArn(); Map<String, String> queueAttributes = new HashMap<String, String>(); queueAttributes.put("Policy", generateSqsPolicyForTopic(queueArn, topicArn)); sqsClient.setQueueAttributes(new SetQueueAttributesRequest(queueUrl, queueAttributes)); log.info("subscription complete: {}", this.subscriptionArn); //subscribe queue to topic this.initialized = true; startPolling(); }