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

com.katanox.tabour.integration.sqs.config.SqsConfiguration.kt Maven / Gradle / Ivy

package com.katanox.tabour.integration.sqs.config

import com.amazonaws.auth.AWSCredentialsProvider
import com.amazonaws.auth.AWSStaticCredentialsProvider
import com.amazonaws.auth.BasicAWSCredentials
import com.amazonaws.services.sqs.AmazonSQSAsync
import com.amazonaws.services.sqs.AmazonSQSAsyncClientBuilder
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.cloud.aws.messaging.config.annotation.EnableSqs
import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Primary

@Configuration(proxyBeanMethods = false)
@EnableSqs
class SqsConfiguration(@Autowired val sqsProperties: SqsProperties) {

    @Bean
    @Primary
    fun amazonSQSAsync(): AmazonSQSAsync {
        return AmazonSQSAsyncClientBuilder.standard()
            .withCredentials(credentialsProvider())
            .withRegion(sqsProperties.region)
            .build()
    }

    @Bean
    fun credentialsProvider(): AWSCredentialsProvider {
        return AWSStaticCredentialsProvider(BasicAWSCredentials(sqsProperties.accessKey, sqsProperties.secretKey))
    }

    @Bean
    fun queueMessagingTemplate(): QueueMessagingTemplate {
        return QueueMessagingTemplate(amazonSQSAsync())
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy