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