Browse Source

Replace deprecated JsonNode.fields, HttpMessageNotReadableException(String), Assert.assertThat(Matcher), io.jsonwebtoken.SignatureException, StopWatch.getLastTaskTimeNanos calls with non-deprecated variants

pull/15522/head
Oleksandra Matviienko 5 months ago
parent
commit
c33546be5e
  1. 2
      application/src/main/java/org/thingsboard/server/service/security/model/token/JwtTokenFactory.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/security/model/token/OAuth2AppTokenFactory.java
  3. 2
      application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java
  4. 7
      common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java
  5. 7
      common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java
  6. 6
      common/util/src/main/java/org/thingsboard/common/util/TbStopWatch.java
  7. 2
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/Langchain4jJsonSchemaAdapter.java
  8. 5
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java
  9. 9
      tools/src/main/java/org/thingsboard/client/tools/i18n/TranslationPruner.java

2
application/src/main/java/org/thingsboard/server/service/security/model/token/JwtTokenFactory.java

@ -23,9 +23,9 @@ import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.JwtParser; import io.jsonwebtoken.JwtParser;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.MalformedJwtException; import io.jsonwebtoken.MalformedJwtException;
import io.jsonwebtoken.SignatureException;
import io.jsonwebtoken.UnsupportedJwtException; import io.jsonwebtoken.UnsupportedJwtException;
import io.jsonwebtoken.security.Keys; import io.jsonwebtoken.security.Keys;
import io.jsonwebtoken.security.SignatureException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;

2
application/src/main/java/org/thingsboard/server/service/security/model/token/OAuth2AppTokenFactory.java

@ -20,9 +20,9 @@ import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jws; import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.MalformedJwtException; import io.jsonwebtoken.MalformedJwtException;
import io.jsonwebtoken.SignatureException;
import io.jsonwebtoken.UnsupportedJwtException; import io.jsonwebtoken.UnsupportedJwtException;
import io.jsonwebtoken.security.Keys; import io.jsonwebtoken.security.Keys;
import io.jsonwebtoken.security.SignatureException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;

2
application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java

@ -101,10 +101,10 @@ import java.util.concurrent.atomic.AtomicLong;
import static org.awaitility.Awaitility.await; import static org.awaitility.Awaitility.await;
import static org.eclipse.leshan.client.object.Security.noSec; import static org.eclipse.leshan.client.object.Security.noSec;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsInstanceOf.instanceOf; import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.timeout;

7
common/transport/http/src/test/java/org/thingsboard/server/transport/http/DeviceApiControllerTest.java

