thingsboard-aplcache
Changes
application/src/main/java/org/thingsboard/server/actors/shared/rulechain/TenantRuleChainManager.java 4(+1 -3)
Details
diff --git a/application/src/main/java/org/thingsboard/server/actors/shared/rulechain/TenantRuleChainManager.java b/application/src/main/java/org/thingsboard/server/actors/shared/rulechain/TenantRuleChainManager.java
index 731d8d8..1e60751 100644
--- a/application/src/main/java/org/thingsboard/server/actors/shared/rulechain/TenantRuleChainManager.java
+++ b/application/src/main/java/org/thingsboard/server/actors/shared/rulechain/TenantRuleChainManager.java
@@ -33,9 +33,7 @@ public class TenantRuleChainManager extends RuleChainManager {
@Override
public void init(ActorContext context) {
- if (systemContext.isTenantComponentsInitEnabled()) {
- super.init(context);
- }
+ super.init(context);
}
@Override
diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultDataUpdateService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultDataUpdateService.java
index b372368..5daebcc 100644
--- a/application/src/main/java/org/thingsboard/server/service/install/DefaultDataUpdateService.java
+++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultDataUpdateService.java
@@ -19,16 +19,15 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
+import org.thingsboard.server.common.data.SearchTextBased;
import org.thingsboard.server.common.data.Tenant;
-import org.thingsboard.server.common.data.id.IdBased;
+import org.thingsboard.server.common.data.id.UUIDBased;
+import org.thingsboard.server.common.data.page.TextPageData;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.rule.RuleChain;
import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.tenant.TenantService;
-import java.util.List;
-import java.util.UUID;
-
@Service
@Profile("install")
@Slf4j
@@ -59,8 +58,8 @@ public class DefaultDataUpdateService implements DataUpdateService {
new PaginatedUpdater<String, Tenant>() {
@Override
- protected List<Tenant> findEntities(String region, TextPageLink pageLink) {
- return tenantService.findTenants(pageLink).getData();
+ protected TextPageData<Tenant> findEntities(String region, TextPageLink pageLink) {
+ return tenantService.findTenants(pageLink);
}
@Override
@@ -76,7 +75,7 @@ public class DefaultDataUpdateService implements DataUpdateService {
}
};
- public abstract class PaginatedUpdater<I, D extends IdBased<?>> {
+ public abstract class PaginatedUpdater<I, D extends SearchTextBased<? extends UUIDBased>> {
private static final int DEFAULT_LIMIT = 100;
@@ -84,20 +83,18 @@ public class DefaultDataUpdateService implements DataUpdateService {
TextPageLink pageLink = new TextPageLink(DEFAULT_LIMIT);
boolean hasNext = true;
while (hasNext) {
- List<D> entities = findEntities(id, pageLink);
- for (D entity : entities) {
+ TextPageData<D> entities = findEntities(id, pageLink);
+ for (D entity : entities.getData()) {
updateEntity(entity);
}
- hasNext = entities.size() == pageLink.getLimit();
+ hasNext = entities.hasNext();
if (hasNext) {
- int index = entities.size() - 1;
- UUID idOffset = entities.get(index).getUuidId();
- pageLink.setIdOffset(idOffset);
+ pageLink = entities.getNextPageLink();
}
}
}
- protected abstract List<D> findEntities(I id, TextPageLink pageLink);
+ protected abstract TextPageData<D> findEntities(I id, TextPageLink pageLink);
protected abstract void updateEntity(D entity);
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rpc/TbSendRPCRequestNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rpc/TbSendRPCRequestNode.java
index 7cc08bf..5d7e124 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rpc/TbSendRPCRequestNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rpc/TbSendRPCRequestNode.java
@@ -16,7 +16,10 @@
package org.thingsboard.rule.engine.rpc;
import com.datastax.driver.core.utils.UUIDs;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.JsonNode;
import com.google.gson.Gson;
+import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import lombok.extern.slf4j.Slf4j;
@@ -35,6 +38,7 @@ import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.plugin.ComponentType;
import org.thingsboard.server.common.msg.TbMsg;
+import java.io.IOException;
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@@ -86,10 +90,18 @@ public class TbSendRPCRequestNode implements TbNode {
tmp = msg.getMetaData().getValue("expirationTime");
long expirationTime = !StringUtils.isEmpty(tmp) ? Long.parseLong(tmp) : (System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(config.getTimeoutInSeconds()));
+ String params;
+ JsonElement paramsEl = json.get("params");
+ if (paramsEl.isJsonPrimitive()) {
+ params = paramsEl.getAsString();
+ } else {
+ params = gson.toJson(paramsEl);
+ }
+
RuleEngineDeviceRpcRequest request = RuleEngineDeviceRpcRequest.builder()
.oneway(oneway)
.method(json.get("method").getAsString())
- .body(gson.toJson(json.get("params")))
+ .body(params)
.deviceId(new DeviceId(msg.getOriginator().getId()))
.requestId(requestId)
.requestUUID(requestUUID)