Browse Source

Add version for tenant entity

pull/11112/head
ViacheslavKlimov 2 years ago
parent
commit
486fed375c
  1. 1
      application/src/main/data/upgrade/3.7.0/schema_update.sql
  2. 8
      application/src/test/java/org/thingsboard/server/controller/TenantControllerTest.java
  3. 12
      common/data/src/main/java/org/thingsboard/server/common/data/Tenant.java
  4. 15
      dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractTenantEntity.java
  5. 1
      dao/src/main/resources/sql/schema-entities.sql

1
application/src/main/data/upgrade/3.7.0/schema_update.sql

@ -40,5 +40,6 @@ ALTER TABLE rule_chain ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
ALTER TABLE dashboard ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
ALTER TABLE widget_type ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
ALTER TABLE widgets_bundle ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
ALTER TABLE tenant ADD COLUMN IF NOT EXISTS version BIGINT DEFAULT 1;
-- ENTITIES VERSIONING UPDATE END

8
application/src/test/java/org/thingsboard/server/controller/TenantControllerTest.java

@ -149,7 +149,7 @@ public class TenantControllerTest extends AbstractControllerTest {
testBroadcastEntityStateChangeEventTimeManyTimeTenant(savedTenant, ComponentLifecycleEvent.CREATED, 1);
savedTenant.setTitle("My new tenant");
saveTenant(savedTenant);
savedTenant = saveTenant(savedTenant);
Tenant foundTenant = doGet("/api/tenant/" + savedTenant.getId().getId().toString(), Tenant.class);
Assert.assertEquals(foundTenant.getTitle(), savedTenant.getTitle());
@ -470,7 +470,7 @@ public class TenantControllerTest extends AbstractControllerTest {
tenantProfile = doPost("/api/tenantProfile", tenantProfile, TenantProfile.class);
tenant.setTenantProfileId(tenantProfile.getId());
saveTenant(tenant);
tenant = saveTenant(tenant);
login(username, password);
@ -500,7 +500,7 @@ public class TenantControllerTest extends AbstractControllerTest {
tenantProfile2 = doPost("/api/tenantProfile", tenantProfile2, TenantProfile.class);
tenant.setTenantProfileId(tenantProfile2.getId());
saveTenant(tenant);
tenant = saveTenant(tenant);
login(username, password);
@ -542,7 +542,7 @@ public class TenantControllerTest extends AbstractControllerTest {
loginSysAdmin();
tenant.setTenantProfileId(null);
saveTenant(tenant);
tenant = saveTenant(tenant);
login(username, password);
for (Queue queue : foundTenantQueues) {

12
common/data/src/main/java/org/thingsboard/server/common/data/Tenant.java

@ -20,6 +20,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.TenantProfileId;
import org.thingsboard.server.common.data.validation.Length;
@ -27,7 +29,7 @@ import org.thingsboard.server.common.data.validation.NoXss;
@Schema
@EqualsAndHashCode(callSuper = true)
public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTitle {
public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTitle, HasVersion {
private static final long serialVersionUID = 8057243243859922101L;
@ -43,6 +45,9 @@ public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTi
@Schema(description = "JSON object with Tenant Profile Id")
private TenantProfileId tenantProfileId;
@Getter @Setter
private Long version;
public Tenant() {
super();
}
@ -56,6 +61,7 @@ public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTi
this.title = tenant.getTitle();
this.region = tenant.getRegion();
this.tenantProfileId = tenant.getTenantProfileId();
this.version = tenant.getVersion();
}
public String getTitle() {
@ -98,7 +104,7 @@ public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTi
@Schema(description = "JSON object with the tenant Id. " +
"Specify this field to update the tenant. " +
"Referencing non-existing tenant Id will cause error. " +
"Omit this field to create new tenant." )
"Omit this field to create new tenant.")
@Override
public TenantId getId() {
return super.getId();
@ -158,7 +164,7 @@ public class Tenant extends ContactBased<TenantId> implements HasTenantId, HasTi
return super.getEmail();
}
@Schema(description = "Additional parameters of the device",implementation = com.fasterxml.jackson.databind.JsonNode.class)
@Schema(description = "Additional parameters of the device", implementation = com.fasterxml.jackson.databind.JsonNode.class)
@Override
public JsonNode getAdditionalInfo() {
return super.getAdditionalInfo();

15
dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractTenantEntity.java

@ -24,7 +24,7 @@ import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.TenantProfileId;
import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.BaseVersionedEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.util.mapping.JsonConverter;
@ -33,7 +33,7 @@ import java.util.UUID;
@Data
@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
public abstract class AbstractTenantEntity<T extends Tenant> extends BaseSqlEntity<T> {
public abstract class AbstractTenantEntity<T extends Tenant> extends BaseVersionedEntity<T> {
@Column(name = ModelConstants.TENANT_TITLE_PROPERTY)
private String title;
@ -76,11 +76,8 @@ public abstract class AbstractTenantEntity<T extends Tenant> extends BaseSqlEnti
super();
}
public AbstractTenantEntity(Tenant tenant) {
if (tenant.getId() != null) {
this.setUuid(tenant.getId().getId());
}
this.setCreatedTime(tenant.getCreatedTime());
public AbstractTenantEntity(T tenant) {
super(tenant);
this.title = tenant.getTitle();
this.region = tenant.getRegion();
this.country = tenant.getCountry();
@ -98,8 +95,7 @@ public abstract class AbstractTenantEntity<T extends Tenant> extends BaseSqlEnti
}
public AbstractTenantEntity(TenantEntity tenantEntity) {
this.setId(tenantEntity.getId());
this.setCreatedTime(tenantEntity.getCreatedTime());
super(tenantEntity);
this.title = tenantEntity.getTitle();
this.region = tenantEntity.getRegion();
this.country = tenantEntity.getCountry();
@ -117,6 +113,7 @@ public abstract class AbstractTenantEntity<T extends Tenant> extends BaseSqlEnti
protected Tenant toTenant() {
Tenant tenant = new Tenant(TenantId.fromUUID(this.getUuid()));
tenant.setCreatedTime(createdTime);
tenant.setVersion(version);
tenant.setTitle(title);
tenant.setRegion(region);
tenant.setCountry(country);

1
dao/src/main/resources/sql/schema-entities.sql

@ -480,6 +480,7 @@ CREATE TABLE IF NOT EXISTS tenant (
state varchar(255),
title varchar(255),
zip varchar(255),
version BIGINT DEFAULT 1,
CONSTRAINT fk_tenant_profile FOREIGN KEY (tenant_profile_id) REFERENCES tenant_profile(id)
);

Loading…
Cancel
Save