|
|
|
@ -56,7 +56,6 @@ import java.util.concurrent.CopyOnWriteArrayList; |
|
|
|
|
|
|
|
import static org.thingsboard.server.utils.CalculatedFieldUtils.fromProto; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* @author Andrew Shvayka |
|
|
|
*/ |
|
|
|
@ -93,7 +92,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware |
|
|
|
} |
|
|
|
|
|
|
|
public void onFieldInitMsg(CalculatedFieldInitMsg msg) throws CalculatedFieldException { |
|
|
|
log.info("[{}] Processing CF init message.", msg.getCf().getId()); |
|
|
|
log.debug("[{}] Processing CF init message.", msg.getCf().getId()); |
|
|
|
var cf = msg.getCf(); |
|
|
|
var cfCtx = new CalculatedFieldCtx(cf, systemContext.getTbelInvokeService(), systemContext.getApiLimitService()); |
|
|
|
try { |
|
|
|
@ -109,7 +108,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware |
|
|
|
} |
|
|
|
|
|
|
|
public void onLinkInitMsg(CalculatedFieldLinkInitMsg msg) { |
|
|
|
log.info("[{}] Processing CF link init message for entity [{}].", msg.getLink().getCalculatedFieldId(), msg.getLink().getEntityId()); |
|
|
|
log.debug("[{}] Processing CF link init message for entity [{}].", msg.getLink().getCalculatedFieldId(), msg.getLink().getEntityId()); |
|
|
|
var link = msg.getLink(); |
|
|
|
// We use copy on write lists to safely pass the reference to another actor for the iteration.
|
|
|
|
// Alternative approach would be to use any list but avoid modifications to the list (change the complete map value instead)
|
|
|
|
@ -122,7 +121,9 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware |
|
|
|
var calculatedField = calculatedFields.get(cfId); |
|
|
|
|
|
|
|
if (calculatedField != null) { |
|
|
|
msg.getState().setRequiredArguments(calculatedField.getArgNames()); |
|
|
|
if (msg.getState() != null) { |
|
|
|
msg.getState().setRequiredArguments(calculatedField.getArgNames()); |
|
|
|
} |
|
|
|
log.debug("Pushing CF state restore msg to specific actor [{}]", msg.getId().entityId()); |
|
|
|
getOrCreateActor(msg.getId().entityId()).tell(msg); |
|
|
|
} else { |
|
|
|
|