From 1c87dabac2965803195367b62d147fd71bdc25d6 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Tue, 29 Aug 2023 10:56:37 +0200 Subject: [PATCH] improvements --- .../device/DeviceConnectivityConfiguration.java | 3 ++- .../dao/device/DeviceConnectivityServiceImpl.java | 15 +++++++++++++-- .../test/resources/application-test.properties | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityConfiguration.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityConfiguration.java index 033aa4e0bc..99a4014f48 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityConfiguration.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityConfiguration.java @@ -19,13 +19,14 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; +import java.util.HashMap; import java.util.Map; @Configuration @ConfigurationProperties(prefix = "device") @Data public class DeviceConnectivityConfiguration { - private Map connectivity; + private Map connectivity = new HashMap<>(); public boolean isEnabled(String protocol) { var info = connectivity.get(protocol); diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java index d7c5c8c767..995e3798b0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java @@ -37,6 +37,7 @@ import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; import org.thingsboard.server.dao.util.DeviceConnectivityUtil; +import javax.annotation.PostConstruct; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URI; @@ -78,8 +79,18 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService @Autowired private DeviceConnectivityConfiguration deviceConnectivityConfiguration; - @Autowired - private DeviceConnectivityServiceImpl deviceConnectivityService; + @PostConstruct + private void init() { + DeviceConnectivityInfo mqtts = deviceConnectivityConfiguration.getConnectivity().get(MQTTS); + if (mqtts != null && mqtts.isEnabled()) { + String certFilePath = mqtts.getPemCertFile(); + if (StringUtils.isBlank(certFilePath) || !ResourceUtils.resourceExists(this, certFilePath)) { + String error = StringUtils.isBlank(certFilePath) ? "path is empty" : "file is not exists"; + log.error("MQTTS is enabled but cert {}!", error); + } + } + + } @Override public JsonNode findDevicePublishTelemetryCommands(String baseUrl, Device device) throws URISyntaxException { diff --git a/dao/src/test/resources/application-test.properties b/dao/src/test/resources/application-test.properties index 98f9091318..447a44a163 100644 --- a/dao/src/test/resources/application-test.properties +++ b/dao/src/test/resources/application-test.properties @@ -136,3 +136,5 @@ queue.rule-engine.queues[2].partitions=2 queue.rule-engine.queues[2].processing-strategy.retries=1 queue.rule-engine.queues[2].processing-strategy.pause-between-retries=0 queue.rule-engine.queues[2].processing-strategy.max-pause-between-retries=0 + +#device.connectivity=