Browse Source

Merge pull request #9157 from thingsboard/fix/tenant-profile-serialization

Fix tenant profile update msg construction for Edge
pull/9186/head
Andrew Shvayka 3 years ago
committed by GitHub
parent
commit
09b74dada9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      common/data/src/main/java/org/thingsboard/server/common/data/queue/ProcessingStrategy.java
  2. 7
      common/data/src/main/java/org/thingsboard/server/common/data/queue/SubmitStrategy.java
  3. 27
      dao/src/test/java/org/thingsboard/server/dao/service/TenantProfileServiceTest.java

7
common/data/src/main/java/org/thingsboard/server/common/data/queue/ProcessingStrategy.java

@ -17,8 +17,13 @@ package org.thingsboard.server.common.data.queue;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
public class ProcessingStrategy { public class ProcessingStrategy implements Serializable {
private static final long serialVersionUID = 293598327194813L;
private ProcessingStrategyType type; private ProcessingStrategyType type;
private int retries; private int retries;
private double failurePercentage; private double failurePercentage;

7
common/data/src/main/java/org/thingsboard/server/common/data/queue/SubmitStrategy.java

@ -17,8 +17,13 @@ package org.thingsboard.server.common.data.queue;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
public class SubmitStrategy { public class SubmitStrategy implements Serializable {
private static final long serialVersionUID = 2938457983298400L;
private SubmitStrategyType type; private SubmitStrategyType type;
private int batchSize; private int batchSize;
} }

27
dao/src/test/java/org/thingsboard/server/dao/service/TenantProfileServiceTest.java

@ -24,6 +24,7 @@ import org.junit.jupiter.api.Assertions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.EntityInfo; import org.thingsboard.server.common.data.EntityInfo;
import org.thingsboard.server.common.data.FSTUtils;
import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.TenantProfile;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
@ -45,6 +46,9 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@DaoSqlTest @DaoSqlTest
public class TenantProfileServiceTest extends AbstractServiceTest { public class TenantProfileServiceTest extends AbstractServiceTest {
@ -295,6 +299,29 @@ public class TenantProfileServiceTest extends AbstractServiceTest {
} }
@Test
public void testTenantProfileSerialization_fst() {
TenantProfile tenantProfile = new TenantProfile();
TenantProfileData profileData = new TenantProfileData();
tenantProfile.setProfileData(profileData);
profileData.setConfiguration(new DefaultTenantProfileConfiguration());
addMainQueueConfig(tenantProfile);
byte[] serialized = assertDoesNotThrow(() -> {
return FSTUtils.encode(tenantProfile);
});
assertDoesNotThrow(() -> {
FSTUtils.encode(profileData);
});
TenantProfile deserialized = assertDoesNotThrow(() -> {
return FSTUtils.decode(serialized);
});
assertThat(deserialized).isEqualTo(tenantProfile);
assertThat(deserialized.getProfileData()).isNotNull();
assertThat(deserialized.getProfileData().getQueueConfiguration()).isNotEmpty();
}
public static TenantProfile createTenantProfile(String name) { public static TenantProfile createTenantProfile(String name) {
TenantProfile tenantProfile = new TenantProfile(); TenantProfile tenantProfile = new TenantProfile();
tenantProfile.setName(name); tenantProfile.setName(name);

Loading…
Cancel
Save