Browse Source

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

pull/12413/head
Dmytro Skarzhynets 2 years ago
parent
commit
148521eddf
  1. 3
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNode.java
  2. 2
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNodeConfiguration.java
  3. 11
      rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNodeTest.java

3
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNode.java

@ -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) {

2
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNodeConfiguration.java

@ -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

11
rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/telemetry/TbMsgTimeseriesNodeTest.java

@ -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

Loading…
Cancel
Save