/** * @return Default async client using the {@link com.amazonaws.auth.DefaultAWSCredentialsProviderChain} and * {@link com.amazonaws.regions.DefaultAwsRegionProviderChain} chain */ public static AmazonSNSAsync defaultClient() { return standard().build(); }
@Bean public AmazonSNSAsync snsClient( @Value("${notification.sns.region}") String region, @Value("${notification.sns.endpointUrl:disabled}") String snsEndpointUrl) { if ("disabled".equalsIgnoreCase(snsEndpointUrl)) { return null; } AmazonSNSAsync client = AmazonSNSAsyncClientBuilder .standard() .withClientConfiguration( new ClientConfiguration().withRetryPolicy(PredefinedRetryPolicies.getDefaultRetryPolicy())) .withExecutorFactory(() -> Executors.newSingleThreadScheduledExecutor()) .withEndpointConfiguration(new EndpointConfiguration(snsEndpointUrl, region)) .build(); return client; }