Browse Source

Refactor bulk import

pull/5425/head
Viacheslav Klimov 5 years ago
committed by Andrew Shvayka
parent
commit
a852e11a3d
  1. 4
      application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java
  2. 6
      application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java

4
application/src/main/java/org/thingsboard/server/service/device/DeviceBulkImportService.java

@ -113,8 +113,10 @@ public class DeviceBulkImportService extends AbstractBulkImportService<Device> {
DeviceProfile deviceProfile;
if (deviceCredentials.getCredentialsType() == DeviceCredentialsType.LWM2M_CREDENTIALS) {
deviceProfile = setUpLwM2mDeviceProfile(user.getTenantId(), device);
} else {
} else if (StringUtils.isNotEmpty(device.getType())) {
deviceProfile = deviceProfileService.findOrCreateDeviceProfile(user.getTenantId(), device.getType());
} else {
deviceProfile = deviceProfileService.findDefaultDeviceProfile(user.getTenantId());
}
device.setDeviceProfileId(deviceProfile.getId());

6
application/src/main/java/org/thingsboard/server/service/importing/AbstractBulkImportService.java

@ -23,6 +23,8 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.thingsboard.common.util.DonAsynchron;
import org.thingsboard.common.util.ThingsBoardThreadFactory;
import org.thingsboard.server.cluster.TbClusterService;
@ -93,7 +95,11 @@ public abstract class AbstractBulkImportService<E extends BaseData<? extends Ent
BulkImportResult<E> result = new BulkImportResult<>();
CountDownLatch completionLatch = new CountDownLatch(entitiesData.size());
SecurityContext securityContext = SecurityContextHolder.getContext();
entitiesData.forEach(entityData -> DonAsynchron.submit(() -> {
SecurityContextHolder.setContext(securityContext);
ImportedEntityInfo<E> importedEntityInfo = saveEntity(request, entityData.getFields(), user);
E entity = importedEntityInfo.getEntity();

Loading…
Cancel
Save