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);
}