diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java index 9b204d3187..1546572531 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java @@ -15,13 +15,13 @@ */ package org.thingsboard.server.service.edge.rpc.constructor; +import com.google.gson.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.transport.adaptor.JsonConverter; @@ -82,7 +82,7 @@ public class EntityDataMsgConstructor { AttributeDeleteMsg.Builder attributeDeleteMsg = AttributeDeleteMsg.newBuilder(); attributeDeleteMsg.setScope(entityData.getAsJsonObject().getAsJsonPrimitive("scope").getAsString()); JsonArray jsonArray = entityData.getAsJsonObject().getAsJsonArray("keys"); - List keys = new Gson().fromJson(jsonArray.toString(), List.class); + List keys = new Gson().fromJson(jsonArray.toString(), new TypeToken<>(){}.getType()); attributeDeleteMsg.addAllAttributeNames(keys); attributeDeleteMsg.build(); builder.setAttributeDeleteMsg(attributeDeleteMsg); diff --git a/application/src/main/java/org/thingsboard/server/service/install/cql/CassandraDbHelper.java b/application/src/main/java/org/thingsboard/server/service/install/cql/CassandraDbHelper.java index ca70c4206e..296d9f0a8d 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/cql/CassandraDbHelper.java +++ b/application/src/main/java/org/thingsboard/server/service/install/cql/CassandraDbHelper.java @@ -159,7 +159,7 @@ public class CassandraDbHelper { } else if (type.getProtocolCode() == ProtocolConstants.DataType.TIMESTAMP) { str = ""+row.getInstant(index).toEpochMilli(); } else if (type.getProtocolCode() == ProtocolConstants.DataType.BOOLEAN) { - str = new Boolean(row.getBoolean(index)).toString(); + str = Boolean.valueOf(row.getBoolean(index)).toString(); } else { str = row.getString(index); } diff --git a/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java b/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java index 48ff61a491..e630f2b212 100644 --- a/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java +++ b/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java @@ -270,7 +270,8 @@ public class EdgeImitator { responsesLatch = new CountDownLatch(messageAmount); } - public Optional findMessageByType(Class tClass) { + @SuppressWarnings("unchecked") + public Optional findMessageByType(Class tClass) { Optional result; try { lock.lock(); diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClient.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClient.java index bdb783e3ff..186f085397 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClient.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2mClient.java @@ -103,9 +103,9 @@ public class LwM2mClient implements Cloneable { * @param modelProvider - */ public void deleteResources(String pathIdVer, LwM2mModelProvider modelProvider) { - Set key = getKeysEqualsIdVer(pathIdVer); + Set key = getKeysEqualsIdVer(pathIdVer); key.forEach(pathRez -> { - LwM2mPath pathIds = new LwM2mPath(convertToObjectIdFromIdVer(pathRez.toString())); + LwM2mPath pathIds = new LwM2mPath(convertToObjectIdFromIdVer(pathRez)); ResourceModel resourceModel = modelProvider.getObjectModel(registration).getResourceModel(pathIds.getObjectId(), pathIds.getResourceId()); if (resourceModel != null) { this.resources.get(pathRez).setResourceModel(resourceModel); @@ -122,8 +122,8 @@ public class LwM2mClient implements Cloneable { * @param modelProvider - */ public void updateResourceModel(String idVer, LwM2mModelProvider modelProvider) { - Set key = getKeysEqualsIdVer(idVer); - key.forEach(k -> this.saveResourceModel(k.toString(), modelProvider)); + Set key = getKeysEqualsIdVer(idVer); + key.forEach(k -> this.saveResourceModel(k, modelProvider)); } private void saveResourceModel(String pathRez, LwM2mModelProvider modelProvider) { @@ -132,7 +132,7 @@ public class LwM2mClient implements Cloneable { this.resources.get(pathRez).setResourceModel(resourceModel); } - private Set getKeysEqualsIdVer(String idVer) { + private Set getKeysEqualsIdVer(String idVer) { return this.resources.keySet() .stream() .filter(e -> idVer.equals(e.split(LWM2M_SEPARATOR_PATH)[1])) diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index fe50a63907..8401a43d21 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -586,7 +586,7 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic @Override public Object activateInstance(String edgeLicenseSecret, String releaseDate) { - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("licenseSecret", edgeLicenseSecret); params.put("releaseDate", releaseDate); return this.restTemplate.postForEntity(EDGE_LICENSE_SERVER_ENDPOINT + "/api/license/activateInstance?licenseSecret={licenseSecret}&releaseDate={releaseDate}", (Object) null, Object.class, params); diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java index 79ced87bd7..e766c2600c 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java @@ -16,13 +16,14 @@ package org.thingsboard.rule.engine.edge; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.rule.engine.api.EmptyNodeConfiguration; import org.thingsboard.rule.engine.api.RuleNode; import org.thingsboard.rule.engine.api.TbContext; @@ -87,8 +88,6 @@ public class TbMsgPushToEdgeNode implements TbNode { private EmptyNodeConfiguration config; - private static final ObjectMapper json = new ObjectMapper(); - private static final String SCOPE = "scope"; @Override @@ -200,7 +199,7 @@ public class TbMsgPushToEdgeNode implements TbNode { EdgeEventActionType actionType = getEdgeEventActionTypeByMsgType(msgType); Map entityBody = new HashMap<>(); Map metadata = msg.getMetaData().getData(); - JsonNode dataJson = json.readTree(msg.getData()); + JsonNode dataJson = JacksonUtil.toJsonNode(msg.getData()); switch (actionType) { case ATTRIBUTES_UPDATED: case POST_ATTRIBUTES: @@ -208,7 +207,7 @@ public class TbMsgPushToEdgeNode implements TbNode { entityBody.put(SCOPE, getScope(metadata)); break; case ATTRIBUTES_DELETED: - List keys = json.treeToValue(dataJson.get("attributes"), List.class); + List keys = JacksonUtil.convertValue(dataJson.get("attributes"), new TypeReference<>() {}); entityBody.put("keys", keys); entityBody.put(SCOPE, getScope(metadata)); break; @@ -217,7 +216,7 @@ public class TbMsgPushToEdgeNode implements TbNode { entityBody.put("ts", metadata.get("ts")); break; } - return buildEdgeEvent(ctx.getTenantId(), actionType, msg.getOriginator().getId(), edgeEventTypeByEntityType, json.valueToTree(entityBody)); + return buildEdgeEvent(ctx.getTenantId(), actionType, msg.getOriginator().getId(), edgeEventTypeByEntityType, JacksonUtil.valueToTree(entityBody)); } } @@ -240,9 +239,9 @@ public class TbMsgPushToEdgeNode implements TbNode { return edgeEvent; } - private UUID getUUIDFromMsgData(TbMsg msg) throws JsonProcessingException { - JsonNode data = json.readTree(msg.getData()).get("id"); - String id = json.treeToValue(data.get("id"), String.class); + private UUID getUUIDFromMsgData(TbMsg msg) { + JsonNode data = JacksonUtil.toJsonNode(msg.getData()).get("id"); + String id = JacksonUtil.convertValue(data.get("id"), String.class); return UUID.fromString(id); }