removed deprecated useRedisQueueForMessagePersistence parameter from config
This commit is contained in:
parent
9273d603e5
commit
15defc34c3
@ -33,7 +33,7 @@ import org.thingsboard.server.common.msg.TbMsg;
|
|||||||
type = ComponentType.EXTERNAL,
|
type = ComponentType.EXTERNAL,
|
||||||
name = "rest api call",
|
name = "rest api call",
|
||||||
configClazz = TbRestApiCallNodeConfiguration.class,
|
configClazz = TbRestApiCallNodeConfiguration.class,
|
||||||
version = 1,
|
version = 2,
|
||||||
nodeDescription = "Invoke REST API calls to external REST server",
|
nodeDescription = "Invoke REST API calls to external REST server",
|
||||||
nodeDetails = "Will invoke REST API call <code>GET | POST | PUT | DELETE</code> to external REST server. " +
|
nodeDetails = "Will invoke REST API call <code>GET | POST | PUT | DELETE</code> to external REST server. " +
|
||||||
"Message payload added into Request body. Configured attributes can be added into Headers from Message Metadata." +
|
"Message payload added into Request body. Configured attributes can be added into Headers from Message Metadata." +
|
||||||
@ -58,9 +58,6 @@ public class TbRestApiCallNode extends TbAbstractExternalNode {
|
|||||||
super.init(ctx);
|
super.init(ctx);
|
||||||
TbRestApiCallNodeConfiguration config = TbNodeUtils.convert(configuration, TbRestApiCallNodeConfiguration.class);
|
TbRestApiCallNodeConfiguration config = TbNodeUtils.convert(configuration, TbRestApiCallNodeConfiguration.class);
|
||||||
httpClient = new TbHttpClient(config, ctx.getSharedEventLoop());
|
httpClient = new TbHttpClient(config, ctx.getSharedEventLoop());
|
||||||
if (config.isUseRedisQueueForMsgPersistence()) {
|
|
||||||
log.warn("[{}][{}] Usage of Redis Template is deprecated starting 2.5 and will have no affect", ctx.getTenantId(), ctx.getSelfId());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -88,6 +85,11 @@ public class TbRestApiCallNode extends TbAbstractExternalNode {
|
|||||||
((ObjectNode) oldConfiguration).put(PARSE_TO_PLAIN_TEXT, oldConfiguration.get(TRIM_DOUBLE_QUOTES).booleanValue());
|
((ObjectNode) oldConfiguration).put(PARSE_TO_PLAIN_TEXT, oldConfiguration.get(TRIM_DOUBLE_QUOTES).booleanValue());
|
||||||
((ObjectNode) oldConfiguration).remove(TRIM_DOUBLE_QUOTES);
|
((ObjectNode) oldConfiguration).remove(TRIM_DOUBLE_QUOTES);
|
||||||
}
|
}
|
||||||
|
case 1:
|
||||||
|
if (oldConfiguration.has("useRedisQueueForMsgPersistence")) {
|
||||||
|
hasChanges = true;
|
||||||
|
((ObjectNode) oldConfiguration).remove("useRedisQueueForMsgPersistence");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -36,7 +36,6 @@ public class TbRestApiCallNodeConfiguration implements NodeConfiguration<TbRestA
|
|||||||
private boolean useSimpleClientHttpFactory;
|
private boolean useSimpleClientHttpFactory;
|
||||||
private int readTimeoutMs;
|
private int readTimeoutMs;
|
||||||
private int maxParallelRequestsCount;
|
private int maxParallelRequestsCount;
|
||||||
private boolean useRedisQueueForMsgPersistence;
|
|
||||||
private boolean parseToPlainText;
|
private boolean parseToPlainText;
|
||||||
private boolean enableProxy;
|
private boolean enableProxy;
|
||||||
private boolean useSystemProxyProperties;
|
private boolean useSystemProxyProperties;
|
||||||
@ -57,7 +56,6 @@ public class TbRestApiCallNodeConfiguration implements NodeConfiguration<TbRestA
|
|||||||
configuration.setUseSimpleClientHttpFactory(false);
|
configuration.setUseSimpleClientHttpFactory(false);
|
||||||
configuration.setReadTimeoutMs(0);
|
configuration.setReadTimeoutMs(0);
|
||||||
configuration.setMaxParallelRequestsCount(0);
|
configuration.setMaxParallelRequestsCount(0);
|
||||||
configuration.setUseRedisQueueForMsgPersistence(false);
|
|
||||||
configuration.setParseToPlainText(false);
|
configuration.setParseToPlainText(false);
|
||||||
configuration.setEnableProxy(false);
|
configuration.setEnableProxy(false);
|
||||||
configuration.setCredentials(new AnonymousCredentials());
|
configuration.setCredentials(new AnonymousCredentials());
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
package org.thingsboard.rule.engine.rest;
|
package org.thingsboard.rule.engine.rest;
|
||||||
|
|
||||||
import com.datastax.oss.driver.api.core.uuid.Uuids;
|
import com.datastax.oss.driver.api.core.uuid.Uuids;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import org.apache.http.HttpException;
|
import org.apache.http.HttpException;
|
||||||
import org.apache.http.HttpRequest;
|
import org.apache.http.HttpRequest;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
@ -27,13 +26,16 @@ import org.apache.http.protocol.HttpContext;
|
|||||||
import org.apache.http.protocol.HttpRequestHandler;
|
import org.apache.http.protocol.HttpRequestHandler;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.Spy;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
import org.thingsboard.common.util.JacksonUtil;
|
||||||
|
import org.thingsboard.rule.engine.AbstractRuleNodeUpgradeTest;
|
||||||
import org.thingsboard.rule.engine.api.TbContext;
|
import org.thingsboard.rule.engine.api.TbContext;
|
||||||
|
import org.thingsboard.rule.engine.api.TbNode;
|
||||||
import org.thingsboard.rule.engine.api.TbNodeConfiguration;
|
import org.thingsboard.rule.engine.api.TbNodeConfiguration;
|
||||||
import org.thingsboard.rule.engine.api.TbNodeException;
|
import org.thingsboard.rule.engine.api.TbNodeException;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
@ -41,7 +43,6 @@ import org.thingsboard.server.common.data.id.EntityId;
|
|||||||
import org.thingsboard.server.common.data.id.RuleChainId;
|
import org.thingsboard.server.common.data.id.RuleChainId;
|
||||||
import org.thingsboard.server.common.data.id.RuleNodeId;
|
import org.thingsboard.server.common.data.id.RuleNodeId;
|
||||||
import org.thingsboard.server.common.data.msg.TbMsgType;
|
import org.thingsboard.server.common.data.msg.TbMsgType;
|
||||||
import org.thingsboard.server.common.data.util.TbPair;
|
|
||||||
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;
|
||||||
@ -50,6 +51,7 @@ import java.io.IOException;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotSame;
|
import static org.junit.jupiter.api.Assertions.assertNotSame;
|
||||||
@ -57,8 +59,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class TbRestApiCallNodeTest {
|
public class TbRestApiCallNodeTest extends AbstractRuleNodeUpgradeTest {
|
||||||
|
|
||||||
|
@Spy
|
||||||
private TbRestApiCallNode restNode;
|
private TbRestApiCallNode restNode;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
@ -214,20 +217,45 @@ public class TbRestApiCallNodeTest {
|
|||||||
assertEquals(TbMsg.EMPTY_JSON_OBJECT, dataCaptor.getValue());
|
assertEquals(TbMsg.EMPTY_JSON_OBJECT, dataCaptor.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
private static Stream<Arguments> givenFromVersionAndConfig_whenUpgrade_thenVerifyHasChangesAndConfig() {
|
||||||
public void givenOldConfig_whenUpgrade_thenShouldReturnTrueResultWithNewConfig() throws Exception {
|
return Stream.of(
|
||||||
var defaultConfig = new TbRestApiCallNodeConfiguration().defaultConfiguration();
|
// config for version 2 with upgrade from version 0
|
||||||
var node = new TbRestApiCallNode();
|
Arguments.of(0,
|
||||||
String oldConfig = "{\"restEndpointUrlPattern\":\"http://localhost/api\",\"requestMethod\":\"POST\"," +
|
"{\"restEndpointUrlPattern\":\"http://localhost/api\",\"requestMethod\":\"POST\"," +
|
||||||
"\"useSimpleClientHttpFactory\":false,\"ignoreRequestBody\":false,\"enableProxy\":false," +
|
"\"useSimpleClientHttpFactory\":false,\"ignoreRequestBody\":false,\"enableProxy\":false," +
|
||||||
"\"useSystemProxyProperties\":false,\"proxyScheme\":null,\"proxyHost\":null,\"proxyPort\":0," +
|
"\"useSystemProxyProperties\":false,\"proxyScheme\":null,\"proxyHost\":null,\"proxyPort\":0," +
|
||||||
"\"proxyUser\":null,\"proxyPassword\":null,\"readTimeoutMs\":0,\"maxParallelRequestsCount\":0," +
|
"\"proxyUser\":null,\"proxyPassword\":null,\"readTimeoutMs\":0,\"maxParallelRequestsCount\":0," +
|
||||||
"\"headers\":{\"Content-Type\":\"application/json\"},\"useRedisQueueForMsgPersistence\":false," +
|
"\"headers\":{\"Content-Type\":\"application/json\"},\"useRedisQueueForMsgPersistence\":false," +
|
||||||
"\"trimQueue\":null,\"maxQueueSize\":null,\"credentials\":{\"type\":\"anonymous\"},\"trimDoubleQuotes\":true}";
|
"\"trimQueue\":null,\"maxQueueSize\":null,\"credentials\":{\"type\":\"anonymous\"},\"trimDoubleQuotes\":false}",
|
||||||
JsonNode configJson = JacksonUtil.toJsonNode(oldConfig);
|
true,
|
||||||
TbPair<Boolean, JsonNode> upgrade = node.upgrade(0, configJson);
|
"{\"restEndpointUrlPattern\":\"http://localhost/api\",\"requestMethod\": \"POST\"," +
|
||||||
Assertions.assertTrue(upgrade.getFirst());
|
"\"useSimpleClientHttpFactory\": false,\"parseToPlainText\": false,\"ignoreRequestBody\": false," +
|
||||||
Assertions.assertTrue(JacksonUtil.treeToValue(upgrade.getSecond(), defaultConfig.getClass()).isParseToPlainText());
|
"\"enableProxy\": false,\"useSystemProxyProperties\": false,\"proxyScheme\": null,\"proxyHost\": null," +
|
||||||
|
"\"proxyPort\": 0,\"proxyUser\": null,\"proxyPassword\": null,\"readTimeoutMs\": 0," +
|
||||||
|
"\"maxParallelRequestsCount\": 0,\"headers\": {\"Content-Type\": \"application/json\"}," +
|
||||||
|
"\"trimQueue\": null,\"maxQueueSize\": null,\"credentials\": {\"type\": \"anonymous\"}}"),
|
||||||
|
// config for version 2 with upgrade from version 1
|
||||||
|
Arguments.of(1,
|
||||||
|
"{\"restEndpointUrlPattern\":\"http://localhost/api\",\"requestMethod\": \"POST\"," +
|
||||||
|
"\"useSimpleClientHttpFactory\": false,\"parseToPlainText\": false,\"ignoreRequestBody\": false," +
|
||||||
|
"\"enableProxy\": false,\"useSystemProxyProperties\": false,\"proxyScheme\": null,\"proxyHost\": null," +
|
||||||
|
"\"proxyPort\": 0,\"proxyUser\": null,\"proxyPassword\": null,\"readTimeoutMs\": 0," +
|
||||||
|
"\"maxParallelRequestsCount\": 0,\"headers\": {\"Content-Type\": \"application/json\"}," +
|
||||||
|
"\"useRedisQueueForMsgPersistence\": false,\"trimQueue\": null,\"maxQueueSize\": null," +
|
||||||
|
"\"credentials\": {\"type\": \"anonymous\"}}",
|
||||||
|
true,
|
||||||
|
"{\"restEndpointUrlPattern\":\"http://localhost/api\",\"requestMethod\": \"POST\"," +
|
||||||
|
"\"useSimpleClientHttpFactory\": false,\"parseToPlainText\": false,\"ignoreRequestBody\": false," +
|
||||||
|
"\"enableProxy\": false,\"useSystemProxyProperties\": false,\"proxyScheme\": null,\"proxyHost\": null," +
|
||||||
|
"\"proxyPort\": 0,\"proxyUser\": null,\"proxyPassword\": null,\"readTimeoutMs\": 0," +
|
||||||
|
"\"maxParallelRequestsCount\": 0,\"headers\": {\"Content-Type\": \"application/json\"}," +
|
||||||
|
"\"trimQueue\": null,\"maxQueueSize\": null,\"credentials\": {\"type\": \"anonymous\"}}")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected TbNode getTestNode() {
|
||||||
|
return restNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user