Save time series strategies: use @NotNull annotation instead of manual check

This commit is contained in:
Dmytro Skarzhynets 2025-01-21 16:10:35 +02:00
parent 39e47cd484
commit 148521eddf
3 changed files with 8 additions and 8 deletions

View File

@ -89,9 +89,6 @@ public class TbMsgTimeseriesNode implements TbNode {
ctx.addTenantProfileListener(this::onTenantProfileUpdate); ctx.addTenantProfileListener(this::onTenantProfileUpdate);
onTenantProfileUpdate(ctx.getTenantProfile()); onTenantProfileUpdate(ctx.getTenantProfile());
persistenceSettings = config.getPersistenceSettings(); persistenceSettings = config.getPersistenceSettings();
if (persistenceSettings == null) {
throw new TbNodeException("Persistence settings cannot be null", true);
}
} }
private void onTenantProfileUpdate(TenantProfile tenantProfile) { private void onTenantProfileUpdate(TenantProfile tenantProfile) {

View File

@ -20,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
import org.thingsboard.rule.engine.api.NodeConfiguration; import org.thingsboard.rule.engine.api.NodeConfiguration;
@ -37,6 +38,7 @@ public class TbMsgTimeseriesNodeConfiguration implements NodeConfiguration<TbMsg
private long defaultTTL; private long defaultTTL;
private boolean useServerTs; private boolean useServerTs;
@NotNull
private PersistenceSettings persistenceSettings; private PersistenceSettings persistenceSettings;
@Override @Override

View File

@ -49,6 +49,8 @@ import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileCon
import org.thingsboard.server.common.data.tenant.profile.TenantProfileData; import org.thingsboard.server.common.data.tenant.profile.TenantProfileData;
import org.thingsboard.server.common.msg.TbMsg; import org.thingsboard.server.common.msg.TbMsg;
import org.thingsboard.server.common.msg.TbMsgMetaData; import org.thingsboard.server.common.msg.TbMsgMetaData;
import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.service.ConstraintValidator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -122,15 +124,14 @@ public class TbMsgTimeseriesNodeTest extends AbstractRuleNodeUpgradeTest {
} }
@Test @Test
public void givenPersistenceSettingsAreNull_whenInit_thenThrowsException() { public void givenPersistenceSettingsAreNull_whenValidatingConstraints_thenThrowsException() {
// GIVEN // GIVEN
config.setPersistenceSettings(null); config.setPersistenceSettings(null);
// WHEN-THEN // WHEN-THEN
assertThatThrownBy(() -> node.init(ctxMock, new TbNodeConfiguration(JacksonUtil.valueToTree(config)))) assertThatThrownBy(() -> ConstraintValidator.validateFields(config))
.isInstanceOf(TbNodeException.class) .isInstanceOf(DataValidationException.class)
.matches(e -> ((TbNodeException) e).isUnrecoverable()) .hasMessage("Validation error: persistenceSettings must not be null");
.hasMessage("Persistence settings cannot be null");
} }
@ParameterizedTest @ParameterizedTest