diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java index 8be6105e35..fb220c1417 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractControllerTest.java @@ -22,6 +22,7 @@ import io.jsonwebtoken.Claims; import io.jsonwebtoken.Header; import io.jsonwebtoken.Jwt; import io.jsonwebtoken.Jwts; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.hamcrest.Matcher; import org.junit.After; @@ -85,6 +86,7 @@ import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppC @ComponentScan({"org.thingsboard.server"}) @WebAppConfiguration @SpringBootTest +@Slf4j public abstract class AbstractControllerTest { protected static final String TEST_TENANT_NAME = "TEST TENANT"; @@ -130,6 +132,7 @@ public abstract class AbstractControllerTest { @Before public void setup() throws Exception { + log.info("Executing setup"); if (this.mockMvc == null) { this.mockMvc = webAppContextSetup(webApplicationContext) .apply(springSecurity()).build(); @@ -163,13 +166,16 @@ public abstract class AbstractControllerTest { createUserAndLogin(customerUser, CUSTOMER_USER_PASSWORD); logout(); + log.info("Executed setup"); } @After public void teardown() throws Exception { + log.info("Executing teardown"); loginSysAdmin(); doDelete("/api/tenant/"+tenantId.getId().toString()) .andExpect(status().isOk()); + log.info("Executed teardown"); } protected void loginSysAdmin() throws Exception { diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java index 5047c36189..f7153d565b 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseAdminControllerTest.java @@ -15,19 +15,14 @@ */ package org.thingsboard.server.controller; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import org.thingsboard.server.common.data.AdminSettings; -import org.junit.Test; - import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; +import org.junit.Test; +import org.thingsboard.server.common.data.AdminSettings; + +import static org.hamcrest.Matchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + public abstract class BaseAdminControllerTest extends AbstractControllerTest { diff --git a/application/src/test/resources/logback.xml b/application/src/test/resources/logback.xml index 2577ca19c6..4a43f1ddb7 100644 --- a/application/src/test/resources/logback.xml +++ b/application/src/test/resources/logback.xml @@ -7,8 +7,9 @@ - + + diff --git a/pom.xml b/pom.xml index ce8f1e1ae2..2c4bcbd0bb 100755 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ 2.2.0 4.12 1.7.7 - 1.1.7 + 1.2.3 1.9.5 0.10 3.0.0 diff --git a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java index 197734460e..2dd1c5df21 100644 --- a/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java +++ b/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/GatewaySessionCtx.java @@ -55,6 +55,7 @@ import static org.thingsboard.server.transport.mqtt.adaptors.JsonMqttAdaptor.val @Slf4j public class GatewaySessionCtx { + private static final String DEFAULT_DEVICE_TYPE = "default"; private final Device gateway; private final SessionId gatewaySessionId; private final SessionMsgProcessor processor; @@ -78,6 +79,11 @@ public class GatewaySessionCtx { JsonElement json = getJson(msg); String deviceName = checkDeviceName(getDeviceName(json)); String deviceType = getDeviceType(json); + onDeviceConnect(deviceName, deviceType); + ack(msg); + } + + private void onDeviceConnect(String deviceName, String deviceType) { if (!devices.containsKey(deviceName)) { Optional deviceOpt = deviceService.findDeviceByTenantIdAndName(gateway.getTenantId(), deviceName); Device device = deviceOpt.orElseGet(() -> { @@ -95,7 +101,6 @@ public class GatewaySessionCtx { processor.process(new BasicToDeviceActorSessionMsg(device, new BasicAdaptorToSessionActorMsg(ctx, new AttributesSubscribeMsg()))); processor.process(new BasicToDeviceActorSessionMsg(device, new BasicAdaptorToSessionActorMsg(ctx, new RpcSubscribeMsg()))); } - ack(msg); } public void onDeviceDisconnect(MqttPublishMessage msg) throws AdaptorException { @@ -205,10 +210,9 @@ public class GatewaySessionCtx { private String checkDeviceConnected(String deviceName) { if (!devices.containsKey(deviceName)) { log.debug("[{}] Missing device [{}] for the gateway session", gatewaySessionId, deviceName); - throw new RuntimeException("Device " + deviceName + " is not connected!"); - } else { - return deviceName; + onDeviceConnect(deviceName, DEFAULT_DEVICE_TYPE); } + return deviceName; } private String checkDeviceName(String deviceName) { @@ -225,7 +229,7 @@ public class GatewaySessionCtx { private String getDeviceType(JsonElement json) throws AdaptorException { JsonElement type = json.getAsJsonObject().get("type"); - return type == null ? "default" : type.getAsString(); + return type == null ? DEFAULT_DEVICE_TYPE : type.getAsString(); } private JsonElement getJson(MqttPublishMessage mqttMsg) throws AdaptorException { @@ -236,7 +240,7 @@ public class GatewaySessionCtx { return processor; } - protected DeviceAuthService getAuthService() { + DeviceAuthService getAuthService() { return authService; } @@ -250,7 +254,7 @@ public class GatewaySessionCtx { } } - protected void writeAndFlush(MqttMessage mqttMessage) { + void writeAndFlush(MqttMessage mqttMessage) { channel.writeAndFlush(mqttMessage); }