All Downloads are FREE. Search and download functionalities are using the official Maven repository.

driven-adapter.sqs.sqs-sender.mustache Maven / Gradle / Ivy

Go to download

Gradle plugin to create a clean application in Java that already works, It follows our best practices!

There is a newer version: 3.20.10
Show newest version
package {{package}}.sqs.sender;

import {{package}}.sqs.sender.config.SQSSenderProperties;
{{#lombok}}
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
{{/lombok}}
import org.springframework.stereotype.Service;
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
import software.amazon.awssdk.services.sqs.model.SendMessageRequest;
import software.amazon.awssdk.services.sqs.model.SendMessageResponse;

@Service
{{#lombok}}
@Log4j2
@RequiredArgsConstructor
{{/lombok}}
public class SQSSender /*implements SomeGateway*/ {
{{^lombok}}
    private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(SQSSender.class);
{{/lombok}}
    private final SQSSenderProperties properties;
    private final SqsAsyncClient client;
{{^lombok}}

    public SQSSender(SqsAsyncClient client, SQSSenderProperties properties) {
        this.client = client;
        this.properties = properties
    }

    public String send(String message) {
        try {
            SendMessageResponse response = client.sendMessage(buildRequest(message)).get();
            log.debug("Message sent {}", response.messageId());
            return response.messageId();
        } catch (ExecutionException | InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
{{/lombok}}
{{#lombok}}

    @SneakyThrows
    public String send(String message) {
        SendMessageResponse response = client.sendMessage(buildRequest(message)).get();
        log.debug("Message sent {}", response.messageId());
        return response.messageId();
    }
{{/lombok}}

    private SendMessageRequest buildRequest(String message) {
        return SendMessageRequest.builder()
                .queueUrl(properties.getQueueUrl())
                .messageBody(message)
                .build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy