fixed alarn tests and refactored tb resource service
This commit is contained in:
parent
c78017ecb2
commit
faa07360d5
@ -69,45 +69,6 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
|
||||
this.ddfFileParser = new DDFFileParser(new DefaultDDFFileValidator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TbResource saveResourceInternal(TbResource resource) throws ThingsboardException {
|
||||
log.trace("Executing saveResource [{}]", resource);
|
||||
if (StringUtils.isEmpty(resource.getData())) {
|
||||
throw new DataValidationException("Resource data should be specified!");
|
||||
}
|
||||
if (ResourceType.LWM2M_MODEL.equals(resource.getResourceType())) {
|
||||
try {
|
||||
List<ObjectModel> objectModels =
|
||||
ddfFileParser.parse(new ByteArrayInputStream(Base64.getDecoder().decode(resource.getData())), resource.getSearchText());
|
||||
if (!objectModels.isEmpty()) {
|
||||
ObjectModel objectModel = objectModels.get(0);
|
||||
|
||||
String resourceKey = objectModel.id + LWM2M_SEPARATOR_KEY + objectModel.version;
|
||||
String name = objectModel.name;
|
||||
resource.setResourceKey(resourceKey);
|
||||
if (resource.getId() == null) {
|
||||
resource.setTitle(name + " id=" + objectModel.id + " v" + objectModel.version);
|
||||
}
|
||||
resource.setSearchText(resourceKey + LWM2M_SEPARATOR_SEARCH_TEXT + name);
|
||||
} else {
|
||||
throw new DataValidationException(String.format("Could not parse the XML of objectModel with name %s", resource.getSearchText()));
|
||||
}
|
||||
} catch (InvalidDDFFileException e) {
|
||||
log.error("Failed to parse file {}", resource.getFileName(), e);
|
||||
throw new DataValidationException("Failed to parse file " + resource.getFileName());
|
||||
} catch (IOException e) {
|
||||
throw new ThingsboardException(e, ThingsboardErrorCode.GENERAL);
|
||||
}
|
||||
if (resource.getResourceType().equals(ResourceType.LWM2M_MODEL) && toLwM2mObject(resource, true) == null) {
|
||||
throw new DataValidationException(String.format("Could not parse the XML of objectModel with name %s", resource.getSearchText()));
|
||||
}
|
||||
} else {
|
||||
resource.setResourceKey(resource.getFileName());
|
||||
}
|
||||
|
||||
return resourceService.saveResource(resource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId) {
|
||||
return resourceService.getResource(tenantId, resourceType, resourceId);
|
||||
@ -222,7 +183,7 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
|
||||
ActionType actionType = tbResource.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
TenantId tenantId = tbResource.getTenantId();
|
||||
try {
|
||||
TbResource savedResource = checkNotNull(saveResourceInternal(tbResource));
|
||||
TbResource savedResource = checkNotNull(doSave(tbResource));
|
||||
tbClusterService.onResourceChange(savedResource, null);
|
||||
notificationEntityService.logEntityAction(tenantId, savedResource.getId(), savedResource, actionType, user);
|
||||
return savedResource;
|
||||
@ -247,4 +208,42 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
private TbResource doSave(TbResource resource) throws ThingsboardException {
|
||||
log.trace("Executing saveResource [{}]", resource);
|
||||
if (StringUtils.isEmpty(resource.getData())) {
|
||||
throw new DataValidationException("Resource data should be specified!");
|
||||
}
|
||||
if (ResourceType.LWM2M_MODEL.equals(resource.getResourceType())) {
|
||||
try {
|
||||
List<ObjectModel> objectModels =
|
||||
ddfFileParser.parse(new ByteArrayInputStream(Base64.getDecoder().decode(resource.getData())), resource.getSearchText());
|
||||
if (!objectModels.isEmpty()) {
|
||||
ObjectModel objectModel = objectModels.get(0);
|
||||
|
||||
String resourceKey = objectModel.id + LWM2M_SEPARATOR_KEY + objectModel.version;
|
||||
String name = objectModel.name;
|
||||
resource.setResourceKey(resourceKey);
|
||||
if (resource.getId() == null) {
|
||||
resource.setTitle(name + " id=" + objectModel.id + " v" + objectModel.version);
|
||||
}
|
||||
resource.setSearchText(resourceKey + LWM2M_SEPARATOR_SEARCH_TEXT + name);
|
||||
} else {
|
||||
throw new DataValidationException(String.format("Could not parse the XML of objectModel with name %s", resource.getSearchText()));
|
||||
}
|
||||
} catch (InvalidDDFFileException e) {
|
||||
log.error("Failed to parse file {}", resource.getFileName(), e);
|
||||
throw new DataValidationException("Failed to parse file " + resource.getFileName());
|
||||
} catch (IOException e) {
|
||||
throw new ThingsboardException(e, ThingsboardErrorCode.GENERAL);
|
||||
}
|
||||
if (resource.getResourceType().equals(ResourceType.LWM2M_MODEL) && toLwM2mObject(resource, true) == null) {
|
||||
throw new DataValidationException(String.format("Could not parse the XML of objectModel with name %s", resource.getSearchText()));
|
||||
}
|
||||
} else {
|
||||
resource.setResourceKey(resource.getFileName());
|
||||
}
|
||||
|
||||
return resourceService.saveResource(resource);
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,7 +18,6 @@ package org.thingsboard.server.service.resource;
|
||||
import org.thingsboard.server.common.data.ResourceType;
|
||||
import org.thingsboard.server.common.data.TbResource;
|
||||
import org.thingsboard.server.common.data.TbResourceInfo;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.TbResourceId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.lwm2m.LwM2mObject;
|
||||
@ -30,8 +29,6 @@ import java.util.List;
|
||||
|
||||
public interface TbResourceService extends SimpleTbEntityService<TbResource> {
|
||||
|
||||
TbResource saveResourceInternal(TbResource resource) throws ThingsboardException;
|
||||
|
||||
TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceKey);
|
||||
|
||||
TbResource findResourceById(TenantId tenantId, TbResourceId resourceId);
|
||||
|
||||
@ -175,7 +175,7 @@ public abstract class BaseAlarmControllerTest extends AbstractControllerTest {
|
||||
doDelete("/api/alarm/" + alarm.getId()).andExpect(status().isOk());
|
||||
|
||||
testNotifyEntityOneTimeMsgToEdgeServiceNever(alarm, alarm.getId(), alarm.getOriginator(),
|
||||
tenantId, tenantAdminCustomerId, tenantAdminUserId, TENANT_ADMIN_EMAIL, ActionType.DELETED);
|
||||
tenantId, customerId, tenantAdminUserId, TENANT_ADMIN_EMAIL, ActionType.DELETED);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -30,7 +30,6 @@ import org.thingsboard.server.common.data.TbResourceInfo;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
import org.thingsboard.server.common.data.TenantProfile;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
@ -149,7 +148,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sumDataSizeByTenantId() throws ThingsboardException {
|
||||
public void sumDataSizeByTenantId() throws Exception {
|
||||
Assert.assertEquals(0, resourceService.sumDataSizeByTenantId(tenantId));
|
||||
|
||||
createResource("test", DEFAULT_FILE_NAME);
|
||||
@ -165,14 +164,14 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
Assert.assertEquals(maxSumDataSize, resourceService.sumDataSizeByTenantId(tenantId));
|
||||
}
|
||||
|
||||
private TbResource createResource(String title, String filename) throws ThingsboardException {
|
||||
private TbResource createResource(String title, String filename) throws Exception {
|
||||
TbResource resource = new TbResource();
|
||||
resource.setTenantId(tenantId);
|
||||
resource.setTitle(title);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(filename);
|
||||
resource.setData("1");
|
||||
return resourceService.saveResourceInternal(resource);
|
||||
return resourceService.save(resource);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -184,7 +183,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
Assert.assertNotNull(savedResource);
|
||||
Assert.assertNotNull(savedResource.getId());
|
||||
@ -196,7 +195,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
|
||||
savedResource.setTitle("My new resource");
|
||||
|
||||
resourceService.saveResourceInternal(savedResource);
|
||||
resourceService.save(savedResource);
|
||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||
Assert.assertEquals(foundResource.getTitle(), savedResource.getTitle());
|
||||
|
||||
@ -211,7 +210,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setFileName("test_model.xml");
|
||||
resource.setData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes()));
|
||||
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
Assert.assertNotNull(savedResource);
|
||||
Assert.assertNotNull(savedResource.getId());
|
||||
@ -231,7 +230,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
Assert.assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId());
|
||||
|
||||
@ -247,7 +246,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
TbResource resource2 = new TbResource();
|
||||
resource.setTenantId(tenantId);
|
||||
@ -257,7 +256,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setData("Test Data");
|
||||
|
||||
try {
|
||||
resourceService.saveResourceInternal(resource2);
|
||||
resourceService.save(resource2);
|
||||
} finally {
|
||||
resourceService.delete(savedResource, null);
|
||||
}
|
||||
@ -270,7 +269,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
resourceService.saveResourceInternal(resource);
|
||||
resourceService.save(resource);
|
||||
}
|
||||
|
||||
@Test(expected = DataValidationException.class)
|
||||
@ -281,7 +280,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
resourceService.saveResourceInternal(resource);
|
||||
resourceService.save(resource);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -291,7 +290,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||
Assert.assertNotNull(foundResource);
|
||||
@ -307,7 +306,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.getResource(tenantId, savedResource.getResourceType(), savedResource.getResourceKey());
|
||||
Assert.assertNotNull(foundResource);
|
||||
@ -322,7 +321,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
TbResource savedResource = resourceService.saveResourceInternal(resource);
|
||||
TbResource savedResource = resourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||
Assert.assertNotNull(foundResource);
|
||||
@ -348,7 +347,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
resources.add(new TbResourceInfo(resourceService.saveResourceInternal(resource)));
|
||||
resources.add(new TbResourceInfo(resourceService.save(resource)));
|
||||
}
|
||||
|
||||
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
||||
@ -396,7 +395,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
TbResourceInfo tbResourceInfo = new TbResourceInfo(resourceService.saveResourceInternal(resource));
|
||||
TbResourceInfo tbResourceInfo = new TbResourceInfo(resourceService.save(resource));
|
||||
if (i >= 50) {
|
||||
resources.add(tbResourceInfo);
|
||||
}
|
||||
@ -409,7 +408,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setData("Test Data");
|
||||
resources.add(new TbResourceInfo(resourceService.saveResourceInternal(resource)));
|
||||
resources.add(new TbResourceInfo(resourceService.save(resource)));
|
||||
}
|
||||
|
||||
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user