@ -18,6 +18,7 @@ package org.thingsboard.server.transport.http;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.context.request.async.DeferredResult;
@ -37,7 +38,7 @@ class DeviceApiControllerTest {
}; };
var callback = new DeviceApiController.DeviceAuthCallback(transportContext, responseWriter, onSuccess); var callback = new DeviceApiController.DeviceAuthCallback(transportContext, responseWriter, onSuccess);
callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax", (HttpInputMessage) null));
callback.onError(new JsonParseException("Json ; expected")); callback.onError(new JsonParseException("Json ; expected"));
@ -51,7 +52,7 @@ class DeviceApiControllerTest {
DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class); DeferredResult<ResponseEntity> responseWriter = Mockito.mock(DeferredResult.class);
var callback = new DeviceApiController.DeviceProvisionCallback(responseWriter); var callback = new DeviceApiController.DeviceProvisionCallback(responseWriter);
callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax", (HttpInputMessage) null));
callback.onError(new JsonParseException("Json ; expected")); callback.onError(new JsonParseException("Json ; expected"));
@ -71,7 +72,7 @@ class DeviceApiControllerTest {
var callback = new DeviceApiController.GetOtaPackageCallback(transportContext, responseWriter, title, version, chunkSize, chunk); var callback = new DeviceApiController.GetOtaPackageCallback(transportContext, responseWriter, title, version, chunkSize, chunk);
callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax")); callback.onError(new HttpMessageNotReadableException("JSON incorrect syntax", (HttpInputMessage) null));
callback.onError(new JsonParseException("Json ; expected")); callback.onError(new JsonParseException("Json ; expected"));

7
common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java

@ -434,10 +434,8 @@ public class JacksonUtil {
private static void toFlatMap(JsonNode node, String currentPath, Map<String, String> map) { private static void toFlatMap(JsonNode node, String currentPath, Map<String, String> map) {
if (node.isObject()) { if (node.isObject()) {
Iterator<Map.Entry<String, JsonNode>> fields = node.fields();
currentPath = currentPath.isEmpty() ? "" : currentPath + "."; currentPath = currentPath.isEmpty() ? "" : currentPath + ".";
while (fields.hasNext()) { for (Map.Entry<String, JsonNode> entry : node.properties()) {
Map.Entry<String, JsonNode> entry = fields.next();
toFlatMap(entry.getValue(), currentPath + entry.getKey(), map); toFlatMap(entry.getValue(), currentPath + entry.getKey(), map);
} }
} else if (node.isValueNode()) { } else if (node.isValueNode()) {
@ -541,8 +539,7 @@ public class JacksonUtil {
} }
} else if (node.isObject()) { } else if (node.isObject()) {
ObjectNode on = (ObjectNode) node; ObjectNode on = (ObjectNode) node;
for (Iterator<Map.Entry<String, JsonNode>> it = on.fields(); it.hasNext(); ) { for (Map.Entry<String, JsonNode> kv : on.properties()) {
var kv = it.next();
if (variableName != null) { if (variableName != null) {
tasks.add(task.next(kv.getValue(), variableName, kv.getKey())); tasks.add(task.next(kv.getValue(), variableName, kv.getKey()));
} else { } else {

6
common/util/src/main/java/org/thingsboard/common/util/TbStopWatch.java

@ -52,17 +52,17 @@ public class TbStopWatch extends StopWatch {
public long stopAndGetTotalTimeNanos(){ public long stopAndGetTotalTimeNanos(){
stop(); stop();
return getLastTaskTimeNanos(); return lastTaskInfo().getTimeNanos();
} }
public long stopAndGetLastTaskTimeMillis(){ public long stopAndGetLastTaskTimeMillis(){
stop(); stop();
return getLastTaskTimeMillis(); return lastTaskInfo().getTimeMillis();
} }
public long stopAndGetLastTaskTimeNanos(){ public long stopAndGetLastTaskTimeNanos(){
stop(); stop();
return getLastTaskTimeNanos(); return lastTaskInfo().getTimeNanos();
} }
} }

2
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/Langchain4jJsonSchemaAdapter.java

@ -94,7 +94,7 @@ final class Langchain4jJsonSchemaAdapter {
JsonNode propertiesNode = objectSchema.get("properties"); JsonNode propertiesNode = objectSchema.get("properties");
if (propertiesNode != null) { if (propertiesNode != null) {
propertiesNode.fields().forEachRemaining(entry -> { propertiesNode.properties().forEach(entry -> {
String key = entry.getKey(); String key = entry.getKey();
JsonNode value = entry.getValue(); JsonNode value = entry.getValue();
builder.addProperty(key, parse(value)); builder.addProperty(key, parse(value));

5
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java

@ -29,7 +29,6 @@ import org.thingsboard.server.common.data.plugin.ComponentType;
import org.thingsboard.server.common.msg.TbMsg; import org.thingsboard.server.common.msg.TbMsg;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
@ -87,9 +86,7 @@ public class TbCopyKeysNode extends TbAbstractTransformNodeWithTbMsgSource {
msgData = JacksonUtil.toString(msgDataNode); msgData = JacksonUtil.toString(msgDataNode);
break; break;
case DATA: case DATA:
Iterator<Map.Entry<String, JsonNode>> iteratorNode = dataNode.fields(); for (Map.Entry<String, JsonNode> entry : dataNode.properties()) {
while (iteratorNode.hasNext()) {
Map.Entry<String, JsonNode> entry = iteratorNode.next();
String msgKey = entry.getKey(); String msgKey = entry.getKey();
JsonNode msgValue = entry.getValue(); JsonNode msgValue = entry.getValue();
if (matches(msgKey)) { if (matches(msgKey)) {

9
tools/src/main/java/org/thingsboard/client/tools/i18n/TranslationPruner.java

@ -25,7 +25,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -37,9 +36,7 @@ public class TranslationPruner {
*/ */
private static void collectKeys(JsonNode node, String prefix, Set<String> keys) { private static void collectKeys(JsonNode node, String prefix, Set<String> keys) {
if (!node.isObject()) return; if (!node.isObject()) return;
Iterator<Map.Entry<String, JsonNode>> fields = node.fields(); for (Map.Entry<String, JsonNode> entry : node.properties()) {
while (fields.hasNext()) {
Map.Entry<String, JsonNode> entry = fields.next();
String key = entry.getKey(); String key = entry.getKey();
String fullKey = prefix.isEmpty() ? key : prefix + "." + key; String fullKey = prefix.isEmpty() ? key : prefix + "." + key;
keys.add(fullKey); keys.add(fullKey);
@ -52,9 +49,7 @@ public class TranslationPruner {
*/ */
private static ObjectNode pruneNode(ObjectNode node, Set<String> keys, String prefix, ObjectMapper mapper) { private static ObjectNode pruneNode(ObjectNode node, Set<String> keys, String prefix, ObjectMapper mapper) {
ObjectNode pruned = mapper.createObjectNode(); ObjectNode pruned = mapper.createObjectNode();
Iterator<Map.Entry<String, JsonNode>> fields = node.fields(); for (Map.Entry<String, JsonNode> entry : node.properties()) {
while (fields.hasNext()) {
Map.Entry<String, JsonNode> entry = fields.next();
String key = entry.getKey(); String key = entry.getKey();
JsonNode value = entry.getValue(); JsonNode value = entry.getValue();
String fullKey = prefix.isEmpty() ? key : prefix + "." + key; String fullKey = prefix.isEmpty() ? key : prefix + "." + key;

Loading…
Cancel
Save