List of usage examples for com.amazonaws.services.sns.model PublishRequest addMessageAttributesEntry
public PublishRequest addMessageAttributesEntry(String key, MessageAttributeValue value)
From source file:org.apache.nifi.processors.aws.sns.PutSNS.java
License:Apache License
@Override public void onTrigger(final ProcessContext context, final ProcessSession session) { FlowFile flowFile = session.get();/*from w ww . ja va2s . co m*/ if (flowFile == null) { return; } if (flowFile.getSize() > MAX_SIZE) { getLogger().error( "Cannot publish {} to SNS because its size exceeds Amazon SNS's limit of 256KB; routing to failure", new Object[] { flowFile }); session.transfer(flowFile, REL_FAILURE); return; } final Charset charset = Charset .forName(context.getProperty(CHARACTER_ENCODING).evaluateAttributeExpressions(flowFile).getValue()); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); session.exportTo(flowFile, baos); final String message = new String(baos.toByteArray(), charset); final AmazonSNSClient client = getClient(); final PublishRequest request = new PublishRequest(); request.setMessage(message); if (context.getProperty(USE_JSON_STRUCTURE).asBoolean()) { request.setMessageStructure("json"); } final String arn = context.getProperty(ARN).evaluateAttributeExpressions(flowFile).getValue(); final String arnType = context.getProperty(ARN_TYPE).getValue(); if (arnType.equalsIgnoreCase(ARN_TYPE_TOPIC.getValue())) { request.setTopicArn(arn); } else { request.setTargetArn(arn); } final String subject = context.getProperty(SUBJECT).evaluateAttributeExpressions(flowFile).getValue(); if (subject != null) { request.setSubject(subject); } for (final Map.Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet()) { if (entry.getKey().isDynamic() && !StringUtils.isEmpty(entry.getValue())) { final MessageAttributeValue value = new MessageAttributeValue(); value.setStringValue( context.getProperty(entry.getKey()).evaluateAttributeExpressions(flowFile).getValue()); value.setDataType("String"); request.addMessageAttributesEntry(entry.getKey().getName(), value); } } try { client.publish(request); session.transfer(flowFile, REL_SUCCESS); session.getProvenanceReporter().send(flowFile, arn); getLogger().info("Successfully published notification for {}", new Object[] { flowFile }); } catch (final Exception e) { getLogger().error("Failed to publish Amazon SNS message for {} due to {}", new Object[] { flowFile, e }); flowFile = session.penalize(flowFile); session.transfer(flowFile, REL_FAILURE); } }
From source file:Servlet.WorkPool.java
License:Open Source License
public void run() { System.out.println("==========================================="); System.out.println("Welcome to the AWS Java SDK!"); System.out.println("==========================================="); try {//from w w w .java 2 s .c o m init(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // Send a message /* * System.out.println("Sending a message to MyQueue.\n"); * sqs.sendMessage(new SendMessageRequest() .withQueueUrl(myQueueUrl) * .withMessageBody("This is my message text.")); */ /* * List<Message> messages =getMessage(myQueueUrl); * deleteMessage(myQueueUrl,messages); getMessage(myQueueUrl); */ PublishRequest publishRequest; while (true) { // System.out.println("Receiving messages from MyQueue.\n"); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(myQueueUrl); List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); for (Message message : messages) { String result = message.getBody(); JSONObject jo; try { jo = new JSONObject(result); String res = sendPost((String) jo.get("text")); //System.out.println((String) jo.get("text")); //System.out.println((String) jo.get("time")); publishRequest = new PublishRequest(topicArn, (String) jo.get("text")); if (res.equals("")) res = "error"; publishRequest.addMessageAttributesEntry("senti", new MessageAttributeValue().withDataType("String").withStringValue(res)); /* * publishRequest.addMessageAttributesEntry( "text", new * MessageAttributeValue().withDataType("String") * .withStringValue( (String)jo.get("text"))); */ publishRequest.addMessageAttributesEntry("lon", new MessageAttributeValue() .withDataType("String").withStringValue((String) jo.get("lon"))); publishRequest.addMessageAttributesEntry("lat", new MessageAttributeValue() .withDataType("String").withStringValue((String) jo.get("lat"))); publishRequest.addMessageAttributesEntry("time", new MessageAttributeValue() .withDataType("String").withStringValue((String) jo.get("time"))); publishRequest.addMessageAttributesEntry("id", new MessageAttributeValue() .withDataType("String").withStringValue((String) jo.get("id"))); PublishResult publishResult = sns.publish(publishRequest); deleteMessage(myQueueUrl, message); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }