Browse Source

Changed check for blank string and added minor improvements

pull/9845/head
imbeacon 3 years ago
parent
commit
ac4f875813
  1. 14
      application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java
  2. 4
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java
  3. 7
      dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java

14
application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java

@ -724,7 +724,7 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest {
} }
@Test @Test
public void testFetchPublishTelemetryCommandsForHostSetToNullInSettings() throws Exception { public void testFetchPublishTelemetryCommandsForDeviceWhenHostSetToNullInSettings() throws Exception {
loginSysAdmin(); loginSysAdmin();
ObjectNode config = JacksonUtil.newObjectNode(); ObjectNode config = JacksonUtil.newObjectNode();
@ -742,26 +742,26 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest {
ObjectNode mqtt = JacksonUtil.newObjectNode(); ObjectNode mqtt = JacksonUtil.newObjectNode();
mqtt.put("enabled", true); mqtt.put("enabled", true);
mqtt.put("host", NullNode.getInstance()); mqtt.set("host", NullNode.getInstance());
mqtt.put("port", NullNode.getInstance()); mqtt.set("port", NullNode.getInstance());
config.set("mqtt", mqtt); config.set("mqtt", mqtt);
ObjectNode mqtts = JacksonUtil.newObjectNode(); ObjectNode mqtts = JacksonUtil.newObjectNode();
mqtts.put("enabled", true); mqtts.put("enabled", true);
mqtts.put("host", ""); mqtts.put("host", "");
mqtts.put("port", NullNode.getInstance()); mqtts.set("port", NullNode.getInstance());
config.set("mqtts", mqtts); config.set("mqtts", mqtts);
ObjectNode coap = JacksonUtil.newObjectNode(); ObjectNode coap = JacksonUtil.newObjectNode();
coap.put("enabled", true); coap.put("enabled", true);
coap.put("host", NullNode.getInstance()); coap.set("host", NullNode.getInstance());
coap.put("port", ""); coap.put("port", "");
config.set("coap", coap); config.set("coap", coap);
ObjectNode coaps = JacksonUtil.newObjectNode(); ObjectNode coaps = JacksonUtil.newObjectNode();
coaps.put("enabled", true); coaps.put("enabled", true);
coaps.put("host", NullNode.getInstance()); coaps.set("host", NullNode.getInstance());
coaps.put("port", NullNode.getInstance()); coaps.set("port", NullNode.getInstance());
config.set("coaps", coaps); config.set("coaps", coaps);
AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class); AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class);

4
dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java

@ -328,14 +328,14 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService
private String getCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException { private String getCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException {
DeviceConnectivityInfo properties = getConnectivity(protocol); DeviceConnectivityInfo properties = getConnectivity(protocol);
String hostName = getHost(baseUrl, properties, protocol); String hostName = getHost(baseUrl, properties, protocol);
String port = properties.getPort() == null || properties.getPort().isEmpty() ? "" : ":" + properties.getPort(); String port = StringUtils.isBlank(properties.getPort()) ? "" : ":" + properties.getPort();
return DeviceConnectivityUtil.getCoapPublishCommand(protocol, hostName, port, deviceCredentials); return DeviceConnectivityUtil.getCoapPublishCommand(protocol, hostName, port, deviceCredentials);
} }
private String getDockerCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException { private String getDockerCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException {
DeviceConnectivityInfo properties = getConnectivity(protocol); DeviceConnectivityInfo properties = getConnectivity(protocol);
String host = getHost(baseUrl, properties, protocol); String host = getHost(baseUrl, properties, protocol);
String port = properties.getPort() == null || properties.getPort().isEmpty() ? "" : ":" + properties.getPort(); String port = StringUtils.isBlank(properties.getPort()) ? "" : ":" + properties.getPort();
return DeviceConnectivityUtil.getDockerCoapPublishCommand(protocol, host, port, deviceCredentials); return DeviceConnectivityUtil.getDockerCoapPublishCommand(protocol, host, port, deviceCredentials);
} }

7
dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java

@ -18,6 +18,7 @@ package org.thingsboard.server.dao.util;
import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials;
import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.dao.device.DeviceConnectivityInfo; import org.thingsboard.server.dao.device.DeviceConnectivityInfo;
@ -63,7 +64,7 @@ public class DeviceConnectivityUtil {
if (MQTTS.equals(protocol)) { if (MQTTS.equals(protocol)) {
command.append(" --cafile ").append(CA_ROOT_CERT_PEM); command.append(" --cafile ").append(CA_ROOT_CERT_PEM);
} }
command.append(" -h ").append(host).append(port.isBlank() ? "" : " -p " + port); command.append(" -h ").append(host).append(StringUtils.isBlank(port) ? "" : " -p " + port);
command.append(" -t ").append(deviceTelemetryTopic); command.append(" -t ").append(deviceTelemetryTopic);
switch (deviceCredentials.getCredentialsType()) { switch (deviceCredentials.getCredentialsType()) {
@ -219,7 +220,7 @@ public class DeviceConnectivityUtil {
} }
public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException { public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException {
String initialHost = properties.getHost() == null || properties.getHost().isBlank() ? baseUrl : properties.getHost(); String initialHost = StringUtils.isBlank(properties.getHost()) ? baseUrl : properties.getHost();
InetAddress inetAddress; InetAddress inetAddress;
String host = null; String host = null;
if (VALID_URL_PATTERN.matcher(initialHost).matches()) { if (VALID_URL_PATTERN.matcher(initialHost).matches()) {
@ -244,7 +245,7 @@ public class DeviceConnectivityUtil {
} }
public static String getPort(DeviceConnectivityInfo properties) { public static String getPort(DeviceConnectivityInfo properties) {
return properties.getPort() == null || properties.getPort().isBlank() ? "" : properties.getPort(); return StringUtils.isBlank(properties.getPort()) ? "" : properties.getPort();
} }
public static boolean isLocalhost(String host) { public static boolean isLocalhost(String host) {

Loading…
Cancel
Save