Improve connect event transformation
This commit is contained in:
parent
8c9aca9133
commit
6b90c7ce21
@ -36,26 +36,27 @@ import org.thingsboard.server.common.data.Tenant;
|
|||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
|
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
|
||||||
import org.thingsboard.server.common.data.page.PageData;
|
|
||||||
import org.thingsboard.server.common.data.page.PageLink;
|
|
||||||
import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
|
import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
|
||||||
import org.thingsboard.server.common.data.kv.BooleanDataEntry;
|
import org.thingsboard.server.common.data.kv.BooleanDataEntry;
|
||||||
import org.thingsboard.server.common.data.kv.KvEntry;
|
import org.thingsboard.server.common.data.kv.KvEntry;
|
||||||
import org.thingsboard.server.common.data.kv.LongDataEntry;
|
import org.thingsboard.server.common.data.kv.LongDataEntry;
|
||||||
import org.thingsboard.server.common.data.kv.TsKvEntry;
|
import org.thingsboard.server.common.data.kv.TsKvEntry;
|
||||||
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
|
import org.thingsboard.server.common.data.page.PageLink;
|
||||||
import org.thingsboard.server.common.msg.TbMsg;
|
import org.thingsboard.server.common.msg.TbMsg;
|
||||||
import org.thingsboard.server.common.msg.TbMsgDataType;
|
import org.thingsboard.server.common.msg.TbMsgDataType;
|
||||||
import org.thingsboard.server.common.msg.TbMsgMetaData;
|
import org.thingsboard.server.common.msg.TbMsgMetaData;
|
||||||
|
import org.thingsboard.server.common.msg.queue.ServiceType;
|
||||||
|
import org.thingsboard.server.common.msg.queue.TbCallback;
|
||||||
|
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo;
|
||||||
import org.thingsboard.server.dao.attributes.AttributesService;
|
import org.thingsboard.server.dao.attributes.AttributesService;
|
||||||
import org.thingsboard.server.dao.device.DeviceService;
|
import org.thingsboard.server.dao.device.DeviceService;
|
||||||
import org.thingsboard.server.dao.tenant.TenantService;
|
import org.thingsboard.server.dao.tenant.TenantService;
|
||||||
import org.thingsboard.server.dao.timeseries.TimeseriesService;
|
import org.thingsboard.server.dao.timeseries.TimeseriesService;
|
||||||
|
import org.thingsboard.server.dao.util.mapping.JacksonUtil;
|
||||||
|
import org.thingsboard.server.gen.transport.TransportProtos;
|
||||||
import org.thingsboard.server.queue.discovery.PartitionChangeEvent;
|
import org.thingsboard.server.queue.discovery.PartitionChangeEvent;
|
||||||
import org.thingsboard.server.queue.discovery.PartitionService;
|
import org.thingsboard.server.queue.discovery.PartitionService;
|
||||||
import org.thingsboard.server.common.msg.queue.ServiceType;
|
|
||||||
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo;
|
|
||||||
import org.thingsboard.server.gen.transport.TransportProtos;
|
|
||||||
import org.thingsboard.server.common.msg.queue.TbCallback;
|
|
||||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||||
import org.thingsboard.server.service.queue.TbClusterService;
|
import org.thingsboard.server.service.queue.TbClusterService;
|
||||||
import org.thingsboard.server.service.telemetry.TelemetrySubscriptionService;
|
import org.thingsboard.server.service.telemetry.TelemetrySubscriptionService;
|
||||||
@ -91,7 +92,6 @@ import static org.thingsboard.server.common.data.DataConstants.SERVER_SCOPE;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class DefaultDeviceStateService implements DeviceStateService {
|
public class DefaultDeviceStateService implements DeviceStateService {
|
||||||
|
|
||||||
private static final ObjectMapper json = new ObjectMapper();
|
|
||||||
public static final String ACTIVITY_STATE = "active";
|
public static final String ACTIVITY_STATE = "active";
|
||||||
public static final String LAST_CONNECT_TIME = "lastConnectTime";
|
public static final String LAST_CONNECT_TIME = "lastConnectTime";
|
||||||
public static final String LAST_DISCONNECT_TIME = "lastDisconnectTime";
|
public static final String LAST_DISCONNECT_TIME = "lastDisconnectTime";
|
||||||
@ -506,11 +506,11 @@ public class DefaultDeviceStateService implements DeviceStateService {
|
|||||||
try {
|
try {
|
||||||
String data;
|
String data;
|
||||||
if (msgType.equals(CONNECT_EVENT)) {
|
if (msgType.equals(CONNECT_EVENT)) {
|
||||||
ObjectNode stateNode = json.convertValue(state, ObjectNode.class);
|
ObjectNode stateNode = JacksonUtil.convertValue(state, ObjectNode.class);
|
||||||
stateNode.remove(ACTIVITY_STATE);
|
stateNode.remove(ACTIVITY_STATE);
|
||||||
data = stateNode.toString();
|
data = JacksonUtil.toString(stateNode);
|
||||||
} else {
|
} else {
|
||||||
data = json.writeValueAsString(state);
|
data = JacksonUtil.toString(state);
|
||||||
}
|
}
|
||||||
TbMsg tbMsg = TbMsg.newMsg(msgType, stateData.getDeviceId(), stateData.getMetaData().copy(), TbMsgDataType.JSON, data);
|
TbMsg tbMsg = TbMsg.newMsg(msgType, stateData.getDeviceId(), stateData.getMetaData().copy(), TbMsgDataType.JSON, data);
|
||||||
clusterService.pushMsgToRuleEngine(stateData.getTenantId(), stateData.getDeviceId(), tbMsg, null);
|
clusterService.pushMsgToRuleEngine(stateData.getTenantId(), stateData.getDeviceId(), tbMsg, null);
|
||||||
|
|||||||
@ -28,6 +28,15 @@ public class JacksonUtil {
|
|||||||
|
|
||||||
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||||
|
|
||||||
|
public static <T> T convertValue(Object fromValue, Class<T> toValueType) {
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.convertValue(fromValue, toValueType);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
throw new IllegalArgumentException("The given object value: "
|
||||||
|
+ fromValue + " cannot be converted to " + toValueType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> T fromString(String string, Class<T> clazz) {
|
public static <T> T fromString(String string, Class<T> clazz) {
|
||||||
try {
|
try {
|
||||||
return OBJECT_MAPPER.readValue(string, clazz);
|
return OBJECT_MAPPER.readValue(string, clazz);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user