diff --git a/sources/core/pom.xml b/sources/core/pom.xml index 7751384..ee60330 100644 --- a/sources/core/pom.xml +++ b/sources/core/pom.xml @@ -22,12 +22,12 @@ tools.dynamia.modules.email.parent tools.dynamia.modules - 3.1.2 + 3.2.0 tools.dynamia.modules.email DynamiaModules - Email - 3.1.2 + 3.2.0 https://www.dynamiasoluciones.com @@ -77,9 +77,10 @@ provided - com.amazonaws - aws-java-sdk-sns + software.amazon.awssdk + sns ${aws.version} + diff --git a/sources/core/src/main/java/tools/dynamia/modules/email/services/impl/SMSServiceImpl.java b/sources/core/src/main/java/tools/dynamia/modules/email/services/impl/SMSServiceImpl.java index a1819a2..924fe4d 100644 --- a/sources/core/src/main/java/tools/dynamia/modules/email/services/impl/SMSServiceImpl.java +++ b/sources/core/src/main/java/tools/dynamia/modules/email/services/impl/SMSServiceImpl.java @@ -17,16 +17,13 @@ package tools.dynamia.modules.email.services.impl; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.services.sns.AmazonSNSAsync; -import com.amazonaws.services.sns.AmazonSNSAsyncClientBuilder; -import com.amazonaws.services.sns.model.AmazonSNSException; -import com.amazonaws.services.sns.model.MessageAttributeValue; -import com.amazonaws.services.sns.model.PublishRequest; -import com.amazonaws.services.sns.model.PublishResult; + import org.springframework.stereotype.Service; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.sns.SnsClient; +import software.amazon.awssdk.services.sns.model.MessageAttributeValue; +import software.amazon.awssdk.services.sns.model.PublishRequest; import tools.dynamia.domain.services.AbstractService; import tools.dynamia.integration.Containers; import tools.dynamia.modules.email.SMSMessage; @@ -44,58 +41,61 @@ public class SMSServiceImpl extends AbstractService implements SMSService { public String send(SMSMessage message) { validate(message); - AmazonSNSAsync snsClient = buildSNSClient(message); - - - Map smsAttributes = new HashMap<>(); - if (message.isTransactional()) { - smsAttributes.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue() - .withStringValue("Transactional") - .withDataType("String")); - } - - if (message.getSenderID() != null && !message.getSenderID().isEmpty()) { - smsAttributes.put("AWS.SNS.SMS.SenderID", new MessageAttributeValue() - .withStringValue(message.getSenderID()) //The sender ID shown on the device. - .withDataType("String")); - } - - - log("Sending SMS to " + message.getPhoneNumber()); - fireSendingListener(message); - try { - PublishResult result = snsClient.publish(new PublishRequest() - .withMessage(message.getText()) - .withPhoneNumber(message.getPhoneNumber()) - .withMessageAttributes(smsAttributes)); - - log("SMS Result: " + result); - log("Creating log for sms message " + message.getPhoneNumber()); - new SMSMessageLog(message.getPhoneNumber(), - message.getText(), result.getMessageId(), - message.getAccountId()) - .save(); - - - message.setResult(result.getMessageId()); - message.setMessageId(result.getMessageId()); - message.setSended(true); - log("SMS Sended - " + message.getPhoneNumber() + " message id: " + message.getResult()); - fireSendedListener(message); - return message.getResult(); - } catch (AmazonSNSException ex) { - message.setResult(ex.getMessage()); - log("Error sending sms to " + message.getPhoneNumber() + ": " + ex.getMessage(), ex); - return null; + try (var snsClient = buildSNSClient(message)) { + + + Map smsAttributes = new HashMap<>(); + if (message.isTransactional()) { + smsAttributes.put("AWS.SNS.SMS.SMSType", MessageAttributeValue.builder() + .stringValue("Transactional") + .dataType("String").build()); + } + + if (message.getSenderID() != null && !message.getSenderID().isEmpty()) { + smsAttributes.put("AWS.SNS.SMS.SenderID", MessageAttributeValue.builder() + .stringValue(message.getSenderID()) + .dataType("String").build()); + } + + + log("Sending SMS to " + message.getPhoneNumber()); + fireSendingListener(message); + try { + var request = PublishRequest.builder() + .message(message.getText()) + .phoneNumber(message.getPhoneNumber()) + .messageAttributes(smsAttributes) + .build(); + + var result = snsClient.publish(request); + + log("SMS Result: " + result); + log("Creating log for sms message " + message.getPhoneNumber()); + new SMSMessageLog(message.getPhoneNumber(), + message.getText(), result.messageId(), + message.getAccountId()) + .save(); + + + message.setResult(result.messageId()); + message.setMessageId(result.messageId()); + message.setSended(true); + log("SMS Sended - " + message.getPhoneNumber() + " message id: " + message.getResult()); + fireSendedListener(message); + return message.getResult(); + } catch (Exception ex) { + message.setResult(ex.getMessage()); + log("Error sending sms to " + message.getPhoneNumber() + ": " + ex.getMessage(), ex); + return null; + } } } - private AmazonSNSAsync buildSNSClient(SMSMessage message) { - AWSCredentialsProvider credentials = new AWSStaticCredentialsProvider(new BasicAWSCredentials(message.getUsername(), message.getPassword())); - - return AmazonSNSAsyncClientBuilder.standard() - .withCredentials(credentials) - .withRegion(message.getRegion()) + private SnsClient buildSNSClient(SMSMessage message) { + var credentials = AwsBasicCredentials.create(message.getUsername(), message.getPassword()); + return SnsClient.builder() + .credentialsProvider(() -> credentials) + .region(Region.of(message.getRegion())) .build(); } diff --git a/sources/pom.xml b/sources/pom.xml index b31aee0..5a0ae85 100644 --- a/sources/pom.xml +++ b/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules.email.parent DynamiaModules - Email Parent pom - 3.1.2 + 3.2.0 DynamiaTools extension for sending async emails (SMTP) and sms messages (AWS SNS) 2018 https://www.dynamia.tools/modules/email @@ -56,12 +56,12 @@ 17 - 5.2.0 - 3.1.4 + 5.3.1 + 3.2.0 3.13.0 UTF-8 - 3.3.3 - 1.12.771 + 3.4.1 + 2.29.47 diff --git a/sources/ui/pom.xml b/sources/ui/pom.xml index cd60246..5bae115 100644 --- a/sources/ui/pom.xml +++ b/sources/ui/pom.xml @@ -20,12 +20,12 @@ tools.dynamia.modules.email.parent tools.dynamia.modules - 3.1.2 + 3.2.0 4.0.0 DynamiaModules - Email UI tools.dynamia.modules.email.ui - 3.1.2 + 3.2.0 https://www.dynamiasoluciones.com @@ -38,7 +38,7 @@ tools.dynamia.modules tools.dynamia.modules.email - 3.1.2 + 3.2.0 tools.dynamia.zk.addons