package detective.task.aws; import groovy.lang.Closure; import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClient; import com.amazonaws.services.sqs.model.SendMessageRequest; import detective.core.Parameters; import detective.core.TestTask; import detective.task.AbstractTask; /** * Send a String to any queue with Region config * * @author James Luo * */ public class SQSSendTask extends AbstractTask implements TestTask{ @Override protected void doExecute(Parameters config, Parameters output) { String queueUrl = this.readAsString(config, "aws.sqs.queueUrl", null, false, "aws.sqs.queueUrl not present in config"); String dataToSend = this.readAsString(config, "aws.sqs.sendData", null, false, "aws.sqs.sendData not present"); AmazonSQS client = new AmazonSQSClient(AwsUtils.getCredentialProviderC(config), AwsUtils.getClientConfig(config)); client.setRegion(AwsUtils.getRegion(config)); SendMessageRequest request = new SendMessageRequest(queueUrl, dataToSend); client.sendMessage(request); } public static SQSSendTask sqsSendTask(Closure<? extends Object> cl){ return new SQSSendTask(); } }