Commit 139af45fd38a395d473ccc7532a4d0d3a281f6b6
Committed by
Andrew Shvayka
1 parent
1f00ae83
Renamed Firmware to OtaPackage
Showing
80 changed files
with
1040 additions
and
1014 deletions
Too many changes to show.
To preserve performance only 80 of 92 files are displayed.
@@ -59,8 +59,8 @@ CREATE TABLE IF NOT EXISTS resource ( | @@ -59,8 +59,8 @@ CREATE TABLE IF NOT EXISTS resource ( | ||
59 | CONSTRAINT resource_unq_key UNIQUE (tenant_id, resource_type, resource_key) | 59 | CONSTRAINT resource_unq_key UNIQUE (tenant_id, resource_type, resource_key) |
60 | ); | 60 | ); |
61 | 61 | ||
62 | -CREATE TABLE IF NOT EXISTS firmware ( | ||
63 | - id uuid NOT NULL CONSTRAINT firmware_pkey PRIMARY KEY, | 62 | +CREATE TABLE IF NOT EXISTS ota_package ( |
63 | + id uuid NOT NULL CONSTRAINT ota_package_pkey PRIMARY KEY, | ||
64 | created_time bigint NOT NULL, | 64 | created_time bigint NOT NULL, |
65 | tenant_id uuid NOT NULL, | 65 | tenant_id uuid NOT NULL, |
66 | device_profile_id uuid, | 66 | device_profile_id uuid, |
@@ -75,7 +75,7 @@ CREATE TABLE IF NOT EXISTS firmware ( | @@ -75,7 +75,7 @@ CREATE TABLE IF NOT EXISTS firmware ( | ||
75 | data_size bigint, | 75 | data_size bigint, |
76 | additional_info varchar, | 76 | additional_info varchar, |
77 | search_text varchar(255), | 77 | search_text varchar(255), |
78 | - CONSTRAINT firmware_tenant_title_version_unq_key UNIQUE (tenant_id, title, version) | 78 | + CONSTRAINT ota_package_tenant_title_version_unq_key UNIQUE (tenant_id, title, version) |
79 | ); | 79 | ); |
80 | 80 | ||
81 | ALTER TABLE dashboard | 81 | ALTER TABLE dashboard |
@@ -101,13 +101,13 @@ DO $$ | @@ -101,13 +101,13 @@ DO $$ | ||
101 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_firmware_device_profile') THEN | 101 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_firmware_device_profile') THEN |
102 | ALTER TABLE device_profile | 102 | ALTER TABLE device_profile |
103 | ADD CONSTRAINT fk_firmware_device_profile | 103 | ADD CONSTRAINT fk_firmware_device_profile |
104 | - FOREIGN KEY (firmware_id) REFERENCES firmware(id); | 104 | + FOREIGN KEY (firmware_id) REFERENCES ota_package(id); |
105 | END IF; | 105 | END IF; |
106 | 106 | ||
107 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_software_device_profile') THEN | 107 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_software_device_profile') THEN |
108 | ALTER TABLE device_profile | 108 | ALTER TABLE device_profile |
109 | ADD CONSTRAINT fk_software_device_profile | 109 | ADD CONSTRAINT fk_software_device_profile |
110 | - FOREIGN KEY (firmware_id) REFERENCES firmware(id); | 110 | + FOREIGN KEY (firmware_id) REFERENCES ota_package(id); |
111 | END IF; | 111 | END IF; |
112 | 112 | ||
113 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_default_dashboard_device_profile') THEN | 113 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_default_dashboard_device_profile') THEN |
@@ -119,13 +119,13 @@ DO $$ | @@ -119,13 +119,13 @@ DO $$ | ||
119 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_firmware_device') THEN | 119 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_firmware_device') THEN |
120 | ALTER TABLE device | 120 | ALTER TABLE device |
121 | ADD CONSTRAINT fk_firmware_device | 121 | ADD CONSTRAINT fk_firmware_device |
122 | - FOREIGN KEY (firmware_id) REFERENCES firmware(id); | 122 | + FOREIGN KEY (firmware_id) REFERENCES ota_package(id); |
123 | END IF; | 123 | END IF; |
124 | 124 | ||
125 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_software_device') THEN | 125 | IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_software_device') THEN |
126 | ALTER TABLE device | 126 | ALTER TABLE device |
127 | ADD CONSTRAINT fk_software_device | 127 | ADD CONSTRAINT fk_software_device |
128 | - FOREIGN KEY (firmware_id) REFERENCES firmware(id); | 128 | + FOREIGN KEY (firmware_id) REFERENCES ota_package(id); |
129 | END IF; | 129 | END IF; |
130 | END; | 130 | END; |
131 | $$; | 131 | $$; |
@@ -39,8 +39,8 @@ import org.thingsboard.server.common.data.EdgeUtils; | @@ -39,8 +39,8 @@ import org.thingsboard.server.common.data.EdgeUtils; | ||
39 | import org.thingsboard.server.common.data.EntityType; | 39 | import org.thingsboard.server.common.data.EntityType; |
40 | import org.thingsboard.server.common.data.EntityView; | 40 | import org.thingsboard.server.common.data.EntityView; |
41 | import org.thingsboard.server.common.data.EntityViewInfo; | 41 | import org.thingsboard.server.common.data.EntityViewInfo; |
42 | -import org.thingsboard.server.common.data.Firmware; | ||
43 | -import org.thingsboard.server.common.data.FirmwareInfo; | 42 | +import org.thingsboard.server.common.data.OtaPackage; |
43 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
44 | import org.thingsboard.server.common.data.HasName; | 44 | import org.thingsboard.server.common.data.HasName; |
45 | import org.thingsboard.server.common.data.HasTenantId; | 45 | import org.thingsboard.server.common.data.HasTenantId; |
46 | import org.thingsboard.server.common.data.TbResourceInfo; | 46 | import org.thingsboard.server.common.data.TbResourceInfo; |
@@ -70,7 +70,7 @@ import org.thingsboard.server.common.data.id.EdgeId; | @@ -70,7 +70,7 @@ import org.thingsboard.server.common.data.id.EdgeId; | ||
70 | import org.thingsboard.server.common.data.id.EntityId; | 70 | import org.thingsboard.server.common.data.id.EntityId; |
71 | import org.thingsboard.server.common.data.id.EntityIdFactory; | 71 | import org.thingsboard.server.common.data.id.EntityIdFactory; |
72 | import org.thingsboard.server.common.data.id.EntityViewId; | 72 | import org.thingsboard.server.common.data.id.EntityViewId; |
73 | -import org.thingsboard.server.common.data.id.FirmwareId; | 73 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
74 | import org.thingsboard.server.common.data.id.TbResourceId; | 74 | import org.thingsboard.server.common.data.id.TbResourceId; |
75 | import org.thingsboard.server.common.data.id.RuleChainId; | 75 | import org.thingsboard.server.common.data.id.RuleChainId; |
76 | import org.thingsboard.server.common.data.id.RuleNodeId; | 76 | import org.thingsboard.server.common.data.id.RuleNodeId; |
@@ -110,7 +110,7 @@ import org.thingsboard.server.dao.edge.EdgeService; | @@ -110,7 +110,7 @@ import org.thingsboard.server.dao.edge.EdgeService; | ||
110 | import org.thingsboard.server.dao.entityview.EntityViewService; | 110 | import org.thingsboard.server.dao.entityview.EntityViewService; |
111 | import org.thingsboard.server.dao.exception.DataValidationException; | 111 | import org.thingsboard.server.dao.exception.DataValidationException; |
112 | import org.thingsboard.server.dao.exception.IncorrectParameterException; | 112 | import org.thingsboard.server.dao.exception.IncorrectParameterException; |
113 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 113 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
114 | import org.thingsboard.server.dao.model.ModelConstants; | 114 | import org.thingsboard.server.dao.model.ModelConstants; |
115 | import org.thingsboard.server.dao.oauth2.OAuth2ConfigTemplateService; | 115 | import org.thingsboard.server.dao.oauth2.OAuth2ConfigTemplateService; |
116 | import org.thingsboard.server.dao.oauth2.OAuth2Service; | 116 | import org.thingsboard.server.dao.oauth2.OAuth2Service; |
@@ -128,7 +128,7 @@ import org.thingsboard.server.queue.discovery.PartitionService; | @@ -128,7 +128,7 @@ import org.thingsboard.server.queue.discovery.PartitionService; | ||
128 | import org.thingsboard.server.queue.provider.TbQueueProducerProvider; | 128 | import org.thingsboard.server.queue.provider.TbQueueProducerProvider; |
129 | import org.thingsboard.server.queue.util.TbCoreComponent; | 129 | import org.thingsboard.server.queue.util.TbCoreComponent; |
130 | import org.thingsboard.server.service.component.ComponentDiscoveryService; | 130 | import org.thingsboard.server.service.component.ComponentDiscoveryService; |
131 | -import org.thingsboard.server.service.firmware.FirmwareStateService; | 131 | +import org.thingsboard.server.service.ota.OtaPackageStateService; |
132 | import org.thingsboard.server.service.edge.EdgeNotificationService; | 132 | import org.thingsboard.server.service.edge.EdgeNotificationService; |
133 | import org.thingsboard.server.service.edge.rpc.EdgeGrpcService; | 133 | import org.thingsboard.server.service.edge.rpc.EdgeGrpcService; |
134 | import org.thingsboard.server.service.edge.rpc.init.SyncEdgeService; | 134 | import org.thingsboard.server.service.edge.rpc.init.SyncEdgeService; |
@@ -250,10 +250,10 @@ public abstract class BaseController { | @@ -250,10 +250,10 @@ public abstract class BaseController { | ||
250 | protected TbResourceService resourceService; | 250 | protected TbResourceService resourceService; |
251 | 251 | ||
252 | @Autowired | 252 | @Autowired |
253 | - protected FirmwareService firmwareService; | 253 | + protected OtaPackageService otaPackageService; |
254 | 254 | ||
255 | @Autowired | 255 | @Autowired |
256 | - protected FirmwareStateService firmwareStateService; | 256 | + protected OtaPackageStateService otaPackageStateService; |
257 | 257 | ||
258 | @Autowired | 258 | @Autowired |
259 | protected TbQueueProducerProvider producerProvider; | 259 | protected TbQueueProducerProvider producerProvider; |
@@ -511,8 +511,8 @@ public abstract class BaseController { | @@ -511,8 +511,8 @@ public abstract class BaseController { | ||
511 | case TB_RESOURCE: | 511 | case TB_RESOURCE: |
512 | checkResourceId(new TbResourceId(entityId.getId()), operation); | 512 | checkResourceId(new TbResourceId(entityId.getId()), operation); |
513 | return; | 513 | return; |
514 | - case FIRMWARE: | ||
515 | - checkFirmwareId(new FirmwareId(entityId.getId()), operation); | 514 | + case OTA_PACKAGE: |
515 | + checkOtaPackageId(new OtaPackageId(entityId.getId()), operation); | ||
516 | return; | 516 | return; |
517 | default: | 517 | default: |
518 | throw new IllegalArgumentException("Unsupported entity type: " + entityId.getEntityType()); | 518 | throw new IllegalArgumentException("Unsupported entity type: " + entityId.getEntityType()); |
@@ -769,25 +769,25 @@ public abstract class BaseController { | @@ -769,25 +769,25 @@ public abstract class BaseController { | ||
769 | } | 769 | } |
770 | } | 770 | } |
771 | 771 | ||
772 | - Firmware checkFirmwareId(FirmwareId firmwareId, Operation operation) throws ThingsboardException { | 772 | + OtaPackage checkOtaPackageId(OtaPackageId otaPackageId, Operation operation) throws ThingsboardException { |
773 | try { | 773 | try { |
774 | - validateId(firmwareId, "Incorrect firmwareId " + firmwareId); | ||
775 | - Firmware firmware = firmwareService.findFirmwareById(getCurrentUser().getTenantId(), firmwareId); | ||
776 | - checkNotNull(firmware); | ||
777 | - accessControlService.checkPermission(getCurrentUser(), Resource.FIRMWARE, operation, firmwareId, firmware); | ||
778 | - return firmware; | 774 | + validateId(otaPackageId, "Incorrect otaPackageId " + otaPackageId); |
775 | + OtaPackage otaPackage = otaPackageService.findOtaPackageById(getCurrentUser().getTenantId(), otaPackageId); | ||
776 | + checkNotNull(otaPackage); | ||
777 | + accessControlService.checkPermission(getCurrentUser(), Resource.OTA_PACKAGE, operation, otaPackageId, otaPackage); | ||
778 | + return otaPackage; | ||
779 | } catch (Exception e) { | 779 | } catch (Exception e) { |
780 | throw handleException(e, false); | 780 | throw handleException(e, false); |
781 | } | 781 | } |
782 | } | 782 | } |
783 | 783 | ||
784 | - FirmwareInfo checkFirmwareInfoId(FirmwareId firmwareId, Operation operation) throws ThingsboardException { | 784 | + OtaPackageInfo checkOtaPackageInfoId(OtaPackageId otaPackageId, Operation operation) throws ThingsboardException { |
785 | try { | 785 | try { |
786 | - validateId(firmwareId, "Incorrect firmwareId " + firmwareId); | ||
787 | - FirmwareInfo firmwareInfo = firmwareService.findFirmwareInfoById(getCurrentUser().getTenantId(), firmwareId); | ||
788 | - checkNotNull(firmwareInfo); | ||
789 | - accessControlService.checkPermission(getCurrentUser(), Resource.FIRMWARE, operation, firmwareId, firmwareInfo); | ||
790 | - return firmwareInfo; | 786 | + validateId(otaPackageId, "Incorrect otaPackageId " + otaPackageId); |
787 | + OtaPackageInfo otaPackageIn = otaPackageService.findOtaPackageInfoById(getCurrentUser().getTenantId(), otaPackageId); | ||
788 | + checkNotNull(otaPackageIn); | ||
789 | + accessControlService.checkPermission(getCurrentUser(), Resource.OTA_PACKAGE, operation, otaPackageId, otaPackageIn); | ||
790 | + return otaPackageIn; | ||
791 | } catch (Exception e) { | 791 | } catch (Exception e) { |
792 | throw handleException(e, false); | 792 | throw handleException(e, false); |
793 | } | 793 | } |
@@ -53,6 +53,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | @@ -53,6 +53,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | ||
53 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 53 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
54 | import org.thingsboard.server.common.data.id.EdgeId; | 54 | import org.thingsboard.server.common.data.id.EdgeId; |
55 | import org.thingsboard.server.common.data.id.TenantId; | 55 | import org.thingsboard.server.common.data.id.TenantId; |
56 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
56 | import org.thingsboard.server.common.data.page.PageData; | 57 | import org.thingsboard.server.common.data.page.PageData; |
57 | import org.thingsboard.server.common.data.page.PageLink; | 58 | import org.thingsboard.server.common.data.page.PageLink; |
58 | import org.thingsboard.server.common.data.page.TimePageLink; | 59 | import org.thingsboard.server.common.data.page.TimePageLink; |
@@ -75,6 +76,7 @@ import javax.annotation.Nullable; | @@ -75,6 +76,7 @@ import javax.annotation.Nullable; | ||
75 | import java.io.IOException; | 76 | import java.io.IOException; |
76 | import java.util.ArrayList; | 77 | import java.util.ArrayList; |
77 | import java.util.List; | 78 | import java.util.List; |
79 | +import java.util.UUID; | ||
78 | import java.util.stream.Collectors; | 80 | import java.util.stream.Collectors; |
79 | 81 | ||
80 | import static org.thingsboard.server.controller.EdgeController.EDGE_ID; | 82 | import static org.thingsboard.server.controller.EdgeController.EDGE_ID; |
@@ -153,7 +155,7 @@ public class DeviceController extends BaseController { | @@ -153,7 +155,7 @@ public class DeviceController extends BaseController { | ||
153 | deviceStateService.onDeviceUpdated(savedDevice); | 155 | deviceStateService.onDeviceUpdated(savedDevice); |
154 | } | 156 | } |
155 | 157 | ||
156 | - firmwareStateService.update(savedDevice, oldDevice); | 158 | + otaPackageStateService.update(savedDevice, oldDevice); |
157 | 159 | ||
158 | return savedDevice; | 160 | return savedDevice; |
159 | } catch (Exception e) { | 161 | } catch (Exception e) { |
@@ -778,4 +780,19 @@ public class DeviceController extends BaseController { | @@ -778,4 +780,19 @@ public class DeviceController extends BaseController { | ||
778 | throw handleException(e); | 780 | throw handleException(e); |
779 | } | 781 | } |
780 | } | 782 | } |
783 | + | ||
784 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") | ||
785 | + @RequestMapping(value = "/devices/count", method = RequestMethod.GET) | ||
786 | + @ResponseBody | ||
787 | + public Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(@RequestParam(required = false) String otaPackageType, | ||
788 | + @RequestParam(required = false) String deviceProfileId) throws ThingsboardException { | ||
789 | + checkParameter("OtaPackageType", otaPackageType); | ||
790 | + checkParameter("DeviceProfileId", deviceProfileId); | ||
791 | + try { | ||
792 | + return deviceService.countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage( | ||
793 | + getCurrentUser().getTenantId(), new DeviceProfileId(UUID.fromString(deviceProfileId)), OtaPackageType.valueOf(deviceProfileId)); | ||
794 | + } catch (Exception e) { | ||
795 | + throw handleException(e); | ||
796 | + } | ||
797 | + } | ||
781 | } | 798 | } |
@@ -168,7 +168,7 @@ public class DeviceProfileController extends BaseController { | @@ -168,7 +168,7 @@ public class DeviceProfileController extends BaseController { | ||
168 | null, | 168 | null, |
169 | created ? ActionType.ADDED : ActionType.UPDATED, null); | 169 | created ? ActionType.ADDED : ActionType.UPDATED, null); |
170 | 170 | ||
171 | - firmwareStateService.update(savedDeviceProfile, isFirmwareChanged, isSoftwareChanged); | 171 | + otaPackageStateService.update(savedDeviceProfile, isFirmwareChanged, isSoftwareChanged); |
172 | 172 | ||
173 | sendEntityNotificationMsg(getTenantId(), savedDeviceProfile.getId(), | 173 | sendEntityNotificationMsg(getTenantId(), savedDeviceProfile.getId(), |
174 | deviceProfile.getId() == null ? EdgeEventActionType.ADDED : EdgeEventActionType.UPDATED); | 174 | deviceProfile.getId() == null ? EdgeEventActionType.ADDED : EdgeEventActionType.UPDATED); |
application/src/main/java/org/thingsboard/server/controller/OtaPackageController.java
renamed from
application/src/main/java/org/thingsboard/server/controller/FirmwareController.java
@@ -30,14 +30,14 @@ import org.springframework.web.bind.annotation.ResponseBody; | @@ -30,14 +30,14 @@ import org.springframework.web.bind.annotation.ResponseBody; | ||
30 | import org.springframework.web.bind.annotation.RestController; | 30 | import org.springframework.web.bind.annotation.RestController; |
31 | import org.springframework.web.multipart.MultipartFile; | 31 | import org.springframework.web.multipart.MultipartFile; |
32 | import org.thingsboard.server.common.data.EntityType; | 32 | import org.thingsboard.server.common.data.EntityType; |
33 | -import org.thingsboard.server.common.data.Firmware; | ||
34 | -import org.thingsboard.server.common.data.FirmwareInfo; | 33 | +import org.thingsboard.server.common.data.OtaPackage; |
34 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
35 | import org.thingsboard.server.common.data.audit.ActionType; | 35 | import org.thingsboard.server.common.data.audit.ActionType; |
36 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 36 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
37 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
38 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 37 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; |
38 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
39 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 39 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
40 | -import org.thingsboard.server.common.data.id.FirmwareId; | 40 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
41 | import org.thingsboard.server.common.data.page.PageData; | 41 | import org.thingsboard.server.common.data.page.PageData; |
42 | import org.thingsboard.server.common.data.page.PageLink; | 42 | import org.thingsboard.server.common.data.page.PageLink; |
43 | import org.thingsboard.server.queue.util.TbCoreComponent; | 43 | import org.thingsboard.server.queue.util.TbCoreComponent; |
@@ -50,26 +50,26 @@ import java.nio.ByteBuffer; | @@ -50,26 +50,26 @@ import java.nio.ByteBuffer; | ||
50 | @RestController | 50 | @RestController |
51 | @TbCoreComponent | 51 | @TbCoreComponent |
52 | @RequestMapping("/api") | 52 | @RequestMapping("/api") |
53 | -public class FirmwareController extends BaseController { | 53 | +public class OtaPackageController extends BaseController { |
54 | 54 | ||
55 | - public static final String FIRMWARE_ID = "firmwareId"; | 55 | + public static final String OTA_PACKAGE_ID = "otaPackageId"; |
56 | public static final String CHECKSUM_ALGORITHM = "checksumAlgorithm"; | 56 | public static final String CHECKSUM_ALGORITHM = "checksumAlgorithm"; |
57 | 57 | ||
58 | @PreAuthorize("hasAnyAuthority( 'TENANT_ADMIN')") | 58 | @PreAuthorize("hasAnyAuthority( 'TENANT_ADMIN')") |
59 | - @RequestMapping(value = "/firmware/{firmwareId}/download", method = RequestMethod.GET) | 59 | + @RequestMapping(value = "/otaPackage/{otaPackageId}/download", method = RequestMethod.GET) |
60 | @ResponseBody | 60 | @ResponseBody |
61 | - public ResponseEntity<org.springframework.core.io.Resource> downloadFirmware(@PathVariable(FIRMWARE_ID) String strFirmwareId) throws ThingsboardException { | ||
62 | - checkParameter(FIRMWARE_ID, strFirmwareId); | 61 | + public ResponseEntity<org.springframework.core.io.Resource> downloadOtaPackage(@PathVariable(OTA_PACKAGE_ID) String strOtaPackageId) throws ThingsboardException { |
62 | + checkParameter(OTA_PACKAGE_ID, strOtaPackageId); | ||
63 | try { | 63 | try { |
64 | - FirmwareId firmwareId = new FirmwareId(toUUID(strFirmwareId)); | ||
65 | - Firmware firmware = checkFirmwareId(firmwareId, Operation.READ); | 64 | + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); |
65 | + OtaPackage otaPackage = checkOtaPackageId(otaPackageId, Operation.READ); | ||
66 | 66 | ||
67 | - ByteArrayResource resource = new ByteArrayResource(firmware.getData().array()); | 67 | + ByteArrayResource resource = new ByteArrayResource(otaPackage.getData().array()); |
68 | return ResponseEntity.ok() | 68 | return ResponseEntity.ok() |
69 | - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + firmware.getFileName()) | ||
70 | - .header("x-filename", firmware.getFileName()) | 69 | + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + otaPackage.getFileName()) |
70 | + .header("x-filename", otaPackage.getFileName()) | ||
71 | .contentLength(resource.contentLength()) | 71 | .contentLength(resource.contentLength()) |
72 | - .contentType(parseMediaType(firmware.getContentType())) | 72 | + .contentType(parseMediaType(otaPackage.getContentType())) |
73 | .body(resource); | 73 | .body(resource); |
74 | } catch (Exception e) { | 74 | } catch (Exception e) { |
75 | throw handleException(e); | 75 | throw handleException(e); |
@@ -77,144 +77,144 @@ public class FirmwareController extends BaseController { | @@ -77,144 +77,144 @@ public class FirmwareController extends BaseController { | ||
77 | } | 77 | } |
78 | 78 | ||
79 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") | 79 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") |
80 | - @RequestMapping(value = "/firmware/info/{firmwareId}", method = RequestMethod.GET) | 80 | + @RequestMapping(value = "/otaPackage/info/{otaPackageId}", method = RequestMethod.GET) |
81 | @ResponseBody | 81 | @ResponseBody |
82 | - public FirmwareInfo getFirmwareInfoById(@PathVariable(FIRMWARE_ID) String strFirmwareId) throws ThingsboardException { | ||
83 | - checkParameter(FIRMWARE_ID, strFirmwareId); | 82 | + public OtaPackageInfo getOtaPackageInfoById(@PathVariable(OTA_PACKAGE_ID) String strOtaPackageId) throws ThingsboardException { |
83 | + checkParameter(OTA_PACKAGE_ID, strOtaPackageId); | ||
84 | try { | 84 | try { |
85 | - FirmwareId firmwareId = new FirmwareId(toUUID(strFirmwareId)); | ||
86 | - return checkNotNull(firmwareService.findFirmwareInfoById(getTenantId(), firmwareId)); | 85 | + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); |
86 | + return checkNotNull(otaPackageService.findOtaPackageInfoById(getTenantId(), otaPackageId)); | ||
87 | } catch (Exception e) { | 87 | } catch (Exception e) { |
88 | throw handleException(e); | 88 | throw handleException(e); |
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
92 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") | 92 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") |
93 | - @RequestMapping(value = "/firmware/{firmwareId}", method = RequestMethod.GET) | 93 | + @RequestMapping(value = "/otaPackage/{otaPackageId}", method = RequestMethod.GET) |
94 | @ResponseBody | 94 | @ResponseBody |
95 | - public Firmware getFirmwareById(@PathVariable(FIRMWARE_ID) String strFirmwareId) throws ThingsboardException { | ||
96 | - checkParameter(FIRMWARE_ID, strFirmwareId); | 95 | + public OtaPackage getOtaPackageById(@PathVariable(OTA_PACKAGE_ID) String strOtaPackageId) throws ThingsboardException { |
96 | + checkParameter(OTA_PACKAGE_ID, strOtaPackageId); | ||
97 | try { | 97 | try { |
98 | - FirmwareId firmwareId = new FirmwareId(toUUID(strFirmwareId)); | ||
99 | - return checkFirmwareId(firmwareId, Operation.READ); | 98 | + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); |
99 | + return checkOtaPackageId(otaPackageId, Operation.READ); | ||
100 | } catch (Exception e) { | 100 | } catch (Exception e) { |
101 | throw handleException(e); | 101 | throw handleException(e); |
102 | } | 102 | } |
103 | } | 103 | } |
104 | 104 | ||
105 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") | 105 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") |
106 | - @RequestMapping(value = "/firmware", method = RequestMethod.POST) | 106 | + @RequestMapping(value = "/otaPackage", method = RequestMethod.POST) |
107 | @ResponseBody | 107 | @ResponseBody |
108 | - public FirmwareInfo saveFirmwareInfo(@RequestBody FirmwareInfo firmwareInfo) throws ThingsboardException { | ||
109 | - boolean created = firmwareInfo.getId() == null; | 108 | + public OtaPackageInfo saveOtaPackageInfo(@RequestBody OtaPackageInfo otaPackageInfo) throws ThingsboardException { |
109 | + boolean created = otaPackageInfo.getId() == null; | ||
110 | try { | 110 | try { |
111 | - firmwareInfo.setTenantId(getTenantId()); | ||
112 | - checkEntity(firmwareInfo.getId(), firmwareInfo, Resource.FIRMWARE); | ||
113 | - FirmwareInfo savedFirmwareInfo = firmwareService.saveFirmwareInfo(firmwareInfo); | ||
114 | - logEntityAction(savedFirmwareInfo.getId(), savedFirmwareInfo, | 111 | + otaPackageInfo.setTenantId(getTenantId()); |
112 | + checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE); | ||
113 | + OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(otaPackageInfo); | ||
114 | + logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo, | ||
115 | null, created ? ActionType.ADDED : ActionType.UPDATED, null); | 115 | null, created ? ActionType.ADDED : ActionType.UPDATED, null); |
116 | - return savedFirmwareInfo; | 116 | + return savedOtaPackageInfo; |
117 | } catch (Exception e) { | 117 | } catch (Exception e) { |
118 | - logEntityAction(emptyId(EntityType.FIRMWARE), firmwareInfo, | 118 | + logEntityAction(emptyId(EntityType.OTA_PACKAGE), otaPackageInfo, |
119 | null, created ? ActionType.ADDED : ActionType.UPDATED, e); | 119 | null, created ? ActionType.ADDED : ActionType.UPDATED, e); |
120 | throw handleException(e); | 120 | throw handleException(e); |
121 | } | 121 | } |
122 | } | 122 | } |
123 | 123 | ||
124 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") | 124 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") |
125 | - @RequestMapping(value = "/firmware/{firmwareId}", method = RequestMethod.POST) | 125 | + @RequestMapping(value = "/otaPackage/{otaPackageId}", method = RequestMethod.POST) |
126 | @ResponseBody | 126 | @ResponseBody |
127 | - public Firmware saveFirmwareData(@PathVariable(FIRMWARE_ID) String strFirmwareId, | ||
128 | - @RequestParam(required = false) String checksum, | ||
129 | - @RequestParam(CHECKSUM_ALGORITHM) String checksumAlgorithmStr, | ||
130 | - @RequestBody MultipartFile file) throws ThingsboardException { | ||
131 | - checkParameter(FIRMWARE_ID, strFirmwareId); | 127 | + public OtaPackage saveOtaPackageData(@PathVariable(OTA_PACKAGE_ID) String strOtaPackageId, |
128 | + @RequestParam(required = false) String checksum, | ||
129 | + @RequestParam(CHECKSUM_ALGORITHM) String checksumAlgorithmStr, | ||
130 | + @RequestBody MultipartFile file) throws ThingsboardException { | ||
131 | + checkParameter(OTA_PACKAGE_ID, strOtaPackageId); | ||
132 | checkParameter(CHECKSUM_ALGORITHM, checksumAlgorithmStr); | 132 | checkParameter(CHECKSUM_ALGORITHM, checksumAlgorithmStr); |
133 | try { | 133 | try { |
134 | - FirmwareId firmwareId = new FirmwareId(toUUID(strFirmwareId)); | ||
135 | - FirmwareInfo info = checkFirmwareInfoId(firmwareId, Operation.READ); | ||
136 | - | ||
137 | - Firmware firmware = new Firmware(firmwareId); | ||
138 | - firmware.setCreatedTime(info.getCreatedTime()); | ||
139 | - firmware.setTenantId(getTenantId()); | ||
140 | - firmware.setDeviceProfileId(info.getDeviceProfileId()); | ||
141 | - firmware.setType(info.getType()); | ||
142 | - firmware.setTitle(info.getTitle()); | ||
143 | - firmware.setVersion(info.getVersion()); | ||
144 | - firmware.setAdditionalInfo(info.getAdditionalInfo()); | 134 | + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); |
135 | + OtaPackageInfo info = checkOtaPackageInfoId(otaPackageId, Operation.READ); | ||
136 | + | ||
137 | + OtaPackage otaPackage = new OtaPackage(otaPackageId); | ||
138 | + otaPackage.setCreatedTime(info.getCreatedTime()); | ||
139 | + otaPackage.setTenantId(getTenantId()); | ||
140 | + otaPackage.setDeviceProfileId(info.getDeviceProfileId()); | ||
141 | + otaPackage.setType(info.getType()); | ||
142 | + otaPackage.setTitle(info.getTitle()); | ||
143 | + otaPackage.setVersion(info.getVersion()); | ||
144 | + otaPackage.setAdditionalInfo(info.getAdditionalInfo()); | ||
145 | 145 | ||
146 | ChecksumAlgorithm checksumAlgorithm = ChecksumAlgorithm.valueOf(checksumAlgorithmStr.toUpperCase()); | 146 | ChecksumAlgorithm checksumAlgorithm = ChecksumAlgorithm.valueOf(checksumAlgorithmStr.toUpperCase()); |
147 | 147 | ||
148 | byte[] bytes = file.getBytes(); | 148 | byte[] bytes = file.getBytes(); |
149 | if (StringUtils.isEmpty(checksum)) { | 149 | if (StringUtils.isEmpty(checksum)) { |
150 | - checksum = firmwareService.generateChecksum(checksumAlgorithm, ByteBuffer.wrap(bytes)); | 150 | + checksum = otaPackageService.generateChecksum(checksumAlgorithm, ByteBuffer.wrap(bytes)); |
151 | } | 151 | } |
152 | 152 | ||
153 | - firmware.setChecksumAlgorithm(checksumAlgorithm); | ||
154 | - firmware.setChecksum(checksum); | ||
155 | - firmware.setFileName(file.getOriginalFilename()); | ||
156 | - firmware.setContentType(file.getContentType()); | ||
157 | - firmware.setData(ByteBuffer.wrap(bytes)); | ||
158 | - firmware.setDataSize((long) bytes.length); | ||
159 | - Firmware savedFirmware = firmwareService.saveFirmware(firmware); | ||
160 | - logEntityAction(savedFirmware.getId(), savedFirmware, null, ActionType.UPDATED, null); | ||
161 | - return savedFirmware; | 153 | + otaPackage.setChecksumAlgorithm(checksumAlgorithm); |
154 | + otaPackage.setChecksum(checksum); | ||
155 | + otaPackage.setFileName(file.getOriginalFilename()); | ||
156 | + otaPackage.setContentType(file.getContentType()); | ||
157 | + otaPackage.setData(ByteBuffer.wrap(bytes)); | ||
158 | + otaPackage.setDataSize((long) bytes.length); | ||
159 | + OtaPackage savedOtaPackage = otaPackageService.saveOtaPackage(otaPackage); | ||
160 | + logEntityAction(savedOtaPackage.getId(), savedOtaPackage, null, ActionType.UPDATED, null); | ||
161 | + return savedOtaPackage; | ||
162 | } catch (Exception e) { | 162 | } catch (Exception e) { |
163 | - logEntityAction(emptyId(EntityType.FIRMWARE), null, null, ActionType.UPDATED, e, strFirmwareId); | 163 | + logEntityAction(emptyId(EntityType.OTA_PACKAGE), null, null, ActionType.UPDATED, e, strOtaPackageId); |
164 | throw handleException(e); | 164 | throw handleException(e); |
165 | } | 165 | } |
166 | } | 166 | } |
167 | 167 | ||
168 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") | 168 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") |
169 | - @RequestMapping(value = "/firmwares", method = RequestMethod.GET) | 169 | + @RequestMapping(value = "/otaPackages", method = RequestMethod.GET) |
170 | @ResponseBody | 170 | @ResponseBody |
171 | - public PageData<FirmwareInfo> getFirmwares(@RequestParam int pageSize, | ||
172 | - @RequestParam int page, | ||
173 | - @RequestParam(required = false) String textSearch, | ||
174 | - @RequestParam(required = false) String sortProperty, | ||
175 | - @RequestParam(required = false) String sortOrder) throws ThingsboardException { | 171 | + public PageData<OtaPackageInfo> getOtaPackages(@RequestParam int pageSize, |
172 | + @RequestParam int page, | ||
173 | + @RequestParam(required = false) String textSearch, | ||
174 | + @RequestParam(required = false) String sortProperty, | ||
175 | + @RequestParam(required = false) String sortOrder) throws ThingsboardException { | ||
176 | try { | 176 | try { |
177 | PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); | 177 | PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); |
178 | - return checkNotNull(firmwareService.findTenantFirmwaresByTenantId(getTenantId(), pageLink)); | 178 | + return checkNotNull(otaPackageService.findTenantOtaPackagesByTenantId(getTenantId(), pageLink)); |
179 | } catch (Exception e) { | 179 | } catch (Exception e) { |
180 | throw handleException(e); | 180 | throw handleException(e); |
181 | } | 181 | } |
182 | } | 182 | } |
183 | 183 | ||
184 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") | 184 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") |
185 | - @RequestMapping(value = "/firmwares/{deviceProfileId}/{type}/{hasData}", method = RequestMethod.GET) | 185 | + @RequestMapping(value = "/otaPackages/{deviceProfileId}/{type}/{hasData}", method = RequestMethod.GET) |
186 | @ResponseBody | 186 | @ResponseBody |
187 | - public PageData<FirmwareInfo> getFirmwares(@PathVariable("deviceProfileId") String strDeviceProfileId, | ||
188 | - @PathVariable("type") String strType, | ||
189 | - @PathVariable("hasData") boolean hasData, | ||
190 | - @RequestParam int pageSize, | ||
191 | - @RequestParam int page, | ||
192 | - @RequestParam(required = false) String textSearch, | ||
193 | - @RequestParam(required = false) String sortProperty, | ||
194 | - @RequestParam(required = false) String sortOrder) throws ThingsboardException { | 187 | + public PageData<OtaPackageInfo> getOtaPackages(@PathVariable("deviceProfileId") String strDeviceProfileId, |
188 | + @PathVariable("type") String strType, | ||
189 | + @PathVariable("hasData") boolean hasData, | ||
190 | + @RequestParam int pageSize, | ||
191 | + @RequestParam int page, | ||
192 | + @RequestParam(required = false) String textSearch, | ||
193 | + @RequestParam(required = false) String sortProperty, | ||
194 | + @RequestParam(required = false) String sortOrder) throws ThingsboardException { | ||
195 | checkParameter("deviceProfileId", strDeviceProfileId); | 195 | checkParameter("deviceProfileId", strDeviceProfileId); |
196 | checkParameter("type", strType); | 196 | checkParameter("type", strType); |
197 | try { | 197 | try { |
198 | PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); | 198 | PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); |
199 | - return checkNotNull(firmwareService.findTenantFirmwaresByTenantIdAndDeviceProfileIdAndTypeAndHasData(getTenantId(), | ||
200 | - new DeviceProfileId(toUUID(strDeviceProfileId)), FirmwareType.valueOf(strType), hasData, pageLink)); | 199 | + return checkNotNull(otaPackageService.findTenantOtaPackagesByTenantIdAndDeviceProfileIdAndTypeAndHasData(getTenantId(), |
200 | + new DeviceProfileId(toUUID(strDeviceProfileId)), OtaPackageType.valueOf(strType), hasData, pageLink)); | ||
201 | } catch (Exception e) { | 201 | } catch (Exception e) { |
202 | throw handleException(e); | 202 | throw handleException(e); |
203 | } | 203 | } |
204 | } | 204 | } |
205 | 205 | ||
206 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") | 206 | @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") |
207 | - @RequestMapping(value = "/firmware/{firmwareId}", method = RequestMethod.DELETE) | 207 | + @RequestMapping(value = "/otaPackage/{otaPackageId}", method = RequestMethod.DELETE) |
208 | @ResponseBody | 208 | @ResponseBody |
209 | - public void deleteFirmware(@PathVariable("firmwareId") String strFirmwareId) throws ThingsboardException { | ||
210 | - checkParameter(FIRMWARE_ID, strFirmwareId); | 209 | + public void deleteOtaPackage(@PathVariable("otaPackageId") String strOtaPackageId) throws ThingsboardException { |
210 | + checkParameter(OTA_PACKAGE_ID, strOtaPackageId); | ||
211 | try { | 211 | try { |
212 | - FirmwareId firmwareId = new FirmwareId(toUUID(strFirmwareId)); | ||
213 | - FirmwareInfo info = checkFirmwareInfoId(firmwareId, Operation.DELETE); | ||
214 | - firmwareService.deleteFirmware(getTenantId(), firmwareId); | ||
215 | - logEntityAction(firmwareId, info, null, ActionType.DELETED, null, strFirmwareId); | 212 | + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); |
213 | + OtaPackageInfo info = checkOtaPackageInfoId(otaPackageId, Operation.DELETE); | ||
214 | + otaPackageService.deleteOtaPackage(getTenantId(), otaPackageId); | ||
215 | + logEntityAction(otaPackageId, info, null, ActionType.DELETED, null, strOtaPackageId); | ||
216 | } catch (Exception e) { | 216 | } catch (Exception e) { |
217 | - logEntityAction(emptyId(EntityType.FIRMWARE), null, null, ActionType.DELETED, e, strFirmwareId); | 217 | + logEntityAction(emptyId(EntityType.OTA_PACKAGE), null, null, ActionType.DELETED, e, strOtaPackageId); |
218 | throw handleException(e); | 218 | throw handleException(e); |
219 | } | 219 | } |
220 | } | 220 | } |
application/src/main/java/org/thingsboard/server/service/ota/DefaultOtaPackageStateService.java
renamed from
application/src/main/java/org/thingsboard/server/service/firmware/DefaultFirmwareStateService.java
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.service.firmware; | 16 | +package org.thingsboard.server.service.ota; |
17 | 17 | ||
18 | import com.google.common.util.concurrent.FutureCallback; | 18 | import com.google.common.util.concurrent.FutureCallback; |
19 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
@@ -23,12 +23,9 @@ import org.thingsboard.rule.engine.api.msg.DeviceAttributesEventNotificationMsg; | @@ -23,12 +23,9 @@ import org.thingsboard.rule.engine.api.msg.DeviceAttributesEventNotificationMsg; | ||
23 | import org.thingsboard.server.common.data.DataConstants; | 23 | import org.thingsboard.server.common.data.DataConstants; |
24 | import org.thingsboard.server.common.data.Device; | 24 | import org.thingsboard.server.common.data.Device; |
25 | import org.thingsboard.server.common.data.DeviceProfile; | 25 | import org.thingsboard.server.common.data.DeviceProfile; |
26 | -import org.thingsboard.server.common.data.FirmwareInfo; | ||
27 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
28 | -import org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus; | ||
29 | -import org.thingsboard.server.common.data.firmware.FirmwareUtil; | 26 | +import org.thingsboard.server.common.data.OtaPackageInfo; |
30 | import org.thingsboard.server.common.data.id.DeviceId; | 27 | import org.thingsboard.server.common.data.id.DeviceId; |
31 | -import org.thingsboard.server.common.data.id.FirmwareId; | 28 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
32 | import org.thingsboard.server.common.data.id.TenantId; | 29 | import org.thingsboard.server.common.data.id.TenantId; |
33 | import org.thingsboard.server.common.data.kv.AttributeKey; | 30 | import org.thingsboard.server.common.data.kv.AttributeKey; |
34 | import org.thingsboard.server.common.data.kv.AttributeKvEntry; | 31 | import org.thingsboard.server.common.data.kv.AttributeKvEntry; |
@@ -37,13 +34,16 @@ import org.thingsboard.server.common.data.kv.BasicTsKvEntry; | @@ -37,13 +34,16 @@ import org.thingsboard.server.common.data.kv.BasicTsKvEntry; | ||
37 | import org.thingsboard.server.common.data.kv.LongDataEntry; | 34 | import org.thingsboard.server.common.data.kv.LongDataEntry; |
38 | import org.thingsboard.server.common.data.kv.StringDataEntry; | 35 | import org.thingsboard.server.common.data.kv.StringDataEntry; |
39 | import org.thingsboard.server.common.data.kv.TsKvEntry; | 36 | import org.thingsboard.server.common.data.kv.TsKvEntry; |
37 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
38 | +import org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus; | ||
39 | +import org.thingsboard.server.common.data.ota.OtaPackageUtil; | ||
40 | import org.thingsboard.server.common.data.page.PageData; | 40 | import org.thingsboard.server.common.data.page.PageData; |
41 | import org.thingsboard.server.common.data.page.PageLink; | 41 | import org.thingsboard.server.common.data.page.PageLink; |
42 | import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; | 42 | import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; |
43 | import org.thingsboard.server.dao.device.DeviceProfileService; | 43 | import org.thingsboard.server.dao.device.DeviceProfileService; |
44 | import org.thingsboard.server.dao.device.DeviceService; | 44 | import org.thingsboard.server.dao.device.DeviceService; |
45 | -import org.thingsboard.server.dao.firmware.FirmwareService; | ||
46 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 45 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
46 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; | ||
47 | import org.thingsboard.server.queue.TbQueueProducer; | 47 | import org.thingsboard.server.queue.TbQueueProducer; |
48 | import org.thingsboard.server.queue.common.TbProtoQueueMsg; | 48 | import org.thingsboard.server.queue.common.TbProtoQueueMsg; |
49 | import org.thingsboard.server.queue.provider.TbCoreQueueFactory; | 49 | import org.thingsboard.server.queue.provider.TbCoreQueueFactory; |
@@ -58,44 +58,43 @@ import java.util.List; | @@ -58,44 +58,43 @@ import java.util.List; | ||
58 | import java.util.Set; | 58 | import java.util.Set; |
59 | import java.util.UUID; | 59 | import java.util.UUID; |
60 | import java.util.function.Consumer; | 60 | import java.util.function.Consumer; |
61 | -import java.util.function.Function; | ||
62 | - | ||
63 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.CHECKSUM; | ||
64 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.CHECKSUM_ALGORITHM; | ||
65 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.SIZE; | ||
66 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.STATE; | ||
67 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.TITLE; | ||
68 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.TS; | ||
69 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.VERSION; | ||
70 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; | ||
71 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE; | ||
72 | -import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getAttributeKey; | ||
73 | -import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getTargetTelemetryKey; | ||
74 | -import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getTelemetryKey; | 61 | + |
62 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.CHECKSUM; | ||
63 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.CHECKSUM_ALGORITHM; | ||
64 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.SIZE; | ||
65 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.STATE; | ||
66 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.TITLE; | ||
67 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.TS; | ||
68 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.VERSION; | ||
69 | +import static org.thingsboard.server.common.data.ota.OtaPackageType.FIRMWARE; | ||
70 | +import static org.thingsboard.server.common.data.ota.OtaPackageType.SOFTWARE; | ||
71 | +import static org.thingsboard.server.common.data.ota.OtaPackageUtil.getAttributeKey; | ||
72 | +import static org.thingsboard.server.common.data.ota.OtaPackageUtil.getTargetTelemetryKey; | ||
73 | +import static org.thingsboard.server.common.data.ota.OtaPackageUtil.getTelemetryKey; | ||
75 | 74 | ||
76 | @Slf4j | 75 | @Slf4j |
77 | @Service | 76 | @Service |
78 | @TbCoreComponent | 77 | @TbCoreComponent |
79 | -public class DefaultFirmwareStateService implements FirmwareStateService { | 78 | +public class DefaultOtaPackageStateService implements OtaPackageStateService { |
80 | 79 | ||
81 | private final TbClusterService tbClusterService; | 80 | private final TbClusterService tbClusterService; |
82 | - private final FirmwareService firmwareService; | 81 | + private final OtaPackageService otaPackageService; |
83 | private final DeviceService deviceService; | 82 | private final DeviceService deviceService; |
84 | private final DeviceProfileService deviceProfileService; | 83 | private final DeviceProfileService deviceProfileService; |
85 | private final RuleEngineTelemetryService telemetryService; | 84 | private final RuleEngineTelemetryService telemetryService; |
86 | - private final TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> fwStateMsgProducer; | 85 | + private final TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> otaPackageStateMsgProducer; |
87 | 86 | ||
88 | - public DefaultFirmwareStateService(TbClusterService tbClusterService, FirmwareService firmwareService, | ||
89 | - DeviceService deviceService, | ||
90 | - DeviceProfileService deviceProfileService, | ||
91 | - RuleEngineTelemetryService telemetryService, | ||
92 | - TbCoreQueueFactory coreQueueFactory) { | 87 | + public DefaultOtaPackageStateService(TbClusterService tbClusterService, OtaPackageService otaPackageService, |
88 | + DeviceService deviceService, | ||
89 | + DeviceProfileService deviceProfileService, | ||
90 | + RuleEngineTelemetryService telemetryService, | ||
91 | + TbCoreQueueFactory coreQueueFactory) { | ||
93 | this.tbClusterService = tbClusterService; | 92 | this.tbClusterService = tbClusterService; |
94 | - this.firmwareService = firmwareService; | 93 | + this.otaPackageService = otaPackageService; |
95 | this.deviceService = deviceService; | 94 | this.deviceService = deviceService; |
96 | this.deviceProfileService = deviceProfileService; | 95 | this.deviceProfileService = deviceProfileService; |
97 | this.telemetryService = telemetryService; | 96 | this.telemetryService = telemetryService; |
98 | - this.fwStateMsgProducer = coreQueueFactory.createToFirmwareStateServiceMsgProducer(); | 97 | + this.otaPackageStateMsgProducer = coreQueueFactory.createToOtaPackageStateServiceMsgProducer(); |
99 | } | 98 | } |
100 | 99 | ||
101 | @Override | 100 | @Override |
@@ -105,14 +104,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -105,14 +104,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
105 | } | 104 | } |
106 | 105 | ||
107 | private void updateFirmware(Device device, Device oldDevice) { | 106 | private void updateFirmware(Device device, Device oldDevice) { |
108 | - FirmwareId newFirmwareId = device.getFirmwareId(); | 107 | + OtaPackageId newFirmwareId = device.getFirmwareId(); |
109 | if (newFirmwareId == null) { | 108 | if (newFirmwareId == null) { |
110 | DeviceProfile newDeviceProfile = deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); | 109 | DeviceProfile newDeviceProfile = deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); |
111 | newFirmwareId = newDeviceProfile.getFirmwareId(); | 110 | newFirmwareId = newDeviceProfile.getFirmwareId(); |
112 | } | 111 | } |
113 | if (oldDevice != null) { | 112 | if (oldDevice != null) { |
114 | if (newFirmwareId != null) { | 113 | if (newFirmwareId != null) { |
115 | - FirmwareId oldFirmwareId = oldDevice.getFirmwareId(); | 114 | + OtaPackageId oldFirmwareId = oldDevice.getFirmwareId(); |
116 | if (oldFirmwareId == null) { | 115 | if (oldFirmwareId == null) { |
117 | DeviceProfile oldDeviceProfile = deviceProfileService.findDeviceProfileById(oldDevice.getTenantId(), oldDevice.getDeviceProfileId()); | 116 | DeviceProfile oldDeviceProfile = deviceProfileService.findDeviceProfileById(oldDevice.getTenantId(), oldDevice.getDeviceProfileId()); |
118 | oldFirmwareId = oldDeviceProfile.getFirmwareId(); | 117 | oldFirmwareId = oldDeviceProfile.getFirmwareId(); |
@@ -132,14 +131,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -132,14 +131,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
132 | } | 131 | } |
133 | 132 | ||
134 | private void updateSoftware(Device device, Device oldDevice) { | 133 | private void updateSoftware(Device device, Device oldDevice) { |
135 | - FirmwareId newSoftwareId = device.getSoftwareId(); | 134 | + OtaPackageId newSoftwareId = device.getSoftwareId(); |
136 | if (newSoftwareId == null) { | 135 | if (newSoftwareId == null) { |
137 | DeviceProfile newDeviceProfile = deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); | 136 | DeviceProfile newDeviceProfile = deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); |
138 | newSoftwareId = newDeviceProfile.getSoftwareId(); | 137 | newSoftwareId = newDeviceProfile.getSoftwareId(); |
139 | } | 138 | } |
140 | if (oldDevice != null) { | 139 | if (oldDevice != null) { |
141 | if (newSoftwareId != null) { | 140 | if (newSoftwareId != null) { |
142 | - FirmwareId oldSoftwareId = oldDevice.getSoftwareId(); | 141 | + OtaPackageId oldSoftwareId = oldDevice.getSoftwareId(); |
143 | if (oldSoftwareId == null) { | 142 | if (oldSoftwareId == null) { |
144 | DeviceProfile oldDeviceProfile = deviceProfileService.findDeviceProfileById(oldDevice.getTenantId(), oldDevice.getDeviceProfileId()); | 143 | DeviceProfile oldDeviceProfile = deviceProfileService.findDeviceProfileById(oldDevice.getTenantId(), oldDevice.getDeviceProfileId()); |
145 | oldSoftwareId = oldDeviceProfile.getSoftwareId(); | 144 | oldSoftwareId = oldDeviceProfile.getSoftwareId(); |
@@ -170,33 +169,20 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -170,33 +169,20 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
170 | } | 169 | } |
171 | } | 170 | } |
172 | 171 | ||
173 | - private void update(TenantId tenantId, DeviceProfile deviceProfile, FirmwareType firmwareType) { | ||
174 | - Function<PageLink, PageData<Device>> getDevicesFunction; | 172 | + private void update(TenantId tenantId, DeviceProfile deviceProfile, OtaPackageType otaPackageType) { |
175 | Consumer<Device> updateConsumer; | 173 | Consumer<Device> updateConsumer; |
176 | 174 | ||
177 | - switch (firmwareType) { | ||
178 | - case FIRMWARE: | ||
179 | - getDevicesFunction = pl -> deviceService.findDevicesByTenantIdAndTypeAndEmptyFirmware(tenantId, deviceProfile.getName(), pl); | ||
180 | - break; | ||
181 | - case SOFTWARE: | ||
182 | - getDevicesFunction = pl -> deviceService.findDevicesByTenantIdAndTypeAndEmptySoftware(tenantId, deviceProfile.getName(), pl); | ||
183 | - break; | ||
184 | - default: | ||
185 | - log.warn("Unsupported firmware type: [{}]", firmwareType); | ||
186 | - return; | ||
187 | - } | ||
188 | - | ||
189 | if (deviceProfile.getFirmwareId() != null) { | 175 | if (deviceProfile.getFirmwareId() != null) { |
190 | long ts = System.currentTimeMillis(); | 176 | long ts = System.currentTimeMillis(); |
191 | - updateConsumer = d -> send(d.getTenantId(), d.getId(), deviceProfile.getFirmwareId(), ts, firmwareType); | 177 | + updateConsumer = d -> send(d.getTenantId(), d.getId(), deviceProfile.getFirmwareId(), ts, otaPackageType); |
192 | } else { | 178 | } else { |
193 | - updateConsumer = d -> remove(d, firmwareType); | 179 | + updateConsumer = d -> remove(d, otaPackageType); |
194 | } | 180 | } |
195 | 181 | ||
196 | PageLink pageLink = new PageLink(100); | 182 | PageLink pageLink = new PageLink(100); |
197 | PageData<Device> pageData; | 183 | PageData<Device> pageData; |
198 | do { | 184 | do { |
199 | - pageData = getDevicesFunction.apply(pageLink); | 185 | + pageData = deviceService.findDevicesByTenantIdAndTypeAndEmptyOtaPackage(tenantId, deviceProfile.getId(), otaPackageType, pageLink); |
200 | pageData.getData().forEach(updateConsumer); | 186 | pageData.getData().forEach(updateConsumer); |
201 | 187 | ||
202 | if (pageData.hasNext()) { | 188 | if (pageData.hasNext()) { |
@@ -206,60 +192,60 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -206,60 +192,60 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
206 | } | 192 | } |
207 | 193 | ||
208 | @Override | 194 | @Override |
209 | - public boolean process(ToFirmwareStateServiceMsg msg) { | 195 | + public boolean process(ToOtaPackageStateServiceMsg msg) { |
210 | boolean isSuccess = false; | 196 | boolean isSuccess = false; |
211 | - FirmwareId targetFirmwareId = new FirmwareId(new UUID(msg.getFirmwareIdMSB(), msg.getFirmwareIdLSB())); | 197 | + OtaPackageId targetOtaPackageId = new OtaPackageId(new UUID(msg.getOtaPackageIdMSB(), msg.getOtaPackageIdLSB())); |
212 | DeviceId deviceId = new DeviceId(new UUID(msg.getDeviceIdMSB(), msg.getDeviceIdLSB())); | 198 | DeviceId deviceId = new DeviceId(new UUID(msg.getDeviceIdMSB(), msg.getDeviceIdLSB())); |
213 | TenantId tenantId = new TenantId(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB())); | 199 | TenantId tenantId = new TenantId(new UUID(msg.getTenantIdMSB(), msg.getTenantIdLSB())); |
214 | - FirmwareType firmwareType = FirmwareType.valueOf(msg.getType()); | 200 | + OtaPackageType firmwareType = OtaPackageType.valueOf(msg.getType()); |
215 | long ts = msg.getTs(); | 201 | long ts = msg.getTs(); |
216 | 202 | ||
217 | Device device = deviceService.findDeviceById(tenantId, deviceId); | 203 | Device device = deviceService.findDeviceById(tenantId, deviceId); |
218 | if (device == null) { | 204 | if (device == null) { |
219 | log.warn("[{}] [{}] Device was removed during firmware update msg was queued!", tenantId, deviceId); | 205 | log.warn("[{}] [{}] Device was removed during firmware update msg was queued!", tenantId, deviceId); |
220 | } else { | 206 | } else { |
221 | - FirmwareId currentFirmwareId = FirmwareUtil.getFirmwareId(device, firmwareType); | ||
222 | - if (currentFirmwareId == null) { | 207 | + OtaPackageId currentOtaPackageId = OtaPackageUtil.getOtaPackageId(device, firmwareType); |
208 | + if (currentOtaPackageId == null) { | ||
223 | DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(tenantId, device.getDeviceProfileId()); | 209 | DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(tenantId, device.getDeviceProfileId()); |
224 | - currentFirmwareId = FirmwareUtil.getFirmwareId(deviceProfile, firmwareType); | 210 | + currentOtaPackageId = OtaPackageUtil.getOtaPackageId(deviceProfile, firmwareType); |
225 | } | 211 | } |
226 | 212 | ||
227 | - if (targetFirmwareId.equals(currentFirmwareId)) { | ||
228 | - update(device, firmwareService.findFirmwareInfoById(device.getTenantId(), targetFirmwareId), ts); | 213 | + if (targetOtaPackageId.equals(currentOtaPackageId)) { |
214 | + update(device, otaPackageService.findOtaPackageInfoById(device.getTenantId(), targetOtaPackageId), ts); | ||
229 | isSuccess = true; | 215 | isSuccess = true; |
230 | } else { | 216 | } else { |
231 | - log.warn("[{}] [{}] Can`t update firmware for the device, target firmwareId: [{}], current firmwareId: [{}]!", tenantId, deviceId, targetFirmwareId, currentFirmwareId); | 217 | + log.warn("[{}] [{}] Can`t update firmware for the device, target firmwareId: [{}], current firmwareId: [{}]!", tenantId, deviceId, targetOtaPackageId, currentOtaPackageId); |
232 | } | 218 | } |
233 | } | 219 | } |
234 | return isSuccess; | 220 | return isSuccess; |
235 | } | 221 | } |
236 | 222 | ||
237 | - private void send(TenantId tenantId, DeviceId deviceId, FirmwareId firmwareId, long ts, FirmwareType firmwareType) { | ||
238 | - ToFirmwareStateServiceMsg msg = ToFirmwareStateServiceMsg.newBuilder() | 223 | + private void send(TenantId tenantId, DeviceId deviceId, OtaPackageId firmwareId, long ts, OtaPackageType firmwareType) { |
224 | + ToOtaPackageStateServiceMsg msg = ToOtaPackageStateServiceMsg.newBuilder() | ||
239 | .setTenantIdMSB(tenantId.getId().getMostSignificantBits()) | 225 | .setTenantIdMSB(tenantId.getId().getMostSignificantBits()) |
240 | .setTenantIdLSB(tenantId.getId().getLeastSignificantBits()) | 226 | .setTenantIdLSB(tenantId.getId().getLeastSignificantBits()) |
241 | .setDeviceIdMSB(deviceId.getId().getMostSignificantBits()) | 227 | .setDeviceIdMSB(deviceId.getId().getMostSignificantBits()) |
242 | .setDeviceIdLSB(deviceId.getId().getLeastSignificantBits()) | 228 | .setDeviceIdLSB(deviceId.getId().getLeastSignificantBits()) |
243 | - .setFirmwareIdMSB(firmwareId.getId().getMostSignificantBits()) | ||
244 | - .setFirmwareIdLSB(firmwareId.getId().getLeastSignificantBits()) | 229 | + .setOtaPackageIdMSB(firmwareId.getId().getMostSignificantBits()) |
230 | + .setOtaPackageIdLSB(firmwareId.getId().getLeastSignificantBits()) | ||
245 | .setType(firmwareType.name()) | 231 | .setType(firmwareType.name()) |
246 | .setTs(ts) | 232 | .setTs(ts) |
247 | .build(); | 233 | .build(); |
248 | 234 | ||
249 | - FirmwareInfo firmware = firmwareService.findFirmwareInfoById(tenantId, firmwareId); | 235 | + OtaPackageInfo firmware = otaPackageService.findOtaPackageInfoById(tenantId, firmwareId); |
250 | if (firmware == null) { | 236 | if (firmware == null) { |
251 | log.warn("[{}] Failed to send firmware update because firmware was already deleted", firmwareId); | 237 | log.warn("[{}] Failed to send firmware update because firmware was already deleted", firmwareId); |
252 | return; | 238 | return; |
253 | } | 239 | } |
254 | 240 | ||
255 | - TopicPartitionInfo tpi = new TopicPartitionInfo(fwStateMsgProducer.getDefaultTopic(), null, null, false); | ||
256 | - fwStateMsgProducer.send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), msg), null); | 241 | + TopicPartitionInfo tpi = new TopicPartitionInfo(otaPackageStateMsgProducer.getDefaultTopic(), null, null, false); |
242 | + otaPackageStateMsgProducer.send(tpi, new TbProtoQueueMsg<>(UUID.randomUUID(), msg), null); | ||
257 | 243 | ||
258 | List<TsKvEntry> telemetry = new ArrayList<>(); | 244 | List<TsKvEntry> telemetry = new ArrayList<>(); |
259 | telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTargetTelemetryKey(firmware.getType(), TITLE), firmware.getTitle()))); | 245 | telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTargetTelemetryKey(firmware.getType(), TITLE), firmware.getTitle()))); |
260 | telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTargetTelemetryKey(firmware.getType(), VERSION), firmware.getVersion()))); | 246 | telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTargetTelemetryKey(firmware.getType(), VERSION), firmware.getVersion()))); |
261 | telemetry.add(new BasicTsKvEntry(ts, new LongDataEntry(getTargetTelemetryKey(firmware.getType(), TS), ts))); | 247 | telemetry.add(new BasicTsKvEntry(ts, new LongDataEntry(getTargetTelemetryKey(firmware.getType(), TS), ts))); |
262 | - telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTelemetryKey(firmware.getType(), STATE), FirmwareUpdateStatus.QUEUED.name()))); | 248 | + telemetry.add(new BasicTsKvEntry(ts, new StringDataEntry(getTelemetryKey(firmware.getType(), STATE), OtaPackageUpdateStatus.QUEUED.name()))); |
263 | 249 | ||
264 | telemetryService.saveAndNotify(tenantId, deviceId, telemetry, new FutureCallback<>() { | 250 | telemetryService.saveAndNotify(tenantId, deviceId, telemetry, new FutureCallback<>() { |
265 | @Override | 251 | @Override |
@@ -275,11 +261,11 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -275,11 +261,11 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
275 | } | 261 | } |
276 | 262 | ||
277 | 263 | ||
278 | - private void update(Device device, FirmwareInfo firmware, long ts) { | 264 | + private void update(Device device, OtaPackageInfo firmware, long ts) { |
279 | TenantId tenantId = device.getTenantId(); | 265 | TenantId tenantId = device.getTenantId(); |
280 | DeviceId deviceId = device.getId(); | 266 | DeviceId deviceId = device.getId(); |
281 | 267 | ||
282 | - BasicTsKvEntry status = new BasicTsKvEntry(System.currentTimeMillis(), new StringDataEntry(getTelemetryKey(firmware.getType(), STATE), FirmwareUpdateStatus.INITIATED.name())); | 268 | + BasicTsKvEntry status = new BasicTsKvEntry(System.currentTimeMillis(), new StringDataEntry(getTelemetryKey(firmware.getType(), STATE), OtaPackageUpdateStatus.INITIATED.name())); |
283 | 269 | ||
284 | telemetryService.saveAndNotify(tenantId, deviceId, Collections.singletonList(status), new FutureCallback<>() { | 270 | telemetryService.saveAndNotify(tenantId, deviceId, Collections.singletonList(status), new FutureCallback<>() { |
285 | @Override | 271 | @Override |
@@ -313,14 +299,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | @@ -313,14 +299,14 @@ public class DefaultFirmwareStateService implements FirmwareStateService { | ||
313 | }); | 299 | }); |
314 | } | 300 | } |
315 | 301 | ||
316 | - private void remove(Device device, FirmwareType firmwareType) { | ||
317 | - telemetryService.deleteAndNotify(device.getTenantId(), device.getId(), DataConstants.SHARED_SCOPE, FirmwareUtil.getAttributeKeys(firmwareType), | 302 | + private void remove(Device device, OtaPackageType firmwareType) { |
303 | + telemetryService.deleteAndNotify(device.getTenantId(), device.getId(), DataConstants.SHARED_SCOPE, OtaPackageUtil.getAttributeKeys(firmwareType), | ||
318 | new FutureCallback<>() { | 304 | new FutureCallback<>() { |
319 | @Override | 305 | @Override |
320 | public void onSuccess(@Nullable Void tmp) { | 306 | public void onSuccess(@Nullable Void tmp) { |
321 | log.trace("[{}] Success remove target firmware attributes!", device.getId()); | 307 | log.trace("[{}] Success remove target firmware attributes!", device.getId()); |
322 | Set<AttributeKey> keysToNotify = new HashSet<>(); | 308 | Set<AttributeKey> keysToNotify = new HashSet<>(); |
323 | - FirmwareUtil.ALL_FW_ATTRIBUTE_KEYS.forEach(key -> keysToNotify.add(new AttributeKey(DataConstants.SHARED_SCOPE, key))); | 309 | + OtaPackageUtil.ALL_FW_ATTRIBUTE_KEYS.forEach(key -> keysToNotify.add(new AttributeKey(DataConstants.SHARED_SCOPE, key))); |
324 | tbClusterService.pushMsgToCore(DeviceAttributesEventNotificationMsg.onDelete(device.getTenantId(), device.getId(), keysToNotify), null); | 310 | tbClusterService.pushMsgToCore(DeviceAttributesEventNotificationMsg.onDelete(device.getTenantId(), device.getId(), keysToNotify), null); |
325 | } | 311 | } |
326 | 312 |
application/src/main/java/org/thingsboard/server/service/ota/OtaPackageStateService.java
renamed from
application/src/main/java/org/thingsboard/server/service/firmware/FirmwareStateService.java
@@ -13,18 +13,18 @@ | @@ -13,18 +13,18 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.service.firmware; | 16 | +package org.thingsboard.server.service.ota; |
17 | 17 | ||
18 | import org.thingsboard.server.common.data.Device; | 18 | import org.thingsboard.server.common.data.Device; |
19 | import org.thingsboard.server.common.data.DeviceProfile; | 19 | import org.thingsboard.server.common.data.DeviceProfile; |
20 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 20 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
21 | 21 | ||
22 | -public interface FirmwareStateService { | 22 | +public interface OtaPackageStateService { |
23 | 23 | ||
24 | void update(Device device, Device oldDevice); | 24 | void update(Device device, Device oldDevice); |
25 | 25 | ||
26 | void update(DeviceProfile deviceProfile, boolean isFirmwareChanged, boolean isSoftwareChanged); | 26 | void update(DeviceProfile deviceProfile, boolean isFirmwareChanged, boolean isSoftwareChanged); |
27 | 27 | ||
28 | - boolean process(ToFirmwareStateServiceMsg msg); | 28 | + boolean process(ToOtaPackageStateServiceMsg msg); |
29 | 29 | ||
30 | } | 30 | } |
@@ -50,7 +50,7 @@ import org.thingsboard.server.gen.transport.TransportProtos.TbSubscriptionCloseP | @@ -50,7 +50,7 @@ import org.thingsboard.server.gen.transport.TransportProtos.TbSubscriptionCloseP | ||
50 | import org.thingsboard.server.gen.transport.TransportProtos.TbTimeSeriesUpdateProto; | 50 | import org.thingsboard.server.gen.transport.TransportProtos.TbTimeSeriesUpdateProto; |
51 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 51 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
52 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 52 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
53 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 53 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
54 | import org.thingsboard.server.gen.transport.TransportProtos.ToUsageStatsServiceMsg; | 54 | import org.thingsboard.server.gen.transport.TransportProtos.ToUsageStatsServiceMsg; |
55 | import org.thingsboard.server.gen.transport.TransportProtos.TransportToDeviceActorMsg; | 55 | import org.thingsboard.server.gen.transport.TransportProtos.TransportToDeviceActorMsg; |
56 | import org.thingsboard.server.queue.TbQueueConsumer; | 56 | import org.thingsboard.server.queue.TbQueueConsumer; |
@@ -60,7 +60,7 @@ import org.thingsboard.server.queue.provider.TbCoreQueueFactory; | @@ -60,7 +60,7 @@ import org.thingsboard.server.queue.provider.TbCoreQueueFactory; | ||
60 | import org.thingsboard.server.queue.util.TbCoreComponent; | 60 | import org.thingsboard.server.queue.util.TbCoreComponent; |
61 | import org.thingsboard.server.service.apiusage.TbApiUsageStateService; | 61 | import org.thingsboard.server.service.apiusage.TbApiUsageStateService; |
62 | import org.thingsboard.server.service.edge.EdgeNotificationService; | 62 | import org.thingsboard.server.service.edge.EdgeNotificationService; |
63 | -import org.thingsboard.server.service.firmware.FirmwareStateService; | 63 | +import org.thingsboard.server.service.ota.OtaPackageStateService; |
64 | import org.thingsboard.server.service.profile.TbDeviceProfileCache; | 64 | import org.thingsboard.server.service.profile.TbDeviceProfileCache; |
65 | import org.thingsboard.server.service.queue.processing.AbstractConsumerService; | 65 | import org.thingsboard.server.service.queue.processing.AbstractConsumerService; |
66 | import org.thingsboard.server.service.queue.processing.IdMsgPair; | 66 | import org.thingsboard.server.service.queue.processing.IdMsgPair; |
@@ -75,7 +75,6 @@ import org.thingsboard.server.service.transport.msg.TransportToDeviceActorMsgWra | @@ -75,7 +75,6 @@ import org.thingsboard.server.service.transport.msg.TransportToDeviceActorMsgWra | ||
75 | 75 | ||
76 | import javax.annotation.PostConstruct; | 76 | import javax.annotation.PostConstruct; |
77 | import javax.annotation.PreDestroy; | 77 | import javax.annotation.PreDestroy; |
78 | -import java.util.ArrayList; | ||
79 | import java.util.List; | 78 | import java.util.List; |
80 | import java.util.Optional; | 79 | import java.util.Optional; |
81 | import java.util.UUID; | 80 | import java.util.UUID; |
@@ -101,9 +100,9 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -101,9 +100,9 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
101 | @Value("${queue.core.stats.enabled:false}") | 100 | @Value("${queue.core.stats.enabled:false}") |
102 | private boolean statsEnabled; | 101 | private boolean statsEnabled; |
103 | 102 | ||
104 | - @Value("${queue.core.firmware.pack-interval-ms:60000}") | 103 | + @Value("${queue.core.ota.pack-interval-ms:60000}") |
105 | private long firmwarePackInterval; | 104 | private long firmwarePackInterval; |
106 | - @Value("${queue.core.firmware.pack-size:100}") | 105 | + @Value("${queue.core.ota.pack-size:100}") |
107 | private int firmwarePackSize; | 106 | private int firmwarePackSize; |
108 | 107 | ||
109 | private final TbQueueConsumer<TbProtoQueueMsg<ToCoreMsg>> mainConsumer; | 108 | private final TbQueueConsumer<TbProtoQueueMsg<ToCoreMsg>> mainConsumer; |
@@ -113,10 +112,10 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -113,10 +112,10 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
113 | private final SubscriptionManagerService subscriptionManagerService; | 112 | private final SubscriptionManagerService subscriptionManagerService; |
114 | private final TbCoreDeviceRpcService tbCoreDeviceRpcService; | 113 | private final TbCoreDeviceRpcService tbCoreDeviceRpcService; |
115 | private final EdgeNotificationService edgeNotificationService; | 114 | private final EdgeNotificationService edgeNotificationService; |
116 | - private final FirmwareStateService firmwareStateService; | 115 | + private final OtaPackageStateService firmwareStateService; |
117 | private final TbCoreConsumerStats stats; | 116 | private final TbCoreConsumerStats stats; |
118 | protected final TbQueueConsumer<TbProtoQueueMsg<ToUsageStatsServiceMsg>> usageStatsConsumer; | 117 | protected final TbQueueConsumer<TbProtoQueueMsg<ToUsageStatsServiceMsg>> usageStatsConsumer; |
119 | - private final TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> firmwareStatesConsumer; | 118 | + private final TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> firmwareStatesConsumer; |
120 | 119 | ||
121 | protected volatile ExecutorService usageStatsExecutor; | 120 | protected volatile ExecutorService usageStatsExecutor; |
122 | 121 | ||
@@ -135,11 +134,11 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -135,11 +134,11 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
135 | TbTenantProfileCache tenantProfileCache, | 134 | TbTenantProfileCache tenantProfileCache, |
136 | TbApiUsageStateService apiUsageStateService, | 135 | TbApiUsageStateService apiUsageStateService, |
137 | EdgeNotificationService edgeNotificationService, | 136 | EdgeNotificationService edgeNotificationService, |
138 | - FirmwareStateService firmwareStateService) { | 137 | + OtaPackageStateService firmwareStateService) { |
139 | super(actorContext, encodingService, tenantProfileCache, deviceProfileCache, apiUsageStateService, tbCoreQueueFactory.createToCoreNotificationsMsgConsumer()); | 138 | super(actorContext, encodingService, tenantProfileCache, deviceProfileCache, apiUsageStateService, tbCoreQueueFactory.createToCoreNotificationsMsgConsumer()); |
140 | this.mainConsumer = tbCoreQueueFactory.createToCoreMsgConsumer(); | 139 | this.mainConsumer = tbCoreQueueFactory.createToCoreMsgConsumer(); |
141 | this.usageStatsConsumer = tbCoreQueueFactory.createToUsageStatsServiceMsgConsumer(); | 140 | this.usageStatsConsumer = tbCoreQueueFactory.createToUsageStatsServiceMsgConsumer(); |
142 | - this.firmwareStatesConsumer = tbCoreQueueFactory.createToFirmwareStateServiceMsgConsumer(); | 141 | + this.firmwareStatesConsumer = tbCoreQueueFactory.createToOtaPackageStateServiceMsgConsumer(); |
143 | this.stateService = stateService; | 142 | this.stateService = stateService; |
144 | this.localSubscriptionService = localSubscriptionService; | 143 | this.localSubscriptionService = localSubscriptionService; |
145 | this.subscriptionManagerService = subscriptionManagerService; | 144 | this.subscriptionManagerService = subscriptionManagerService; |
@@ -173,7 +172,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -173,7 +172,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
173 | public void onApplicationEvent(ApplicationReadyEvent event) { | 172 | public void onApplicationEvent(ApplicationReadyEvent event) { |
174 | super.onApplicationEvent(event); | 173 | super.onApplicationEvent(event); |
175 | launchUsageStatsConsumer(); | 174 | launchUsageStatsConsumer(); |
176 | - launchFirmwareUpdateNotificationConsumer(); | 175 | + launchOtaPackageUpdateNotificationConsumer(); |
177 | } | 176 | } |
178 | 177 | ||
179 | @Override | 178 | @Override |
@@ -361,20 +360,20 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -361,20 +360,20 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
361 | }); | 360 | }); |
362 | } | 361 | } |
363 | 362 | ||
364 | - private void launchFirmwareUpdateNotificationConsumer() { | 363 | + private void launchOtaPackageUpdateNotificationConsumer() { |
365 | long maxProcessingTimeoutPerRecord = firmwarePackInterval / firmwarePackSize; | 364 | long maxProcessingTimeoutPerRecord = firmwarePackInterval / firmwarePackSize; |
366 | firmwareStatesExecutor.submit(() -> { | 365 | firmwareStatesExecutor.submit(() -> { |
367 | while (!stopped) { | 366 | while (!stopped) { |
368 | try { | 367 | try { |
369 | - List<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> msgs = firmwareStatesConsumer.poll(getNotificationPollDuration()); | 368 | + List<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> msgs = firmwareStatesConsumer.poll(getNotificationPollDuration()); |
370 | if (msgs.isEmpty()) { | 369 | if (msgs.isEmpty()) { |
371 | continue; | 370 | continue; |
372 | } | 371 | } |
373 | long timeToSleep = maxProcessingTimeoutPerRecord; | 372 | long timeToSleep = maxProcessingTimeoutPerRecord; |
374 | - for (TbProtoQueueMsg<ToFirmwareStateServiceMsg> msg : msgs) { | 373 | + for (TbProtoQueueMsg<ToOtaPackageStateServiceMsg> msg : msgs) { |
375 | try { | 374 | try { |
376 | long startTime = System.currentTimeMillis(); | 375 | long startTime = System.currentTimeMillis(); |
377 | - boolean isSuccessUpdate = handleFirmwareUpdates(msg); | 376 | + boolean isSuccessUpdate = handleOtaPackageUpdates(msg); |
378 | long endTime = System.currentTimeMillis(); | 377 | long endTime = System.currentTimeMillis(); |
379 | long spentTime = endTime - startTime; | 378 | long spentTime = endTime - startTime; |
380 | timeToSleep = timeToSleep - spentTime; | 379 | timeToSleep = timeToSleep - spentTime; |
@@ -402,7 +401,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -402,7 +401,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
402 | } | 401 | } |
403 | } | 402 | } |
404 | } | 403 | } |
405 | - log.info("TB Firmware States Consumer stopped."); | 404 | + log.info("TB Ota Package States Consumer stopped."); |
406 | }); | 405 | }); |
407 | } | 406 | } |
408 | 407 | ||
@@ -410,7 +409,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | @@ -410,7 +409,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService<ToCore | ||
410 | statsService.process(msg, callback); | 409 | statsService.process(msg, callback); |
411 | } | 410 | } |
412 | 411 | ||
413 | - private boolean handleFirmwareUpdates(TbProtoQueueMsg<ToFirmwareStateServiceMsg> msg) { | 412 | + private boolean handleOtaPackageUpdates(TbProtoQueueMsg<ToOtaPackageStateServiceMsg> msg) { |
414 | return firmwareStateService.process(msg.getValue()); | 413 | return firmwareStateService.process(msg.getValue()); |
415 | } | 414 | } |
416 | 415 |
@@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.Customer; | @@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.Customer; | ||
30 | import org.thingsboard.server.common.data.Device; | 30 | import org.thingsboard.server.common.data.Device; |
31 | import org.thingsboard.server.common.data.DeviceProfile; | 31 | import org.thingsboard.server.common.data.DeviceProfile; |
32 | import org.thingsboard.server.common.data.EntityView; | 32 | import org.thingsboard.server.common.data.EntityView; |
33 | -import org.thingsboard.server.common.data.FirmwareInfo; | 33 | +import org.thingsboard.server.common.data.OtaPackageInfo; |
34 | import org.thingsboard.server.common.data.TbResourceInfo; | 34 | import org.thingsboard.server.common.data.TbResourceInfo; |
35 | import org.thingsboard.server.common.data.Tenant; | 35 | import org.thingsboard.server.common.data.Tenant; |
36 | import org.thingsboard.server.common.data.User; | 36 | import org.thingsboard.server.common.data.User; |
@@ -46,7 +46,7 @@ import org.thingsboard.server.common.data.id.EdgeId; | @@ -46,7 +46,7 @@ import org.thingsboard.server.common.data.id.EdgeId; | ||
46 | import org.thingsboard.server.common.data.id.EntityId; | 46 | import org.thingsboard.server.common.data.id.EntityId; |
47 | import org.thingsboard.server.common.data.id.EntityIdFactory; | 47 | import org.thingsboard.server.common.data.id.EntityIdFactory; |
48 | import org.thingsboard.server.common.data.id.EntityViewId; | 48 | import org.thingsboard.server.common.data.id.EntityViewId; |
49 | -import org.thingsboard.server.common.data.id.FirmwareId; | 49 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
50 | import org.thingsboard.server.common.data.id.RuleChainId; | 50 | import org.thingsboard.server.common.data.id.RuleChainId; |
51 | import org.thingsboard.server.common.data.id.RuleNodeId; | 51 | import org.thingsboard.server.common.data.id.RuleNodeId; |
52 | import org.thingsboard.server.common.data.id.TbResourceId; | 52 | import org.thingsboard.server.common.data.id.TbResourceId; |
@@ -63,7 +63,7 @@ import org.thingsboard.server.dao.device.DeviceService; | @@ -63,7 +63,7 @@ import org.thingsboard.server.dao.device.DeviceService; | ||
63 | import org.thingsboard.server.dao.edge.EdgeService; | 63 | import org.thingsboard.server.dao.edge.EdgeService; |
64 | import org.thingsboard.server.dao.entityview.EntityViewService; | 64 | import org.thingsboard.server.dao.entityview.EntityViewService; |
65 | import org.thingsboard.server.dao.exception.IncorrectParameterException; | 65 | import org.thingsboard.server.dao.exception.IncorrectParameterException; |
66 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 66 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
67 | import org.thingsboard.server.dao.resource.ResourceService; | 67 | import org.thingsboard.server.dao.resource.ResourceService; |
68 | import org.thingsboard.server.dao.rule.RuleChainService; | 68 | import org.thingsboard.server.dao.rule.RuleChainService; |
69 | import org.thingsboard.server.dao.tenant.TenantService; | 69 | import org.thingsboard.server.dao.tenant.TenantService; |
@@ -135,7 +135,7 @@ public class AccessValidator { | @@ -135,7 +135,7 @@ public class AccessValidator { | ||
135 | protected ResourceService resourceService; | 135 | protected ResourceService resourceService; |
136 | 136 | ||
137 | @Autowired | 137 | @Autowired |
138 | - protected FirmwareService firmwareService; | 138 | + protected OtaPackageService otaPackageService; |
139 | 139 | ||
140 | private ExecutorService executor; | 140 | private ExecutorService executor; |
141 | 141 | ||
@@ -232,8 +232,8 @@ public class AccessValidator { | @@ -232,8 +232,8 @@ public class AccessValidator { | ||
232 | case TB_RESOURCE: | 232 | case TB_RESOURCE: |
233 | validateResource(currentUser, operation, entityId, callback); | 233 | validateResource(currentUser, operation, entityId, callback); |
234 | return; | 234 | return; |
235 | - case FIRMWARE: | ||
236 | - validateFirmware(currentUser, operation, entityId, callback); | 235 | + case OTA_PACKAGE: |
236 | + validateOtaPackage(currentUser, operation, entityId, callback); | ||
237 | return; | 237 | return; |
238 | default: | 238 | default: |
239 | //TODO: add support of other entities | 239 | //TODO: add support of other entities |
@@ -300,20 +300,20 @@ public class AccessValidator { | @@ -300,20 +300,20 @@ public class AccessValidator { | ||
300 | } | 300 | } |
301 | } | 301 | } |
302 | 302 | ||
303 | - private void validateFirmware(final SecurityUser currentUser, Operation operation, EntityId entityId, FutureCallback<ValidationResult> callback) { | 303 | + private void validateOtaPackage(final SecurityUser currentUser, Operation operation, EntityId entityId, FutureCallback<ValidationResult> callback) { |
304 | if (currentUser.isSystemAdmin()) { | 304 | if (currentUser.isSystemAdmin()) { |
305 | callback.onSuccess(ValidationResult.accessDenied(SYSTEM_ADMINISTRATOR_IS_NOT_ALLOWED_TO_PERFORM_THIS_OPERATION)); | 305 | callback.onSuccess(ValidationResult.accessDenied(SYSTEM_ADMINISTRATOR_IS_NOT_ALLOWED_TO_PERFORM_THIS_OPERATION)); |
306 | } else { | 306 | } else { |
307 | - FirmwareInfo firmware = firmwareService.findFirmwareInfoById(currentUser.getTenantId(), new FirmwareId(entityId.getId())); | ||
308 | - if (firmware == null) { | ||
309 | - callback.onSuccess(ValidationResult.entityNotFound("Firmware with requested id wasn't found!")); | 307 | + OtaPackageInfo otaPackage = otaPackageService.findOtaPackageInfoById(currentUser.getTenantId(), new OtaPackageId(entityId.getId())); |
308 | + if (otaPackage == null) { | ||
309 | + callback.onSuccess(ValidationResult.entityNotFound("OtaPackage with requested id wasn't found!")); | ||
310 | } else { | 310 | } else { |
311 | try { | 311 | try { |
312 | - accessControlService.checkPermission(currentUser, Resource.FIRMWARE, operation, entityId, firmware); | 312 | + accessControlService.checkPermission(currentUser, Resource.OTA_PACKAGE, operation, entityId, otaPackage); |
313 | } catch (ThingsboardException e) { | 313 | } catch (ThingsboardException e) { |
314 | callback.onSuccess(ValidationResult.accessDenied(e.getMessage())); | 314 | callback.onSuccess(ValidationResult.accessDenied(e.getMessage())); |
315 | } | 315 | } |
316 | - callback.onSuccess(ValidationResult.ok(firmware)); | 316 | + callback.onSuccess(ValidationResult.ok(otaPackage)); |
317 | } | 317 | } |
318 | } | 318 | } |
319 | } | 319 | } |
@@ -38,7 +38,7 @@ public enum Resource { | @@ -38,7 +38,7 @@ public enum Resource { | ||
38 | DEVICE_PROFILE(EntityType.DEVICE_PROFILE), | 38 | DEVICE_PROFILE(EntityType.DEVICE_PROFILE), |
39 | API_USAGE_STATE(EntityType.API_USAGE_STATE), | 39 | API_USAGE_STATE(EntityType.API_USAGE_STATE), |
40 | TB_RESOURCE(EntityType.TB_RESOURCE), | 40 | TB_RESOURCE(EntityType.TB_RESOURCE), |
41 | - FIRMWARE(EntityType.FIRMWARE), | 41 | + OTA_PACKAGE(EntityType.OTA_PACKAGE), |
42 | EDGE(EntityType.EDGE); | 42 | EDGE(EntityType.EDGE); |
43 | 43 | ||
44 | private final EntityType entityType; | 44 | private final EntityType entityType; |
@@ -42,7 +42,7 @@ public class TenantAdminPermissions extends AbstractPermissions { | @@ -42,7 +42,7 @@ public class TenantAdminPermissions extends AbstractPermissions { | ||
42 | put(Resource.DEVICE_PROFILE, tenantEntityPermissionChecker); | 42 | put(Resource.DEVICE_PROFILE, tenantEntityPermissionChecker); |
43 | put(Resource.API_USAGE_STATE, tenantEntityPermissionChecker); | 43 | put(Resource.API_USAGE_STATE, tenantEntityPermissionChecker); |
44 | put(Resource.TB_RESOURCE, tbResourcePermissionChecker); | 44 | put(Resource.TB_RESOURCE, tbResourcePermissionChecker); |
45 | - put(Resource.FIRMWARE, tenantEntityPermissionChecker); | 45 | + put(Resource.OTA_PACKAGE, tenantEntityPermissionChecker); |
46 | put(Resource.EDGE, tenantEntityPermissionChecker); | 46 | put(Resource.EDGE, tenantEntityPermissionChecker); |
47 | } | 47 | } |
48 | 48 |
@@ -26,27 +26,27 @@ import lombok.extern.slf4j.Slf4j; | @@ -26,27 +26,27 @@ import lombok.extern.slf4j.Slf4j; | ||
26 | import org.springframework.stereotype.Service; | 26 | import org.springframework.stereotype.Service; |
27 | import org.springframework.util.StringUtils; | 27 | import org.springframework.util.StringUtils; |
28 | import org.thingsboard.common.util.JacksonUtil; | 28 | import org.thingsboard.common.util.JacksonUtil; |
29 | -import org.thingsboard.server.cache.firmware.FirmwareDataCache; | 29 | +import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
30 | import org.thingsboard.server.common.data.ApiUsageState; | 30 | import org.thingsboard.server.common.data.ApiUsageState; |
31 | import org.thingsboard.server.common.data.DataConstants; | 31 | import org.thingsboard.server.common.data.DataConstants; |
32 | import org.thingsboard.server.common.data.Device; | 32 | import org.thingsboard.server.common.data.Device; |
33 | import org.thingsboard.server.common.data.DeviceProfile; | 33 | import org.thingsboard.server.common.data.DeviceProfile; |
34 | import org.thingsboard.server.common.data.DeviceTransportType; | 34 | import org.thingsboard.server.common.data.DeviceTransportType; |
35 | import org.thingsboard.server.common.data.EntityType; | 35 | import org.thingsboard.server.common.data.EntityType; |
36 | -import org.thingsboard.server.common.data.Firmware; | ||
37 | -import org.thingsboard.server.common.data.FirmwareInfo; | 36 | +import org.thingsboard.server.common.data.OtaPackage; |
37 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
38 | import org.thingsboard.server.common.data.ResourceType; | 38 | import org.thingsboard.server.common.data.ResourceType; |
39 | import org.thingsboard.server.common.data.TbResource; | 39 | import org.thingsboard.server.common.data.TbResource; |
40 | import org.thingsboard.server.common.data.TenantProfile; | 40 | import org.thingsboard.server.common.data.TenantProfile; |
41 | import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; | 41 | import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; |
42 | import org.thingsboard.server.common.data.device.credentials.ProvisionDeviceCredentialsData; | 42 | import org.thingsboard.server.common.data.device.credentials.ProvisionDeviceCredentialsData; |
43 | import org.thingsboard.server.common.data.device.profile.ProvisionDeviceProfileCredentials; | 43 | import org.thingsboard.server.common.data.device.profile.ProvisionDeviceProfileCredentials; |
44 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
45 | -import org.thingsboard.server.common.data.firmware.FirmwareUtil; | 44 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
45 | +import org.thingsboard.server.common.data.ota.OtaPackageUtil; | ||
46 | import org.thingsboard.server.common.data.id.CustomerId; | 46 | import org.thingsboard.server.common.data.id.CustomerId; |
47 | import org.thingsboard.server.common.data.id.DeviceId; | 47 | import org.thingsboard.server.common.data.id.DeviceId; |
48 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 48 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
49 | -import org.thingsboard.server.common.data.id.FirmwareId; | 49 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
50 | import org.thingsboard.server.common.data.id.TenantId; | 50 | import org.thingsboard.server.common.data.id.TenantId; |
51 | import org.thingsboard.server.common.data.page.PageData; | 51 | import org.thingsboard.server.common.data.page.PageData; |
52 | import org.thingsboard.server.common.data.page.PageLink; | 52 | import org.thingsboard.server.common.data.page.PageLink; |
@@ -64,7 +64,7 @@ import org.thingsboard.server.dao.device.DeviceService; | @@ -64,7 +64,7 @@ import org.thingsboard.server.dao.device.DeviceService; | ||
64 | import org.thingsboard.server.dao.device.provision.ProvisionFailedException; | 64 | import org.thingsboard.server.dao.device.provision.ProvisionFailedException; |
65 | import org.thingsboard.server.dao.device.provision.ProvisionRequest; | 65 | import org.thingsboard.server.dao.device.provision.ProvisionRequest; |
66 | import org.thingsboard.server.dao.device.provision.ProvisionResponse; | 66 | import org.thingsboard.server.dao.device.provision.ProvisionResponse; |
67 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 67 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
68 | import org.thingsboard.server.dao.relation.RelationService; | 68 | import org.thingsboard.server.dao.relation.RelationService; |
69 | import org.thingsboard.server.dao.tenant.TbTenantProfileCache; | 69 | import org.thingsboard.server.dao.tenant.TbTenantProfileCache; |
70 | import org.thingsboard.server.gen.transport.TransportProtos; | 70 | import org.thingsboard.server.gen.transport.TransportProtos; |
@@ -124,8 +124,8 @@ public class DefaultTransportApiService implements TransportApiService { | @@ -124,8 +124,8 @@ public class DefaultTransportApiService implements TransportApiService { | ||
124 | private final DataDecodingEncodingService dataDecodingEncodingService; | 124 | private final DataDecodingEncodingService dataDecodingEncodingService; |
125 | private final DeviceProvisionService deviceProvisionService; | 125 | private final DeviceProvisionService deviceProvisionService; |
126 | private final TbResourceService resourceService; | 126 | private final TbResourceService resourceService; |
127 | - private final FirmwareService firmwareService; | ||
128 | - private final FirmwareDataCache firmwareDataCache; | 127 | + private final OtaPackageService otaPackageService; |
128 | + private final OtaPackageDataCache otaPackageDataCache; | ||
129 | 129 | ||
130 | private final ConcurrentMap<String, ReentrantLock> deviceCreationLocks = new ConcurrentHashMap<>(); | 130 | private final ConcurrentMap<String, ReentrantLock> deviceCreationLocks = new ConcurrentHashMap<>(); |
131 | 131 | ||
@@ -134,7 +134,7 @@ public class DefaultTransportApiService implements TransportApiService { | @@ -134,7 +134,7 @@ public class DefaultTransportApiService implements TransportApiService { | ||
134 | RelationService relationService, DeviceCredentialsService deviceCredentialsService, | 134 | RelationService relationService, DeviceCredentialsService deviceCredentialsService, |
135 | DeviceStateService deviceStateService, DbCallbackExecutorService dbCallbackExecutorService, | 135 | DeviceStateService deviceStateService, DbCallbackExecutorService dbCallbackExecutorService, |
136 | TbClusterService tbClusterService, DataDecodingEncodingService dataDecodingEncodingService, | 136 | TbClusterService tbClusterService, DataDecodingEncodingService dataDecodingEncodingService, |
137 | - DeviceProvisionService deviceProvisionService, TbResourceService resourceService, FirmwareService firmwareService, FirmwareDataCache firmwareDataCache) { | 137 | + DeviceProvisionService deviceProvisionService, TbResourceService resourceService, OtaPackageService otaPackageService, OtaPackageDataCache otaPackageDataCache) { |
138 | this.deviceProfileCache = deviceProfileCache; | 138 | this.deviceProfileCache = deviceProfileCache; |
139 | this.tenantProfileCache = tenantProfileCache; | 139 | this.tenantProfileCache = tenantProfileCache; |
140 | this.apiUsageStateService = apiUsageStateService; | 140 | this.apiUsageStateService = apiUsageStateService; |
@@ -147,8 +147,8 @@ public class DefaultTransportApiService implements TransportApiService { | @@ -147,8 +147,8 @@ public class DefaultTransportApiService implements TransportApiService { | ||
147 | this.dataDecodingEncodingService = dataDecodingEncodingService; | 147 | this.dataDecodingEncodingService = dataDecodingEncodingService; |
148 | this.deviceProvisionService = deviceProvisionService; | 148 | this.deviceProvisionService = deviceProvisionService; |
149 | this.resourceService = resourceService; | 149 | this.resourceService = resourceService; |
150 | - this.firmwareService = firmwareService; | ||
151 | - this.firmwareDataCache = firmwareDataCache; | 150 | + this.otaPackageService = otaPackageService; |
151 | + this.otaPackageDataCache = otaPackageDataCache; | ||
152 | } | 152 | } |
153 | 153 | ||
154 | @Override | 154 | @Override |
@@ -184,8 +184,8 @@ public class DefaultTransportApiService implements TransportApiService { | @@ -184,8 +184,8 @@ public class DefaultTransportApiService implements TransportApiService { | ||
184 | result = handle(transportApiRequestMsg.getDeviceRequestMsg()); | 184 | result = handle(transportApiRequestMsg.getDeviceRequestMsg()); |
185 | } else if (transportApiRequestMsg.hasDeviceCredentialsRequestMsg()) { | 185 | } else if (transportApiRequestMsg.hasDeviceCredentialsRequestMsg()) { |
186 | result = handle(transportApiRequestMsg.getDeviceCredentialsRequestMsg()); | 186 | result = handle(transportApiRequestMsg.getDeviceCredentialsRequestMsg()); |
187 | - } else if (transportApiRequestMsg.hasFirmwareRequestMsg()) { | ||
188 | - result = handle(transportApiRequestMsg.getFirmwareRequestMsg()); | 187 | + } else if (transportApiRequestMsg.hasOtaPackageRequestMsg()) { |
188 | + result = handle(transportApiRequestMsg.getOtaPackageRequestMsg()); | ||
189 | } | 189 | } |
190 | 190 | ||
191 | return Futures.transform(Optional.ofNullable(result).orElseGet(this::getEmptyTransportApiResponseFuture), | 191 | return Futures.transform(Optional.ofNullable(result).orElseGet(this::getEmptyTransportApiResponseFuture), |
@@ -511,50 +511,50 @@ public class DefaultTransportApiService implements TransportApiService { | @@ -511,50 +511,50 @@ public class DefaultTransportApiService implements TransportApiService { | ||
511 | } | 511 | } |
512 | } | 512 | } |
513 | 513 | ||
514 | - private ListenableFuture<TransportApiResponseMsg> handle(TransportProtos.GetFirmwareRequestMsg requestMsg) { | 514 | + private ListenableFuture<TransportApiResponseMsg> handle(TransportProtos.GetOtaPackageRequestMsg requestMsg) { |
515 | TenantId tenantId = new TenantId(new UUID(requestMsg.getTenantIdMSB(), requestMsg.getTenantIdLSB())); | 515 | TenantId tenantId = new TenantId(new UUID(requestMsg.getTenantIdMSB(), requestMsg.getTenantIdLSB())); |
516 | DeviceId deviceId = new DeviceId(new UUID(requestMsg.getDeviceIdMSB(), requestMsg.getDeviceIdLSB())); | 516 | DeviceId deviceId = new DeviceId(new UUID(requestMsg.getDeviceIdMSB(), requestMsg.getDeviceIdLSB())); |
517 | - FirmwareType firmwareType = FirmwareType.valueOf(requestMsg.getType()); | 517 | + OtaPackageType otaPackageType = OtaPackageType.valueOf(requestMsg.getType()); |
518 | Device device = deviceService.findDeviceById(tenantId, deviceId); | 518 | Device device = deviceService.findDeviceById(tenantId, deviceId); |
519 | 519 | ||
520 | if (device == null) { | 520 | if (device == null) { |
521 | return getEmptyTransportApiResponseFuture(); | 521 | return getEmptyTransportApiResponseFuture(); |
522 | } | 522 | } |
523 | 523 | ||
524 | - FirmwareId firmwareId = FirmwareUtil.getFirmwareId(device, firmwareType); | ||
525 | - if (firmwareId == null) { | 524 | + OtaPackageId otaPackageId = OtaPackageUtil.getOtaPackageId(device, otaPackageType); |
525 | + if (otaPackageId == null) { | ||
526 | DeviceProfile deviceProfile = deviceProfileCache.find(device.getDeviceProfileId()); | 526 | DeviceProfile deviceProfile = deviceProfileCache.find(device.getDeviceProfileId()); |
527 | - firmwareId = FirmwareUtil.getFirmwareId(deviceProfile, firmwareType); | 527 | + otaPackageId = OtaPackageUtil.getOtaPackageId(deviceProfile, otaPackageType); |
528 | } | 528 | } |
529 | 529 | ||
530 | - TransportProtos.GetFirmwareResponseMsg.Builder builder = TransportProtos.GetFirmwareResponseMsg.newBuilder(); | 530 | + TransportProtos.GetOtaPackageResponseMsg.Builder builder = TransportProtos.GetOtaPackageResponseMsg.newBuilder(); |
531 | 531 | ||
532 | - if (firmwareId == null) { | 532 | + if (otaPackageId == null) { |
533 | builder.setResponseStatus(TransportProtos.ResponseStatus.NOT_FOUND); | 533 | builder.setResponseStatus(TransportProtos.ResponseStatus.NOT_FOUND); |
534 | } else { | 534 | } else { |
535 | - FirmwareInfo firmwareInfo = firmwareService.findFirmwareInfoById(tenantId, firmwareId); | 535 | + OtaPackageInfo otaPackageInfo = otaPackageService.findOtaPackageInfoById(tenantId, otaPackageId); |
536 | 536 | ||
537 | - if (firmwareInfo == null) { | 537 | + if (otaPackageInfo == null) { |
538 | builder.setResponseStatus(TransportProtos.ResponseStatus.NOT_FOUND); | 538 | builder.setResponseStatus(TransportProtos.ResponseStatus.NOT_FOUND); |
539 | } else { | 539 | } else { |
540 | builder.setResponseStatus(TransportProtos.ResponseStatus.SUCCESS); | 540 | builder.setResponseStatus(TransportProtos.ResponseStatus.SUCCESS); |
541 | - builder.setFirmwareIdMSB(firmwareId.getId().getMostSignificantBits()); | ||
542 | - builder.setFirmwareIdLSB(firmwareId.getId().getLeastSignificantBits()); | ||
543 | - builder.setType(firmwareInfo.getType().name()); | ||
544 | - builder.setTitle(firmwareInfo.getTitle()); | ||
545 | - builder.setVersion(firmwareInfo.getVersion()); | ||
546 | - builder.setFileName(firmwareInfo.getFileName()); | ||
547 | - builder.setContentType(firmwareInfo.getContentType()); | ||
548 | - if (!firmwareDataCache.has(firmwareId.toString())) { | ||
549 | - Firmware firmware = firmwareService.findFirmwareById(tenantId, firmwareId); | ||
550 | - firmwareDataCache.put(firmwareId.toString(), firmware.getData().array()); | 541 | + builder.setOtaPackageIdMSB(otaPackageId.getId().getMostSignificantBits()); |
542 | + builder.setOtaPackageIdLSB(otaPackageId.getId().getLeastSignificantBits()); | ||
543 | + builder.setType(otaPackageInfo.getType().name()); | ||
544 | + builder.setTitle(otaPackageInfo.getTitle()); | ||
545 | + builder.setVersion(otaPackageInfo.getVersion()); | ||
546 | + builder.setFileName(otaPackageInfo.getFileName()); | ||
547 | + builder.setContentType(otaPackageInfo.getContentType()); | ||
548 | + if (!otaPackageDataCache.has(otaPackageId.toString())) { | ||
549 | + OtaPackage otaPackage = otaPackageService.findOtaPackageById(tenantId, otaPackageId); | ||
550 | + otaPackageDataCache.put(otaPackageId.toString(), otaPackage.getData().array()); | ||
551 | } | 551 | } |
552 | } | 552 | } |
553 | } | 553 | } |
554 | 554 | ||
555 | return Futures.immediateFuture( | 555 | return Futures.immediateFuture( |
556 | TransportApiResponseMsg.newBuilder() | 556 | TransportApiResponseMsg.newBuilder() |
557 | - .setFirmwareResponseMsg(builder.build()) | 557 | + .setOtaPackageResponseMsg(builder.build()) |
558 | .build()); | 558 | .build()); |
559 | } | 559 | } |
560 | 560 |
@@ -371,7 +371,7 @@ caffeine: | @@ -371,7 +371,7 @@ caffeine: | ||
371 | tokensOutdatageTime: | 371 | tokensOutdatageTime: |
372 | timeToLiveInMinutes: 20000 | 372 | timeToLiveInMinutes: 20000 |
373 | maxSize: 10000 | 373 | maxSize: 10000 |
374 | - firmwares: | 374 | + otaPackages: |
375 | timeToLiveInMinutes: 60 | 375 | timeToLiveInMinutes: 60 |
376 | maxSize: 10 | 376 | maxSize: 10 |
377 | edges: | 377 | edges: |
@@ -497,7 +497,7 @@ audit-log: | @@ -497,7 +497,7 @@ audit-log: | ||
497 | "device_profile": "${AUDIT_LOG_MASK_DEVICE_PROFILE:W}" | 497 | "device_profile": "${AUDIT_LOG_MASK_DEVICE_PROFILE:W}" |
498 | "edge": "${AUDIT_LOG_MASK_EDGE:W}" | 498 | "edge": "${AUDIT_LOG_MASK_EDGE:W}" |
499 | "tb_resource": "${AUDIT_LOG_MASK_RESOURCE:W}" | 499 | "tb_resource": "${AUDIT_LOG_MASK_RESOURCE:W}" |
500 | - "firmware": "${AUDIT_LOG_MASK_FIRMWARE:W}" | 500 | + "ota_package": "${AUDIT_LOG_MASK_OTA_PACKAGE:W}" |
501 | sink: | 501 | sink: |
502 | # Type of external sink. possible options: none, elasticsearch | 502 | # Type of external sink. possible options: none, elasticsearch |
503 | type: "${AUDIT_LOG_SINK_TYPE:none}" | 503 | type: "${AUDIT_LOG_SINK_TYPE:none}" |
@@ -749,7 +749,7 @@ queue: | @@ -749,7 +749,7 @@ queue: | ||
749 | sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" | 749 | sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" |
750 | security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" | 750 | security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" |
751 | consumer-properties-per-topic: | 751 | consumer-properties-per-topic: |
752 | - tb_firmware: | 752 | + tb_ota_package: |
753 | - key: max.poll.records | 753 | - key: max.poll.records |
754 | value: 10 | 754 | value: 10 |
755 | other: | 755 | other: |
@@ -759,7 +759,7 @@ queue: | @@ -759,7 +759,7 @@ queue: | ||
759 | transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" | 759 | transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" |
760 | notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" | 760 | notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" |
761 | js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}" | 761 | js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}" |
762 | - fw-updates: "${TB_QUEUE_KAFKA_FW_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" | 762 | + ota-updates: "${TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" |
763 | consumer-stats: | 763 | consumer-stats: |
764 | enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}" | 764 | enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}" |
765 | print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}" | 765 | print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}" |
@@ -830,10 +830,10 @@ queue: | @@ -830,10 +830,10 @@ queue: | ||
830 | poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" | 830 | poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" |
831 | partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" | 831 | partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" |
832 | pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:2000}" | 832 | pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:2000}" |
833 | - firmware: | ||
834 | - topic: "${TB_QUEUE_CORE_FW_TOPIC:tb_firmware}" | ||
835 | - pack-interval-ms: "${TB_QUEUE_CORE_FW_PACK_INTERVAL_MS:60000}" | ||
836 | - pack-size: "${TB_QUEUE_CORE_FW_PACK_SIZE:100}" | 833 | + ota: |
834 | + topic: "${TB_QUEUE_CORE_OTA_TOPIC:tb_ota_package}" | ||
835 | + pack-interval-ms: "${TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS:60000}" | ||
836 | + pack-size: "${TB_QUEUE_CORE_OTA_PACK_SIZE:100}" | ||
837 | usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" | 837 | usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" |
838 | stats: | 838 | stats: |
839 | enabled: "${TB_QUEUE_CORE_STATS_ENABLED:true}" | 839 | enabled: "${TB_QUEUE_CORE_STATS_ENABLED:true}" |
application/src/test/java/org/thingsboard/server/controller/BaseOtaPackageControllerTest.java
renamed from
application/src/test/java/org/thingsboard/server/controller/BaseFirmwareControllerTest.java
@@ -25,11 +25,10 @@ import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequ | @@ -25,11 +25,10 @@ import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequ | ||
25 | import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; | 25 | import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; |
26 | import org.thingsboard.common.util.JacksonUtil; | 26 | import org.thingsboard.common.util.JacksonUtil; |
27 | import org.thingsboard.server.common.data.DeviceProfile; | 27 | import org.thingsboard.server.common.data.DeviceProfile; |
28 | -import org.thingsboard.server.common.data.Firmware; | ||
29 | -import org.thingsboard.server.common.data.FirmwareInfo; | 28 | +import org.thingsboard.server.common.data.OtaPackage; |
29 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
30 | import org.thingsboard.server.common.data.Tenant; | 30 | import org.thingsboard.server.common.data.Tenant; |
31 | import org.thingsboard.server.common.data.User; | 31 | import org.thingsboard.server.common.data.User; |
32 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
33 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 32 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
34 | import org.thingsboard.server.common.data.page.PageData; | 33 | import org.thingsboard.server.common.data.page.PageData; |
35 | import org.thingsboard.server.common.data.page.PageLink; | 34 | import org.thingsboard.server.common.data.page.PageLink; |
@@ -41,11 +40,11 @@ import java.util.Collections; | @@ -41,11 +40,11 @@ import java.util.Collections; | ||
41 | import java.util.List; | 40 | import java.util.List; |
42 | 41 | ||
43 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; | 42 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
44 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; | 43 | +import static org.thingsboard.server.common.data.ota.OtaPackageType.FIRMWARE; |
45 | 44 | ||
46 | -public abstract class BaseFirmwareControllerTest extends AbstractControllerTest { | 45 | +public abstract class BaseOtaPackageControllerTest extends AbstractControllerTest { |
47 | 46 | ||
48 | - private IdComparator<FirmwareInfo> idComparator = new IdComparator<>(); | 47 | + private IdComparator<OtaPackageInfo> idComparator = new IdComparator<>(); |
49 | 48 | ||
50 | public static final String TITLE = "My firmware"; | 49 | public static final String TITLE = "My firmware"; |
51 | private static final String FILE_NAME = "filename.txt"; | 50 | private static final String FILE_NAME = "filename.txt"; |
@@ -93,13 +92,13 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -93,13 +92,13 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
93 | 92 | ||
94 | @Test | 93 | @Test |
95 | public void testSaveFirmware() throws Exception { | 94 | public void testSaveFirmware() throws Exception { |
96 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 95 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
97 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 96 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
98 | firmwareInfo.setType(FIRMWARE); | 97 | firmwareInfo.setType(FIRMWARE); |
99 | firmwareInfo.setTitle(TITLE); | 98 | firmwareInfo.setTitle(TITLE); |
100 | firmwareInfo.setVersion(VERSION); | 99 | firmwareInfo.setVersion(VERSION); |
101 | 100 | ||
102 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 101 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
103 | 102 | ||
104 | Assert.assertNotNull(savedFirmwareInfo); | 103 | Assert.assertNotNull(savedFirmwareInfo); |
105 | Assert.assertNotNull(savedFirmwareInfo.getId()); | 104 | Assert.assertNotNull(savedFirmwareInfo.getId()); |
@@ -112,19 +111,19 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -112,19 +111,19 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
112 | 111 | ||
113 | save(savedFirmwareInfo); | 112 | save(savedFirmwareInfo); |
114 | 113 | ||
115 | - FirmwareInfo foundFirmwareInfo = doGet("/api/firmware/info/" + savedFirmwareInfo.getId().getId().toString(), FirmwareInfo.class); | 114 | + OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
116 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); | 115 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); |
117 | } | 116 | } |
118 | 117 | ||
119 | @Test | 118 | @Test |
120 | public void testSaveFirmwareData() throws Exception { | 119 | public void testSaveFirmwareData() throws Exception { |
121 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 120 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
122 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 121 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
123 | firmwareInfo.setType(FIRMWARE); | 122 | firmwareInfo.setType(FIRMWARE); |
124 | firmwareInfo.setTitle(TITLE); | 123 | firmwareInfo.setTitle(TITLE); |
125 | firmwareInfo.setVersion(VERSION); | 124 | firmwareInfo.setVersion(VERSION); |
126 | 125 | ||
127 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 126 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
128 | 127 | ||
129 | Assert.assertNotNull(savedFirmwareInfo); | 128 | Assert.assertNotNull(savedFirmwareInfo); |
130 | Assert.assertNotNull(savedFirmwareInfo.getId()); | 129 | Assert.assertNotNull(savedFirmwareInfo.getId()); |
@@ -137,12 +136,12 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -137,12 +136,12 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
137 | 136 | ||
138 | save(savedFirmwareInfo); | 137 | save(savedFirmwareInfo); |
139 | 138 | ||
140 | - FirmwareInfo foundFirmwareInfo = doGet("/api/firmware/info/" + savedFirmwareInfo.getId().getId().toString(), FirmwareInfo.class); | 139 | + OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
141 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); | 140 | Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); |
142 | 141 | ||
143 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 142 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
144 | 143 | ||
145 | - Firmware savedFirmware = savaData("/api/firmware/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); | 144 | + OtaPackage savedFirmware = savaData("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); |
146 | 145 | ||
147 | Assert.assertEquals(FILE_NAME, savedFirmware.getFileName()); | 146 | Assert.assertEquals(FILE_NAME, savedFirmware.getFileName()); |
148 | Assert.assertEquals(CONTENT_TYPE, savedFirmware.getContentType()); | 147 | Assert.assertEquals(CONTENT_TYPE, savedFirmware.getContentType()); |
@@ -150,97 +149,97 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -150,97 +149,97 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
150 | 149 | ||
151 | @Test | 150 | @Test |
152 | public void testUpdateFirmwareFromDifferentTenant() throws Exception { | 151 | public void testUpdateFirmwareFromDifferentTenant() throws Exception { |
153 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 152 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
154 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 153 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
155 | firmwareInfo.setType(FIRMWARE); | 154 | firmwareInfo.setType(FIRMWARE); |
156 | firmwareInfo.setTitle(TITLE); | 155 | firmwareInfo.setTitle(TITLE); |
157 | firmwareInfo.setVersion(VERSION); | 156 | firmwareInfo.setVersion(VERSION); |
158 | 157 | ||
159 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 158 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
160 | 159 | ||
161 | loginDifferentTenant(); | 160 | loginDifferentTenant(); |
162 | - doPost("/api/firmware", savedFirmwareInfo, FirmwareInfo.class, status().isForbidden()); | 161 | + doPost("/api/otaPackage", savedFirmwareInfo, OtaPackageInfo.class, status().isForbidden()); |
163 | deleteDifferentTenant(); | 162 | deleteDifferentTenant(); |
164 | } | 163 | } |
165 | 164 | ||
166 | @Test | 165 | @Test |
167 | public void testFindFirmwareInfoById() throws Exception { | 166 | public void testFindFirmwareInfoById() throws Exception { |
168 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 167 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
169 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 168 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
170 | firmwareInfo.setType(FIRMWARE); | 169 | firmwareInfo.setType(FIRMWARE); |
171 | firmwareInfo.setTitle(TITLE); | 170 | firmwareInfo.setTitle(TITLE); |
172 | firmwareInfo.setVersion(VERSION); | 171 | firmwareInfo.setVersion(VERSION); |
173 | 172 | ||
174 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 173 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
175 | 174 | ||
176 | - FirmwareInfo foundFirmware = doGet("/api/firmware/info/" + savedFirmwareInfo.getId().getId().toString(), FirmwareInfo.class); | 175 | + OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); |
177 | Assert.assertNotNull(foundFirmware); | 176 | Assert.assertNotNull(foundFirmware); |
178 | Assert.assertEquals(savedFirmwareInfo, foundFirmware); | 177 | Assert.assertEquals(savedFirmwareInfo, foundFirmware); |
179 | } | 178 | } |
180 | 179 | ||
181 | @Test | 180 | @Test |
182 | public void testFindFirmwareById() throws Exception { | 181 | public void testFindFirmwareById() throws Exception { |
183 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 182 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
184 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 183 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
185 | firmwareInfo.setType(FIRMWARE); | 184 | firmwareInfo.setType(FIRMWARE); |
186 | firmwareInfo.setTitle(TITLE); | 185 | firmwareInfo.setTitle(TITLE); |
187 | firmwareInfo.setVersion(VERSION); | 186 | firmwareInfo.setVersion(VERSION); |
188 | 187 | ||
189 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 188 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
190 | 189 | ||
191 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 190 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
192 | 191 | ||
193 | - Firmware savedFirmware = savaData("/api/firmware/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); | 192 | + OtaPackage savedFirmware = savaData("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); |
194 | 193 | ||
195 | - Firmware foundFirmware = doGet("/api/firmware/" + savedFirmwareInfo.getId().getId().toString(), Firmware.class); | 194 | + OtaPackage foundFirmware = doGet("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString(), OtaPackage.class); |
196 | Assert.assertNotNull(foundFirmware); | 195 | Assert.assertNotNull(foundFirmware); |
197 | Assert.assertEquals(savedFirmware, foundFirmware); | 196 | Assert.assertEquals(savedFirmware, foundFirmware); |
198 | } | 197 | } |
199 | 198 | ||
200 | @Test | 199 | @Test |
201 | public void testDeleteFirmware() throws Exception { | 200 | public void testDeleteFirmware() throws Exception { |
202 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 201 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
203 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 202 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
204 | firmwareInfo.setType(FIRMWARE); | 203 | firmwareInfo.setType(FIRMWARE); |
205 | firmwareInfo.setTitle(TITLE); | 204 | firmwareInfo.setTitle(TITLE); |
206 | firmwareInfo.setVersion(VERSION); | 205 | firmwareInfo.setVersion(VERSION); |
207 | 206 | ||
208 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 207 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
209 | 208 | ||
210 | - doDelete("/api/firmware/" + savedFirmwareInfo.getId().getId().toString()) | 209 | + doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString()) |
211 | .andExpect(status().isOk()); | 210 | .andExpect(status().isOk()); |
212 | 211 | ||
213 | - doGet("/api/firmware/info/" + savedFirmwareInfo.getId().getId().toString()) | 212 | + doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString()) |
214 | .andExpect(status().isNotFound()); | 213 | .andExpect(status().isNotFound()); |
215 | } | 214 | } |
216 | 215 | ||
217 | @Test | 216 | @Test |
218 | public void testFindTenantFirmwares() throws Exception { | 217 | public void testFindTenantFirmwares() throws Exception { |
219 | - List<FirmwareInfo> firmwares = new ArrayList<>(); | 218 | + List<OtaPackageInfo> otaPackages = new ArrayList<>(); |
220 | for (int i = 0; i < 165; i++) { | 219 | for (int i = 0; i < 165; i++) { |
221 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 220 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
222 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 221 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
223 | firmwareInfo.setType(FIRMWARE); | 222 | firmwareInfo.setType(FIRMWARE); |
224 | firmwareInfo.setTitle(TITLE); | 223 | firmwareInfo.setTitle(TITLE); |
225 | firmwareInfo.setVersion(VERSION + i); | 224 | firmwareInfo.setVersion(VERSION + i); |
226 | 225 | ||
227 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 226 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
228 | 227 | ||
229 | if (i > 100) { | 228 | if (i > 100) { |
230 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 229 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
231 | 230 | ||
232 | - Firmware savedFirmware = savaData("/api/firmware/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); | ||
233 | - firmwares.add(new FirmwareInfo(savedFirmware)); | 231 | + OtaPackage savedFirmware = savaData("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); |
232 | + otaPackages.add(new OtaPackageInfo(savedFirmware)); | ||
234 | } else { | 233 | } else { |
235 | - firmwares.add(savedFirmwareInfo); | 234 | + otaPackages.add(savedFirmwareInfo); |
236 | } | 235 | } |
237 | } | 236 | } |
238 | 237 | ||
239 | - List<FirmwareInfo> loadedFirmwares = new ArrayList<>(); | 238 | + List<OtaPackageInfo> loadedFirmwares = new ArrayList<>(); |
240 | PageLink pageLink = new PageLink(24); | 239 | PageLink pageLink = new PageLink(24); |
241 | - PageData<FirmwareInfo> pageData; | 240 | + PageData<OtaPackageInfo> pageData; |
242 | do { | 241 | do { |
243 | - pageData = doGetTypedWithPageLink("/api/firmwares?", | 242 | + pageData = doGetTypedWithPageLink("/api/otaPackages?", |
244 | new TypeReference<>() { | 243 | new TypeReference<>() { |
245 | }, pageLink); | 244 | }, pageLink); |
246 | loadedFirmwares.addAll(pageData.getData()); | 245 | loadedFirmwares.addAll(pageData.getData()); |
@@ -249,41 +248,41 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -249,41 +248,41 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
249 | } | 248 | } |
250 | } while (pageData.hasNext()); | 249 | } while (pageData.hasNext()); |
251 | 250 | ||
252 | - Collections.sort(firmwares, idComparator); | 251 | + Collections.sort(otaPackages, idComparator); |
253 | Collections.sort(loadedFirmwares, idComparator); | 252 | Collections.sort(loadedFirmwares, idComparator); |
254 | 253 | ||
255 | - Assert.assertEquals(firmwares, loadedFirmwares); | 254 | + Assert.assertEquals(otaPackages, loadedFirmwares); |
256 | } | 255 | } |
257 | 256 | ||
258 | @Test | 257 | @Test |
259 | public void testFindTenantFirmwaresByHasData() throws Exception { | 258 | public void testFindTenantFirmwaresByHasData() throws Exception { |
260 | - List<FirmwareInfo> firmwaresWithData = new ArrayList<>(); | ||
261 | - List<FirmwareInfo> firmwaresWithoutData = new ArrayList<>(); | 259 | + List<OtaPackageInfo> otaPackagesWithData = new ArrayList<>(); |
260 | + List<OtaPackageInfo> otaPackagesWithoutData = new ArrayList<>(); | ||
262 | 261 | ||
263 | for (int i = 0; i < 165; i++) { | 262 | for (int i = 0; i < 165; i++) { |
264 | - FirmwareInfo firmwareInfo = new FirmwareInfo(); | 263 | + OtaPackageInfo firmwareInfo = new OtaPackageInfo(); |
265 | firmwareInfo.setDeviceProfileId(deviceProfileId); | 264 | firmwareInfo.setDeviceProfileId(deviceProfileId); |
266 | firmwareInfo.setType(FIRMWARE); | 265 | firmwareInfo.setType(FIRMWARE); |
267 | firmwareInfo.setTitle(TITLE); | 266 | firmwareInfo.setTitle(TITLE); |
268 | firmwareInfo.setVersion(VERSION + i); | 267 | firmwareInfo.setVersion(VERSION + i); |
269 | 268 | ||
270 | - FirmwareInfo savedFirmwareInfo = save(firmwareInfo); | 269 | + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo); |
271 | 270 | ||
272 | if (i > 100) { | 271 | if (i > 100) { |
273 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); | 272 | MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); |
274 | 273 | ||
275 | - Firmware savedFirmware = savaData("/api/firmware/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); | ||
276 | - firmwaresWithData.add(new FirmwareInfo(savedFirmware)); | 274 | + OtaPackage savedFirmware = savaData("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString() + "?checksum={checksum}&checksumAlgorithm={checksumAlgorithm}", testData, CHECKSUM, CHECKSUM_ALGORITHM); |
275 | + otaPackagesWithData.add(new OtaPackageInfo(savedFirmware)); | ||
277 | } else { | 276 | } else { |
278 | - firmwaresWithoutData.add(savedFirmwareInfo); | 277 | + otaPackagesWithoutData.add(savedFirmwareInfo); |
279 | } | 278 | } |
280 | } | 279 | } |
281 | 280 | ||
282 | - List<FirmwareInfo> loadedFirmwaresWithData = new ArrayList<>(); | 281 | + List<OtaPackageInfo> loadedFirmwaresWithData = new ArrayList<>(); |
283 | PageLink pageLink = new PageLink(24); | 282 | PageLink pageLink = new PageLink(24); |
284 | - PageData<FirmwareInfo> pageData; | 283 | + PageData<OtaPackageInfo> pageData; |
285 | do { | 284 | do { |
286 | - pageData = doGetTypedWithPageLink("/api/firmwares/" + deviceProfileId.toString() + "/FIRMWARE/true?", | 285 | + pageData = doGetTypedWithPageLink("/api/otaPackages/" + deviceProfileId.toString() + "/FIRMWARE/true?", |
287 | new TypeReference<>() { | 286 | new TypeReference<>() { |
288 | }, pageLink); | 287 | }, pageLink); |
289 | loadedFirmwaresWithData.addAll(pageData.getData()); | 288 | loadedFirmwaresWithData.addAll(pageData.getData()); |
@@ -292,10 +291,10 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -292,10 +291,10 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
292 | } | 291 | } |
293 | } while (pageData.hasNext()); | 292 | } while (pageData.hasNext()); |
294 | 293 | ||
295 | - List<FirmwareInfo> loadedFirmwaresWithoutData = new ArrayList<>(); | 294 | + List<OtaPackageInfo> loadedFirmwaresWithoutData = new ArrayList<>(); |
296 | pageLink = new PageLink(24); | 295 | pageLink = new PageLink(24); |
297 | do { | 296 | do { |
298 | - pageData = doGetTypedWithPageLink("/api/firmwares/" + deviceProfileId.toString() + "/FIRMWARE/false?", | 297 | + pageData = doGetTypedWithPageLink("/api/otaPackages/" + deviceProfileId.toString() + "/FIRMWARE/false?", |
299 | new TypeReference<>() { | 298 | new TypeReference<>() { |
300 | }, pageLink); | 299 | }, pageLink); |
301 | loadedFirmwaresWithoutData.addAll(pageData.getData()); | 300 | loadedFirmwaresWithoutData.addAll(pageData.getData()); |
@@ -304,25 +303,25 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | @@ -304,25 +303,25 @@ public abstract class BaseFirmwareControllerTest extends AbstractControllerTest | ||
304 | } | 303 | } |
305 | } while (pageData.hasNext()); | 304 | } while (pageData.hasNext()); |
306 | 305 | ||
307 | - Collections.sort(firmwaresWithData, idComparator); | ||
308 | - Collections.sort(firmwaresWithoutData, idComparator); | 306 | + Collections.sort(otaPackagesWithData, idComparator); |
307 | + Collections.sort(otaPackagesWithoutData, idComparator); | ||
309 | Collections.sort(loadedFirmwaresWithData, idComparator); | 308 | Collections.sort(loadedFirmwaresWithData, idComparator); |
310 | Collections.sort(loadedFirmwaresWithoutData, idComparator); | 309 | Collections.sort(loadedFirmwaresWithoutData, idComparator); |
311 | 310 | ||
312 | - Assert.assertEquals(firmwaresWithData, loadedFirmwaresWithData); | ||
313 | - Assert.assertEquals(firmwaresWithoutData, loadedFirmwaresWithoutData); | 311 | + Assert.assertEquals(otaPackagesWithData, loadedFirmwaresWithData); |
312 | + Assert.assertEquals(otaPackagesWithoutData, loadedFirmwaresWithoutData); | ||
314 | } | 313 | } |
315 | 314 | ||
316 | 315 | ||
317 | - private FirmwareInfo save(FirmwareInfo firmwareInfo) throws Exception { | ||
318 | - return doPost("/api/firmware", firmwareInfo, FirmwareInfo.class); | 316 | + private OtaPackageInfo save(OtaPackageInfo firmwareInfo) throws Exception { |
317 | + return doPost("/api/otaPackage", firmwareInfo, OtaPackageInfo.class); | ||
319 | } | 318 | } |
320 | 319 | ||
321 | - protected Firmware savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception { | 320 | + protected OtaPackage savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception { |
322 | MockMultipartHttpServletRequestBuilder postRequest = MockMvcRequestBuilders.multipart(urlTemplate, params); | 321 | MockMultipartHttpServletRequestBuilder postRequest = MockMvcRequestBuilders.multipart(urlTemplate, params); |
323 | postRequest.file(content); | 322 | postRequest.file(content); |
324 | setJwtToken(postRequest); | 323 | setJwtToken(postRequest); |
325 | - return readResponse(mockMvc.perform(postRequest).andExpect(status().isOk()), Firmware.class); | 324 | + return readResponse(mockMvc.perform(postRequest).andExpect(status().isOk()), OtaPackage.class); |
326 | } | 325 | } |
327 | 326 | ||
328 | } | 327 | } |
application/src/test/java/org/thingsboard/server/controller/sql/OtaPackageControllerSqlTest.java
renamed from
application/src/test/java/org/thingsboard/server/controller/sql/FirmwareControllerSqlTest.java
@@ -15,9 +15,9 @@ | @@ -15,9 +15,9 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.controller.sql; | 16 | package org.thingsboard.server.controller.sql; |
17 | 17 | ||
18 | -import org.thingsboard.server.controller.BaseFirmwareControllerTest; | 18 | +import org.thingsboard.server.controller.BaseOtaPackageControllerTest; |
19 | import org.thingsboard.server.dao.service.DaoSqlTest; | 19 | import org.thingsboard.server.dao.service.DaoSqlTest; |
20 | 20 | ||
21 | @DaoSqlTest | 21 | @DaoSqlTest |
22 | -public class FirmwareControllerSqlTest extends BaseFirmwareControllerTest { | 22 | +public class OtaPackageControllerSqlTest extends BaseOtaPackageControllerTest { |
23 | } | 23 | } |
common/cache/src/main/java/org/thingsboard/server/cache/ota/CaffeineOtaPackageCache.java
renamed from
common/cache/src/main/java/org/thingsboard/server/cache/firmware/CaffeineFirmwareCache.java
@@ -13,19 +13,19 @@ | @@ -13,19 +13,19 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.cache.firmware; | 16 | +package org.thingsboard.server.cache.ota; |
17 | 17 | ||
18 | import lombok.RequiredArgsConstructor; | 18 | import lombok.RequiredArgsConstructor; |
19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
20 | import org.springframework.cache.CacheManager; | 20 | import org.springframework.cache.CacheManager; |
21 | import org.springframework.stereotype.Service; | 21 | import org.springframework.stereotype.Service; |
22 | 22 | ||
23 | -import static org.thingsboard.server.common.data.CacheConstants.FIRMWARE_CACHE; | 23 | +import static org.thingsboard.server.common.data.CacheConstants.OTA_PACKAGE_CACHE; |
24 | 24 | ||
25 | @Service | 25 | @Service |
26 | @ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "caffeine", matchIfMissing = true) | 26 | @ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "caffeine", matchIfMissing = true) |
27 | @RequiredArgsConstructor | 27 | @RequiredArgsConstructor |
28 | -public class CaffeineFirmwareCache implements FirmwareDataCache { | 28 | +public class CaffeineOtaPackageCache implements OtaPackageDataCache { |
29 | 29 | ||
30 | private final CacheManager cacheManager; | 30 | private final CacheManager cacheManager; |
31 | 31 | ||
@@ -36,7 +36,7 @@ public class CaffeineFirmwareCache implements FirmwareDataCache { | @@ -36,7 +36,7 @@ public class CaffeineFirmwareCache implements FirmwareDataCache { | ||
36 | 36 | ||
37 | @Override | 37 | @Override |
38 | public byte[] get(String key, int chunkSize, int chunk) { | 38 | public byte[] get(String key, int chunkSize, int chunk) { |
39 | - byte[] data = cacheManager.getCache(FIRMWARE_CACHE).get(key, byte[].class); | 39 | + byte[] data = cacheManager.getCache(OTA_PACKAGE_CACHE).get(key, byte[].class); |
40 | 40 | ||
41 | if (chunkSize < 1) { | 41 | if (chunkSize < 1) { |
42 | return data; | 42 | return data; |
@@ -58,11 +58,11 @@ public class CaffeineFirmwareCache implements FirmwareDataCache { | @@ -58,11 +58,11 @@ public class CaffeineFirmwareCache implements FirmwareDataCache { | ||
58 | 58 | ||
59 | @Override | 59 | @Override |
60 | public void put(String key, byte[] value) { | 60 | public void put(String key, byte[] value) { |
61 | - cacheManager.getCache(FIRMWARE_CACHE).putIfAbsent(key, value); | 61 | + cacheManager.getCache(OTA_PACKAGE_CACHE).putIfAbsent(key, value); |
62 | } | 62 | } |
63 | 63 | ||
64 | @Override | 64 | @Override |
65 | public void evict(String key) { | 65 | public void evict(String key) { |
66 | - cacheManager.getCache(FIRMWARE_CACHE).evict(key); | 66 | + cacheManager.getCache(OTA_PACKAGE_CACHE).evict(key); |
67 | } | 67 | } |
68 | } | 68 | } |
common/cache/src/main/java/org/thingsboard/server/cache/ota/OtaPackageDataCache.java
renamed from
common/cache/src/main/java/org/thingsboard/server/cache/firmware/FirmwareDataCache.java
@@ -13,9 +13,9 @@ | @@ -13,9 +13,9 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.cache.firmware; | 16 | +package org.thingsboard.server.cache.ota; |
17 | 17 | ||
18 | -public interface FirmwareDataCache { | 18 | +public interface OtaPackageDataCache { |
19 | 19 | ||
20 | byte[] get(String key); | 20 | byte[] get(String key); |
21 | 21 | ||
@@ -25,8 +25,8 @@ public interface FirmwareDataCache { | @@ -25,8 +25,8 @@ public interface FirmwareDataCache { | ||
25 | 25 | ||
26 | void evict(String key); | 26 | void evict(String key); |
27 | 27 | ||
28 | - default boolean has(String firmwareId) { | ||
29 | - byte[] data = get(firmwareId, 1, 0); | 28 | + default boolean has(String otaPackageId) { |
29 | + byte[] data = get(otaPackageId, 1, 0); | ||
30 | return data != null && data.length > 0; | 30 | return data != null && data.length > 0; |
31 | } | 31 | } |
32 | } | 32 | } |
common/cache/src/main/java/org/thingsboard/server/cache/ota/RedisOtaPackageDataCache.java
renamed from
common/cache/src/main/java/org/thingsboard/server/cache/firmware/RedisFirmwareDataCache.java
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.cache.firmware; | 16 | +package org.thingsboard.server.cache.ota; |
17 | 17 | ||
18 | import lombok.RequiredArgsConstructor; | 18 | import lombok.RequiredArgsConstructor; |
19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
@@ -21,12 +21,12 @@ import org.springframework.data.redis.connection.RedisConnection; | @@ -21,12 +21,12 @@ import org.springframework.data.redis.connection.RedisConnection; | ||
21 | import org.springframework.data.redis.connection.RedisConnectionFactory; | 21 | import org.springframework.data.redis.connection.RedisConnectionFactory; |
22 | import org.springframework.stereotype.Service; | 22 | import org.springframework.stereotype.Service; |
23 | 23 | ||
24 | -import static org.thingsboard.server.common.data.CacheConstants.FIRMWARE_CACHE; | 24 | +import static org.thingsboard.server.common.data.CacheConstants.OTA_PACKAGE_CACHE; |
25 | 25 | ||
26 | @Service | 26 | @Service |
27 | @ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "redis") | 27 | @ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "redis") |
28 | @RequiredArgsConstructor | 28 | @RequiredArgsConstructor |
29 | -public class RedisFirmwareDataCache implements FirmwareDataCache { | 29 | +public class RedisOtaPackageDataCache implements OtaPackageDataCache { |
30 | 30 | ||
31 | private final RedisConnectionFactory redisConnectionFactory; | 31 | private final RedisConnectionFactory redisConnectionFactory; |
32 | 32 | ||
@@ -39,30 +39,30 @@ public class RedisFirmwareDataCache implements FirmwareDataCache { | @@ -39,30 +39,30 @@ public class RedisFirmwareDataCache implements FirmwareDataCache { | ||
39 | public byte[] get(String key, int chunkSize, int chunk) { | 39 | public byte[] get(String key, int chunkSize, int chunk) { |
40 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { | 40 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { |
41 | if (chunkSize == 0) { | 41 | if (chunkSize == 0) { |
42 | - return connection.get(toFirmwareCacheKey(key)); | 42 | + return connection.get(toOtaPackageCacheKey(key)); |
43 | } | 43 | } |
44 | 44 | ||
45 | int startIndex = chunkSize * chunk; | 45 | int startIndex = chunkSize * chunk; |
46 | int endIndex = startIndex + chunkSize - 1; | 46 | int endIndex = startIndex + chunkSize - 1; |
47 | - return connection.getRange(toFirmwareCacheKey(key), startIndex, endIndex); | 47 | + return connection.getRange(toOtaPackageCacheKey(key), startIndex, endIndex); |
48 | } | 48 | } |
49 | } | 49 | } |
50 | 50 | ||
51 | @Override | 51 | @Override |
52 | public void put(String key, byte[] value) { | 52 | public void put(String key, byte[] value) { |
53 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { | 53 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { |
54 | - connection.set(toFirmwareCacheKey(key), value); | 54 | + connection.set(toOtaPackageCacheKey(key), value); |
55 | } | 55 | } |
56 | } | 56 | } |
57 | 57 | ||
58 | @Override | 58 | @Override |
59 | public void evict(String key) { | 59 | public void evict(String key) { |
60 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { | 60 | try (RedisConnection connection = redisConnectionFactory.getConnection()) { |
61 | - connection.del(toFirmwareCacheKey(key)); | 61 | + connection.del(toOtaPackageCacheKey(key)); |
62 | } | 62 | } |
63 | } | 63 | } |
64 | 64 | ||
65 | - private byte[] toFirmwareCacheKey(String key) { | ||
66 | - return String.format("%s::%s", FIRMWARE_CACHE, key).getBytes(); | 65 | + private byte[] toOtaPackageCacheKey(String key) { |
66 | + return String.format("%s::%s", OTA_PACKAGE_CACHE, key).getBytes(); | ||
67 | } | 67 | } |
68 | } | 68 | } |
@@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | @@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | ||
27 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 27 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
28 | import org.thingsboard.server.common.data.id.EdgeId; | 28 | import org.thingsboard.server.common.data.id.EdgeId; |
29 | import org.thingsboard.server.common.data.id.TenantId; | 29 | import org.thingsboard.server.common.data.id.TenantId; |
30 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
30 | import org.thingsboard.server.common.data.page.PageData; | 31 | import org.thingsboard.server.common.data.page.PageData; |
31 | import org.thingsboard.server.common.data.page.PageLink; | 32 | import org.thingsboard.server.common.data.page.PageLink; |
32 | import org.thingsboard.server.common.data.security.DeviceCredentials; | 33 | import org.thingsboard.server.common.data.security.DeviceCredentials; |
@@ -63,9 +64,9 @@ public interface DeviceService { | @@ -63,9 +64,9 @@ public interface DeviceService { | ||
63 | 64 | ||
64 | PageData<Device> findDevicesByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink); | 65 | PageData<Device> findDevicesByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink); |
65 | 66 | ||
66 | - PageData<Device> findDevicesByTenantIdAndTypeAndEmptyFirmware(TenantId tenantId, String type, PageLink pageLink); | 67 | + PageData<Device> findDevicesByTenantIdAndTypeAndEmptyOtaPackage(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType type, PageLink pageLink); |
67 | 68 | ||
68 | - PageData<Device> findDevicesByTenantIdAndTypeAndEmptySoftware(TenantId tenantId, String type, PageLink pageLink); | 69 | + Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType); |
69 | 70 | ||
70 | PageData<DeviceInfo> findDeviceInfosByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink); | 71 | PageData<DeviceInfo> findDeviceInfosByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink); |
71 | 72 |
common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java
renamed from
common/dao-api/src/main/java/org/thingsboard/server/dao/firmware/FirmwareService.java
@@ -13,40 +13,40 @@ | @@ -13,40 +13,40 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.firmware; | 16 | +package org.thingsboard.server.dao.ota; |
17 | 17 | ||
18 | import com.google.common.util.concurrent.ListenableFuture; | 18 | import com.google.common.util.concurrent.ListenableFuture; |
19 | -import org.thingsboard.server.common.data.Firmware; | ||
20 | -import org.thingsboard.server.common.data.FirmwareInfo; | ||
21 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
22 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 19 | +import org.thingsboard.server.common.data.OtaPackage; |
20 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
21 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; | ||
22 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
23 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 23 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
24 | -import org.thingsboard.server.common.data.id.FirmwareId; | 24 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
25 | import org.thingsboard.server.common.data.id.TenantId; | 25 | import org.thingsboard.server.common.data.id.TenantId; |
26 | import org.thingsboard.server.common.data.page.PageData; | 26 | import org.thingsboard.server.common.data.page.PageData; |
27 | import org.thingsboard.server.common.data.page.PageLink; | 27 | import org.thingsboard.server.common.data.page.PageLink; |
28 | 28 | ||
29 | import java.nio.ByteBuffer; | 29 | import java.nio.ByteBuffer; |
30 | 30 | ||
31 | -public interface FirmwareService { | 31 | +public interface OtaPackageService { |
32 | 32 | ||
33 | - FirmwareInfo saveFirmwareInfo(FirmwareInfo firmwareInfo); | 33 | + OtaPackageInfo saveOtaPackageInfo(OtaPackageInfo otaPackageInfo); |
34 | 34 | ||
35 | - Firmware saveFirmware(Firmware firmware); | 35 | + OtaPackage saveOtaPackage(OtaPackage otaPackage); |
36 | 36 | ||
37 | String generateChecksum(ChecksumAlgorithm checksumAlgorithm, ByteBuffer data); | 37 | String generateChecksum(ChecksumAlgorithm checksumAlgorithm, ByteBuffer data); |
38 | 38 | ||
39 | - Firmware findFirmwareById(TenantId tenantId, FirmwareId firmwareId); | 39 | + OtaPackage findOtaPackageById(TenantId tenantId, OtaPackageId otaPackageId); |
40 | 40 | ||
41 | - FirmwareInfo findFirmwareInfoById(TenantId tenantId, FirmwareId firmwareId); | 41 | + OtaPackageInfo findOtaPackageInfoById(TenantId tenantId, OtaPackageId otaPackageId); |
42 | 42 | ||
43 | - ListenableFuture<FirmwareInfo> findFirmwareInfoByIdAsync(TenantId tenantId, FirmwareId firmwareId); | 43 | + ListenableFuture<OtaPackageInfo> findOtaPackageInfoByIdAsync(TenantId tenantId, OtaPackageId otaPackageId); |
44 | 44 | ||
45 | - PageData<FirmwareInfo> findTenantFirmwaresByTenantId(TenantId tenantId, PageLink pageLink); | 45 | + PageData<OtaPackageInfo> findTenantOtaPackagesByTenantId(TenantId tenantId, PageLink pageLink); |
46 | 46 | ||
47 | - PageData<FirmwareInfo> findTenantFirmwaresByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, FirmwareType firmwareType, boolean hasData, PageLink pageLink); | 47 | + PageData<OtaPackageInfo> findTenantOtaPackagesByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType, boolean hasData, PageLink pageLink); |
48 | 48 | ||
49 | - void deleteFirmware(TenantId tenantId, FirmwareId firmwareId); | 49 | + void deleteOtaPackage(TenantId tenantId, OtaPackageId otaPackageId); |
50 | 50 | ||
51 | - void deleteFirmwaresByTenantId(TenantId tenantId); | 51 | + void deleteOtaPackagesByTenantId(TenantId tenantId); |
52 | } | 52 | } |
@@ -29,5 +29,5 @@ public class CacheConstants { | @@ -29,5 +29,5 @@ public class CacheConstants { | ||
29 | public static final String DEVICE_PROFILE_CACHE = "deviceProfiles"; | 29 | public static final String DEVICE_PROFILE_CACHE = "deviceProfiles"; |
30 | public static final String ATTRIBUTES_CACHE = "attributes"; | 30 | public static final String ATTRIBUTES_CACHE = "attributes"; |
31 | public static final String TOKEN_OUTDATAGE_TIME_CACHE = "tokensOutdatageTime"; | 31 | public static final String TOKEN_OUTDATAGE_TIME_CACHE = "tokensOutdatageTime"; |
32 | - public static final String FIRMWARE_CACHE = "firmwares"; | 32 | + public static final String OTA_PACKAGE_CACHE = "otaPackages"; |
33 | } | 33 | } |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.data.device.data.DeviceData; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.data.device.data.DeviceData; | ||
23 | import org.thingsboard.server.common.data.id.CustomerId; | 23 | import org.thingsboard.server.common.data.id.CustomerId; |
24 | import org.thingsboard.server.common.data.id.DeviceId; | 24 | import org.thingsboard.server.common.data.id.DeviceId; |
25 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 25 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
26 | -import org.thingsboard.server.common.data.id.FirmwareId; | 26 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
27 | import org.thingsboard.server.common.data.id.TenantId; | 27 | import org.thingsboard.server.common.data.id.TenantId; |
28 | import org.thingsboard.server.common.data.validation.NoXss; | 28 | import org.thingsboard.server.common.data.validation.NoXss; |
29 | 29 | ||
@@ -32,7 +32,7 @@ import java.io.IOException; | @@ -32,7 +32,7 @@ import java.io.IOException; | ||
32 | 32 | ||
33 | @EqualsAndHashCode(callSuper = true) | 33 | @EqualsAndHashCode(callSuper = true) |
34 | @Slf4j | 34 | @Slf4j |
35 | -public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implements HasName, HasTenantId, HasCustomerId, HasFirmware { | 35 | +public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implements HasName, HasTenantId, HasCustomerId, HasOtaPackage { |
36 | 36 | ||
37 | private static final long serialVersionUID = 2807343040519543363L; | 37 | private static final long serialVersionUID = 2807343040519543363L; |
38 | 38 | ||
@@ -49,8 +49,8 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen | @@ -49,8 +49,8 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen | ||
49 | @JsonIgnore | 49 | @JsonIgnore |
50 | private byte[] deviceDataBytes; | 50 | private byte[] deviceDataBytes; |
51 | 51 | ||
52 | - private FirmwareId firmwareId; | ||
53 | - private FirmwareId softwareId; | 52 | + private OtaPackageId firmwareId; |
53 | + private OtaPackageId softwareId; | ||
54 | 54 | ||
55 | public Device() { | 55 | public Device() { |
56 | super(); | 56 | super(); |
@@ -167,19 +167,19 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen | @@ -167,19 +167,19 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen | ||
167 | return getName(); | 167 | return getName(); |
168 | } | 168 | } |
169 | 169 | ||
170 | - public FirmwareId getFirmwareId() { | 170 | + public OtaPackageId getFirmwareId() { |
171 | return firmwareId; | 171 | return firmwareId; |
172 | } | 172 | } |
173 | 173 | ||
174 | - public void setFirmwareId(FirmwareId firmwareId) { | 174 | + public void setFirmwareId(OtaPackageId firmwareId) { |
175 | this.firmwareId = firmwareId; | 175 | this.firmwareId = firmwareId; |
176 | } | 176 | } |
177 | 177 | ||
178 | - public FirmwareId getSoftwareId() { | 178 | + public OtaPackageId getSoftwareId() { |
179 | return softwareId; | 179 | return softwareId; |
180 | } | 180 | } |
181 | 181 | ||
182 | - public void setSoftwareId(FirmwareId softwareId) { | 182 | + public void setSoftwareId(OtaPackageId softwareId) { |
183 | this.softwareId = softwareId; | 183 | this.softwareId = softwareId; |
184 | } | 184 | } |
185 | 185 |
@@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j; | ||
23 | import org.thingsboard.server.common.data.device.profile.DeviceProfileData; | 23 | import org.thingsboard.server.common.data.device.profile.DeviceProfileData; |
24 | import org.thingsboard.server.common.data.id.DashboardId; | 24 | import org.thingsboard.server.common.data.id.DashboardId; |
25 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 25 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
26 | -import org.thingsboard.server.common.data.id.FirmwareId; | 26 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
27 | import org.thingsboard.server.common.data.id.RuleChainId; | 27 | import org.thingsboard.server.common.data.id.RuleChainId; |
28 | import org.thingsboard.server.common.data.id.TenantId; | 28 | import org.thingsboard.server.common.data.id.TenantId; |
29 | import org.thingsboard.server.common.data.validation.NoXss; | 29 | import org.thingsboard.server.common.data.validation.NoXss; |
@@ -37,7 +37,7 @@ import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalIn | @@ -37,7 +37,7 @@ import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalIn | ||
37 | @Data | 37 | @Data |
38 | @EqualsAndHashCode(callSuper = true) | 38 | @EqualsAndHashCode(callSuper = true) |
39 | @Slf4j | 39 | @Slf4j |
40 | -public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements HasName, HasTenantId, HasFirmware { | 40 | +public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements HasName, HasTenantId, HasOtaPackage { |
41 | 41 | ||
42 | private TenantId tenantId; | 42 | private TenantId tenantId; |
43 | @NoXss | 43 | @NoXss |
@@ -60,9 +60,9 @@ public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements H | @@ -60,9 +60,9 @@ public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements H | ||
60 | @NoXss | 60 | @NoXss |
61 | private String provisionDeviceKey; | 61 | private String provisionDeviceKey; |
62 | 62 | ||
63 | - private FirmwareId firmwareId; | 63 | + private OtaPackageId firmwareId; |
64 | 64 | ||
65 | - private FirmwareId softwareId; | 65 | + private OtaPackageId softwareId; |
66 | 66 | ||
67 | public DeviceProfile() { | 67 | public DeviceProfile() { |
68 | super(); | 68 | super(); |
@@ -19,5 +19,5 @@ package org.thingsboard.server.common.data; | @@ -19,5 +19,5 @@ package org.thingsboard.server.common.data; | ||
19 | * @author Andrew Shvayka | 19 | * @author Andrew Shvayka |
20 | */ | 20 | */ |
21 | public enum EntityType { | 21 | public enum EntityType { |
22 | - TENANT, CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, ALARM, RULE_CHAIN, RULE_NODE, ENTITY_VIEW, WIDGETS_BUNDLE, WIDGET_TYPE, TENANT_PROFILE, DEVICE_PROFILE, API_USAGE_STATE, TB_RESOURCE, FIRMWARE, EDGE; | 22 | + TENANT, CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, ALARM, RULE_CHAIN, RULE_NODE, ENTITY_VIEW, WIDGETS_BUNDLE, WIDGET_TYPE, TENANT_PROFILE, DEVICE_PROFILE, API_USAGE_STATE, TB_RESOURCE, OTA_PACKAGE, EDGE; |
23 | } | 23 | } |
common/data/src/main/java/org/thingsboard/server/common/data/HasOtaPackage.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/HasFirmware.java
@@ -15,11 +15,11 @@ | @@ -15,11 +15,11 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.common.data; | 16 | package org.thingsboard.server.common.data; |
17 | 17 | ||
18 | -import org.thingsboard.server.common.data.id.FirmwareId; | 18 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
19 | 19 | ||
20 | -public interface HasFirmware { | 20 | +public interface HasOtaPackage { |
21 | 21 | ||
22 | - FirmwareId getFirmwareId(); | 22 | + OtaPackageId getFirmwareId(); |
23 | 23 | ||
24 | - FirmwareId getSoftwareId(); | 24 | + OtaPackageId getSoftwareId(); |
25 | } | 25 | } |
common/data/src/main/java/org/thingsboard/server/common/data/OtaPackage.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/Firmware.java
@@ -17,27 +17,27 @@ package org.thingsboard.server.common.data; | @@ -17,27 +17,27 @@ package org.thingsboard.server.common.data; | ||
17 | 17 | ||
18 | import lombok.Data; | 18 | import lombok.Data; |
19 | import lombok.EqualsAndHashCode; | 19 | import lombok.EqualsAndHashCode; |
20 | -import org.thingsboard.server.common.data.id.FirmwareId; | 20 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
21 | 21 | ||
22 | import java.nio.ByteBuffer; | 22 | import java.nio.ByteBuffer; |
23 | 23 | ||
24 | @Data | 24 | @Data |
25 | @EqualsAndHashCode(callSuper = true) | 25 | @EqualsAndHashCode(callSuper = true) |
26 | -public class Firmware extends FirmwareInfo { | 26 | +public class OtaPackage extends OtaPackageInfo { |
27 | 27 | ||
28 | private static final long serialVersionUID = 3091601761339422546L; | 28 | private static final long serialVersionUID = 3091601761339422546L; |
29 | 29 | ||
30 | private transient ByteBuffer data; | 30 | private transient ByteBuffer data; |
31 | 31 | ||
32 | - public Firmware() { | 32 | + public OtaPackage() { |
33 | super(); | 33 | super(); |
34 | } | 34 | } |
35 | 35 | ||
36 | - public Firmware(FirmwareId id) { | 36 | + public OtaPackage(OtaPackageId id) { |
37 | super(id); | 37 | super(id); |
38 | } | 38 | } |
39 | 39 | ||
40 | - public Firmware(Firmware firmware) { | 40 | + public OtaPackage(OtaPackage firmware) { |
41 | super(firmware); | 41 | super(firmware); |
42 | this.data = firmware.getData(); | 42 | this.data = firmware.getData(); |
43 | } | 43 | } |
common/data/src/main/java/org/thingsboard/server/common/data/OtaPackageInfo.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/FirmwareInfo.java
@@ -19,22 +19,22 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | @@ -19,22 +19,22 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | ||
19 | import lombok.Data; | 19 | import lombok.Data; |
20 | import lombok.EqualsAndHashCode; | 20 | import lombok.EqualsAndHashCode; |
21 | import lombok.extern.slf4j.Slf4j; | 21 | import lombok.extern.slf4j.Slf4j; |
22 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
23 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 22 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; |
23 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
24 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 24 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
25 | -import org.thingsboard.server.common.data.id.FirmwareId; | 25 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
26 | import org.thingsboard.server.common.data.id.TenantId; | 26 | import org.thingsboard.server.common.data.id.TenantId; |
27 | 27 | ||
28 | @Slf4j | 28 | @Slf4j |
29 | @Data | 29 | @Data |
30 | @EqualsAndHashCode(callSuper = true) | 30 | @EqualsAndHashCode(callSuper = true) |
31 | -public class FirmwareInfo extends SearchTextBasedWithAdditionalInfo<FirmwareId> implements HasName, HasTenantId { | 31 | +public class OtaPackageInfo extends SearchTextBasedWithAdditionalInfo<OtaPackageId> implements HasName, HasTenantId { |
32 | 32 | ||
33 | private static final long serialVersionUID = 3168391583570815419L; | 33 | private static final long serialVersionUID = 3168391583570815419L; |
34 | 34 | ||
35 | private TenantId tenantId; | 35 | private TenantId tenantId; |
36 | private DeviceProfileId deviceProfileId; | 36 | private DeviceProfileId deviceProfileId; |
37 | - private FirmwareType type; | 37 | + private OtaPackageType type; |
38 | private String title; | 38 | private String title; |
39 | private String version; | 39 | private String version; |
40 | private boolean hasData; | 40 | private boolean hasData; |
@@ -45,27 +45,27 @@ public class FirmwareInfo extends SearchTextBasedWithAdditionalInfo<FirmwareId> | @@ -45,27 +45,27 @@ public class FirmwareInfo extends SearchTextBasedWithAdditionalInfo<FirmwareId> | ||
45 | private Long dataSize; | 45 | private Long dataSize; |
46 | 46 | ||
47 | 47 | ||
48 | - public FirmwareInfo() { | 48 | + public OtaPackageInfo() { |
49 | super(); | 49 | super(); |
50 | } | 50 | } |
51 | 51 | ||
52 | - public FirmwareInfo(FirmwareId id) { | 52 | + public OtaPackageInfo(OtaPackageId id) { |
53 | super(id); | 53 | super(id); |
54 | } | 54 | } |
55 | 55 | ||
56 | - public FirmwareInfo(FirmwareInfo firmwareInfo) { | ||
57 | - super(firmwareInfo); | ||
58 | - this.tenantId = firmwareInfo.getTenantId(); | ||
59 | - this.deviceProfileId = firmwareInfo.getDeviceProfileId(); | ||
60 | - this.type = firmwareInfo.getType(); | ||
61 | - this.title = firmwareInfo.getTitle(); | ||
62 | - this.version = firmwareInfo.getVersion(); | ||
63 | - this.hasData = firmwareInfo.isHasData(); | ||
64 | - this.fileName = firmwareInfo.getFileName(); | ||
65 | - this.contentType = firmwareInfo.getContentType(); | ||
66 | - this.checksumAlgorithm = firmwareInfo.getChecksumAlgorithm(); | ||
67 | - this.checksum = firmwareInfo.getChecksum(); | ||
68 | - this.dataSize = firmwareInfo.getDataSize(); | 56 | + public OtaPackageInfo(OtaPackageInfo otaPackageInfo) { |
57 | + super(otaPackageInfo); | ||
58 | + this.tenantId = otaPackageInfo.getTenantId(); | ||
59 | + this.deviceProfileId = otaPackageInfo.getDeviceProfileId(); | ||
60 | + this.type = otaPackageInfo.getType(); | ||
61 | + this.title = otaPackageInfo.getTitle(); | ||
62 | + this.version = otaPackageInfo.getVersion(); | ||
63 | + this.hasData = otaPackageInfo.isHasData(); | ||
64 | + this.fileName = otaPackageInfo.getFileName(); | ||
65 | + this.contentType = otaPackageInfo.getContentType(); | ||
66 | + this.checksumAlgorithm = otaPackageInfo.getChecksumAlgorithm(); | ||
67 | + this.checksum = otaPackageInfo.getChecksum(); | ||
68 | + this.dataSize = otaPackageInfo.getDataSize(); | ||
69 | } | 69 | } |
70 | 70 | ||
71 | @Override | 71 | @Override |
@@ -71,8 +71,8 @@ public class EntityIdFactory { | @@ -71,8 +71,8 @@ public class EntityIdFactory { | ||
71 | return new ApiUsageStateId(uuid); | 71 | return new ApiUsageStateId(uuid); |
72 | case TB_RESOURCE: | 72 | case TB_RESOURCE: |
73 | return new TbResourceId(uuid); | 73 | return new TbResourceId(uuid); |
74 | - case FIRMWARE: | ||
75 | - return new FirmwareId(uuid); | 74 | + case OTA_PACKAGE: |
75 | + return new OtaPackageId(uuid); | ||
76 | case EDGE: | 76 | case EDGE: |
77 | return new EdgeId(uuid); | 77 | return new EdgeId(uuid); |
78 | } | 78 | } |
common/data/src/main/java/org/thingsboard/server/common/data/id/OtaPackageId.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/id/FirmwareId.java
@@ -22,23 +22,23 @@ import org.thingsboard.server.common.data.EntityType; | @@ -22,23 +22,23 @@ import org.thingsboard.server.common.data.EntityType; | ||
22 | 22 | ||
23 | import java.util.UUID; | 23 | import java.util.UUID; |
24 | 24 | ||
25 | -public class FirmwareId extends UUIDBased implements EntityId { | 25 | +public class OtaPackageId extends UUIDBased implements EntityId { |
26 | 26 | ||
27 | private static final long serialVersionUID = 1L; | 27 | private static final long serialVersionUID = 1L; |
28 | 28 | ||
29 | @JsonCreator | 29 | @JsonCreator |
30 | - public FirmwareId(@JsonProperty("id") UUID id) { | 30 | + public OtaPackageId(@JsonProperty("id") UUID id) { |
31 | super(id); | 31 | super(id); |
32 | } | 32 | } |
33 | 33 | ||
34 | - public static FirmwareId fromString(String firmwareId) { | ||
35 | - return new FirmwareId(UUID.fromString(firmwareId)); | 34 | + public static OtaPackageId fromString(String firmwareId) { |
35 | + return new OtaPackageId(UUID.fromString(firmwareId)); | ||
36 | } | 36 | } |
37 | 37 | ||
38 | @JsonIgnore | 38 | @JsonIgnore |
39 | @Override | 39 | @Override |
40 | public EntityType getEntityType() { | 40 | public EntityType getEntityType() { |
41 | - return EntityType.FIRMWARE; | 41 | + return EntityType.OTA_PACKAGE; |
42 | } | 42 | } |
43 | 43 | ||
44 | } | 44 | } |
common/data/src/main/java/org/thingsboard/server/common/data/ota/ChecksumAlgorithm.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/firmware/ChecksumAlgorithm.java
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.common.data.firmware; | 16 | +package org.thingsboard.server.common.data.ota; |
17 | 17 | ||
18 | public enum ChecksumAlgorithm { | 18 | public enum ChecksumAlgorithm { |
19 | MD5, | 19 | MD5, |
common/data/src/main/java/org/thingsboard/server/common/data/ota/OtaPackageKey.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareKey.java
@@ -13,18 +13,18 @@ | @@ -13,18 +13,18 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.common.data.firmware; | 16 | +package org.thingsboard.server.common.data.ota; |
17 | 17 | ||
18 | import lombok.Getter; | 18 | import lombok.Getter; |
19 | 19 | ||
20 | -public enum FirmwareKey { | 20 | +public enum OtaPackageKey { |
21 | 21 | ||
22 | TITLE("title"), VERSION("version"), TS("ts"), STATE("state"), SIZE("size"), CHECKSUM("checksum"), CHECKSUM_ALGORITHM("checksum_algorithm"); | 22 | TITLE("title"), VERSION("version"), TS("ts"), STATE("state"), SIZE("size"), CHECKSUM("checksum"), CHECKSUM_ALGORITHM("checksum_algorithm"); |
23 | 23 | ||
24 | @Getter | 24 | @Getter |
25 | private final String value; | 25 | private final String value; |
26 | 26 | ||
27 | - FirmwareKey(String value) { | 27 | + OtaPackageKey(String value) { |
28 | this.value = value; | 28 | this.value = value; |
29 | } | 29 | } |
30 | } | 30 | } |
common/data/src/main/java/org/thingsboard/server/common/data/ota/OtaPackageType.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareType.java
@@ -13,18 +13,18 @@ | @@ -13,18 +13,18 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.common.data.firmware; | 16 | +package org.thingsboard.server.common.data.ota; |
17 | 17 | ||
18 | import lombok.Getter; | 18 | import lombok.Getter; |
19 | 19 | ||
20 | -public enum FirmwareType { | 20 | +public enum OtaPackageType { |
21 | 21 | ||
22 | FIRMWARE("fw"), SOFTWARE("sw"); | 22 | FIRMWARE("fw"), SOFTWARE("sw"); |
23 | 23 | ||
24 | @Getter | 24 | @Getter |
25 | private final String keyPrefix; | 25 | private final String keyPrefix; |
26 | 26 | ||
27 | - FirmwareType(String keyPrefix) { | 27 | + OtaPackageType(String keyPrefix) { |
28 | this.keyPrefix = keyPrefix; | 28 | this.keyPrefix = keyPrefix; |
29 | } | 29 | } |
30 | } | 30 | } |
common/data/src/main/java/org/thingsboard/server/common/data/ota/OtaPackageUpdateStatus.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareUpdateStatus.java
@@ -13,8 +13,8 @@ | @@ -13,8 +13,8 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.common.data.firmware; | 16 | +package org.thingsboard.server.common.data.ota; |
17 | 17 | ||
18 | -public enum FirmwareUpdateStatus { | 18 | +public enum OtaPackageUpdateStatus { |
19 | QUEUED, INITIATED, DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED | 19 | QUEUED, INITIATED, DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED |
20 | } | 20 | } |
common/data/src/main/java/org/thingsboard/server/common/data/ota/OtaPackageUtil.java
renamed from
common/data/src/main/java/org/thingsboard/server/common/data/firmware/FirmwareUtil.java
@@ -13,21 +13,19 @@ | @@ -13,21 +13,19 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.common.data.firmware; | 16 | +package org.thingsboard.server.common.data.ota; |
17 | 17 | ||
18 | import lombok.extern.slf4j.Slf4j; | 18 | import lombok.extern.slf4j.Slf4j; |
19 | -import org.thingsboard.server.common.data.HasFirmware; | ||
20 | -import org.thingsboard.server.common.data.id.FirmwareId; | 19 | +import org.thingsboard.server.common.data.HasOtaPackage; |
20 | +import org.thingsboard.server.common.data.id.OtaPackageId; | ||
21 | 21 | ||
22 | import java.util.ArrayList; | 22 | import java.util.ArrayList; |
23 | import java.util.Collections; | 23 | import java.util.Collections; |
24 | import java.util.List; | 24 | import java.util.List; |
25 | - | ||
26 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; | ||
27 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE; | 25 | +import java.util.function.Supplier; |
28 | 26 | ||
29 | @Slf4j | 27 | @Slf4j |
30 | -public class FirmwareUtil { | 28 | +public class OtaPackageUtil { |
31 | 29 | ||
32 | public static final List<String> ALL_FW_ATTRIBUTE_KEYS; | 30 | public static final List<String> ALL_FW_ATTRIBUTE_KEYS; |
33 | 31 | ||
@@ -35,19 +33,19 @@ public class FirmwareUtil { | @@ -35,19 +33,19 @@ public class FirmwareUtil { | ||
35 | 33 | ||
36 | static { | 34 | static { |
37 | ALL_FW_ATTRIBUTE_KEYS = new ArrayList<>(); | 35 | ALL_FW_ATTRIBUTE_KEYS = new ArrayList<>(); |
38 | - for (FirmwareKey key : FirmwareKey.values()) { | ||
39 | - ALL_FW_ATTRIBUTE_KEYS.add(getAttributeKey(FIRMWARE, key)); | 36 | + for (OtaPackageKey key : OtaPackageKey.values()) { |
37 | + ALL_FW_ATTRIBUTE_KEYS.add(getAttributeKey(OtaPackageType.FIRMWARE, key)); | ||
40 | 38 | ||
41 | } | 39 | } |
42 | 40 | ||
43 | ALL_SW_ATTRIBUTE_KEYS = new ArrayList<>(); | 41 | ALL_SW_ATTRIBUTE_KEYS = new ArrayList<>(); |
44 | - for (FirmwareKey key : FirmwareKey.values()) { | ||
45 | - ALL_SW_ATTRIBUTE_KEYS.add(getAttributeKey(SOFTWARE, key)); | 42 | + for (OtaPackageKey key : OtaPackageKey.values()) { |
43 | + ALL_SW_ATTRIBUTE_KEYS.add(getAttributeKey(OtaPackageType.SOFTWARE, key)); | ||
46 | 44 | ||
47 | } | 45 | } |
48 | } | 46 | } |
49 | 47 | ||
50 | - public static List<String> getAttributeKeys(FirmwareType firmwareType) { | 48 | + public static List<String> getAttributeKeys(OtaPackageType firmwareType) { |
51 | switch (firmwareType) { | 49 | switch (firmwareType) { |
52 | case FIRMWARE: | 50 | case FIRMWARE: |
53 | return ALL_FW_ATTRIBUTE_KEYS; | 51 | return ALL_FW_ATTRIBUTE_KEYS; |
@@ -57,35 +55,46 @@ public class FirmwareUtil { | @@ -57,35 +55,46 @@ public class FirmwareUtil { | ||
57 | return Collections.emptyList(); | 55 | return Collections.emptyList(); |
58 | } | 56 | } |
59 | 57 | ||
60 | - public static String getAttributeKey(FirmwareType type, FirmwareKey key) { | 58 | + public static String getAttributeKey(OtaPackageType type, OtaPackageKey key) { |
61 | return type.getKeyPrefix() + "_" + key.getValue(); | 59 | return type.getKeyPrefix() + "_" + key.getValue(); |
62 | } | 60 | } |
63 | 61 | ||
64 | - public static String getTargetTelemetryKey(FirmwareType type, FirmwareKey key) { | 62 | + public static String getTargetTelemetryKey(OtaPackageType type, OtaPackageKey key) { |
65 | return getTelemetryKey("target_", type, key); | 63 | return getTelemetryKey("target_", type, key); |
66 | } | 64 | } |
67 | 65 | ||
68 | - public static String getCurrentTelemetryKey(FirmwareType type, FirmwareKey key) { | 66 | + public static String getCurrentTelemetryKey(OtaPackageType type, OtaPackageKey key) { |
69 | return getTelemetryKey("current_", type, key); | 67 | return getTelemetryKey("current_", type, key); |
70 | } | 68 | } |
71 | 69 | ||
72 | - private static String getTelemetryKey(String prefix, FirmwareType type, FirmwareKey key) { | 70 | + private static String getTelemetryKey(String prefix, OtaPackageType type, OtaPackageKey key) { |
73 | return prefix + type.getKeyPrefix() + "_" + key.getValue(); | 71 | return prefix + type.getKeyPrefix() + "_" + key.getValue(); |
74 | } | 72 | } |
75 | 73 | ||
76 | - public static String getTelemetryKey(FirmwareType type, FirmwareKey key) { | 74 | + public static String getTelemetryKey(OtaPackageType type, OtaPackageKey key) { |
77 | return type.getKeyPrefix() + "_" + key.getValue(); | 75 | return type.getKeyPrefix() + "_" + key.getValue(); |
78 | } | 76 | } |
79 | 77 | ||
80 | - public static FirmwareId getFirmwareId(HasFirmware entity, FirmwareType firmwareType) { | ||
81 | - switch (firmwareType) { | 78 | + public static OtaPackageId getOtaPackageId(HasOtaPackage entity, OtaPackageType type) { |
79 | + switch (type) { | ||
82 | case FIRMWARE: | 80 | case FIRMWARE: |
83 | return entity.getFirmwareId(); | 81 | return entity.getFirmwareId(); |
84 | case SOFTWARE: | 82 | case SOFTWARE: |
85 | return entity.getSoftwareId(); | 83 | return entity.getSoftwareId(); |
86 | default: | 84 | default: |
87 | - log.warn("Unsupported firmware type: [{}]", firmwareType); | 85 | + log.warn("Unsupported ota package type: [{}]", type); |
88 | return null; | 86 | return null; |
89 | } | 87 | } |
90 | } | 88 | } |
89 | + | ||
90 | + public static <T> T getByOtaPackageType(Supplier<T> firmwareSupplier, Supplier<T> softwareSupplier, OtaPackageType type) { | ||
91 | + switch (type) { | ||
92 | + case FIRMWARE: | ||
93 | + return firmwareSupplier.get(); | ||
94 | + case SOFTWARE: | ||
95 | + return softwareSupplier.get(); | ||
96 | + default: | ||
97 | + throw new RuntimeException("Unsupported OtaPackage type: " + type); | ||
98 | + } | ||
99 | + } | ||
91 | } | 100 | } |
@@ -38,7 +38,7 @@ public class TbKafkaTopicConfigs { | @@ -38,7 +38,7 @@ public class TbKafkaTopicConfigs { | ||
38 | private String notificationsProperties; | 38 | private String notificationsProperties; |
39 | @Value("${queue.kafka.topic-properties.js-executor}") | 39 | @Value("${queue.kafka.topic-properties.js-executor}") |
40 | private String jsExecutorProperties; | 40 | private String jsExecutorProperties; |
41 | - @Value("${queue.kafka.topic-properties.fw-updates:}") | 41 | + @Value("${queue.kafka.topic-properties.ota-updates:}") |
42 | private String fwUpdatesProperties; | 42 | private String fwUpdatesProperties; |
43 | 43 | ||
44 | @Getter | 44 | @Getter |
@@ -187,14 +187,14 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng | @@ -187,14 +187,14 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng | ||
187 | } | 187 | } |
188 | 188 | ||
189 | @Override | 189 | @Override |
190 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
191 | - return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, coreSettings.getFirmwareTopic(), | ||
192 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 190 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
191 | + return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, coreSettings.getOtaPackageTopic(), | ||
192 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
193 | } | 193 | } |
194 | 194 | ||
195 | @Override | 195 | @Override |
196 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
197 | - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getFirmwareTopic()); | 196 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
197 | + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic()); | ||
198 | } | 198 | } |
199 | 199 | ||
200 | @PreDestroy | 200 | @PreDestroy |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -177,14 +177,14 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { | @@ -177,14 +177,14 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory { | ||
177 | } | 177 | } |
178 | 178 | ||
179 | @Override | 179 | @Override |
180 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
181 | - return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, coreSettings.getFirmwareTopic(), | ||
182 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 180 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
181 | + return new TbAwsSqsConsumerTemplate<>(transportApiAdmin, sqsSettings, coreSettings.getOtaPackageTopic(), | ||
182 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
183 | } | 183 | } |
184 | 184 | ||
185 | @Override | 185 | @Override |
186 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
187 | - return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getFirmwareTopic()); | 186 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
187 | + return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic()); | ||
188 | } | 188 | } |
189 | 189 | ||
190 | @PreDestroy | 190 | @PreDestroy |
@@ -131,13 +131,13 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE | @@ -131,13 +131,13 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE | ||
131 | } | 131 | } |
132 | 132 | ||
133 | @Override | 133 | @Override |
134 | - public TbQueueConsumer<TbProtoQueueMsg<TransportProtos.ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
135 | - return new InMemoryTbQueueConsumer<>(coreSettings.getFirmwareTopic()); | 134 | + public TbQueueConsumer<TbProtoQueueMsg<TransportProtos.ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
135 | + return new InMemoryTbQueueConsumer<>(coreSettings.getOtaPackageTopic()); | ||
136 | } | 136 | } |
137 | 137 | ||
138 | @Override | 138 | @Override |
139 | - public TbQueueProducer<TbProtoQueueMsg<TransportProtos.ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
140 | - return new InMemoryTbQueueProducer<>(coreSettings.getFirmwareTopic()); | 139 | + public TbQueueProducer<TbProtoQueueMsg<TransportProtos.ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
140 | + return new InMemoryTbQueueProducer<>(coreSettings.getOtaPackageTopic()); | ||
141 | } | 141 | } |
142 | 142 | ||
143 | @Override | 143 | @Override |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -277,24 +277,24 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi | @@ -277,24 +277,24 @@ public class KafkaMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEngi | ||
277 | } | 277 | } |
278 | 278 | ||
279 | @Override | 279 | @Override |
280 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
281 | - TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); | 280 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
281 | + TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); | ||
282 | consumerBuilder.settings(kafkaSettings); | 282 | consumerBuilder.settings(kafkaSettings); |
283 | - consumerBuilder.topic(coreSettings.getFirmwareTopic()); | ||
284 | - consumerBuilder.clientId("monolith-fw-consumer-" + serviceInfoProvider.getServiceId()); | ||
285 | - consumerBuilder.groupId("monolith-fw-consumer"); | ||
286 | - consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 283 | + consumerBuilder.topic(coreSettings.getOtaPackageTopic()); |
284 | + consumerBuilder.clientId("monolith-ota-consumer-" + serviceInfoProvider.getServiceId()); | ||
285 | + consumerBuilder.groupId("monolith-ota-consumer"); | ||
286 | + consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
287 | consumerBuilder.admin(fwUpdatesAdmin); | 287 | consumerBuilder.admin(fwUpdatesAdmin); |
288 | consumerBuilder.statsService(consumerStatsService); | 288 | consumerBuilder.statsService(consumerStatsService); |
289 | return consumerBuilder.build(); | 289 | return consumerBuilder.build(); |
290 | } | 290 | } |
291 | 291 | ||
292 | @Override | 292 | @Override |
293 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
294 | - TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); | 293 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
294 | + TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); | ||
295 | requestBuilder.settings(kafkaSettings); | 295 | requestBuilder.settings(kafkaSettings); |
296 | - requestBuilder.clientId("monolith-fw-producer-" + serviceInfoProvider.getServiceId()); | ||
297 | - requestBuilder.defaultTopic(coreSettings.getFirmwareTopic()); | 296 | + requestBuilder.clientId("monolith-ota-producer-" + serviceInfoProvider.getServiceId()); |
297 | + requestBuilder.defaultTopic(coreSettings.getOtaPackageTopic()); | ||
298 | requestBuilder.admin(fwUpdatesAdmin); | 298 | requestBuilder.admin(fwUpdatesAdmin); |
299 | return requestBuilder.build(); | 299 | return requestBuilder.build(); |
300 | } | 300 | } |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -245,24 +245,24 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { | @@ -245,24 +245,24 @@ public class KafkaTbCoreQueueFactory implements TbCoreQueueFactory { | ||
245 | } | 245 | } |
246 | 246 | ||
247 | @Override | 247 | @Override |
248 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
249 | - TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); | 248 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
249 | + TbKafkaConsumerTemplate.TbKafkaConsumerTemplateBuilder<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> consumerBuilder = TbKafkaConsumerTemplate.builder(); | ||
250 | consumerBuilder.settings(kafkaSettings); | 250 | consumerBuilder.settings(kafkaSettings); |
251 | - consumerBuilder.topic(coreSettings.getFirmwareTopic()); | ||
252 | - consumerBuilder.clientId("tb-core-fw-consumer-" + serviceInfoProvider.getServiceId()); | ||
253 | - consumerBuilder.groupId("tb-core-fw-consumer"); | ||
254 | - consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 251 | + consumerBuilder.topic(coreSettings.getOtaPackageTopic()); |
252 | + consumerBuilder.clientId("tb-core-ota-consumer-" + serviceInfoProvider.getServiceId()); | ||
253 | + consumerBuilder.groupId("tb-core-ota-consumer"); | ||
254 | + consumerBuilder.decoder(msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
255 | consumerBuilder.admin(fwUpdatesAdmin); | 255 | consumerBuilder.admin(fwUpdatesAdmin); |
256 | consumerBuilder.statsService(consumerStatsService); | 256 | consumerBuilder.statsService(consumerStatsService); |
257 | return consumerBuilder.build(); | 257 | return consumerBuilder.build(); |
258 | } | 258 | } |
259 | 259 | ||
260 | @Override | 260 | @Override |
261 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
262 | - TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); | 261 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
262 | + TbKafkaProducerTemplate.TbKafkaProducerTemplateBuilder<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> requestBuilder = TbKafkaProducerTemplate.builder(); | ||
263 | requestBuilder.settings(kafkaSettings); | 263 | requestBuilder.settings(kafkaSettings); |
264 | - requestBuilder.clientId("tb-core-fw-producer-" + serviceInfoProvider.getServiceId()); | ||
265 | - requestBuilder.defaultTopic(coreSettings.getFirmwareTopic()); | 264 | + requestBuilder.clientId("tb-core-ota-producer-" + serviceInfoProvider.getServiceId()); |
265 | + requestBuilder.defaultTopic(coreSettings.getOtaPackageTopic()); | ||
266 | requestBuilder.admin(fwUpdatesAdmin); | 266 | requestBuilder.admin(fwUpdatesAdmin); |
267 | return requestBuilder.build(); | 267 | return requestBuilder.build(); |
268 | } | 268 | } |
@@ -22,9 +22,9 @@ import org.springframework.stereotype.Component; | @@ -22,9 +22,9 @@ import org.springframework.stereotype.Component; | ||
22 | import org.thingsboard.server.common.msg.queue.ServiceType; | 22 | import org.thingsboard.server.common.msg.queue.ServiceType; |
23 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsRequest; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsRequest; |
24 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsResponse; | 24 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsResponse; |
25 | -import org.thingsboard.server.gen.transport.TransportProtos.*; | ||
26 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 26 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
27 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; | ||
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
30 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 30 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -192,14 +192,14 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng | @@ -192,14 +192,14 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng | ||
192 | } | 192 | } |
193 | 193 | ||
194 | @Override | 194 | @Override |
195 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
196 | - return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getFirmwareTopic(), | ||
197 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 195 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
196 | + return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), | ||
197 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
198 | } | 198 | } |
199 | 199 | ||
200 | @Override | 200 | @Override |
201 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
202 | - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getFirmwareTopic()); | 201 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
202 | + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); | ||
203 | } | 203 | } |
204 | 204 | ||
205 | @Override | 205 | @Override |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -166,14 +166,14 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { | @@ -166,14 +166,14 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { | ||
166 | } | 166 | } |
167 | 167 | ||
168 | @Override | 168 | @Override |
169 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
170 | - return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getFirmwareTopic(), | ||
171 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 169 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
170 | + return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), | ||
171 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
172 | } | 172 | } |
173 | 173 | ||
174 | @Override | 174 | @Override |
175 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
176 | - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getFirmwareTopic()); | 175 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
176 | + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); | ||
177 | } | 177 | } |
178 | 178 | ||
179 | @Override | 179 | @Override |
@@ -24,7 +24,7 @@ import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsRequest; | @@ -24,7 +24,7 @@ import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsRequest; | ||
24 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsResponse; | 24 | import org.thingsboard.server.gen.js.JsInvokeProtos.RemoteJsResponse; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
26 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 26 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
27 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 27 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
30 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 30 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -190,14 +190,14 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE | @@ -190,14 +190,14 @@ public class RabbitMqMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE | ||
190 | } | 190 | } |
191 | 191 | ||
192 | @Override | 192 | @Override |
193 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
194 | - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getFirmwareTopic(), | ||
195 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 193 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
194 | + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic(), | ||
195 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
196 | } | 196 | } |
197 | 197 | ||
198 | @Override | 198 | @Override |
199 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
200 | - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getFirmwareTopic()); | 199 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
200 | + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic()); | ||
201 | } | 201 | } |
202 | 202 | ||
203 | @Override | 203 | @Override |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -172,14 +172,14 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { | @@ -172,14 +172,14 @@ public class RabbitMqTbCoreQueueFactory implements TbCoreQueueFactory { | ||
172 | } | 172 | } |
173 | 173 | ||
174 | @Override | 174 | @Override |
175 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
176 | - return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getFirmwareTopic(), | ||
177 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 175 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
176 | + return new TbRabbitMqConsumerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic(), | ||
177 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
178 | } | 178 | } |
179 | 179 | ||
180 | @Override | 180 | @Override |
181 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
182 | - return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getFirmwareTopic()); | 181 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
182 | + return new TbRabbitMqProducerTemplate<>(coreAdmin, rabbitMqSettings, coreSettings.getOtaPackageTopic()); | ||
183 | } | 183 | } |
184 | 184 | ||
185 | @Override | 185 | @Override |
common/queue/src/main/java/org/thingsboard/server/queue/provider/ServiceBusMonolithQueueFactory.java
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -189,14 +189,14 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul | @@ -189,14 +189,14 @@ public class ServiceBusMonolithQueueFactory implements TbCoreQueueFactory, TbRul | ||
189 | } | 189 | } |
190 | 190 | ||
191 | @Override | 191 | @Override |
192 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
193 | - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getFirmwareTopic(), | ||
194 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 192 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
193 | + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic(), | ||
194 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
195 | } | 195 | } |
196 | 196 | ||
197 | @Override | 197 | @Override |
198 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
199 | - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getFirmwareTopic()); | 198 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
199 | + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic()); | ||
200 | } | 200 | } |
201 | 201 | ||
202 | @Override | 202 | @Override |
@@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | @@ -23,7 +23,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType; | ||
23 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 23 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 25 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
26 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 26 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 27 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -172,14 +172,14 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { | @@ -172,14 +172,14 @@ public class ServiceBusTbCoreQueueFactory implements TbCoreQueueFactory { | ||
172 | } | 172 | } |
173 | 173 | ||
174 | @Override | 174 | @Override |
175 | - public TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer() { | ||
176 | - return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getFirmwareTopic(), | ||
177 | - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToFirmwareStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | 175 | + public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() { |
176 | + return new TbServiceBusConsumerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic(), | ||
177 | + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); | ||
178 | } | 178 | } |
179 | 179 | ||
180 | @Override | 180 | @Override |
181 | - public TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer() { | ||
182 | - return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getFirmwareTopic()); | 181 | + public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() { |
182 | + return new TbServiceBusProducerTemplate<>(coreAdmin, serviceBusSettings, coreSettings.getOtaPackageTopic()); | ||
183 | } | 183 | } |
184 | 184 | ||
185 | @Override | 185 | @Override |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | package org.thingsboard.server.queue.provider; | 16 | package org.thingsboard.server.queue.provider; |
17 | 17 | ||
18 | import org.thingsboard.server.gen.js.JsInvokeProtos; | 18 | import org.thingsboard.server.gen.js.JsInvokeProtos; |
19 | -import org.thingsboard.server.gen.transport.TransportProtos.ToFirmwareStateServiceMsg; | 19 | +import org.thingsboard.server.gen.transport.TransportProtos.ToOtaPackageStateServiceMsg; |
20 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 20 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
21 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 21 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
22 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 22 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
@@ -91,14 +91,14 @@ public interface TbCoreQueueFactory extends TbUsageStatsClientQueueFactory { | @@ -91,14 +91,14 @@ public interface TbCoreQueueFactory extends TbUsageStatsClientQueueFactory { | ||
91 | * | 91 | * |
92 | * @return | 92 | * @return |
93 | */ | 93 | */ |
94 | - TbQueueConsumer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgConsumer(); | 94 | + TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer(); |
95 | 95 | ||
96 | /** | 96 | /** |
97 | * Used to consume messages about firmware update notifications by TB Core Service | 97 | * Used to consume messages about firmware update notifications by TB Core Service |
98 | * | 98 | * |
99 | * @return | 99 | * @return |
100 | */ | 100 | */ |
101 | - TbQueueProducer<TbProtoQueueMsg<ToFirmwareStateServiceMsg>> createToFirmwareStateServiceMsgProducer(); | 101 | + TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer(); |
102 | 102 | ||
103 | /** | 103 | /** |
104 | * Used to consume high priority messages by TB Core Service | 104 | * Used to consume high priority messages by TB Core Service |
@@ -15,7 +15,6 @@ | @@ -15,7 +15,6 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.queue.provider; | 16 | package org.thingsboard.server.queue.provider; |
17 | 17 | ||
18 | -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; | ||
19 | import org.springframework.stereotype.Service; | 18 | import org.springframework.stereotype.Service; |
20 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 19 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
21 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; | 20 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreNotificationMsg; |
@@ -25,11 +24,12 @@ import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | @@ -25,11 +24,12 @@ import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | ||
25 | import org.thingsboard.server.gen.transport.TransportProtos.ToUsageStatsServiceMsg; | 24 | import org.thingsboard.server.gen.transport.TransportProtos.ToUsageStatsServiceMsg; |
26 | import org.thingsboard.server.queue.TbQueueProducer; | 25 | import org.thingsboard.server.queue.TbQueueProducer; |
27 | import org.thingsboard.server.queue.common.TbProtoQueueMsg; | 26 | import org.thingsboard.server.queue.common.TbProtoQueueMsg; |
27 | +import org.thingsboard.server.queue.util.TbCoreComponent; | ||
28 | 28 | ||
29 | import javax.annotation.PostConstruct; | 29 | import javax.annotation.PostConstruct; |
30 | 30 | ||
31 | @Service | 31 | @Service |
32 | -@ConditionalOnExpression("'${service.type:null}'=='monolith' || '${service.type:null}'=='tb-core'") | 32 | +@TbCoreComponent |
33 | public class TbCoreQueueProducerProvider implements TbQueueProducerProvider { | 33 | public class TbCoreQueueProducerProvider implements TbQueueProducerProvider { |
34 | 34 | ||
35 | private final TbCoreQueueFactory tbQueueProvider; | 35 | private final TbCoreQueueFactory tbQueueProvider; |
@@ -26,8 +26,8 @@ public class TbQueueCoreSettings { | @@ -26,8 +26,8 @@ public class TbQueueCoreSettings { | ||
26 | @Value("${queue.core.topic}") | 26 | @Value("${queue.core.topic}") |
27 | private String topic; | 27 | private String topic; |
28 | 28 | ||
29 | - @Value("${queue.core.firmware.topic:tb_firmware}") | ||
30 | - private String firmwareTopic; | 29 | + @Value("${queue.core.ota.topic:tb_ota_package}") |
30 | + private String otaPackageTopic; | ||
31 | 31 | ||
32 | @Value("${queue.core.usage-stats-topic:tb_usage_stats}") | 32 | @Value("${queue.core.usage-stats-topic:tb_usage_stats}") |
33 | private String usageStatsTopic; | 33 | private String usageStatsTopic; |
@@ -388,7 +388,7 @@ enum ResponseStatus { | @@ -388,7 +388,7 @@ enum ResponseStatus { | ||
388 | FAILURE = 3; | 388 | FAILURE = 3; |
389 | } | 389 | } |
390 | 390 | ||
391 | -message GetFirmwareRequestMsg { | 391 | +message GetOtaPackageRequestMsg { |
392 | int64 deviceIdMSB = 1; | 392 | int64 deviceIdMSB = 1; |
393 | int64 deviceIdLSB = 2; | 393 | int64 deviceIdLSB = 2; |
394 | int64 tenantIdMSB = 3; | 394 | int64 tenantIdMSB = 3; |
@@ -396,10 +396,10 @@ message GetFirmwareRequestMsg { | @@ -396,10 +396,10 @@ message GetFirmwareRequestMsg { | ||
396 | string type = 5; | 396 | string type = 5; |
397 | } | 397 | } |
398 | 398 | ||
399 | -message GetFirmwareResponseMsg { | 399 | +message GetOtaPackageResponseMsg { |
400 | ResponseStatus responseStatus = 1; | 400 | ResponseStatus responseStatus = 1; |
401 | - int64 firmwareIdMSB = 2; | ||
402 | - int64 firmwareIdLSB = 3; | 401 | + int64 otaPackageIdMSB = 2; |
402 | + int64 otaPackageIdLSB = 3; | ||
403 | string type = 4; | 403 | string type = 4; |
404 | string title = 5; | 404 | string title = 5; |
405 | string version = 6; | 405 | string version = 6; |
@@ -627,7 +627,7 @@ message TransportApiRequestMsg { | @@ -627,7 +627,7 @@ message TransportApiRequestMsg { | ||
627 | ProvisionDeviceRequestMsg provisionDeviceRequestMsg = 7; | 627 | ProvisionDeviceRequestMsg provisionDeviceRequestMsg = 7; |
628 | ValidateDeviceLwM2MCredentialsRequestMsg validateDeviceLwM2MCredentialsRequestMsg = 8; | 628 | ValidateDeviceLwM2MCredentialsRequestMsg validateDeviceLwM2MCredentialsRequestMsg = 8; |
629 | GetResourceRequestMsg resourceRequestMsg = 9; | 629 | GetResourceRequestMsg resourceRequestMsg = 9; |
630 | - GetFirmwareRequestMsg firmwareRequestMsg = 10; | 630 | + GetOtaPackageRequestMsg otaPackageRequestMsg = 10; |
631 | GetSnmpDevicesRequestMsg snmpDevicesRequestMsg = 11; | 631 | GetSnmpDevicesRequestMsg snmpDevicesRequestMsg = 11; |
632 | GetDeviceRequestMsg deviceRequestMsg = 12; | 632 | GetDeviceRequestMsg deviceRequestMsg = 12; |
633 | GetDeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 13; | 633 | GetDeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 13; |
@@ -642,7 +642,7 @@ message TransportApiResponseMsg { | @@ -642,7 +642,7 @@ message TransportApiResponseMsg { | ||
642 | GetSnmpDevicesResponseMsg snmpDevicesResponseMsg = 5; | 642 | GetSnmpDevicesResponseMsg snmpDevicesResponseMsg = 5; |
643 | LwM2MResponseMsg lwM2MResponseMsg = 6; | 643 | LwM2MResponseMsg lwM2MResponseMsg = 6; |
644 | GetResourceResponseMsg resourceResponseMsg = 7; | 644 | GetResourceResponseMsg resourceResponseMsg = 7; |
645 | - GetFirmwareResponseMsg firmwareResponseMsg = 8; | 645 | + GetOtaPackageResponseMsg otaPackageResponseMsg = 8; |
646 | GetDeviceResponseMsg deviceResponseMsg = 9; | 646 | GetDeviceResponseMsg deviceResponseMsg = 9; |
647 | GetDeviceCredentialsResponseMsg deviceCredentialsResponseMsg = 10; | 647 | GetDeviceCredentialsResponseMsg deviceCredentialsResponseMsg = 10; |
648 | } | 648 | } |
@@ -710,13 +710,13 @@ message ToUsageStatsServiceMsg { | @@ -710,13 +710,13 @@ message ToUsageStatsServiceMsg { | ||
710 | int64 customerIdLSB = 7; | 710 | int64 customerIdLSB = 7; |
711 | } | 711 | } |
712 | 712 | ||
713 | -message ToFirmwareStateServiceMsg { | 713 | +message ToOtaPackageStateServiceMsg { |
714 | int64 ts = 1; | 714 | int64 ts = 1; |
715 | int64 tenantIdMSB = 2; | 715 | int64 tenantIdMSB = 2; |
716 | int64 tenantIdLSB = 3; | 716 | int64 tenantIdLSB = 3; |
717 | int64 deviceIdMSB = 4; | 717 | int64 deviceIdMSB = 4; |
718 | int64 deviceIdLSB = 5; | 718 | int64 deviceIdLSB = 5; |
719 | - int64 firmwareIdMSB = 6; | ||
720 | - int64 firmwareIdLSB = 7; | 719 | + int64 otaPackageIdMSB = 6; |
720 | + int64 otaPackageIdLSB = 7; | ||
721 | string type = 8; | 721 | string type = 8; |
722 | } | 722 | } |
common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/CoapTransportResource.java
@@ -44,7 +44,7 @@ import org.thingsboard.server.common.data.device.profile.DeviceProfileTransportC | @@ -44,7 +44,7 @@ import org.thingsboard.server.common.data.device.profile.DeviceProfileTransportC | ||
44 | import org.thingsboard.server.common.data.device.profile.JsonTransportPayloadConfiguration; | 44 | import org.thingsboard.server.common.data.device.profile.JsonTransportPayloadConfiguration; |
45 | import org.thingsboard.server.common.data.device.profile.ProtoTransportPayloadConfiguration; | 45 | import org.thingsboard.server.common.data.device.profile.ProtoTransportPayloadConfiguration; |
46 | import org.thingsboard.server.common.data.device.profile.TransportPayloadTypeConfiguration; | 46 | import org.thingsboard.server.common.data.device.profile.TransportPayloadTypeConfiguration; |
47 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 47 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
48 | import org.thingsboard.server.common.data.security.DeviceTokenCredentials; | 48 | import org.thingsboard.server.common.data.security.DeviceTokenCredentials; |
49 | import org.thingsboard.server.common.msg.session.FeatureType; | 49 | import org.thingsboard.server.common.msg.session.FeatureType; |
50 | import org.thingsboard.server.common.msg.session.SessionMsgType; | 50 | import org.thingsboard.server.common.msg.session.SessionMsgType; |
@@ -350,10 +350,10 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | @@ -350,10 +350,10 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | ||
350 | new CoapNoOpCallback(exchange)); | 350 | new CoapNoOpCallback(exchange)); |
351 | break; | 351 | break; |
352 | case GET_FIRMWARE_REQUEST: | 352 | case GET_FIRMWARE_REQUEST: |
353 | - getFirmwareCallback(sessionInfo, exchange, FirmwareType.FIRMWARE); | 353 | + getOtaPackageCallback(sessionInfo, exchange, OtaPackageType.FIRMWARE); |
354 | break; | 354 | break; |
355 | case GET_SOFTWARE_REQUEST: | 355 | case GET_SOFTWARE_REQUEST: |
356 | - getFirmwareCallback(sessionInfo, exchange, FirmwareType.SOFTWARE); | 356 | + getOtaPackageCallback(sessionInfo, exchange, OtaPackageType.SOFTWARE); |
357 | break; | 357 | break; |
358 | } | 358 | } |
359 | } catch (AdaptorException e) { | 359 | } catch (AdaptorException e) { |
@@ -366,14 +366,14 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | @@ -366,14 +366,14 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | ||
366 | return new UUID(sessionInfoProto.getSessionIdMSB(), sessionInfoProto.getSessionIdLSB()); | 366 | return new UUID(sessionInfoProto.getSessionIdMSB(), sessionInfoProto.getSessionIdLSB()); |
367 | } | 367 | } |
368 | 368 | ||
369 | - private void getFirmwareCallback(TransportProtos.SessionInfoProto sessionInfo, CoapExchange exchange, FirmwareType firmwareType) { | ||
370 | - TransportProtos.GetFirmwareRequestMsg requestMsg = TransportProtos.GetFirmwareRequestMsg.newBuilder() | 369 | + private void getOtaPackageCallback(TransportProtos.SessionInfoProto sessionInfo, CoapExchange exchange, OtaPackageType firmwareType) { |
370 | + TransportProtos.GetOtaPackageRequestMsg requestMsg = TransportProtos.GetOtaPackageRequestMsg.newBuilder() | ||
371 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) | 371 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) |
372 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) | 372 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) |
373 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) | 373 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) |
374 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) | 374 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) |
375 | .setType(firmwareType.name()).build(); | 375 | .setType(firmwareType.name()).build(); |
376 | - transportContext.getTransportService().process(sessionInfo, requestMsg, new FirmwareCallback(exchange)); | 376 | + transportContext.getTransportService().process(sessionInfo, requestMsg, new OtaPackageCallback(exchange)); |
377 | } | 377 | } |
378 | 378 | ||
379 | private TransportProtos.SessionInfoProto lookupAsyncSessionInfo(String token) { | 379 | private TransportProtos.SessionInfoProto lookupAsyncSessionInfo(String token) { |
@@ -470,25 +470,25 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | @@ -470,25 +470,25 @@ public class CoapTransportResource extends AbstractCoapTransportResource { | ||
470 | } | 470 | } |
471 | } | 471 | } |
472 | 472 | ||
473 | - private class FirmwareCallback implements TransportServiceCallback<TransportProtos.GetFirmwareResponseMsg> { | 473 | + private class OtaPackageCallback implements TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> { |
474 | private final CoapExchange exchange; | 474 | private final CoapExchange exchange; |
475 | 475 | ||
476 | - FirmwareCallback(CoapExchange exchange) { | 476 | + OtaPackageCallback(CoapExchange exchange) { |
477 | this.exchange = exchange; | 477 | this.exchange = exchange; |
478 | } | 478 | } |
479 | 479 | ||
480 | @Override | 480 | @Override |
481 | - public void onSuccess(TransportProtos.GetFirmwareResponseMsg msg) { | 481 | + public void onSuccess(TransportProtos.GetOtaPackageResponseMsg msg) { |
482 | String title = exchange.getQueryParameter("title"); | 482 | String title = exchange.getQueryParameter("title"); |
483 | String version = exchange.getQueryParameter("version"); | 483 | String version = exchange.getQueryParameter("version"); |
484 | if (msg.getResponseStatus().equals(TransportProtos.ResponseStatus.SUCCESS)) { | 484 | if (msg.getResponseStatus().equals(TransportProtos.ResponseStatus.SUCCESS)) { |
485 | if (msg.getTitle().equals(title) && msg.getVersion().equals(version)) { | 485 | if (msg.getTitle().equals(title) && msg.getVersion().equals(version)) { |
486 | - String firmwareId = new UUID(msg.getFirmwareIdMSB(), msg.getFirmwareIdLSB()).toString(); | 486 | + String firmwareId = new UUID(msg.getOtaPackageIdMSB(), msg.getOtaPackageIdLSB()).toString(); |
487 | String strChunkSize = exchange.getQueryParameter("size"); | 487 | String strChunkSize = exchange.getQueryParameter("size"); |
488 | String strChunk = exchange.getQueryParameter("chunk"); | 488 | String strChunk = exchange.getQueryParameter("chunk"); |
489 | int chunkSize = StringUtils.isEmpty(strChunkSize) ? 0 : Integer.parseInt(strChunkSize); | 489 | int chunkSize = StringUtils.isEmpty(strChunkSize) ? 0 : Integer.parseInt(strChunkSize); |
490 | int chunk = StringUtils.isEmpty(strChunk) ? 0 : Integer.parseInt(strChunk); | 490 | int chunk = StringUtils.isEmpty(strChunk) ? 0 : Integer.parseInt(strChunk); |
491 | - exchange.respond(CoAP.ResponseCode.CONTENT, transportContext.getFirmwareDataCache().get(firmwareId, chunkSize, chunk)); | 491 | + exchange.respond(CoAP.ResponseCode.CONTENT, transportContext.getOtaPackageDataCache().get(firmwareId, chunkSize, chunk)); |
492 | } else { | 492 | } else { |
493 | exchange.respond(CoAP.ResponseCode.BAD_REQUEST); | 493 | exchange.respond(CoAP.ResponseCode.BAD_REQUEST); |
494 | } | 494 | } |
@@ -34,7 +34,7 @@ import org.springframework.web.bind.annotation.RequestParam; | @@ -34,7 +34,7 @@ import org.springframework.web.bind.annotation.RequestParam; | ||
34 | import org.springframework.web.bind.annotation.RestController; | 34 | import org.springframework.web.bind.annotation.RestController; |
35 | import org.springframework.web.context.request.async.DeferredResult; | 35 | import org.springframework.web.context.request.async.DeferredResult; |
36 | import org.thingsboard.server.common.data.DeviceTransportType; | 36 | import org.thingsboard.server.common.data.DeviceTransportType; |
37 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 37 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
38 | import org.thingsboard.server.common.data.TbTransportService; | 38 | import org.thingsboard.server.common.data.TbTransportService; |
39 | import org.thingsboard.server.common.data.id.DeviceId; | 39 | import org.thingsboard.server.common.data.id.DeviceId; |
40 | import org.thingsboard.server.common.transport.SessionMsgListener; | 40 | import org.thingsboard.server.common.transport.SessionMsgListener; |
@@ -213,7 +213,7 @@ public class DeviceApiController implements TbTransportService { | @@ -213,7 +213,7 @@ public class DeviceApiController implements TbTransportService { | ||
213 | @RequestParam(value = "version") String version, | 213 | @RequestParam(value = "version") String version, |
214 | @RequestParam(value = "size", required = false, defaultValue = "0") int size, | 214 | @RequestParam(value = "size", required = false, defaultValue = "0") int size, |
215 | @RequestParam(value = "chunk", required = false, defaultValue = "0") int chunk) { | 215 | @RequestParam(value = "chunk", required = false, defaultValue = "0") int chunk) { |
216 | - return getFirmwareCallback(deviceToken, title, version, size, chunk, FirmwareType.FIRMWARE); | 216 | + return getOtaPackageCallback(deviceToken, title, version, size, chunk, OtaPackageType.FIRMWARE); |
217 | } | 217 | } |
218 | 218 | ||
219 | @RequestMapping(value = "/{deviceToken}/software", method = RequestMethod.GET) | 219 | @RequestMapping(value = "/{deviceToken}/software", method = RequestMethod.GET) |
@@ -222,7 +222,7 @@ public class DeviceApiController implements TbTransportService { | @@ -222,7 +222,7 @@ public class DeviceApiController implements TbTransportService { | ||
222 | @RequestParam(value = "version") String version, | 222 | @RequestParam(value = "version") String version, |
223 | @RequestParam(value = "size", required = false, defaultValue = "0") int size, | 223 | @RequestParam(value = "size", required = false, defaultValue = "0") int size, |
224 | @RequestParam(value = "chunk", required = false, defaultValue = "0") int chunk) { | 224 | @RequestParam(value = "chunk", required = false, defaultValue = "0") int chunk) { |
225 | - return getFirmwareCallback(deviceToken, title, version, size, chunk, FirmwareType.SOFTWARE); | 225 | + return getOtaPackageCallback(deviceToken, title, version, size, chunk, OtaPackageType.SOFTWARE); |
226 | } | 226 | } |
227 | 227 | ||
228 | @RequestMapping(value = "/provision", method = RequestMethod.POST) | 228 | @RequestMapping(value = "/provision", method = RequestMethod.POST) |
@@ -233,17 +233,17 @@ public class DeviceApiController implements TbTransportService { | @@ -233,17 +233,17 @@ public class DeviceApiController implements TbTransportService { | ||
233 | return responseWriter; | 233 | return responseWriter; |
234 | } | 234 | } |
235 | 235 | ||
236 | - private DeferredResult<ResponseEntity> getFirmwareCallback(String deviceToken, String title, String version, int size, int chunk, FirmwareType firmwareType) { | 236 | + private DeferredResult<ResponseEntity> getOtaPackageCallback(String deviceToken, String title, String version, int size, int chunk, OtaPackageType firmwareType) { |
237 | DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>(); | 237 | DeferredResult<ResponseEntity> responseWriter = new DeferredResult<>(); |
238 | transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(), | 238 | transportContext.getTransportService().process(DeviceTransportType.DEFAULT, ValidateDeviceTokenRequestMsg.newBuilder().setToken(deviceToken).build(), |
239 | new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> { | 239 | new DeviceAuthCallback(transportContext, responseWriter, sessionInfo -> { |
240 | - TransportProtos.GetFirmwareRequestMsg requestMsg = TransportProtos.GetFirmwareRequestMsg.newBuilder() | 240 | + TransportProtos.GetOtaPackageRequestMsg requestMsg = TransportProtos.GetOtaPackageRequestMsg.newBuilder() |
241 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) | 241 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) |
242 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) | 242 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) |
243 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) | 243 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) |
244 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) | 244 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) |
245 | .setType(firmwareType.name()).build(); | 245 | .setType(firmwareType.name()).build(); |
246 | - transportContext.getTransportService().process(sessionInfo, requestMsg, new GetFirmwareCallback(responseWriter, title, version, size, chunk)); | 246 | + transportContext.getTransportService().process(sessionInfo, requestMsg, new GetOtaPackageCallback(responseWriter, title, version, size, chunk)); |
247 | })); | 247 | })); |
248 | return responseWriter; | 248 | return responseWriter; |
249 | } | 249 | } |
@@ -294,14 +294,14 @@ public class DeviceApiController implements TbTransportService { | @@ -294,14 +294,14 @@ public class DeviceApiController implements TbTransportService { | ||
294 | } | 294 | } |
295 | } | 295 | } |
296 | 296 | ||
297 | - private class GetFirmwareCallback implements TransportServiceCallback<TransportProtos.GetFirmwareResponseMsg> { | 297 | + private class GetOtaPackageCallback implements TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> { |
298 | private final DeferredResult<ResponseEntity> responseWriter; | 298 | private final DeferredResult<ResponseEntity> responseWriter; |
299 | private final String title; | 299 | private final String title; |
300 | private final String version; | 300 | private final String version; |
301 | private final int chuckSize; | 301 | private final int chuckSize; |
302 | private final int chuck; | 302 | private final int chuck; |
303 | 303 | ||
304 | - GetFirmwareCallback(DeferredResult<ResponseEntity> responseWriter, String title, String version, int chuckSize, int chuck) { | 304 | + GetOtaPackageCallback(DeferredResult<ResponseEntity> responseWriter, String title, String version, int chuckSize, int chuck) { |
305 | this.responseWriter = responseWriter; | 305 | this.responseWriter = responseWriter; |
306 | this.title = title; | 306 | this.title = title; |
307 | this.version = version; | 307 | this.version = version; |
@@ -310,17 +310,17 @@ public class DeviceApiController implements TbTransportService { | @@ -310,17 +310,17 @@ public class DeviceApiController implements TbTransportService { | ||
310 | } | 310 | } |
311 | 311 | ||
312 | @Override | 312 | @Override |
313 | - public void onSuccess(TransportProtos.GetFirmwareResponseMsg firmwareResponseMsg) { | ||
314 | - if (!TransportProtos.ResponseStatus.SUCCESS.equals(firmwareResponseMsg.getResponseStatus())) { | 313 | + public void onSuccess(TransportProtos.GetOtaPackageResponseMsg otaPackageResponseMsg) { |
314 | + if (!TransportProtos.ResponseStatus.SUCCESS.equals(otaPackageResponseMsg.getResponseStatus())) { | ||
315 | responseWriter.setResult(new ResponseEntity<>(HttpStatus.NOT_FOUND)); | 315 | responseWriter.setResult(new ResponseEntity<>(HttpStatus.NOT_FOUND)); |
316 | - } else if (title.equals(firmwareResponseMsg.getTitle()) && version.equals(firmwareResponseMsg.getVersion())) { | ||
317 | - String firmwareId = new UUID(firmwareResponseMsg.getFirmwareIdMSB(), firmwareResponseMsg.getFirmwareIdLSB()).toString(); | ||
318 | - ByteArrayResource resource = new ByteArrayResource(transportContext.getFirmwareDataCache().get(firmwareId, chuckSize, chuck)); | 316 | + } else if (title.equals(otaPackageResponseMsg.getTitle()) && version.equals(otaPackageResponseMsg.getVersion())) { |
317 | + String otaPackageId = new UUID(otaPackageResponseMsg.getOtaPackageIdMSB(), otaPackageResponseMsg.getOtaPackageIdLSB()).toString(); | ||
318 | + ByteArrayResource resource = new ByteArrayResource(transportContext.getOtaPackageDataCache().get(otaPackageId, chuckSize, chuck)); | ||
319 | ResponseEntity<ByteArrayResource> response = ResponseEntity.ok() | 319 | ResponseEntity<ByteArrayResource> response = ResponseEntity.ok() |
320 | - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + firmwareResponseMsg.getFileName()) | ||
321 | - .header("x-filename", firmwareResponseMsg.getFileName()) | 320 | + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + otaPackageResponseMsg.getFileName()) |
321 | + .header("x-filename", otaPackageResponseMsg.getFileName()) | ||
322 | .contentLength(resource.contentLength()) | 322 | .contentLength(resource.contentLength()) |
323 | - .contentType(parseMediaType(firmwareResponseMsg.getContentType())) | 323 | + .contentType(parseMediaType(otaPackageResponseMsg.getContentType())) |
324 | .body(resource); | 324 | .body(resource); |
325 | responseWriter.setResult(response); | 325 | responseWriter.setResult(response); |
326 | } else { | 326 | } else { |
@@ -39,13 +39,13 @@ import org.springframework.context.annotation.Lazy; | @@ -39,13 +39,13 @@ import org.springframework.context.annotation.Lazy; | ||
39 | import org.springframework.stereotype.Service; | 39 | import org.springframework.stereotype.Service; |
40 | import org.thingsboard.common.util.JacksonUtil; | 40 | import org.thingsboard.common.util.JacksonUtil; |
41 | import org.thingsboard.common.util.ThingsBoardExecutors; | 41 | import org.thingsboard.common.util.ThingsBoardExecutors; |
42 | -import org.thingsboard.server.cache.firmware.FirmwareDataCache; | 42 | +import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
43 | import org.thingsboard.server.common.data.Device; | 43 | import org.thingsboard.server.common.data.Device; |
44 | import org.thingsboard.server.common.data.DeviceProfile; | 44 | import org.thingsboard.server.common.data.DeviceProfile; |
45 | -import org.thingsboard.server.common.data.firmware.FirmwareKey; | ||
46 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
47 | -import org.thingsboard.server.common.data.firmware.FirmwareUtil; | ||
48 | -import org.thingsboard.server.common.data.id.FirmwareId; | 45 | +import org.thingsboard.server.common.data.ota.OtaPackageKey; |
46 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
47 | +import org.thingsboard.server.common.data.ota.OtaPackageUtil; | ||
48 | +import org.thingsboard.server.common.data.id.OtaPackageId; | ||
49 | import org.thingsboard.server.common.transport.TransportService; | 49 | import org.thingsboard.server.common.transport.TransportService; |
50 | import org.thingsboard.server.common.transport.TransportServiceCallback; | 50 | import org.thingsboard.server.common.transport.TransportServiceCallback; |
51 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; | 51 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
@@ -87,8 +87,8 @@ import java.util.stream.Collectors; | @@ -87,8 +87,8 @@ import java.util.stream.Collectors; | ||
87 | 87 | ||
88 | import static org.eclipse.californium.core.coap.CoAP.ResponseCode.BAD_REQUEST; | 88 | import static org.eclipse.californium.core.coap.CoAP.ResponseCode.BAD_REQUEST; |
89 | import static org.eclipse.leshan.core.attributes.Attribute.OBJECT_VERSION; | 89 | import static org.eclipse.leshan.core.attributes.Attribute.OBJECT_VERSION; |
90 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.DOWNLOADED; | ||
91 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.UPDATING; | 90 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.DOWNLOADED; |
91 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.UPDATING; | ||
92 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_PATH; | 92 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_PATH; |
93 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportServerHelper.getValueFromKvProto; | 93 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportServerHelper.getValueFromKvProto; |
94 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.CLIENT_NOT_AUTHORIZED; | 94 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.CLIENT_NOT_AUTHORIZED; |
@@ -132,7 +132,7 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -132,7 +132,7 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
132 | private final TransportService transportService; | 132 | private final TransportService transportService; |
133 | private final LwM2mTransportContext context; | 133 | private final LwM2mTransportContext context; |
134 | public final LwM2MTransportServerConfig config; | 134 | public final LwM2MTransportServerConfig config; |
135 | - public final FirmwareDataCache firmwareDataCache; | 135 | + public final OtaPackageDataCache otaPackageDataCache; |
136 | public final LwM2mTransportServerHelper helper; | 136 | public final LwM2mTransportServerHelper helper; |
137 | private final LwM2MJsonAdaptor adaptor; | 137 | private final LwM2MJsonAdaptor adaptor; |
138 | private final TbLwM2MDtlsSessionStore sessionStore; | 138 | private final TbLwM2MDtlsSessionStore sessionStore; |
@@ -143,14 +143,14 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -143,14 +143,14 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
143 | public DefaultLwM2MTransportMsgHandler(TransportService transportService, LwM2MTransportServerConfig config, LwM2mTransportServerHelper helper, | 143 | public DefaultLwM2MTransportMsgHandler(TransportService transportService, LwM2MTransportServerConfig config, LwM2mTransportServerHelper helper, |
144 | LwM2mClientContext clientContext, | 144 | LwM2mClientContext clientContext, |
145 | @Lazy LwM2mTransportRequest lwM2mTransportRequest, | 145 | @Lazy LwM2mTransportRequest lwM2mTransportRequest, |
146 | - FirmwareDataCache firmwareDataCache, | 146 | + OtaPackageDataCache otaPackageDataCache, |
147 | LwM2mTransportContext context, LwM2MJsonAdaptor adaptor, TbLwM2MDtlsSessionStore sessionStore) { | 147 | LwM2mTransportContext context, LwM2MJsonAdaptor adaptor, TbLwM2MDtlsSessionStore sessionStore) { |
148 | this.transportService = transportService; | 148 | this.transportService = transportService; |
149 | this.config = config; | 149 | this.config = config; |
150 | this.helper = helper; | 150 | this.helper = helper; |
151 | this.clientContext = clientContext; | 151 | this.clientContext = clientContext; |
152 | this.lwM2mTransportRequest = lwM2mTransportRequest; | 152 | this.lwM2mTransportRequest = lwM2mTransportRequest; |
153 | - this.firmwareDataCache = firmwareDataCache; | 153 | + this.otaPackageDataCache = otaPackageDataCache; |
154 | this.context = context; | 154 | this.context = context; |
155 | this.adaptor = adaptor; | 155 | this.adaptor = adaptor; |
156 | this.rpcSubscriptions = new ConcurrentHashMap<>(); | 156 | this.rpcSubscriptions = new ConcurrentHashMap<>(); |
@@ -357,14 +357,14 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -357,14 +357,14 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
357 | String pathName = tsKvProto.getKv().getKey(); | 357 | String pathName = tsKvProto.getKv().getKey(); |
358 | String pathIdVer = this.getPresentPathIntoProfile(sessionInfo, pathName); | 358 | String pathIdVer = this.getPresentPathIntoProfile(sessionInfo, pathName); |
359 | Object valueNew = getValueFromKvProto(tsKvProto.getKv()); | 359 | Object valueNew = getValueFromKvProto(tsKvProto.getKv()); |
360 | - if ((FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.VERSION).equals(pathName) | 360 | + if ((OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.VERSION).equals(pathName) |
361 | && (!valueNew.equals(lwM2MClient.getFwUpdate().getCurrentVersion()))) | 361 | && (!valueNew.equals(lwM2MClient.getFwUpdate().getCurrentVersion()))) |
362 | - || (FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.TITLE).equals(pathName) | 362 | + || (OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.TITLE).equals(pathName) |
363 | && (!valueNew.equals(lwM2MClient.getFwUpdate().getCurrentTitle())))) { | 363 | && (!valueNew.equals(lwM2MClient.getFwUpdate().getCurrentTitle())))) { |
364 | this.getInfoFirmwareUpdate(lwM2MClient); | 364 | this.getInfoFirmwareUpdate(lwM2MClient); |
365 | - } else if ((FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.VERSION).equals(pathName) | 365 | + } else if ((OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.VERSION).equals(pathName) |
366 | && (!valueNew.equals(lwM2MClient.getSwUpdate().getCurrentVersion()))) | 366 | && (!valueNew.equals(lwM2MClient.getSwUpdate().getCurrentVersion()))) |
367 | - || (FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.TITLE).equals(pathName) | 367 | + || (OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.TITLE).equals(pathName) |
368 | && (!valueNew.equals(lwM2MClient.getSwUpdate().getCurrentTitle())))) { | 368 | && (!valueNew.equals(lwM2MClient.getSwUpdate().getCurrentTitle())))) { |
369 | this.getInfoSoftwareUpdate(lwM2MClient); | 369 | this.getInfoSoftwareUpdate(lwM2MClient); |
370 | } | 370 | } |
@@ -391,7 +391,7 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -391,7 +391,7 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
391 | msg.getSharedUpdatedList().forEach(tsKvProto -> { | 391 | msg.getSharedUpdatedList().forEach(tsKvProto -> { |
392 | String pathName = tsKvProto.getKv().getKey(); | 392 | String pathName = tsKvProto.getKv().getKey(); |
393 | Object valueNew = getValueFromKvProto(tsKvProto.getKv()); | 393 | Object valueNew = getValueFromKvProto(tsKvProto.getKv()); |
394 | - if (FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.VERSION).equals(pathName) && !valueNew.equals(lwM2MClient.getFwUpdate().getCurrentVersion())) { | 394 | + if (OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.VERSION).equals(pathName) && !valueNew.equals(lwM2MClient.getFwUpdate().getCurrentVersion())) { |
395 | lwM2MClient.getFwUpdate().setCurrentVersion((String) valueNew); | 395 | lwM2MClient.getFwUpdate().setCurrentVersion((String) valueNew); |
396 | } | 396 | } |
397 | }); | 397 | }); |
@@ -1344,18 +1344,18 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -1344,18 +1344,18 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
1344 | if (lwM2MClient.getRegistration().getSupportedVersion(FW_ID) != null) { | 1344 | if (lwM2MClient.getRegistration().getSupportedVersion(FW_ID) != null) { |
1345 | SessionInfoProto sessionInfo = this.getSessionInfoOrCloseSession(lwM2MClient); | 1345 | SessionInfoProto sessionInfo = this.getSessionInfoOrCloseSession(lwM2MClient); |
1346 | if (sessionInfo != null) { | 1346 | if (sessionInfo != null) { |
1347 | - transportService.process(sessionInfo, createFirmwareRequestMsg(sessionInfo, FirmwareType.FIRMWARE.name()), | 1347 | + transportService.process(sessionInfo, createOtaPackageRequestMsg(sessionInfo, OtaPackageType.FIRMWARE.name()), |
1348 | new TransportServiceCallback<>() { | 1348 | new TransportServiceCallback<>() { |
1349 | @Override | 1349 | @Override |
1350 | - public void onSuccess(TransportProtos.GetFirmwareResponseMsg response) { | 1350 | + public void onSuccess(TransportProtos.GetOtaPackageResponseMsg response) { |
1351 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus()) | 1351 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus()) |
1352 | - && response.getType().equals(FirmwareType.FIRMWARE.name())) { | 1352 | + && response.getType().equals(OtaPackageType.FIRMWARE.name())) { |
1353 | lwM2MClient.getFwUpdate().setCurrentVersion(response.getVersion()); | 1353 | lwM2MClient.getFwUpdate().setCurrentVersion(response.getVersion()); |
1354 | lwM2MClient.getFwUpdate().setCurrentTitle(response.getTitle()); | 1354 | lwM2MClient.getFwUpdate().setCurrentTitle(response.getTitle()); |
1355 | - lwM2MClient.getFwUpdate().setCurrentId(new FirmwareId(new UUID(response.getFirmwareIdMSB(), response.getFirmwareIdLSB())).getId()); | 1355 | + lwM2MClient.getFwUpdate().setCurrentId(new OtaPackageId(new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB())).getId()); |
1356 | lwM2MClient.getFwUpdate().sendReadObserveInfo(lwM2mTransportRequest); | 1356 | lwM2MClient.getFwUpdate().sendReadObserveInfo(lwM2mTransportRequest); |
1357 | } else { | 1357 | } else { |
1358 | - log.trace("Firmware [{}] [{}]", lwM2MClient.getDeviceName(), response.getResponseStatus().toString()); | 1358 | + log.trace("OtaPackage [{}] [{}]", lwM2MClient.getDeviceName(), response.getResponseStatus().toString()); |
1359 | } | 1359 | } |
1360 | } | 1360 | } |
1361 | 1361 | ||
@@ -1373,15 +1373,15 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -1373,15 +1373,15 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
1373 | SessionInfoProto sessionInfo = this.getSessionInfoOrCloseSession(lwM2MClient); | 1373 | SessionInfoProto sessionInfo = this.getSessionInfoOrCloseSession(lwM2MClient); |
1374 | if (sessionInfo != null) { | 1374 | if (sessionInfo != null) { |
1375 | DefaultLwM2MTransportMsgHandler serviceImpl = this; | 1375 | DefaultLwM2MTransportMsgHandler serviceImpl = this; |
1376 | - transportService.process(sessionInfo, createFirmwareRequestMsg(sessionInfo, FirmwareType.SOFTWARE.name()), | 1376 | + transportService.process(sessionInfo, createOtaPackageRequestMsg(sessionInfo, OtaPackageType.SOFTWARE.name()), |
1377 | new TransportServiceCallback<>() { | 1377 | new TransportServiceCallback<>() { |
1378 | @Override | 1378 | @Override |
1379 | - public void onSuccess(TransportProtos.GetFirmwareResponseMsg response) { | 1379 | + public void onSuccess(TransportProtos.GetOtaPackageResponseMsg response) { |
1380 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus()) | 1380 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus()) |
1381 | - && response.getType().equals(FirmwareType.SOFTWARE.name())) { | 1381 | + && response.getType().equals(OtaPackageType.SOFTWARE.name())) { |
1382 | lwM2MClient.getSwUpdate().setCurrentVersion(response.getVersion()); | 1382 | lwM2MClient.getSwUpdate().setCurrentVersion(response.getVersion()); |
1383 | lwM2MClient.getSwUpdate().setCurrentTitle(response.getTitle()); | 1383 | lwM2MClient.getSwUpdate().setCurrentTitle(response.getTitle()); |
1384 | - lwM2MClient.getSwUpdate().setCurrentId(new FirmwareId(new UUID(response.getFirmwareIdMSB(), response.getFirmwareIdLSB())).getId()); | 1384 | + lwM2MClient.getSwUpdate().setCurrentId(new OtaPackageId(new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB())).getId()); |
1385 | lwM2MClient.getSwUpdate().sendReadObserveInfo(lwM2mTransportRequest); | 1385 | lwM2MClient.getSwUpdate().sendReadObserveInfo(lwM2mTransportRequest); |
1386 | } else { | 1386 | } else { |
1387 | log.trace("Software [{}] [{}]", lwM2MClient.getDeviceName(), response.getResponseStatus().toString()); | 1387 | log.trace("Software [{}] [{}]", lwM2MClient.getDeviceName(), response.getResponseStatus().toString()); |
@@ -1397,8 +1397,8 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | @@ -1397,8 +1397,8 @@ public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler | ||
1397 | } | 1397 | } |
1398 | } | 1398 | } |
1399 | 1399 | ||
1400 | - private TransportProtos.GetFirmwareRequestMsg createFirmwareRequestMsg(SessionInfoProto sessionInfo, String nameFwSW) { | ||
1401 | - return TransportProtos.GetFirmwareRequestMsg.newBuilder() | 1400 | + private TransportProtos.GetOtaPackageRequestMsg createOtaPackageRequestMsg(SessionInfoProto sessionInfo, String nameFwSW) { |
1401 | + return TransportProtos.GetOtaPackageRequestMsg.newBuilder() | ||
1402 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) | 1402 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) |
1403 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) | 1403 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) |
1404 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) | 1404 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) |
@@ -71,8 +71,8 @@ import java.util.stream.Collectors; | @@ -71,8 +71,8 @@ import java.util.stream.Collectors; | ||
71 | import static org.eclipse.californium.core.coap.CoAP.ResponseCode.CONTENT; | 71 | import static org.eclipse.californium.core.coap.CoAP.ResponseCode.CONTENT; |
72 | import static org.eclipse.leshan.core.ResponseCode.BAD_REQUEST; | 72 | import static org.eclipse.leshan.core.ResponseCode.BAD_REQUEST; |
73 | import static org.eclipse.leshan.core.ResponseCode.NOT_FOUND; | 73 | import static org.eclipse.leshan.core.ResponseCode.NOT_FOUND; |
74 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.DOWNLOADED; | ||
75 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.FAILED; | 74 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.DOWNLOADED; |
75 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.FAILED; | ||
76 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportServerHelper.getContentFormatByResourceModelType; | 76 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportServerHelper.getContentFormatByResourceModelType; |
77 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.DEFAULT_TIMEOUT; | 77 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.DEFAULT_TIMEOUT; |
78 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_PACKAGE_ID; | 78 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_PACKAGE_ID; |
@@ -43,10 +43,10 @@ import org.eclipse.leshan.server.registration.Registration; | @@ -43,10 +43,10 @@ import org.eclipse.leshan.server.registration.Registration; | ||
43 | import org.nustaq.serialization.FSTConfiguration; | 43 | import org.nustaq.serialization.FSTConfiguration; |
44 | import org.thingsboard.server.common.data.DeviceProfile; | 44 | import org.thingsboard.server.common.data.DeviceProfile; |
45 | import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration; | 45 | import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration; |
46 | -import org.thingsboard.server.common.data.firmware.FirmwareKey; | ||
47 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
48 | -import org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus; | ||
49 | -import org.thingsboard.server.common.data.firmware.FirmwareUtil; | 46 | +import org.thingsboard.server.common.data.ota.OtaPackageKey; |
47 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
48 | +import org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus; | ||
49 | +import org.thingsboard.server.common.data.ota.OtaPackageUtil; | ||
50 | import org.thingsboard.server.common.data.id.TenantId; | 50 | import org.thingsboard.server.common.data.id.TenantId; |
51 | import org.thingsboard.server.common.transport.TransportServiceCallback; | 51 | import org.thingsboard.server.common.transport.TransportServiceCallback; |
52 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; | 52 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; |
@@ -77,12 +77,12 @@ import static org.eclipse.leshan.core.model.ResourceModel.Type.OBJLNK; | @@ -77,12 +77,12 @@ import static org.eclipse.leshan.core.model.ResourceModel.Type.OBJLNK; | ||
77 | import static org.eclipse.leshan.core.model.ResourceModel.Type.OPAQUE; | 77 | import static org.eclipse.leshan.core.model.ResourceModel.Type.OPAQUE; |
78 | import static org.eclipse.leshan.core.model.ResourceModel.Type.STRING; | 78 | import static org.eclipse.leshan.core.model.ResourceModel.Type.STRING; |
79 | import static org.eclipse.leshan.core.model.ResourceModel.Type.TIME; | 79 | import static org.eclipse.leshan.core.model.ResourceModel.Type.TIME; |
80 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.DOWNLOADED; | ||
81 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.DOWNLOADING; | ||
82 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.FAILED; | ||
83 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.UPDATED; | ||
84 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.UPDATING; | ||
85 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.VERIFIED; | 80 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.DOWNLOADED; |
81 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.DOWNLOADING; | ||
82 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.FAILED; | ||
83 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.UPDATED; | ||
84 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.UPDATING; | ||
85 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.VERIFIED; | ||
86 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_KEY; | 86 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_KEY; |
87 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_PATH; | 87 | import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPARATOR_PATH; |
88 | 88 | ||
@@ -139,7 +139,7 @@ public class LwM2mTransportUtil { | @@ -139,7 +139,7 @@ public class LwM2mTransportUtil { | ||
139 | public static final String ERROR_KEY = "error"; | 139 | public static final String ERROR_KEY = "error"; |
140 | public static final String METHOD_KEY = "methodName"; | 140 | public static final String METHOD_KEY = "methodName"; |
141 | 141 | ||
142 | - // FirmWare | 142 | + // Firmware |
143 | public static final String FW_UPDATE = "Firmware update"; | 143 | public static final String FW_UPDATE = "Firmware update"; |
144 | public static final Integer FW_ID = 5; | 144 | public static final Integer FW_ID = 5; |
145 | // Package W | 145 | // Package W |
@@ -155,7 +155,7 @@ public class LwM2mTransportUtil { | @@ -155,7 +155,7 @@ public class LwM2mTransportUtil { | ||
155 | // Update E | 155 | // Update E |
156 | public static final String FW_UPDATE_ID = "/5/0/2"; | 156 | public static final String FW_UPDATE_ID = "/5/0/2"; |
157 | 157 | ||
158 | - // SoftWare | 158 | + // Software |
159 | public static final String SW_UPDATE = "Software update"; | 159 | public static final String SW_UPDATE = "Software update"; |
160 | public static final Integer SW_ID = 9; | 160 | public static final Integer SW_ID = 9; |
161 | // Package W | 161 | // Package W |
@@ -354,7 +354,7 @@ public class LwM2mTransportUtil { | @@ -354,7 +354,7 @@ public class LwM2mTransportUtil { | ||
354 | * FirmwareUpdateStatus { | 354 | * FirmwareUpdateStatus { |
355 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED | 355 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED |
356 | */ | 356 | */ |
357 | - public static FirmwareUpdateStatus EqualsFwSateToFirmwareUpdateStatus(StateFw stateFw, UpdateResultFw updateResultFw) { | 357 | + public static OtaPackageUpdateStatus EqualsFwSateToFirmwareUpdateStatus(StateFw stateFw, UpdateResultFw updateResultFw) { |
358 | switch (updateResultFw) { | 358 | switch (updateResultFw) { |
359 | case INITIAL: | 359 | case INITIAL: |
360 | switch (stateFw) { | 360 | switch (stateFw) { |
@@ -500,7 +500,7 @@ public class LwM2mTransportUtil { | @@ -500,7 +500,7 @@ public class LwM2mTransportUtil { | ||
500 | * FirmwareUpdateStatus { | 500 | * FirmwareUpdateStatus { |
501 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED | 501 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED |
502 | */ | 502 | */ |
503 | - public static FirmwareUpdateStatus EqualsSwSateToFirmwareUpdateStatus(UpdateStateSw updateStateSw, UpdateResultSw updateResultSw) { | 503 | + public static OtaPackageUpdateStatus EqualsSwSateToFirmwareUpdateStatus(UpdateStateSw updateStateSw, UpdateResultSw updateResultSw) { |
504 | switch (updateResultSw) { | 504 | switch (updateResultSw) { |
505 | case INITIAL: | 505 | case INITIAL: |
506 | switch (updateStateSw) { | 506 | switch (updateStateSw) { |
@@ -932,15 +932,15 @@ public class LwM2mTransportUtil { | @@ -932,15 +932,15 @@ public class LwM2mTransportUtil { | ||
932 | } | 932 | } |
933 | 933 | ||
934 | public static boolean isFwSwWords (String pathName) { | 934 | public static boolean isFwSwWords (String pathName) { |
935 | - return FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.VERSION).equals(pathName) | ||
936 | - || FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.TITLE).equals(pathName) | ||
937 | - || FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.CHECKSUM).equals(pathName) | ||
938 | - || FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
939 | - || FirmwareUtil.getAttributeKey(FirmwareType.FIRMWARE, FirmwareKey.SIZE).equals(pathName) | ||
940 | - || FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.VERSION).equals(pathName) | ||
941 | - || FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.TITLE).equals(pathName) | ||
942 | - || FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.CHECKSUM).equals(pathName) | ||
943 | - || FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
944 | - || FirmwareUtil.getAttributeKey(FirmwareType.SOFTWARE, FirmwareKey.SIZE).equals(pathName); | 935 | + return OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.VERSION).equals(pathName) |
936 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.TITLE).equals(pathName) | ||
937 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.CHECKSUM).equals(pathName) | ||
938 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
939 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.SIZE).equals(pathName) | ||
940 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.VERSION).equals(pathName) | ||
941 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.TITLE).equals(pathName) | ||
942 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.CHECKSUM).equals(pathName) | ||
943 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
944 | + || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.SIZE).equals(pathName); | ||
945 | } | 945 | } |
946 | } | 946 | } |
@@ -31,7 +31,7 @@ import org.eclipse.leshan.server.registration.Registration; | @@ -31,7 +31,7 @@ import org.eclipse.leshan.server.registration.Registration; | ||
31 | import org.eclipse.leshan.server.security.SecurityInfo; | 31 | import org.eclipse.leshan.server.security.SecurityInfo; |
32 | import org.thingsboard.server.common.data.Device; | 32 | import org.thingsboard.server.common.data.Device; |
33 | import org.thingsboard.server.common.data.DeviceProfile; | 33 | import org.thingsboard.server.common.data.DeviceProfile; |
34 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 34 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
35 | import org.thingsboard.server.common.transport.auth.ValidateDeviceCredentialsResponse; | 35 | import org.thingsboard.server.common.transport.auth.ValidateDeviceCredentialsResponse; |
36 | import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto; | 36 | import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto; |
37 | import org.thingsboard.server.gen.transport.TransportProtos.TsKvProto; | 37 | import org.thingsboard.server.gen.transport.TransportProtos.TsKvProto; |
@@ -120,8 +120,8 @@ public class LwM2mClient implements Cloneable { | @@ -120,8 +120,8 @@ public class LwM2mClient implements Cloneable { | ||
120 | this.init = false; | 120 | this.init = false; |
121 | this.queuedRequests = new ConcurrentLinkedQueue<>(); | 121 | this.queuedRequests = new ConcurrentLinkedQueue<>(); |
122 | 122 | ||
123 | - this.fwUpdate = new LwM2mFwSwUpdate(this, FirmwareType.FIRMWARE); | ||
124 | - this.swUpdate = new LwM2mFwSwUpdate(this, FirmwareType.SOFTWARE); | 123 | + this.fwUpdate = new LwM2mFwSwUpdate(this, OtaPackageType.FIRMWARE); |
124 | + this.swUpdate = new LwM2mFwSwUpdate(this, OtaPackageType.SOFTWARE); | ||
125 | if (this.credentials != null && this.credentials.hasDeviceInfo()) { | 125 | if (this.credentials != null && this.credentials.hasDeviceInfo()) { |
126 | this.session = createSession(nodeId, sessionId, credentials); | 126 | this.session = createSession(nodeId, sessionId, credentials); |
127 | this.deviceId = new UUID(session.getDeviceIdMSB(), session.getDeviceIdLSB()); | 127 | this.deviceId = new UUID(session.getDeviceIdMSB(), session.getDeviceIdLSB()); |
@@ -20,8 +20,8 @@ import lombok.Setter; | @@ -20,8 +20,8 @@ import lombok.Setter; | ||
20 | import lombok.extern.slf4j.Slf4j; | 20 | import lombok.extern.slf4j.Slf4j; |
21 | import org.apache.commons.lang3.StringUtils; | 21 | import org.apache.commons.lang3.StringUtils; |
22 | import org.eclipse.leshan.core.request.ContentFormat; | 22 | import org.eclipse.leshan.core.request.ContentFormat; |
23 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
24 | -import org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus; | 23 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
24 | +import org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus; | ||
25 | import org.thingsboard.server.gen.transport.TransportProtos; | 25 | import org.thingsboard.server.gen.transport.TransportProtos; |
26 | import org.thingsboard.server.transport.lwm2m.server.DefaultLwM2MTransportMsgHandler; | 26 | import org.thingsboard.server.transport.lwm2m.server.DefaultLwM2MTransportMsgHandler; |
27 | import org.thingsboard.server.transport.lwm2m.server.LwM2mTransportRequest; | 27 | import org.thingsboard.server.transport.lwm2m.server.LwM2mTransportRequest; |
@@ -32,11 +32,11 @@ import java.util.List; | @@ -32,11 +32,11 @@ import java.util.List; | ||
32 | import java.util.UUID; | 32 | import java.util.UUID; |
33 | import java.util.concurrent.CopyOnWriteArrayList; | 33 | import java.util.concurrent.CopyOnWriteArrayList; |
34 | 34 | ||
35 | -import static org.thingsboard.server.common.data.firmware.FirmwareKey.STATE; | ||
36 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.FIRMWARE; | ||
37 | -import static org.thingsboard.server.common.data.firmware.FirmwareType.SOFTWARE; | ||
38 | -import static org.thingsboard.server.common.data.firmware.FirmwareUpdateStatus.UPDATING; | ||
39 | -import static org.thingsboard.server.common.data.firmware.FirmwareUtil.getAttributeKey; | 35 | +import static org.thingsboard.server.common.data.ota.OtaPackageKey.STATE; |
36 | +import static org.thingsboard.server.common.data.ota.OtaPackageType.FIRMWARE; | ||
37 | +import static org.thingsboard.server.common.data.ota.OtaPackageType.SOFTWARE; | ||
38 | +import static org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus.UPDATING; | ||
39 | +import static org.thingsboard.server.common.data.ota.OtaPackageUtil.getAttributeKey; | ||
40 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_NAME_ID; | 40 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_NAME_ID; |
41 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_PACKAGE_ID; | 41 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_PACKAGE_ID; |
42 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_RESULT_ID; | 42 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportUtil.FW_RESULT_ID; |
@@ -97,14 +97,14 @@ public class LwM2mFwSwUpdate { | @@ -97,14 +97,14 @@ public class LwM2mFwSwUpdate { | ||
97 | @Getter | 97 | @Getter |
98 | @Setter | 98 | @Setter |
99 | private volatile boolean infoFwSwUpdate = false; | 99 | private volatile boolean infoFwSwUpdate = false; |
100 | - private final FirmwareType type; | 100 | + private final OtaPackageType type; |
101 | @Getter | 101 | @Getter |
102 | LwM2mClient lwM2MClient; | 102 | LwM2mClient lwM2MClient; |
103 | @Getter | 103 | @Getter |
104 | @Setter | 104 | @Setter |
105 | private final List<String> pendingInfoRequestsStart; | 105 | private final List<String> pendingInfoRequestsStart; |
106 | 106 | ||
107 | - public LwM2mFwSwUpdate(LwM2mClient lwM2MClient, FirmwareType type) { | 107 | + public LwM2mFwSwUpdate(LwM2mClient lwM2MClient, OtaPackageType type) { |
108 | this.lwM2MClient = lwM2MClient; | 108 | this.lwM2MClient = lwM2MClient; |
109 | this.pendingInfoRequestsStart = new CopyOnWriteArrayList<>(); | 109 | this.pendingInfoRequestsStart = new CopyOnWriteArrayList<>(); |
110 | this.type = type; | 110 | this.type = type; |
@@ -139,7 +139,7 @@ public class LwM2mFwSwUpdate { | @@ -139,7 +139,7 @@ public class LwM2mFwSwUpdate { | ||
139 | } | 139 | } |
140 | if (this.pendingInfoRequestsStart.size() == 0) { | 140 | if (this.pendingInfoRequestsStart.size() == 0) { |
141 | this.infoFwSwUpdate = false; | 141 | this.infoFwSwUpdate = false; |
142 | - if (!FirmwareUpdateStatus.DOWNLOADING.name().equals(this.stateUpdate)) { | 142 | + if (!OtaPackageUpdateStatus.DOWNLOADING.name().equals(this.stateUpdate)) { |
143 | boolean conditionalStart = this.type.equals(FIRMWARE) ? this.conditionalFwUpdateStart() : | 143 | boolean conditionalStart = this.type.equals(FIRMWARE) ? this.conditionalFwUpdateStart() : |
144 | this.conditionalSwUpdateStart(); | 144 | this.conditionalSwUpdateStart(); |
145 | if (conditionalStart) { | 145 | if (conditionalStart) { |
@@ -154,12 +154,12 @@ public class LwM2mFwSwUpdate { | @@ -154,12 +154,12 @@ public class LwM2mFwSwUpdate { | ||
154 | * before operation Write: fw_state = DOWNLOADING | 154 | * before operation Write: fw_state = DOWNLOADING |
155 | */ | 155 | */ |
156 | private void writeFwSwWare(DefaultLwM2MTransportMsgHandler handler, LwM2mTransportRequest request) { | 156 | private void writeFwSwWare(DefaultLwM2MTransportMsgHandler handler, LwM2mTransportRequest request) { |
157 | - this.stateUpdate = FirmwareUpdateStatus.DOWNLOADING.name(); | 157 | + this.stateUpdate = OtaPackageUpdateStatus.DOWNLOADING.name(); |
158 | // this.observeStateUpdate(); | 158 | // this.observeStateUpdate(); |
159 | this.sendLogs(handler, WRITE_REPLACE.name(), LOG_LW2M_INFO, null); | 159 | this.sendLogs(handler, WRITE_REPLACE.name(), LOG_LW2M_INFO, null); |
160 | int chunkSize = 0; | 160 | int chunkSize = 0; |
161 | int chunk = 0; | 161 | int chunk = 0; |
162 | - byte[] firmwareChunk = handler.firmwareDataCache.get(this.currentId.toString(), chunkSize, chunk); | 162 | + byte[] firmwareChunk = handler.otaPackageDataCache.get(this.currentId.toString(), chunkSize, chunk); |
163 | String targetIdVer = convertPathFromObjectIdToIdVer(this.pathPackageId, this.lwM2MClient.getRegistration()); | 163 | String targetIdVer = convertPathFromObjectIdToIdVer(this.pathPackageId, this.lwM2MClient.getRegistration()); |
164 | request.sendAllRequest(lwM2MClient.getRegistration(), targetIdVer, WRITE_REPLACE, ContentFormat.OPAQUE.getName(), | 164 | request.sendAllRequest(lwM2MClient.getRegistration(), targetIdVer, WRITE_REPLACE, ContentFormat.OPAQUE.getName(), |
165 | firmwareChunk, handler.config.getTimeout(), null); | 165 | firmwareChunk, handler.config.getTimeout(), null); |
@@ -287,10 +287,10 @@ public class LwM2mFwSwUpdate { | @@ -287,10 +287,10 @@ public class LwM2mFwSwUpdate { | ||
287 | LwM2mTransportUtil.UpdateResultSw.fromUpdateResultSwByCode(updateResult.intValue()).type; | 287 | LwM2mTransportUtil.UpdateResultSw.fromUpdateResultSwByCode(updateResult.intValue()).type; |
288 | String key = splitCamelCaseString((String) this.lwM2MClient.getResourceNameByRezId(null, this.pathResultId)); | 288 | String key = splitCamelCaseString((String) this.lwM2MClient.getResourceNameByRezId(null, this.pathResultId)); |
289 | if (success) { | 289 | if (success) { |
290 | - this.stateUpdate = FirmwareUpdateStatus.UPDATED.name(); | 290 | + this.stateUpdate = OtaPackageUpdateStatus.UPDATED.name(); |
291 | this.sendLogs(handler, EXECUTE.name(), LOG_LW2M_INFO, null); | 291 | this.sendLogs(handler, EXECUTE.name(), LOG_LW2M_INFO, null); |
292 | } else { | 292 | } else { |
293 | - this.stateUpdate = FirmwareUpdateStatus.FAILED.name(); | 293 | + this.stateUpdate = OtaPackageUpdateStatus.FAILED.name(); |
294 | this.sendLogs(handler, EXECUTE.name(), LOG_LW2M_ERROR, value); | 294 | this.sendLogs(handler, EXECUTE.name(), LOG_LW2M_ERROR, value); |
295 | } | 295 | } |
296 | handler.helper.sendParametersOnThingsboardTelemetry( | 296 | handler.helper.sendParametersOnThingsboardTelemetry( |
@@ -47,8 +47,8 @@ import org.thingsboard.server.common.data.DeviceProfile; | @@ -47,8 +47,8 @@ import org.thingsboard.server.common.data.DeviceProfile; | ||
47 | import org.thingsboard.server.common.data.DeviceTransportType; | 47 | import org.thingsboard.server.common.data.DeviceTransportType; |
48 | import org.thingsboard.server.common.data.TransportPayloadType; | 48 | import org.thingsboard.server.common.data.TransportPayloadType; |
49 | import org.thingsboard.server.common.data.device.profile.MqttTopics; | 49 | import org.thingsboard.server.common.data.device.profile.MqttTopics; |
50 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
51 | -import org.thingsboard.server.common.data.id.FirmwareId; | 50 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
51 | +import org.thingsboard.server.common.data.id.OtaPackageId; | ||
52 | import org.thingsboard.server.common.msg.EncryptionUtil; | 52 | import org.thingsboard.server.common.msg.EncryptionUtil; |
53 | import org.thingsboard.server.common.msg.tools.TbRateLimitsException; | 53 | import org.thingsboard.server.common.msg.tools.TbRateLimitsException; |
54 | import org.thingsboard.server.common.transport.SessionMsgListener; | 54 | import org.thingsboard.server.common.transport.SessionMsgListener; |
@@ -126,8 +126,8 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -126,8 +126,8 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
126 | private volatile InetSocketAddress address; | 126 | private volatile InetSocketAddress address; |
127 | private volatile GatewaySessionHandler gatewaySessionHandler; | 127 | private volatile GatewaySessionHandler gatewaySessionHandler; |
128 | 128 | ||
129 | - private final ConcurrentHashMap<String, String> fwSessions; | ||
130 | - private final ConcurrentHashMap<String, Integer> fwChunkSizes; | 129 | + private final ConcurrentHashMap<String, String> otaPackSessions; |
130 | + private final ConcurrentHashMap<String, Integer> chunkSizes; | ||
131 | 131 | ||
132 | MqttTransportHandler(MqttTransportContext context, SslHandler sslHandler) { | 132 | MqttTransportHandler(MqttTransportContext context, SslHandler sslHandler) { |
133 | this.sessionId = UUID.randomUUID(); | 133 | this.sessionId = UUID.randomUUID(); |
@@ -137,8 +137,8 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -137,8 +137,8 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
137 | this.sslHandler = sslHandler; | 137 | this.sslHandler = sslHandler; |
138 | this.mqttQoSMap = new ConcurrentHashMap<>(); | 138 | this.mqttQoSMap = new ConcurrentHashMap<>(); |
139 | this.deviceSessionCtx = new DeviceSessionCtx(sessionId, mqttQoSMap, context); | 139 | this.deviceSessionCtx = new DeviceSessionCtx(sessionId, mqttQoSMap, context); |
140 | - this.fwSessions = new ConcurrentHashMap<>(); | ||
141 | - this.fwChunkSizes = new ConcurrentHashMap<>(); | 140 | + this.otaPackSessions = new ConcurrentHashMap<>(); |
141 | + this.chunkSizes = new ConcurrentHashMap<>(); | ||
142 | } | 142 | } |
143 | 143 | ||
144 | @Override | 144 | @Override |
@@ -320,9 +320,9 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -320,9 +320,9 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
320 | TransportProtos.ClaimDeviceMsg claimDeviceMsg = payloadAdaptor.convertToClaimDevice(deviceSessionCtx, mqttMsg); | 320 | TransportProtos.ClaimDeviceMsg claimDeviceMsg = payloadAdaptor.convertToClaimDevice(deviceSessionCtx, mqttMsg); |
321 | transportService.process(deviceSessionCtx.getSessionInfo(), claimDeviceMsg, getPubAckCallback(ctx, msgId, claimDeviceMsg)); | 321 | transportService.process(deviceSessionCtx.getSessionInfo(), claimDeviceMsg, getPubAckCallback(ctx, msgId, claimDeviceMsg)); |
322 | } else if ((fwMatcher = FW_REQUEST_PATTERN.matcher(topicName)).find()) { | 322 | } else if ((fwMatcher = FW_REQUEST_PATTERN.matcher(topicName)).find()) { |
323 | - getFirmwareCallback(ctx, mqttMsg, msgId, fwMatcher, FirmwareType.FIRMWARE); | 323 | + getOtaPackageCallback(ctx, mqttMsg, msgId, fwMatcher, OtaPackageType.FIRMWARE); |
324 | } else if ((fwMatcher = SW_REQUEST_PATTERN.matcher(topicName)).find()) { | 324 | } else if ((fwMatcher = SW_REQUEST_PATTERN.matcher(topicName)).find()) { |
325 | - getFirmwareCallback(ctx, mqttMsg, msgId, fwMatcher, FirmwareType.SOFTWARE); | 325 | + getOtaPackageCallback(ctx, mqttMsg, msgId, fwMatcher, OtaPackageType.SOFTWARE); |
326 | } else { | 326 | } else { |
327 | transportService.reportActivity(deviceSessionCtx.getSessionInfo()); | 327 | transportService.reportActivity(deviceSessionCtx.getSessionInfo()); |
328 | ack(ctx, msgId); | 328 | ack(ctx, msgId); |
@@ -334,38 +334,38 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -334,38 +334,38 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
334 | } | 334 | } |
335 | } | 335 | } |
336 | 336 | ||
337 | - private void getFirmwareCallback(ChannelHandlerContext ctx, MqttPublishMessage mqttMsg, int msgId, Matcher fwMatcher, FirmwareType type) { | 337 | + private void getOtaPackageCallback(ChannelHandlerContext ctx, MqttPublishMessage mqttMsg, int msgId, Matcher fwMatcher, OtaPackageType type) { |
338 | String payload = mqttMsg.content().toString(UTF8); | 338 | String payload = mqttMsg.content().toString(UTF8); |
339 | int chunkSize = StringUtils.isNotEmpty(payload) ? Integer.parseInt(payload) : 0; | 339 | int chunkSize = StringUtils.isNotEmpty(payload) ? Integer.parseInt(payload) : 0; |
340 | String requestId = fwMatcher.group("requestId"); | 340 | String requestId = fwMatcher.group("requestId"); |
341 | int chunk = Integer.parseInt(fwMatcher.group("chunk")); | 341 | int chunk = Integer.parseInt(fwMatcher.group("chunk")); |
342 | 342 | ||
343 | if (chunkSize > 0) { | 343 | if (chunkSize > 0) { |
344 | - this.fwChunkSizes.put(requestId, chunkSize); | 344 | + this.chunkSizes.put(requestId, chunkSize); |
345 | } else { | 345 | } else { |
346 | - chunkSize = fwChunkSizes.getOrDefault(requestId, 0); | 346 | + chunkSize = chunkSizes.getOrDefault(requestId, 0); |
347 | } | 347 | } |
348 | 348 | ||
349 | if (chunkSize > context.getMaxPayloadSize()) { | 349 | if (chunkSize > context.getMaxPayloadSize()) { |
350 | - sendFirmwareError(ctx, PAYLOAD_TOO_LARGE); | 350 | + sendOtaPackageError(ctx, PAYLOAD_TOO_LARGE); |
351 | return; | 351 | return; |
352 | } | 352 | } |
353 | 353 | ||
354 | - String firmwareId = fwSessions.get(requestId); | 354 | + String otaPackageId = otaPackSessions.get(requestId); |
355 | 355 | ||
356 | - if (firmwareId != null) { | ||
357 | - sendFirmware(ctx, mqttMsg.variableHeader().packetId(), firmwareId, requestId, chunkSize, chunk, type); | 356 | + if (otaPackageId != null) { |
357 | + sendOtaPackage(ctx, mqttMsg.variableHeader().packetId(), otaPackageId, requestId, chunkSize, chunk, type); | ||
358 | } else { | 358 | } else { |
359 | TransportProtos.SessionInfoProto sessionInfo = deviceSessionCtx.getSessionInfo(); | 359 | TransportProtos.SessionInfoProto sessionInfo = deviceSessionCtx.getSessionInfo(); |
360 | - TransportProtos.GetFirmwareRequestMsg getFirmwareRequestMsg = TransportProtos.GetFirmwareRequestMsg.newBuilder() | 360 | + TransportProtos.GetOtaPackageRequestMsg getOtaPackageRequestMsg = TransportProtos.GetOtaPackageRequestMsg.newBuilder() |
361 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) | 361 | .setDeviceIdMSB(sessionInfo.getDeviceIdMSB()) |
362 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) | 362 | .setDeviceIdLSB(sessionInfo.getDeviceIdLSB()) |
363 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) | 363 | .setTenantIdMSB(sessionInfo.getTenantIdMSB()) |
364 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) | 364 | .setTenantIdLSB(sessionInfo.getTenantIdLSB()) |
365 | .setType(type.name()) | 365 | .setType(type.name()) |
366 | .build(); | 366 | .build(); |
367 | - transportService.process(deviceSessionCtx.getSessionInfo(), getFirmwareRequestMsg, | ||
368 | - new FirmwareCallback(ctx, msgId, getFirmwareRequestMsg, requestId, chunkSize, chunk)); | 367 | + transportService.process(deviceSessionCtx.getSessionInfo(), getOtaPackageRequestMsg, |
368 | + new OtaPackageCallback(ctx, msgId, getOtaPackageRequestMsg, requestId, chunkSize, chunk)); | ||
369 | } | 369 | } |
370 | } | 370 | } |
371 | 371 | ||
@@ -425,15 +425,15 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -425,15 +425,15 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
425 | } | 425 | } |
426 | } | 426 | } |
427 | 427 | ||
428 | - private class FirmwareCallback implements TransportServiceCallback<TransportProtos.GetFirmwareResponseMsg> { | 428 | + private class OtaPackageCallback implements TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> { |
429 | private final ChannelHandlerContext ctx; | 429 | private final ChannelHandlerContext ctx; |
430 | private final int msgId; | 430 | private final int msgId; |
431 | - private final TransportProtos.GetFirmwareRequestMsg msg; | 431 | + private final TransportProtos.GetOtaPackageRequestMsg msg; |
432 | private final String requestId; | 432 | private final String requestId; |
433 | private final int chunkSize; | 433 | private final int chunkSize; |
434 | private final int chunk; | 434 | private final int chunk; |
435 | 435 | ||
436 | - FirmwareCallback(ChannelHandlerContext ctx, int msgId, TransportProtos.GetFirmwareRequestMsg msg, String requestId, int chunkSize, int chunk) { | 436 | + OtaPackageCallback(ChannelHandlerContext ctx, int msgId, TransportProtos.GetOtaPackageRequestMsg msg, String requestId, int chunkSize, int chunk) { |
437 | this.ctx = ctx; | 437 | this.ctx = ctx; |
438 | this.msgId = msgId; | 438 | this.msgId = msgId; |
439 | this.msg = msg; | 439 | this.msg = msg; |
@@ -443,13 +443,13 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -443,13 +443,13 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
443 | } | 443 | } |
444 | 444 | ||
445 | @Override | 445 | @Override |
446 | - public void onSuccess(TransportProtos.GetFirmwareResponseMsg response) { | 446 | + public void onSuccess(TransportProtos.GetOtaPackageResponseMsg response) { |
447 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus())) { | 447 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus())) { |
448 | - FirmwareId firmwareId = new FirmwareId(new UUID(response.getFirmwareIdMSB(), response.getFirmwareIdLSB())); | ||
449 | - fwSessions.put(requestId, firmwareId.toString()); | ||
450 | - sendFirmware(ctx, msgId, firmwareId.toString(), requestId, chunkSize, chunk, FirmwareType.valueOf(response.getType())); | 448 | + OtaPackageId firmwareId = new OtaPackageId(new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB())); |
449 | + otaPackSessions.put(requestId, firmwareId.toString()); | ||
450 | + sendOtaPackage(ctx, msgId, firmwareId.toString(), requestId, chunkSize, chunk, OtaPackageType.valueOf(response.getType())); | ||
451 | } else { | 451 | } else { |
452 | - sendFirmwareError(ctx, response.getResponseStatus().toString()); | 452 | + sendOtaPackageError(ctx, response.getResponseStatus().toString()); |
453 | } | 453 | } |
454 | } | 454 | } |
455 | 455 | ||
@@ -460,11 +460,11 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -460,11 +460,11 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
460 | } | 460 | } |
461 | } | 461 | } |
462 | 462 | ||
463 | - private void sendFirmware(ChannelHandlerContext ctx, int msgId, String firmwareId, String requestId, int chunkSize, int chunk, FirmwareType type) { | 463 | + private void sendOtaPackage(ChannelHandlerContext ctx, int msgId, String firmwareId, String requestId, int chunkSize, int chunk, OtaPackageType type) { |
464 | log.trace("[{}] Send firmware [{}] to device!", sessionId, firmwareId); | 464 | log.trace("[{}] Send firmware [{}] to device!", sessionId, firmwareId); |
465 | ack(ctx, msgId); | 465 | ack(ctx, msgId); |
466 | try { | 466 | try { |
467 | - byte[] firmwareChunk = context.getFirmwareDataCache().get(firmwareId, chunkSize, chunk); | 467 | + byte[] firmwareChunk = context.getOtaPackageDataCache().get(firmwareId, chunkSize, chunk); |
468 | deviceSessionCtx.getPayloadAdaptor() | 468 | deviceSessionCtx.getPayloadAdaptor() |
469 | .convertToPublish(deviceSessionCtx, firmwareChunk, requestId, chunk, type) | 469 | .convertToPublish(deviceSessionCtx, firmwareChunk, requestId, chunk, type) |
470 | .ifPresent(deviceSessionCtx.getChannel()::writeAndFlush); | 470 | .ifPresent(deviceSessionCtx.getChannel()::writeAndFlush); |
@@ -473,7 +473,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | @@ -473,7 +473,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement | ||
473 | } | 473 | } |
474 | } | 474 | } |
475 | 475 | ||
476 | - private void sendFirmwareError(ChannelHandlerContext ctx, String error) { | 476 | + private void sendOtaPackageError(ChannelHandlerContext ctx, String error) { |
477 | log.warn("[{}] {}", sessionId, error); | 477 | log.warn("[{}] {}", sessionId, error); |
478 | deviceSessionCtx.getChannel().writeAndFlush(deviceSessionCtx | 478 | deviceSessionCtx.getChannel().writeAndFlush(deviceSessionCtx |
479 | .getPayloadAdaptor() | 479 | .getPayloadAdaptor() |
@@ -30,7 +30,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -30,7 +30,7 @@ import lombok.extern.slf4j.Slf4j; | ||
30 | import org.springframework.stereotype.Component; | 30 | import org.springframework.stereotype.Component; |
31 | import org.springframework.util.StringUtils; | 31 | import org.springframework.util.StringUtils; |
32 | import org.thingsboard.server.common.data.device.profile.MqttTopics; | 32 | import org.thingsboard.server.common.data.device.profile.MqttTopics; |
33 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 33 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
34 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; | 34 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
35 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; | 35 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; |
36 | import org.thingsboard.server.gen.transport.TransportProtos; | 36 | import org.thingsboard.server.gen.transport.TransportProtos; |
@@ -155,7 +155,7 @@ public class JsonMqttAdaptor implements MqttTransportAdaptor { | @@ -155,7 +155,7 @@ public class JsonMqttAdaptor implements MqttTransportAdaptor { | ||
155 | } | 155 | } |
156 | 156 | ||
157 | @Override | 157 | @Override |
158 | - public Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, FirmwareType firmwareType) { | 158 | + public Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, OtaPackageType firmwareType) { |
159 | return Optional.of(createMqttPublishMsg(ctx, String.format(DEVICE_SOFTWARE_FIRMWARE_RESPONSES_TOPIC_FORMAT, firmwareType.getKeyPrefix(), requestId, chunk), firmwareChunk)); | 159 | return Optional.of(createMqttPublishMsg(ctx, String.format(DEVICE_SOFTWARE_FIRMWARE_RESPONSES_TOPIC_FORMAT, firmwareType.getKeyPrefix(), requestId, chunk), firmwareChunk)); |
160 | } | 160 | } |
161 | 161 |
@@ -23,7 +23,7 @@ import io.netty.handler.codec.mqtt.MqttMessage; | @@ -23,7 +23,7 @@ import io.netty.handler.codec.mqtt.MqttMessage; | ||
23 | import io.netty.handler.codec.mqtt.MqttMessageType; | 23 | import io.netty.handler.codec.mqtt.MqttMessageType; |
24 | import io.netty.handler.codec.mqtt.MqttPublishMessage; | 24 | import io.netty.handler.codec.mqtt.MqttPublishMessage; |
25 | import io.netty.handler.codec.mqtt.MqttPublishVariableHeader; | 25 | import io.netty.handler.codec.mqtt.MqttPublishVariableHeader; |
26 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 26 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
27 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; | 27 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
28 | import org.thingsboard.server.gen.transport.TransportProtos.AttributeUpdateNotificationMsg; | 28 | import org.thingsboard.server.gen.transport.TransportProtos.AttributeUpdateNotificationMsg; |
29 | import org.thingsboard.server.gen.transport.TransportProtos.ClaimDeviceMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.ClaimDeviceMsg; |
@@ -78,7 +78,7 @@ public interface MqttTransportAdaptor { | @@ -78,7 +78,7 @@ public interface MqttTransportAdaptor { | ||
78 | 78 | ||
79 | Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, ProvisionDeviceResponseMsg provisionResponse) throws AdaptorException; | 79 | Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, ProvisionDeviceResponseMsg provisionResponse) throws AdaptorException; |
80 | 80 | ||
81 | - Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, FirmwareType firmwareType) throws AdaptorException; | 81 | + Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, OtaPackageType firmwareType) throws AdaptorException; |
82 | 82 | ||
83 | default MqttPublishMessage createMqttPublishMsg(MqttDeviceAwareSessionContext ctx, String topic, byte[] payloadInBytes) { | 83 | default MqttPublishMessage createMqttPublishMsg(MqttDeviceAwareSessionContext ctx, String topic, byte[] payloadInBytes) { |
84 | MqttFixedHeader mqttFixedHeader = | 84 | MqttFixedHeader mqttFixedHeader = |
@@ -28,7 +28,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -28,7 +28,7 @@ import lombok.extern.slf4j.Slf4j; | ||
28 | import org.springframework.stereotype.Component; | 28 | import org.springframework.stereotype.Component; |
29 | import org.springframework.util.StringUtils; | 29 | import org.springframework.util.StringUtils; |
30 | import org.thingsboard.server.common.data.device.profile.MqttTopics; | 30 | import org.thingsboard.server.common.data.device.profile.MqttTopics; |
31 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 31 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
32 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; | 32 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
33 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; | 33 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; |
34 | import org.thingsboard.server.common.transport.adaptor.ProtoConverter; | 34 | import org.thingsboard.server.common.transport.adaptor.ProtoConverter; |
@@ -168,7 +168,7 @@ public class ProtoMqttAdaptor implements MqttTransportAdaptor { | @@ -168,7 +168,7 @@ public class ProtoMqttAdaptor implements MqttTransportAdaptor { | ||
168 | } | 168 | } |
169 | 169 | ||
170 | @Override | 170 | @Override |
171 | - public Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, FirmwareType firmwareType) throws AdaptorException { | 171 | + public Optional<MqttMessage> convertToPublish(MqttDeviceAwareSessionContext ctx, byte[] firmwareChunk, String requestId, int chunk, OtaPackageType firmwareType) throws AdaptorException { |
172 | return Optional.of(createMqttPublishMsg(ctx, String.format(DEVICE_SOFTWARE_FIRMWARE_RESPONSES_TOPIC_FORMAT, firmwareType.getKeyPrefix(), requestId, chunk), firmwareChunk)); | 172 | return Optional.of(createMqttPublishMsg(ctx, String.format(DEVICE_SOFTWARE_FIRMWARE_RESPONSES_TOPIC_FORMAT, firmwareType.getKeyPrefix(), requestId, chunk), firmwareChunk)); |
173 | } | 173 | } |
174 | 174 |
@@ -21,14 +21,13 @@ import lombok.Getter; | @@ -21,14 +21,13 @@ import lombok.Getter; | ||
21 | import lombok.extern.slf4j.Slf4j; | 21 | import lombok.extern.slf4j.Slf4j; |
22 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
23 | import org.thingsboard.common.util.ThingsBoardExecutors; | 23 | import org.thingsboard.common.util.ThingsBoardExecutors; |
24 | -import org.thingsboard.server.cache.firmware.FirmwareDataCache; | 24 | +import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
25 | import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; | 25 | import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; |
26 | import org.thingsboard.server.queue.scheduler.SchedulerComponent; | 26 | import org.thingsboard.server.queue.scheduler.SchedulerComponent; |
27 | 27 | ||
28 | import javax.annotation.PostConstruct; | 28 | import javax.annotation.PostConstruct; |
29 | import javax.annotation.PreDestroy; | 29 | import javax.annotation.PreDestroy; |
30 | import java.util.concurrent.ExecutorService; | 30 | import java.util.concurrent.ExecutorService; |
31 | -import java.util.concurrent.Executors; | ||
32 | 31 | ||
33 | /** | 32 | /** |
34 | * Created by ashvayka on 15.10.18. | 33 | * Created by ashvayka on 15.10.18. |
@@ -53,7 +52,7 @@ public abstract class TransportContext { | @@ -53,7 +52,7 @@ public abstract class TransportContext { | ||
53 | 52 | ||
54 | @Getter | 53 | @Getter |
55 | @Autowired | 54 | @Autowired |
56 | - private FirmwareDataCache firmwareDataCache; | 55 | + private OtaPackageDataCache otaPackageDataCache; |
57 | 56 | ||
58 | @Autowired | 57 | @Autowired |
59 | private TransportResourceCache transportResourceCache; | 58 | private TransportResourceCache transportResourceCache; |
@@ -29,8 +29,8 @@ import org.thingsboard.server.gen.transport.TransportProtos.GetDeviceRequestMsg; | @@ -29,8 +29,8 @@ import org.thingsboard.server.gen.transport.TransportProtos.GetDeviceRequestMsg; | ||
29 | import org.thingsboard.server.gen.transport.TransportProtos.GetDeviceResponseMsg; | 29 | import org.thingsboard.server.gen.transport.TransportProtos.GetDeviceResponseMsg; |
30 | import org.thingsboard.server.gen.transport.TransportProtos.GetEntityProfileRequestMsg; | 30 | import org.thingsboard.server.gen.transport.TransportProtos.GetEntityProfileRequestMsg; |
31 | import org.thingsboard.server.gen.transport.TransportProtos.GetEntityProfileResponseMsg; | 31 | import org.thingsboard.server.gen.transport.TransportProtos.GetEntityProfileResponseMsg; |
32 | -import org.thingsboard.server.gen.transport.TransportProtos.GetFirmwareRequestMsg; | ||
33 | -import org.thingsboard.server.gen.transport.TransportProtos.GetFirmwareResponseMsg; | 32 | +import org.thingsboard.server.gen.transport.TransportProtos.GetOtaPackageRequestMsg; |
33 | +import org.thingsboard.server.gen.transport.TransportProtos.GetOtaPackageResponseMsg; | ||
34 | import org.thingsboard.server.gen.transport.TransportProtos.GetOrCreateDeviceFromGatewayRequestMsg; | 34 | import org.thingsboard.server.gen.transport.TransportProtos.GetOrCreateDeviceFromGatewayRequestMsg; |
35 | import org.thingsboard.server.gen.transport.TransportProtos.GetResourceRequestMsg; | 35 | import org.thingsboard.server.gen.transport.TransportProtos.GetResourceRequestMsg; |
36 | import org.thingsboard.server.gen.transport.TransportProtos.GetResourceResponseMsg; | 36 | import org.thingsboard.server.gen.transport.TransportProtos.GetResourceResponseMsg; |
@@ -115,7 +115,7 @@ public interface TransportService { | @@ -115,7 +115,7 @@ public interface TransportService { | ||
115 | 115 | ||
116 | void process(TransportToDeviceActorMsg msg, TransportServiceCallback<Void> callback); | 116 | void process(TransportToDeviceActorMsg msg, TransportServiceCallback<Void> callback); |
117 | 117 | ||
118 | - void process(SessionInfoProto sessionInfoProto, GetFirmwareRequestMsg msg, TransportServiceCallback<GetFirmwareResponseMsg> callback); | 118 | + void process(SessionInfoProto sessionInfoProto, GetOtaPackageRequestMsg msg, TransportServiceCallback<GetOtaPackageResponseMsg> callback); |
119 | 119 | ||
120 | SessionMetaData registerAsyncSession(SessionInfoProto sessionInfo, SessionMsgListener listener); | 120 | SessionMetaData registerAsyncSession(SessionInfoProto sessionInfo, SessionMsgListener listener); |
121 | 121 |
@@ -614,13 +614,13 @@ public class DefaultTransportService implements TransportService { | @@ -614,13 +614,13 @@ public class DefaultTransportService implements TransportService { | ||
614 | } | 614 | } |
615 | 615 | ||
616 | @Override | 616 | @Override |
617 | - public void process(TransportProtos.SessionInfoProto sessionInfo, TransportProtos.GetFirmwareRequestMsg msg, TransportServiceCallback<TransportProtos.GetFirmwareResponseMsg> callback) { | 617 | + public void process(TransportProtos.SessionInfoProto sessionInfo, TransportProtos.GetOtaPackageRequestMsg msg, TransportServiceCallback<TransportProtos.GetOtaPackageResponseMsg> callback) { |
618 | if (checkLimits(sessionInfo, msg, callback)) { | 618 | if (checkLimits(sessionInfo, msg, callback)) { |
619 | TbProtoQueueMsg<TransportProtos.TransportApiRequestMsg> protoMsg = | 619 | TbProtoQueueMsg<TransportProtos.TransportApiRequestMsg> protoMsg = |
620 | - new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.TransportApiRequestMsg.newBuilder().setFirmwareRequestMsg(msg).build()); | 620 | + new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.TransportApiRequestMsg.newBuilder().setOtaPackageRequestMsg(msg).build()); |
621 | 621 | ||
622 | AsyncCallbackTemplate.withCallback(transportApiRequestTemplate.send(protoMsg), response -> { | 622 | AsyncCallbackTemplate.withCallback(transportApiRequestTemplate.send(protoMsg), response -> { |
623 | - callback.onSuccess(response.getValue().getFirmwareResponseMsg()); | 623 | + callback.onSuccess(response.getValue().getOtaPackageResponseMsg()); |
624 | }, callback::onError, transportCallbackExecutor); | 624 | }, callback::onError, transportCallbackExecutor); |
625 | } | 625 | } |
626 | } | 626 | } |
@@ -21,6 +21,7 @@ import org.thingsboard.server.common.data.DeviceInfo; | @@ -21,6 +21,7 @@ import org.thingsboard.server.common.data.DeviceInfo; | ||
21 | import org.thingsboard.server.common.data.DeviceTransportType; | 21 | import org.thingsboard.server.common.data.DeviceTransportType; |
22 | import org.thingsboard.server.common.data.EntitySubtype; | 22 | import org.thingsboard.server.common.data.EntitySubtype; |
23 | import org.thingsboard.server.common.data.id.TenantId; | 23 | import org.thingsboard.server.common.data.id.TenantId; |
24 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
24 | import org.thingsboard.server.common.data.page.PageData; | 25 | import org.thingsboard.server.common.data.page.PageData; |
25 | import org.thingsboard.server.common.data.page.PageLink; | 26 | import org.thingsboard.server.common.data.page.PageLink; |
26 | import org.thingsboard.server.dao.Dao; | 27 | import org.thingsboard.server.dao.Dao; |
@@ -81,9 +82,12 @@ public interface DeviceDao extends Dao<Device>, TenantEntityDao { | @@ -81,9 +82,12 @@ public interface DeviceDao extends Dao<Device>, TenantEntityDao { | ||
81 | */ | 82 | */ |
82 | PageData<Device> findDevicesByTenantIdAndType(UUID tenantId, String type, PageLink pageLink); | 83 | PageData<Device> findDevicesByTenantIdAndType(UUID tenantId, String type, PageLink pageLink); |
83 | 84 | ||
84 | - PageData<Device> findDevicesByTenantIdAndTypeAndEmptyFirmware(UUID tenantId, String type, PageLink pageLink); | 85 | + PageData<Device> findDevicesByTenantIdAndTypeAndEmptyOtaPackage(UUID tenantId, |
86 | + UUID deviceProfileId, | ||
87 | + OtaPackageType type, | ||
88 | + PageLink pageLink); | ||
85 | 89 | ||
86 | - PageData<Device> findDevicesByTenantIdAndTypeAndEmptySoftware(UUID tenantId, String type, PageLink pageLink); | 90 | + Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(UUID tenantId, UUID deviceProfileId, OtaPackageType otaPackageType); |
87 | 91 | ||
88 | /** | 92 | /** |
89 | * Find device infos by tenantId, type and page link. | 93 | * Find device infos by tenantId, type and page link. |
@@ -43,7 +43,7 @@ import org.thingsboard.server.common.data.DeviceProfileInfo; | @@ -43,7 +43,7 @@ import org.thingsboard.server.common.data.DeviceProfileInfo; | ||
43 | import org.thingsboard.server.common.data.DeviceProfileProvisionType; | 43 | import org.thingsboard.server.common.data.DeviceProfileProvisionType; |
44 | import org.thingsboard.server.common.data.DeviceProfileType; | 44 | import org.thingsboard.server.common.data.DeviceProfileType; |
45 | import org.thingsboard.server.common.data.DeviceTransportType; | 45 | import org.thingsboard.server.common.data.DeviceTransportType; |
46 | -import org.thingsboard.server.common.data.Firmware; | 46 | +import org.thingsboard.server.common.data.OtaPackage; |
47 | import org.thingsboard.server.common.data.Tenant; | 47 | import org.thingsboard.server.common.data.Tenant; |
48 | import org.thingsboard.server.common.data.device.profile.CoapDeviceProfileTransportConfiguration; | 48 | import org.thingsboard.server.common.data.device.profile.CoapDeviceProfileTransportConfiguration; |
49 | import org.thingsboard.server.common.data.device.profile.CoapDeviceTypeConfiguration; | 49 | import org.thingsboard.server.common.data.device.profile.CoapDeviceTypeConfiguration; |
@@ -57,7 +57,7 @@ import org.thingsboard.server.common.data.device.profile.DisabledDeviceProfilePr | @@ -57,7 +57,7 @@ import org.thingsboard.server.common.data.device.profile.DisabledDeviceProfilePr | ||
57 | import org.thingsboard.server.common.data.device.profile.MqttDeviceProfileTransportConfiguration; | 57 | import org.thingsboard.server.common.data.device.profile.MqttDeviceProfileTransportConfiguration; |
58 | import org.thingsboard.server.common.data.device.profile.ProtoTransportPayloadConfiguration; | 58 | import org.thingsboard.server.common.data.device.profile.ProtoTransportPayloadConfiguration; |
59 | import org.thingsboard.server.common.data.device.profile.TransportPayloadTypeConfiguration; | 59 | import org.thingsboard.server.common.data.device.profile.TransportPayloadTypeConfiguration; |
60 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 60 | +import org.thingsboard.server.common.data.ota.OtaPackageType; |
61 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 61 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
62 | import org.thingsboard.server.common.data.id.TenantId; | 62 | import org.thingsboard.server.common.data.id.TenantId; |
63 | import org.thingsboard.server.common.data.page.PageData; | 63 | import org.thingsboard.server.common.data.page.PageData; |
@@ -66,7 +66,7 @@ import org.thingsboard.server.common.data.rule.RuleChain; | @@ -66,7 +66,7 @@ import org.thingsboard.server.common.data.rule.RuleChain; | ||
66 | import org.thingsboard.server.dao.dashboard.DashboardService; | 66 | import org.thingsboard.server.dao.dashboard.DashboardService; |
67 | import org.thingsboard.server.dao.entity.AbstractEntityService; | 67 | import org.thingsboard.server.dao.entity.AbstractEntityService; |
68 | import org.thingsboard.server.dao.exception.DataValidationException; | 68 | import org.thingsboard.server.dao.exception.DataValidationException; |
69 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 69 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
70 | import org.thingsboard.server.dao.rule.RuleChainService; | 70 | import org.thingsboard.server.dao.rule.RuleChainService; |
71 | import org.thingsboard.server.dao.service.DataValidator; | 71 | import org.thingsboard.server.dao.service.DataValidator; |
72 | import org.thingsboard.server.dao.service.PaginatedRemover; | 72 | import org.thingsboard.server.dao.service.PaginatedRemover; |
@@ -119,7 +119,7 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | @@ -119,7 +119,7 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | ||
119 | private CacheManager cacheManager; | 119 | private CacheManager cacheManager; |
120 | 120 | ||
121 | @Autowired | 121 | @Autowired |
122 | - private FirmwareService firmwareService; | 122 | + private OtaPackageService otaPackageService; |
123 | 123 | ||
124 | @Autowired | 124 | @Autowired |
125 | private RuleChainService ruleChainService; | 125 | private RuleChainService ruleChainService; |
@@ -427,11 +427,11 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | @@ -427,11 +427,11 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | ||
427 | } | 427 | } |
428 | 428 | ||
429 | if (deviceProfile.getFirmwareId() != null) { | 429 | if (deviceProfile.getFirmwareId() != null) { |
430 | - Firmware firmware = firmwareService.findFirmwareById(tenantId, deviceProfile.getFirmwareId()); | 430 | + OtaPackage firmware = otaPackageService.findOtaPackageById(tenantId, deviceProfile.getFirmwareId()); |
431 | if (firmware == null) { | 431 | if (firmware == null) { |
432 | throw new DataValidationException("Can't assign non-existent firmware!"); | 432 | throw new DataValidationException("Can't assign non-existent firmware!"); |
433 | } | 433 | } |
434 | - if (!firmware.getType().equals(FirmwareType.FIRMWARE)) { | 434 | + if (!firmware.getType().equals(OtaPackageType.FIRMWARE)) { |
435 | throw new DataValidationException("Can't assign firmware with type: " + firmware.getType()); | 435 | throw new DataValidationException("Can't assign firmware with type: " + firmware.getType()); |
436 | } | 436 | } |
437 | if (firmware.getData() == null) { | 437 | if (firmware.getData() == null) { |
@@ -443,11 +443,11 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | @@ -443,11 +443,11 @@ public class DeviceProfileServiceImpl extends AbstractEntityService implements D | ||
443 | } | 443 | } |
444 | 444 | ||
445 | if (deviceProfile.getSoftwareId() != null) { | 445 | if (deviceProfile.getSoftwareId() != null) { |
446 | - Firmware software = firmwareService.findFirmwareById(tenantId, deviceProfile.getSoftwareId()); | 446 | + OtaPackage software = otaPackageService.findOtaPackageById(tenantId, deviceProfile.getSoftwareId()); |
447 | if (software == null) { | 447 | if (software == null) { |
448 | throw new DataValidationException("Can't assign non-existent software!"); | 448 | throw new DataValidationException("Can't assign non-existent software!"); |
449 | } | 449 | } |
450 | - if (!software.getType().equals(FirmwareType.SOFTWARE)) { | 450 | + if (!software.getType().equals(OtaPackageType.SOFTWARE)) { |
451 | throw new DataValidationException("Can't assign software with type: " + software.getType()); | 451 | throw new DataValidationException("Can't assign software with type: " + software.getType()); |
452 | } | 452 | } |
453 | if (software.getData() == null) { | 453 | if (software.getData() == null) { |
@@ -41,7 +41,7 @@ import org.thingsboard.server.common.data.DeviceTransportType; | @@ -41,7 +41,7 @@ import org.thingsboard.server.common.data.DeviceTransportType; | ||
41 | import org.thingsboard.server.common.data.EntitySubtype; | 41 | import org.thingsboard.server.common.data.EntitySubtype; |
42 | import org.thingsboard.server.common.data.EntityType; | 42 | import org.thingsboard.server.common.data.EntityType; |
43 | import org.thingsboard.server.common.data.EntityView; | 43 | import org.thingsboard.server.common.data.EntityView; |
44 | -import org.thingsboard.server.common.data.Firmware; | 44 | +import org.thingsboard.server.common.data.OtaPackage; |
45 | import org.thingsboard.server.common.data.Tenant; | 45 | import org.thingsboard.server.common.data.Tenant; |
46 | import org.thingsboard.server.common.data.device.DeviceSearchQuery; | 46 | import org.thingsboard.server.common.data.device.DeviceSearchQuery; |
47 | import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; | 47 | import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; |
@@ -54,13 +54,13 @@ import org.thingsboard.server.common.data.device.data.Lwm2mDeviceTransportConfig | @@ -54,13 +54,13 @@ import org.thingsboard.server.common.data.device.data.Lwm2mDeviceTransportConfig | ||
54 | import org.thingsboard.server.common.data.device.data.MqttDeviceTransportConfiguration; | 54 | import org.thingsboard.server.common.data.device.data.MqttDeviceTransportConfiguration; |
55 | import org.thingsboard.server.common.data.device.data.SnmpDeviceTransportConfiguration; | 55 | import org.thingsboard.server.common.data.device.data.SnmpDeviceTransportConfiguration; |
56 | import org.thingsboard.server.common.data.edge.Edge; | 56 | import org.thingsboard.server.common.data.edge.Edge; |
57 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | ||
58 | import org.thingsboard.server.common.data.id.CustomerId; | 57 | import org.thingsboard.server.common.data.id.CustomerId; |
59 | import org.thingsboard.server.common.data.id.DeviceId; | 58 | import org.thingsboard.server.common.data.id.DeviceId; |
60 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 59 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
61 | import org.thingsboard.server.common.data.id.EdgeId; | 60 | import org.thingsboard.server.common.data.id.EdgeId; |
62 | import org.thingsboard.server.common.data.id.EntityId; | 61 | import org.thingsboard.server.common.data.id.EntityId; |
63 | import org.thingsboard.server.common.data.id.TenantId; | 62 | import org.thingsboard.server.common.data.id.TenantId; |
63 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
64 | import org.thingsboard.server.common.data.page.PageData; | 64 | import org.thingsboard.server.common.data.page.PageData; |
65 | import org.thingsboard.server.common.data.page.PageLink; | 65 | import org.thingsboard.server.common.data.page.PageLink; |
66 | import org.thingsboard.server.common.data.relation.EntityRelation; | 66 | import org.thingsboard.server.common.data.relation.EntityRelation; |
@@ -76,7 +76,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; | @@ -76,7 +76,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; | ||
76 | import org.thingsboard.server.dao.entity.AbstractEntityService; | 76 | import org.thingsboard.server.dao.entity.AbstractEntityService; |
77 | import org.thingsboard.server.dao.event.EventService; | 77 | import org.thingsboard.server.dao.event.EventService; |
78 | import org.thingsboard.server.dao.exception.DataValidationException; | 78 | import org.thingsboard.server.dao.exception.DataValidationException; |
79 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 79 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
80 | import org.thingsboard.server.dao.service.DataValidator; | 80 | import org.thingsboard.server.dao.service.DataValidator; |
81 | import org.thingsboard.server.dao.service.PaginatedRemover; | 81 | import org.thingsboard.server.dao.service.PaginatedRemover; |
82 | import org.thingsboard.server.dao.tenant.TbTenantProfileCache; | 82 | import org.thingsboard.server.dao.tenant.TbTenantProfileCache; |
@@ -138,7 +138,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -138,7 +138,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
138 | private TbTenantProfileCache tenantProfileCache; | 138 | private TbTenantProfileCache tenantProfileCache; |
139 | 139 | ||
140 | @Autowired | 140 | @Autowired |
141 | - private FirmwareService firmwareService; | 141 | + private OtaPackageService otaPackageService; |
142 | 142 | ||
143 | @Override | 143 | @Override |
144 | public DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId) { | 144 | public DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId) { |
@@ -201,14 +201,12 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -201,14 +201,12 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
201 | deviceCredentials.setDeviceId(savedDevice.getId()); | 201 | deviceCredentials.setDeviceId(savedDevice.getId()); |
202 | if (device.getId() == null) { | 202 | if (device.getId() == null) { |
203 | deviceCredentialsService.createDeviceCredentials(savedDevice.getTenantId(), deviceCredentials); | 203 | deviceCredentialsService.createDeviceCredentials(savedDevice.getTenantId(), deviceCredentials); |
204 | - } | ||
205 | - else { | 204 | + } else { |
206 | DeviceCredentials foundDeviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(device.getTenantId(), savedDevice.getId()); | 205 | DeviceCredentials foundDeviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(device.getTenantId(), savedDevice.getId()); |
207 | if (foundDeviceCredentials == null) { | 206 | if (foundDeviceCredentials == null) { |
208 | deviceCredentialsService.createDeviceCredentials(savedDevice.getTenantId(), deviceCredentials); | 207 | deviceCredentialsService.createDeviceCredentials(savedDevice.getTenantId(), deviceCredentials); |
209 | - } | ||
210 | - else { | ||
211 | - deviceCredentialsService.updateDeviceCredentials(device.getTenantId(), deviceCredentials); | 208 | + } else { |
209 | + deviceCredentialsService.updateDeviceCredentials(device.getTenantId(), deviceCredentials); | ||
212 | } | 210 | } |
213 | } | 211 | } |
214 | return savedDevice; | 212 | return savedDevice; |
@@ -364,21 +362,24 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -364,21 +362,24 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
364 | } | 362 | } |
365 | 363 | ||
366 | @Override | 364 | @Override |
367 | - public PageData<Device> findDevicesByTenantIdAndTypeAndEmptyFirmware(TenantId tenantId, String type, PageLink pageLink) { | ||
368 | - log.trace("Executing findDevicesByTenantIdAndTypeAndEmptyFirmware, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink); | 365 | + public PageData<Device> findDevicesByTenantIdAndTypeAndEmptyOtaPackage(TenantId tenantId, |
366 | + DeviceProfileId deviceProfileId, | ||
367 | + OtaPackageType type, | ||
368 | + PageLink pageLink) { | ||
369 | + log.trace("Executing findDevicesByTenantIdAndTypeAndEmptyOtaPackage, tenantId [{}], deviceProfileId [{}], type [{}], pageLink [{}]", | ||
370 | + tenantId, deviceProfileId, type, pageLink); | ||
369 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 371 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
370 | - validateString(type, "Incorrect type " + type); | 372 | + validateId(tenantId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId); |
371 | validatePageLink(pageLink); | 373 | validatePageLink(pageLink); |
372 | - return deviceDao.findDevicesByTenantIdAndTypeAndEmptyFirmware(tenantId.getId(), type, pageLink); | 374 | + return deviceDao.findDevicesByTenantIdAndTypeAndEmptyOtaPackage(tenantId.getId(), deviceProfileId.getId(), type, pageLink); |
373 | } | 375 | } |
374 | 376 | ||
375 | @Override | 377 | @Override |
376 | - public PageData<Device> findDevicesByTenantIdAndTypeAndEmptySoftware(TenantId tenantId, String type, PageLink pageLink) { | ||
377 | - log.trace("Executing findDevicesByTenantIdAndTypeAndEmptySoftware, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink); | 378 | + public Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType type) { |
379 | + log.trace("Executing countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage, tenantId [{}], deviceProfileId [{}], type [{}]", tenantId, deviceProfileId, type); | ||
378 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 380 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
379 | - validateString(type, "Incorrect type " + type); | ||
380 | - validatePageLink(pageLink); | ||
381 | - return deviceDao.findDevicesByTenantIdAndTypeAndEmptySoftware(tenantId.getId(), type, pageLink); | 381 | + validateId(tenantId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId); |
382 | + return deviceDao.countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(tenantId.getId(), deviceProfileId.getId(), type); | ||
382 | } | 383 | } |
383 | 384 | ||
384 | @Override | 385 | @Override |
@@ -708,11 +709,11 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -708,11 +709,11 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
708 | .ifPresent(DeviceTransportConfiguration::validate); | 709 | .ifPresent(DeviceTransportConfiguration::validate); |
709 | 710 | ||
710 | if (device.getFirmwareId() != null) { | 711 | if (device.getFirmwareId() != null) { |
711 | - Firmware firmware = firmwareService.findFirmwareById(tenantId, device.getFirmwareId()); | 712 | + OtaPackage firmware = otaPackageService.findOtaPackageById(tenantId, device.getFirmwareId()); |
712 | if (firmware == null) { | 713 | if (firmware == null) { |
713 | throw new DataValidationException("Can't assign non-existent firmware!"); | 714 | throw new DataValidationException("Can't assign non-existent firmware!"); |
714 | } | 715 | } |
715 | - if (!firmware.getType().equals(FirmwareType.FIRMWARE)) { | 716 | + if (!firmware.getType().equals(OtaPackageType.FIRMWARE)) { |
716 | throw new DataValidationException("Can't assign firmware with type: " + firmware.getType()); | 717 | throw new DataValidationException("Can't assign firmware with type: " + firmware.getType()); |
717 | } | 718 | } |
718 | if (firmware.getData() == null) { | 719 | if (firmware.getData() == null) { |
@@ -724,11 +725,11 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -724,11 +725,11 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
724 | } | 725 | } |
725 | 726 | ||
726 | if (device.getSoftwareId() != null) { | 727 | if (device.getSoftwareId() != null) { |
727 | - Firmware software = firmwareService.findFirmwareById(tenantId, device.getSoftwareId()); | 728 | + OtaPackage software = otaPackageService.findOtaPackageById(tenantId, device.getSoftwareId()); |
728 | if (software == null) { | 729 | if (software == null) { |
729 | throw new DataValidationException("Can't assign non-existent software!"); | 730 | throw new DataValidationException("Can't assign non-existent software!"); |
730 | } | 731 | } |
731 | - if (!software.getType().equals(FirmwareType.SOFTWARE)) { | 732 | + if (!software.getType().equals(OtaPackageType.SOFTWARE)) { |
732 | throw new DataValidationException("Can't assign software with type: " + software.getType()); | 733 | throw new DataValidationException("Can't assign software with type: " + software.getType()); |
733 | } | 734 | } |
734 | if (software.getData() == null) { | 735 | if (software.getData() == null) { |
@@ -32,7 +32,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | @@ -32,7 +32,7 @@ import org.thingsboard.server.common.data.id.DeviceId; | ||
32 | import org.thingsboard.server.common.data.id.EdgeId; | 32 | import org.thingsboard.server.common.data.id.EdgeId; |
33 | import org.thingsboard.server.common.data.id.EntityId; | 33 | import org.thingsboard.server.common.data.id.EntityId; |
34 | import org.thingsboard.server.common.data.id.EntityViewId; | 34 | import org.thingsboard.server.common.data.id.EntityViewId; |
35 | -import org.thingsboard.server.common.data.id.FirmwareId; | 35 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
36 | import org.thingsboard.server.common.data.id.RuleChainId; | 36 | import org.thingsboard.server.common.data.id.RuleChainId; |
37 | import org.thingsboard.server.common.data.id.TbResourceId; | 37 | import org.thingsboard.server.common.data.id.TbResourceId; |
38 | import org.thingsboard.server.common.data.id.TenantId; | 38 | import org.thingsboard.server.common.data.id.TenantId; |
@@ -49,7 +49,7 @@ import org.thingsboard.server.dao.dashboard.DashboardService; | @@ -49,7 +49,7 @@ import org.thingsboard.server.dao.dashboard.DashboardService; | ||
49 | import org.thingsboard.server.dao.device.DeviceService; | 49 | import org.thingsboard.server.dao.device.DeviceService; |
50 | import org.thingsboard.server.dao.entityview.EntityViewService; | 50 | import org.thingsboard.server.dao.entityview.EntityViewService; |
51 | import org.thingsboard.server.dao.exception.IncorrectParameterException; | 51 | import org.thingsboard.server.dao.exception.IncorrectParameterException; |
52 | -import org.thingsboard.server.dao.firmware.FirmwareService; | 52 | +import org.thingsboard.server.dao.ota.OtaPackageService; |
53 | import org.thingsboard.server.dao.resource.ResourceService; | 53 | import org.thingsboard.server.dao.resource.ResourceService; |
54 | import org.thingsboard.server.dao.rule.RuleChainService; | 54 | import org.thingsboard.server.dao.rule.RuleChainService; |
55 | import org.thingsboard.server.dao.tenant.TenantService; | 55 | import org.thingsboard.server.dao.tenant.TenantService; |
@@ -102,7 +102,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | @@ -102,7 +102,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | ||
102 | private ResourceService resourceService; | 102 | private ResourceService resourceService; |
103 | 103 | ||
104 | @Autowired | 104 | @Autowired |
105 | - private FirmwareService firmwareService; | 105 | + private OtaPackageService otaPackageService; |
106 | 106 | ||
107 | @Override | 107 | @Override |
108 | public void deleteEntityRelations(TenantId tenantId, EntityId entityId) { | 108 | public void deleteEntityRelations(TenantId tenantId, EntityId entityId) { |
@@ -167,8 +167,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | @@ -167,8 +167,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | ||
167 | case TB_RESOURCE: | 167 | case TB_RESOURCE: |
168 | hasName = resourceService.findResourceInfoByIdAsync(tenantId, new TbResourceId(entityId.getId())); | 168 | hasName = resourceService.findResourceInfoByIdAsync(tenantId, new TbResourceId(entityId.getId())); |
169 | break; | 169 | break; |
170 | - case FIRMWARE: | ||
171 | - hasName = firmwareService.findFirmwareInfoByIdAsync(tenantId, new FirmwareId(entityId.getId())); | 170 | + case OTA_PACKAGE: |
171 | + hasName = otaPackageService.findOtaPackageInfoByIdAsync(tenantId, new OtaPackageId(entityId.getId())); | ||
172 | break; | 172 | break; |
173 | default: | 173 | default: |
174 | throw new IllegalStateException("Not Implemented!"); | 174 | throw new IllegalStateException("Not Implemented!"); |
@@ -192,7 +192,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | @@ -192,7 +192,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe | ||
192 | case DEVICE_PROFILE: | 192 | case DEVICE_PROFILE: |
193 | case API_USAGE_STATE: | 193 | case API_USAGE_STATE: |
194 | case TB_RESOURCE: | 194 | case TB_RESOURCE: |
195 | - case FIRMWARE: | 195 | + case OTA_PACKAGE: |
196 | break; | 196 | break; |
197 | case CUSTOMER: | 197 | case CUSTOMER: |
198 | hasCustomerId = () -> new CustomerId(entityId.getId()); | 198 | hasCustomerId = () -> new CustomerId(entityId.getId()); |
@@ -479,22 +479,21 @@ public class ModelConstants { | @@ -479,22 +479,21 @@ public class ModelConstants { | ||
479 | public static final String RESOURCE_DATA_COLUMN = "data"; | 479 | public static final String RESOURCE_DATA_COLUMN = "data"; |
480 | 480 | ||
481 | /** | 481 | /** |
482 | - * Firmware constants. | ||
483 | - */ | ||
484 | - public static final String FIRMWARE_TABLE_NAME = "firmware"; | ||
485 | - public static final String FIRMWARE_TENANT_ID_COLUMN = TENANT_ID_COLUMN; | ||
486 | - public static final String FIRMWARE_DEVICE_PROFILE_ID_COLUMN = "device_profile_id"; | ||
487 | - public static final String FIRMWARE_TYPE_COLUMN = "type"; | ||
488 | - public static final String FIRMWARE_TITLE_COLUMN = TITLE_PROPERTY; | ||
489 | - public static final String FIRMWARE_VERSION_COLUMN = "version"; | ||
490 | - public static final String FIRMWARE_FILE_NAME_COLUMN = "file_name"; | ||
491 | - public static final String FIRMWARE_CONTENT_TYPE_COLUMN = "content_type"; | ||
492 | - public static final String FIRMWARE_CHECKSUM_ALGORITHM_COLUMN = "checksum_algorithm"; | ||
493 | - public static final String FIRMWARE_CHECKSUM_COLUMN = "checksum"; | ||
494 | - public static final String FIRMWARE_DATA_COLUMN = "data"; | ||
495 | - public static final String FIRMWARE_DATA_SIZE_COLUMN = "data_size"; | ||
496 | - public static final String FIRMWARE_ADDITIONAL_INFO_COLUMN = ADDITIONAL_INFO_PROPERTY; | ||
497 | - public static final String FIRMWARE_HAS_DATA_PROPERTY = "has_data"; | 482 | + * Ota Package constants. |
483 | + */ | ||
484 | + public static final String OTA_PACKAGE_TABLE_NAME = "ota_package"; | ||
485 | + public static final String OTA_PACKAGE_TENANT_ID_COLUMN = TENANT_ID_COLUMN; | ||
486 | + public static final String OTA_PACKAGE_DEVICE_PROFILE_ID_COLUMN = "device_profile_id"; | ||
487 | + public static final String OTA_PACKAGE_TYPE_COLUMN = "type"; | ||
488 | + public static final String OTA_PACKAGE_TILE_COLUMN = TITLE_PROPERTY; | ||
489 | + public static final String OTA_PACKAGE_VERSION_COLUMN = "version"; | ||
490 | + public static final String OTA_PACKAGE_FILE_NAME_COLUMN = "file_name"; | ||
491 | + public static final String OTA_PACKAGE_CONTENT_TYPE_COLUMN = "content_type"; | ||
492 | + public static final String OTA_PACKAGE_CHECKSUM_ALGORITHM_COLUMN = "checksum_algorithm"; | ||
493 | + public static final String OTA_PACKAGE_CHECKSUM_COLUMN = "checksum"; | ||
494 | + public static final String OTA_PACKAGE_DATA_COLUMN = "data"; | ||
495 | + public static final String OTA_PACKAGE_DATA_SIZE_COLUMN = "data_size"; | ||
496 | + public static final String OTA_PACKAGE_ADDITIONAL_INFO_COLUMN = ADDITIONAL_INFO_PROPERTY; | ||
498 | 497 | ||
499 | /** | 498 | /** |
500 | * Edge constants. | 499 | * Edge constants. |
@@ -28,7 +28,7 @@ import org.thingsboard.server.common.data.device.data.DeviceData; | @@ -28,7 +28,7 @@ import org.thingsboard.server.common.data.device.data.DeviceData; | ||
28 | import org.thingsboard.server.common.data.id.CustomerId; | 28 | import org.thingsboard.server.common.data.id.CustomerId; |
29 | import org.thingsboard.server.common.data.id.DeviceId; | 29 | import org.thingsboard.server.common.data.id.DeviceId; |
30 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 30 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
31 | -import org.thingsboard.server.common.data.id.FirmwareId; | 31 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
32 | import org.thingsboard.server.common.data.id.TenantId; | 32 | import org.thingsboard.server.common.data.id.TenantId; |
33 | import org.thingsboard.server.dao.model.BaseSqlEntity; | 33 | import org.thingsboard.server.dao.model.BaseSqlEntity; |
34 | import org.thingsboard.server.dao.model.ModelConstants; | 34 | import org.thingsboard.server.dao.model.ModelConstants; |
@@ -154,10 +154,10 @@ public abstract class AbstractDeviceEntity<T extends Device> extends BaseSqlEnti | @@ -154,10 +154,10 @@ public abstract class AbstractDeviceEntity<T extends Device> extends BaseSqlEnti | ||
154 | device.setDeviceProfileId(new DeviceProfileId(deviceProfileId)); | 154 | device.setDeviceProfileId(new DeviceProfileId(deviceProfileId)); |
155 | } | 155 | } |
156 | if (firmwareId != null) { | 156 | if (firmwareId != null) { |
157 | - device.setFirmwareId(new FirmwareId(firmwareId)); | 157 | + device.setFirmwareId(new OtaPackageId(firmwareId)); |
158 | } | 158 | } |
159 | if (softwareId != null) { | 159 | if (softwareId != null) { |
160 | - device.setSoftwareId(new FirmwareId(softwareId)); | 160 | + device.setSoftwareId(new OtaPackageId(softwareId)); |
161 | } | 161 | } |
162 | device.setDeviceData(JacksonUtil.convertValue(deviceData, DeviceData.class)); | 162 | device.setDeviceData(JacksonUtil.convertValue(deviceData, DeviceData.class)); |
163 | device.setName(name); | 163 | device.setName(name); |
@@ -29,7 +29,7 @@ import org.thingsboard.server.common.data.DeviceTransportType; | @@ -29,7 +29,7 @@ import org.thingsboard.server.common.data.DeviceTransportType; | ||
29 | import org.thingsboard.server.common.data.device.profile.DeviceProfileData; | 29 | import org.thingsboard.server.common.data.device.profile.DeviceProfileData; |
30 | import org.thingsboard.server.common.data.id.DashboardId; | 30 | import org.thingsboard.server.common.data.id.DashboardId; |
31 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 31 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
32 | -import org.thingsboard.server.common.data.id.FirmwareId; | 32 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
33 | import org.thingsboard.server.common.data.id.RuleChainId; | 33 | import org.thingsboard.server.common.data.id.RuleChainId; |
34 | import org.thingsboard.server.common.data.id.TenantId; | 34 | import org.thingsboard.server.common.data.id.TenantId; |
35 | import org.thingsboard.server.dao.model.BaseSqlEntity; | 35 | import org.thingsboard.server.dao.model.BaseSqlEntity; |
@@ -178,11 +178,11 @@ public final class DeviceProfileEntity extends BaseSqlEntity<DeviceProfile> impl | @@ -178,11 +178,11 @@ public final class DeviceProfileEntity extends BaseSqlEntity<DeviceProfile> impl | ||
178 | deviceProfile.setProvisionDeviceKey(provisionDeviceKey); | 178 | deviceProfile.setProvisionDeviceKey(provisionDeviceKey); |
179 | 179 | ||
180 | if (firmwareId != null) { | 180 | if (firmwareId != null) { |
181 | - deviceProfile.setFirmwareId(new FirmwareId(firmwareId)); | 181 | + deviceProfile.setFirmwareId(new OtaPackageId(firmwareId)); |
182 | } | 182 | } |
183 | 183 | ||
184 | if (softwareId != null) { | 184 | if (softwareId != null) { |
185 | - deviceProfile.setSoftwareId(new FirmwareId(softwareId)); | 185 | + deviceProfile.setSoftwareId(new OtaPackageId(softwareId)); |
186 | } | 186 | } |
187 | 187 | ||
188 | return deviceProfile; | 188 | return deviceProfile; |
dao/src/main/java/org/thingsboard/server/dao/model/sql/OtaPackageEntity.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/model/sql/FirmwareEntity.java
@@ -20,11 +20,11 @@ import lombok.Data; | @@ -20,11 +20,11 @@ import lombok.Data; | ||
20 | import lombok.EqualsAndHashCode; | 20 | import lombok.EqualsAndHashCode; |
21 | import org.hibernate.annotations.Type; | 21 | import org.hibernate.annotations.Type; |
22 | import org.hibernate.annotations.TypeDef; | 22 | import org.hibernate.annotations.TypeDef; |
23 | -import org.thingsboard.server.common.data.Firmware; | ||
24 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
25 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 23 | +import org.thingsboard.server.common.data.OtaPackage; |
24 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; | ||
25 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
26 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 26 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
27 | -import org.thingsboard.server.common.data.id.FirmwareId; | 27 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
28 | import org.thingsboard.server.common.data.id.TenantId; | 28 | import org.thingsboard.server.common.data.id.TenantId; |
29 | import org.thingsboard.server.dao.model.BaseSqlEntity; | 29 | import org.thingsboard.server.dao.model.BaseSqlEntity; |
30 | import org.thingsboard.server.dao.model.ModelConstants; | 30 | import org.thingsboard.server.dao.model.ModelConstants; |
@@ -40,75 +40,75 @@ import javax.persistence.Table; | @@ -40,75 +40,75 @@ import javax.persistence.Table; | ||
40 | import java.nio.ByteBuffer; | 40 | import java.nio.ByteBuffer; |
41 | import java.util.UUID; | 41 | import java.util.UUID; |
42 | 42 | ||
43 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CHECKSUM_ALGORITHM_COLUMN; | ||
44 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CHECKSUM_COLUMN; | ||
45 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CONTENT_TYPE_COLUMN; | ||
46 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_DATA_COLUMN; | ||
47 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_DATA_SIZE_COLUMN; | ||
48 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_DEVICE_PROFILE_ID_COLUMN; | ||
49 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_FILE_NAME_COLUMN; | ||
50 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TABLE_NAME; | ||
51 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TENANT_ID_COLUMN; | ||
52 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TITLE_COLUMN; | ||
53 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TYPE_COLUMN; | ||
54 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_VERSION_COLUMN; | 43 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CHECKSUM_ALGORITHM_COLUMN; |
44 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CHECKSUM_COLUMN; | ||
45 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CONTENT_TYPE_COLUMN; | ||
46 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_DATA_COLUMN; | ||
47 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_DATA_SIZE_COLUMN; | ||
48 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_DEVICE_PROFILE_ID_COLUMN; | ||
49 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_FILE_NAME_COLUMN; | ||
50 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TABLE_NAME; | ||
51 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TENANT_ID_COLUMN; | ||
52 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TILE_COLUMN; | ||
53 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TYPE_COLUMN; | ||
54 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_VERSION_COLUMN; | ||
55 | import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPERTY; | 55 | import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPERTY; |
56 | 56 | ||
57 | @Data | 57 | @Data |
58 | @EqualsAndHashCode(callSuper = true) | 58 | @EqualsAndHashCode(callSuper = true) |
59 | @Entity | 59 | @Entity |
60 | @TypeDef(name = "json", typeClass = JsonStringType.class) | 60 | @TypeDef(name = "json", typeClass = JsonStringType.class) |
61 | -@Table(name = FIRMWARE_TABLE_NAME) | ||
62 | -public class FirmwareEntity extends BaseSqlEntity<Firmware> implements SearchTextEntity<Firmware> { | 61 | +@Table(name = OTA_PACKAGE_TABLE_NAME) |
62 | +public class OtaPackageEntity extends BaseSqlEntity<OtaPackage> implements SearchTextEntity<OtaPackage> { | ||
63 | 63 | ||
64 | - @Column(name = FIRMWARE_TENANT_ID_COLUMN) | 64 | + @Column(name = OTA_PACKAGE_TENANT_ID_COLUMN) |
65 | private UUID tenantId; | 65 | private UUID tenantId; |
66 | 66 | ||
67 | - @Column(name = FIRMWARE_DEVICE_PROFILE_ID_COLUMN) | 67 | + @Column(name = OTA_PACKAGE_DEVICE_PROFILE_ID_COLUMN) |
68 | private UUID deviceProfileId; | 68 | private UUID deviceProfileId; |
69 | 69 | ||
70 | @Enumerated(EnumType.STRING) | 70 | @Enumerated(EnumType.STRING) |
71 | - @Column(name = FIRMWARE_TYPE_COLUMN) | ||
72 | - private FirmwareType type; | 71 | + @Column(name = OTA_PACKAGE_TYPE_COLUMN) |
72 | + private OtaPackageType type; | ||
73 | 73 | ||
74 | - @Column(name = FIRMWARE_TITLE_COLUMN) | 74 | + @Column(name = OTA_PACKAGE_TILE_COLUMN) |
75 | private String title; | 75 | private String title; |
76 | 76 | ||
77 | - @Column(name = FIRMWARE_VERSION_COLUMN) | 77 | + @Column(name = OTA_PACKAGE_VERSION_COLUMN) |
78 | private String version; | 78 | private String version; |
79 | 79 | ||
80 | - @Column(name = FIRMWARE_FILE_NAME_COLUMN) | 80 | + @Column(name = OTA_PACKAGE_FILE_NAME_COLUMN) |
81 | private String fileName; | 81 | private String fileName; |
82 | 82 | ||
83 | - @Column(name = FIRMWARE_CONTENT_TYPE_COLUMN) | 83 | + @Column(name = OTA_PACKAGE_CONTENT_TYPE_COLUMN) |
84 | private String contentType; | 84 | private String contentType; |
85 | 85 | ||
86 | @Enumerated(EnumType.STRING) | 86 | @Enumerated(EnumType.STRING) |
87 | - @Column(name = FIRMWARE_CHECKSUM_ALGORITHM_COLUMN) | 87 | + @Column(name = OTA_PACKAGE_CHECKSUM_ALGORITHM_COLUMN) |
88 | private ChecksumAlgorithm checksumAlgorithm; | 88 | private ChecksumAlgorithm checksumAlgorithm; |
89 | 89 | ||
90 | - @Column(name = FIRMWARE_CHECKSUM_COLUMN) | 90 | + @Column(name = OTA_PACKAGE_CHECKSUM_COLUMN) |
91 | private String checksum; | 91 | private String checksum; |
92 | 92 | ||
93 | @Lob | 93 | @Lob |
94 | - @Column(name = FIRMWARE_DATA_COLUMN, columnDefinition = "BINARY") | 94 | + @Column(name = OTA_PACKAGE_DATA_COLUMN, columnDefinition = "BINARY") |
95 | private byte[] data; | 95 | private byte[] data; |
96 | 96 | ||
97 | - @Column(name = FIRMWARE_DATA_SIZE_COLUMN) | 97 | + @Column(name = OTA_PACKAGE_DATA_SIZE_COLUMN) |
98 | private Long dataSize; | 98 | private Long dataSize; |
99 | 99 | ||
100 | @Type(type = "json") | 100 | @Type(type = "json") |
101 | - @Column(name = ModelConstants.FIRMWARE_ADDITIONAL_INFO_COLUMN) | 101 | + @Column(name = ModelConstants.OTA_PACKAGE_ADDITIONAL_INFO_COLUMN) |
102 | private JsonNode additionalInfo; | 102 | private JsonNode additionalInfo; |
103 | 103 | ||
104 | @Column(name = SEARCH_TEXT_PROPERTY) | 104 | @Column(name = SEARCH_TEXT_PROPERTY) |
105 | private String searchText; | 105 | private String searchText; |
106 | 106 | ||
107 | - public FirmwareEntity() { | 107 | + public OtaPackageEntity() { |
108 | super(); | 108 | super(); |
109 | } | 109 | } |
110 | 110 | ||
111 | - public FirmwareEntity(Firmware firmware) { | 111 | + public OtaPackageEntity(OtaPackage firmware) { |
112 | this.createdTime = firmware.getCreatedTime(); | 112 | this.createdTime = firmware.getCreatedTime(); |
113 | this.setUuid(firmware.getUuidId()); | 113 | this.setUuid(firmware.getUuidId()); |
114 | this.tenantId = firmware.getTenantId().getId(); | 114 | this.tenantId = firmware.getTenantId().getId(); |
@@ -138,8 +138,8 @@ public class FirmwareEntity extends BaseSqlEntity<Firmware> implements SearchTex | @@ -138,8 +138,8 @@ public class FirmwareEntity extends BaseSqlEntity<Firmware> implements SearchTex | ||
138 | } | 138 | } |
139 | 139 | ||
140 | @Override | 140 | @Override |
141 | - public Firmware toData() { | ||
142 | - Firmware firmware = new Firmware(new FirmwareId(id)); | 141 | + public OtaPackage toData() { |
142 | + OtaPackage firmware = new OtaPackage(new OtaPackageId(id)); | ||
143 | firmware.setCreatedTime(createdTime); | 143 | firmware.setCreatedTime(createdTime); |
144 | firmware.setTenantId(new TenantId(tenantId)); | 144 | firmware.setTenantId(new TenantId(tenantId)); |
145 | if (deviceProfileId != null) { | 145 | if (deviceProfileId != null) { |
dao/src/main/java/org/thingsboard/server/dao/model/sql/OtaPackageInfoEntity.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/model/sql/FirmwareInfoEntity.java
@@ -21,11 +21,11 @@ import lombok.EqualsAndHashCode; | @@ -21,11 +21,11 @@ import lombok.EqualsAndHashCode; | ||
21 | import org.hibernate.annotations.Type; | 21 | import org.hibernate.annotations.Type; |
22 | import org.hibernate.annotations.TypeDef; | 22 | import org.hibernate.annotations.TypeDef; |
23 | import org.thingsboard.common.util.JacksonUtil; | 23 | import org.thingsboard.common.util.JacksonUtil; |
24 | -import org.thingsboard.server.common.data.FirmwareInfo; | ||
25 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
26 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 24 | +import org.thingsboard.server.common.data.OtaPackageInfo; |
25 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; | ||
26 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
27 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 27 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
28 | -import org.thingsboard.server.common.data.id.FirmwareId; | 28 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
29 | import org.thingsboard.server.common.data.id.TenantId; | 29 | import org.thingsboard.server.common.data.id.TenantId; |
30 | import org.thingsboard.server.dao.model.BaseSqlEntity; | 30 | import org.thingsboard.server.dao.model.BaseSqlEntity; |
31 | import org.thingsboard.server.dao.model.ModelConstants; | 31 | import org.thingsboard.server.dao.model.ModelConstants; |
@@ -40,60 +40,60 @@ import javax.persistence.Table; | @@ -40,60 +40,60 @@ import javax.persistence.Table; | ||
40 | import javax.persistence.Transient; | 40 | import javax.persistence.Transient; |
41 | import java.util.UUID; | 41 | import java.util.UUID; |
42 | 42 | ||
43 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CHECKSUM_ALGORITHM_COLUMN; | ||
44 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CHECKSUM_COLUMN; | ||
45 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_CONTENT_TYPE_COLUMN; | ||
46 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_DATA_SIZE_COLUMN; | ||
47 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_DEVICE_PROFILE_ID_COLUMN; | ||
48 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_FILE_NAME_COLUMN; | ||
49 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TABLE_NAME; | ||
50 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TENANT_ID_COLUMN; | ||
51 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TITLE_COLUMN; | ||
52 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_TYPE_COLUMN; | ||
53 | -import static org.thingsboard.server.dao.model.ModelConstants.FIRMWARE_VERSION_COLUMN; | 43 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CHECKSUM_ALGORITHM_COLUMN; |
44 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CHECKSUM_COLUMN; | ||
45 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_CONTENT_TYPE_COLUMN; | ||
46 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_DATA_SIZE_COLUMN; | ||
47 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_DEVICE_PROFILE_ID_COLUMN; | ||
48 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_FILE_NAME_COLUMN; | ||
49 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TABLE_NAME; | ||
50 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TENANT_ID_COLUMN; | ||
51 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TILE_COLUMN; | ||
52 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_TYPE_COLUMN; | ||
53 | +import static org.thingsboard.server.dao.model.ModelConstants.OTA_PACKAGE_VERSION_COLUMN; | ||
54 | import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPERTY; | 54 | import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPERTY; |
55 | 55 | ||
56 | @Data | 56 | @Data |
57 | @EqualsAndHashCode(callSuper = true) | 57 | @EqualsAndHashCode(callSuper = true) |
58 | @Entity | 58 | @Entity |
59 | @TypeDef(name = "json", typeClass = JsonStringType.class) | 59 | @TypeDef(name = "json", typeClass = JsonStringType.class) |
60 | -@Table(name = FIRMWARE_TABLE_NAME) | ||
61 | -public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements SearchTextEntity<FirmwareInfo> { | 60 | +@Table(name = OTA_PACKAGE_TABLE_NAME) |
61 | +public class OtaPackageInfoEntity extends BaseSqlEntity<OtaPackageInfo> implements SearchTextEntity<OtaPackageInfo> { | ||
62 | 62 | ||
63 | - @Column(name = FIRMWARE_TENANT_ID_COLUMN) | 63 | + @Column(name = OTA_PACKAGE_TENANT_ID_COLUMN) |
64 | private UUID tenantId; | 64 | private UUID tenantId; |
65 | 65 | ||
66 | - @Column(name = FIRMWARE_DEVICE_PROFILE_ID_COLUMN) | 66 | + @Column(name = OTA_PACKAGE_DEVICE_PROFILE_ID_COLUMN) |
67 | private UUID deviceProfileId; | 67 | private UUID deviceProfileId; |
68 | 68 | ||
69 | @Enumerated(EnumType.STRING) | 69 | @Enumerated(EnumType.STRING) |
70 | - @Column(name = FIRMWARE_TYPE_COLUMN) | ||
71 | - private FirmwareType type; | 70 | + @Column(name = OTA_PACKAGE_TYPE_COLUMN) |
71 | + private OtaPackageType type; | ||
72 | 72 | ||
73 | - @Column(name = FIRMWARE_TITLE_COLUMN) | 73 | + @Column(name = OTA_PACKAGE_TILE_COLUMN) |
74 | private String title; | 74 | private String title; |
75 | 75 | ||
76 | - @Column(name = FIRMWARE_VERSION_COLUMN) | 76 | + @Column(name = OTA_PACKAGE_VERSION_COLUMN) |
77 | private String version; | 77 | private String version; |
78 | 78 | ||
79 | - @Column(name = FIRMWARE_FILE_NAME_COLUMN) | 79 | + @Column(name = OTA_PACKAGE_FILE_NAME_COLUMN) |
80 | private String fileName; | 80 | private String fileName; |
81 | 81 | ||
82 | - @Column(name = FIRMWARE_CONTENT_TYPE_COLUMN) | 82 | + @Column(name = OTA_PACKAGE_CONTENT_TYPE_COLUMN) |
83 | private String contentType; | 83 | private String contentType; |
84 | 84 | ||
85 | @Enumerated(EnumType.STRING) | 85 | @Enumerated(EnumType.STRING) |
86 | - @Column(name = FIRMWARE_CHECKSUM_ALGORITHM_COLUMN) | 86 | + @Column(name = OTA_PACKAGE_CHECKSUM_ALGORITHM_COLUMN) |
87 | private ChecksumAlgorithm checksumAlgorithm; | 87 | private ChecksumAlgorithm checksumAlgorithm; |
88 | 88 | ||
89 | - @Column(name = FIRMWARE_CHECKSUM_COLUMN) | 89 | + @Column(name = OTA_PACKAGE_CHECKSUM_COLUMN) |
90 | private String checksum; | 90 | private String checksum; |
91 | 91 | ||
92 | - @Column(name = FIRMWARE_DATA_SIZE_COLUMN) | 92 | + @Column(name = OTA_PACKAGE_DATA_SIZE_COLUMN) |
93 | private Long dataSize; | 93 | private Long dataSize; |
94 | 94 | ||
95 | @Type(type = "json") | 95 | @Type(type = "json") |
96 | - @Column(name = ModelConstants.FIRMWARE_ADDITIONAL_INFO_COLUMN) | 96 | + @Column(name = ModelConstants.OTA_PACKAGE_ADDITIONAL_INFO_COLUMN) |
97 | private JsonNode additionalInfo; | 97 | private JsonNode additionalInfo; |
98 | 98 | ||
99 | @Column(name = SEARCH_TEXT_PROPERTY) | 99 | @Column(name = SEARCH_TEXT_PROPERTY) |
@@ -102,11 +102,11 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | @@ -102,11 +102,11 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | ||
102 | @Transient | 102 | @Transient |
103 | private boolean hasData; | 103 | private boolean hasData; |
104 | 104 | ||
105 | - public FirmwareInfoEntity() { | 105 | + public OtaPackageInfoEntity() { |
106 | super(); | 106 | super(); |
107 | } | 107 | } |
108 | 108 | ||
109 | - public FirmwareInfoEntity(FirmwareInfo firmware) { | 109 | + public OtaPackageInfoEntity(OtaPackageInfo firmware) { |
110 | this.createdTime = firmware.getCreatedTime(); | 110 | this.createdTime = firmware.getCreatedTime(); |
111 | this.setUuid(firmware.getUuidId()); | 111 | this.setUuid(firmware.getUuidId()); |
112 | this.tenantId = firmware.getTenantId().getId(); | 112 | this.tenantId = firmware.getTenantId().getId(); |
@@ -124,9 +124,9 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | @@ -124,9 +124,9 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | ||
124 | this.additionalInfo = firmware.getAdditionalInfo(); | 124 | this.additionalInfo = firmware.getAdditionalInfo(); |
125 | } | 125 | } |
126 | 126 | ||
127 | - public FirmwareInfoEntity(UUID id, long createdTime, UUID tenantId, UUID deviceProfileId, FirmwareType type, String title, String version, | ||
128 | - String fileName, String contentType, ChecksumAlgorithm checksumAlgorithm, String checksum, Long dataSize, | ||
129 | - Object additionalInfo, boolean hasData) { | 127 | + public OtaPackageInfoEntity(UUID id, long createdTime, UUID tenantId, UUID deviceProfileId, OtaPackageType type, String title, String version, |
128 | + String fileName, String contentType, ChecksumAlgorithm checksumAlgorithm, String checksum, Long dataSize, | ||
129 | + Object additionalInfo, boolean hasData) { | ||
130 | this.id = id; | 130 | this.id = id; |
131 | this.createdTime = createdTime; | 131 | this.createdTime = createdTime; |
132 | this.tenantId = tenantId; | 132 | this.tenantId = tenantId; |
@@ -154,8 +154,8 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | @@ -154,8 +154,8 @@ public class FirmwareInfoEntity extends BaseSqlEntity<FirmwareInfo> implements S | ||
154 | } | 154 | } |
155 | 155 | ||
156 | @Override | 156 | @Override |
157 | - public FirmwareInfo toData() { | ||
158 | - FirmwareInfo firmware = new FirmwareInfo(new FirmwareId(id)); | 157 | + public OtaPackageInfo toData() { |
158 | + OtaPackageInfo firmware = new OtaPackageInfo(new OtaPackageId(id)); | ||
159 | firmware.setCreatedTime(createdTime); | 159 | firmware.setCreatedTime(createdTime); |
160 | firmware.setTenantId(new TenantId(tenantId)); | 160 | firmware.setTenantId(new TenantId(tenantId)); |
161 | if (deviceProfileId != null) { | 161 | if (deviceProfileId != null) { |
dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/firmware/BaseFirmwareService.java
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.firmware; | 16 | +package org.thingsboard.server.dao.ota; |
17 | 17 | ||
18 | import com.google.common.hash.HashFunction; | 18 | import com.google.common.hash.HashFunction; |
19 | import com.google.common.hash.Hashing; | 19 | import com.google.common.hash.Hashing; |
@@ -26,17 +26,15 @@ import org.springframework.cache.Cache; | @@ -26,17 +26,15 @@ import org.springframework.cache.Cache; | ||
26 | import org.springframework.cache.CacheManager; | 26 | import org.springframework.cache.CacheManager; |
27 | import org.springframework.cache.annotation.Cacheable; | 27 | import org.springframework.cache.annotation.Cacheable; |
28 | import org.springframework.stereotype.Service; | 28 | import org.springframework.stereotype.Service; |
29 | -import org.thingsboard.server.cache.firmware.FirmwareDataCache; | 29 | +import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
30 | import org.thingsboard.server.common.data.DeviceProfile; | 30 | import org.thingsboard.server.common.data.DeviceProfile; |
31 | -import org.thingsboard.server.common.data.Firmware; | ||
32 | -import org.thingsboard.server.common.data.FirmwareInfo; | 31 | +import org.thingsboard.server.common.data.OtaPackage; |
32 | +import org.thingsboard.server.common.data.OtaPackageInfo; | ||
33 | import org.thingsboard.server.common.data.Tenant; | 33 | import org.thingsboard.server.common.data.Tenant; |
34 | -import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; | ||
35 | -import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
36 | -import org.thingsboard.server.common.data.firmware.ChecksumAlgorithm; | ||
37 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 34 | +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; |
35 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
38 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 36 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
39 | -import org.thingsboard.server.common.data.id.FirmwareId; | 37 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
40 | import org.thingsboard.server.common.data.id.TenantId; | 38 | import org.thingsboard.server.common.data.id.TenantId; |
41 | import org.thingsboard.server.common.data.page.PageData; | 39 | import org.thingsboard.server.common.data.page.PageData; |
42 | import org.thingsboard.server.common.data.page.PageLink; | 40 | import org.thingsboard.server.common.data.page.PageLink; |
@@ -46,49 +44,45 @@ import org.thingsboard.server.dao.service.DataValidator; | @@ -46,49 +44,45 @@ import org.thingsboard.server.dao.service.DataValidator; | ||
46 | import org.thingsboard.server.dao.service.PaginatedRemover; | 44 | import org.thingsboard.server.dao.service.PaginatedRemover; |
47 | import org.thingsboard.server.dao.tenant.TenantDao; | 45 | import org.thingsboard.server.dao.tenant.TenantDao; |
48 | 46 | ||
49 | -import java.lang.reflect.InvocationTargetException; | ||
50 | -import java.lang.reflect.Method; | ||
51 | import java.nio.ByteBuffer; | 47 | import java.nio.ByteBuffer; |
52 | -import java.util.ArrayList; | ||
53 | -import java.util.Arrays; | ||
54 | import java.util.Collections; | 48 | import java.util.Collections; |
55 | import java.util.List; | 49 | import java.util.List; |
56 | import java.util.Optional; | 50 | import java.util.Optional; |
57 | 51 | ||
58 | -import static org.thingsboard.server.common.data.CacheConstants.FIRMWARE_CACHE; | 52 | +import static org.thingsboard.server.common.data.CacheConstants.OTA_PACKAGE_CACHE; |
59 | import static org.thingsboard.server.dao.service.Validator.validateId; | 53 | import static org.thingsboard.server.dao.service.Validator.validateId; |
60 | import static org.thingsboard.server.dao.service.Validator.validatePageLink; | 54 | import static org.thingsboard.server.dao.service.Validator.validatePageLink; |
61 | 55 | ||
62 | @Service | 56 | @Service |
63 | @Slf4j | 57 | @Slf4j |
64 | @RequiredArgsConstructor | 58 | @RequiredArgsConstructor |
65 | -public class BaseFirmwareService implements FirmwareService { | ||
66 | - public static final String INCORRECT_FIRMWARE_ID = "Incorrect firmwareId "; | 59 | +public class BaseOtaPackageService implements OtaPackageService { |
60 | + public static final String INCORRECT_OTA_PACKAGE_ID = "Incorrect otaPackageId "; | ||
67 | public static final String INCORRECT_TENANT_ID = "Incorrect tenantId "; | 61 | public static final String INCORRECT_TENANT_ID = "Incorrect tenantId "; |
68 | 62 | ||
69 | private final TenantDao tenantDao; | 63 | private final TenantDao tenantDao; |
70 | private final DeviceProfileDao deviceProfileDao; | 64 | private final DeviceProfileDao deviceProfileDao; |
71 | - private final FirmwareDao firmwareDao; | ||
72 | - private final FirmwareInfoDao firmwareInfoDao; | 65 | + private final OtaPackageDao otaPackageDao; |
66 | + private final OtaPackageInfoDao otaPackageInfoDao; | ||
73 | private final CacheManager cacheManager; | 67 | private final CacheManager cacheManager; |
74 | - private final FirmwareDataCache firmwareDataCache; | 68 | + private final OtaPackageDataCache otaPackageDataCache; |
75 | 69 | ||
76 | @Override | 70 | @Override |
77 | - public FirmwareInfo saveFirmwareInfo(FirmwareInfo firmwareInfo) { | ||
78 | - log.trace("Executing saveFirmwareInfo [{}]", firmwareInfo); | ||
79 | - firmwareInfoValidator.validate(firmwareInfo, FirmwareInfo::getTenantId); | 71 | + public OtaPackageInfo saveOtaPackageInfo(OtaPackageInfo otaPackageInfo) { |
72 | + log.trace("Executing saveOtaPackageInfo [{}]", otaPackageInfo); | ||
73 | + otaPackageInfoValidator.validate(otaPackageInfo, OtaPackageInfo::getTenantId); | ||
80 | try { | 74 | try { |
81 | - FirmwareId firmwareId = firmwareInfo.getId(); | ||
82 | - if (firmwareId != null) { | ||
83 | - Cache cache = cacheManager.getCache(FIRMWARE_CACHE); | ||
84 | - cache.evict(toFirmwareInfoKey(firmwareId)); | ||
85 | - firmwareDataCache.evict(firmwareId.toString()); | 75 | + OtaPackageId otaPackageId = otaPackageInfo.getId(); |
76 | + if (otaPackageId != null) { | ||
77 | + Cache cache = cacheManager.getCache(OTA_PACKAGE_CACHE); | ||
78 | + cache.evict(toOtaPackageInfoKey(otaPackageId)); | ||
79 | + otaPackageDataCache.evict(otaPackageId.toString()); | ||
86 | } | 80 | } |
87 | - return firmwareInfoDao.save(firmwareInfo.getTenantId(), firmwareInfo); | 81 | + return otaPackageInfoDao.save(otaPackageInfo.getTenantId(), otaPackageInfo); |
88 | } catch (Exception t) { | 82 | } catch (Exception t) { |
89 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); | 83 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); |
90 | - if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("firmware_tenant_title_version_unq_key")) { | ||
91 | - throw new DataValidationException("Firmware with such title and version already exists!"); | 84 | + if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("ota_package_tenant_title_version_unq_key")) { |
85 | + throw new DataValidationException("OtaPackage with such title and version already exists!"); | ||
92 | } else { | 86 | } else { |
93 | throw t; | 87 | throw t; |
94 | } | 88 | } |
@@ -96,21 +90,21 @@ public class BaseFirmwareService implements FirmwareService { | @@ -96,21 +90,21 @@ public class BaseFirmwareService implements FirmwareService { | ||
96 | } | 90 | } |
97 | 91 | ||
98 | @Override | 92 | @Override |
99 | - public Firmware saveFirmware(Firmware firmware) { | ||
100 | - log.trace("Executing saveFirmware [{}]", firmware); | ||
101 | - firmwareValidator.validate(firmware, FirmwareInfo::getTenantId); | 93 | + public OtaPackage saveOtaPackage(OtaPackage otaPackage) { |
94 | + log.trace("Executing saveOtaPackage [{}]", otaPackage); | ||
95 | + otaPackageValidator.validate(otaPackage, OtaPackageInfo::getTenantId); | ||
102 | try { | 96 | try { |
103 | - FirmwareId firmwareId = firmware.getId(); | ||
104 | - if (firmwareId != null) { | ||
105 | - Cache cache = cacheManager.getCache(FIRMWARE_CACHE); | ||
106 | - cache.evict(toFirmwareInfoKey(firmwareId)); | ||
107 | - firmwareDataCache.evict(firmwareId.toString()); | 97 | + OtaPackageId otaPackageId = otaPackage.getId(); |
98 | + if (otaPackageId != null) { | ||
99 | + Cache cache = cacheManager.getCache(OTA_PACKAGE_CACHE); | ||
100 | + cache.evict(toOtaPackageInfoKey(otaPackageId)); | ||
101 | + otaPackageDataCache.evict(otaPackageId.toString()); | ||
108 | } | 102 | } |
109 | - return firmwareDao.save(firmware.getTenantId(), firmware); | 103 | + return otaPackageDao.save(otaPackage.getTenantId(), otaPackage); |
110 | } catch (Exception t) { | 104 | } catch (Exception t) { |
111 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); | 105 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); |
112 | - if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("firmware_tenant_title_version_unq_key")) { | ||
113 | - throw new DataValidationException("Firmware with such title and version already exists!"); | 106 | + if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("ota_package_tenant_title_version_unq_key")) { |
107 | + throw new DataValidationException("OtaPackage with such title and version already exists!"); | ||
114 | } else { | 108 | } else { |
115 | throw t; | 109 | throw t; |
116 | } | 110 | } |
@@ -120,7 +114,7 @@ public class BaseFirmwareService implements FirmwareService { | @@ -120,7 +114,7 @@ public class BaseFirmwareService implements FirmwareService { | ||
120 | @Override | 114 | @Override |
121 | public String generateChecksum(ChecksumAlgorithm checksumAlgorithm, ByteBuffer data) { | 115 | public String generateChecksum(ChecksumAlgorithm checksumAlgorithm, ByteBuffer data) { |
122 | if (data == null || !data.hasArray() || data.array().length == 0) { | 116 | if (data == null || !data.hasArray() || data.array().length == 0) { |
123 | - throw new DataValidationException("Firmware data should be specified!"); | 117 | + throw new DataValidationException("OtaPackage data should be specified!"); |
124 | } | 118 | } |
125 | 119 | ||
126 | return getHashFunction(checksumAlgorithm).hashBytes(data.array()).toString(); | 120 | return getHashFunction(checksumAlgorithm).hashBytes(data.array()).toString(); |
@@ -148,58 +142,58 @@ public class BaseFirmwareService implements FirmwareService { | @@ -148,58 +142,58 @@ public class BaseFirmwareService implements FirmwareService { | ||
148 | } | 142 | } |
149 | 143 | ||
150 | @Override | 144 | @Override |
151 | - public Firmware findFirmwareById(TenantId tenantId, FirmwareId firmwareId) { | ||
152 | - log.trace("Executing findFirmwareById [{}]", firmwareId); | ||
153 | - validateId(firmwareId, INCORRECT_FIRMWARE_ID + firmwareId); | ||
154 | - return firmwareDao.findById(tenantId, firmwareId.getId()); | 145 | + public OtaPackage findOtaPackageById(TenantId tenantId, OtaPackageId otaPackageId) { |
146 | + log.trace("Executing findOtaPackageById [{}]", otaPackageId); | ||
147 | + validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId); | ||
148 | + return otaPackageDao.findById(tenantId, otaPackageId.getId()); | ||
155 | } | 149 | } |
156 | 150 | ||
157 | @Override | 151 | @Override |
158 | - @Cacheable(cacheNames = FIRMWARE_CACHE, key = "{#firmwareId}") | ||
159 | - public FirmwareInfo findFirmwareInfoById(TenantId tenantId, FirmwareId firmwareId) { | ||
160 | - log.trace("Executing findFirmwareInfoById [{}]", firmwareId); | ||
161 | - validateId(firmwareId, INCORRECT_FIRMWARE_ID + firmwareId); | ||
162 | - return firmwareInfoDao.findById(tenantId, firmwareId.getId()); | 152 | + @Cacheable(cacheNames = OTA_PACKAGE_CACHE, key = "{#otaPackageId}") |
153 | + public OtaPackageInfo findOtaPackageInfoById(TenantId tenantId, OtaPackageId otaPackageId) { | ||
154 | + log.trace("Executing findOtaPackageInfoById [{}]", otaPackageId); | ||
155 | + validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId); | ||
156 | + return otaPackageInfoDao.findById(tenantId, otaPackageId.getId()); | ||
163 | } | 157 | } |
164 | 158 | ||
165 | @Override | 159 | @Override |
166 | - public ListenableFuture<FirmwareInfo> findFirmwareInfoByIdAsync(TenantId tenantId, FirmwareId firmwareId) { | ||
167 | - log.trace("Executing findFirmwareInfoByIdAsync [{}]", firmwareId); | ||
168 | - validateId(firmwareId, INCORRECT_FIRMWARE_ID + firmwareId); | ||
169 | - return firmwareInfoDao.findByIdAsync(tenantId, firmwareId.getId()); | 160 | + public ListenableFuture<OtaPackageInfo> findOtaPackageInfoByIdAsync(TenantId tenantId, OtaPackageId otaPackageId) { |
161 | + log.trace("Executing findOtaPackageInfoByIdAsync [{}]", otaPackageId); | ||
162 | + validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId); | ||
163 | + return otaPackageInfoDao.findByIdAsync(tenantId, otaPackageId.getId()); | ||
170 | } | 164 | } |
171 | 165 | ||
172 | @Override | 166 | @Override |
173 | - public PageData<FirmwareInfo> findTenantFirmwaresByTenantId(TenantId tenantId, PageLink pageLink) { | ||
174 | - log.trace("Executing findTenantFirmwaresByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink); | 167 | + public PageData<OtaPackageInfo> findTenantOtaPackagesByTenantId(TenantId tenantId, PageLink pageLink) { |
168 | + log.trace("Executing findTenantOtaPackagesByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink); | ||
175 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 169 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
176 | validatePageLink(pageLink); | 170 | validatePageLink(pageLink); |
177 | - return firmwareInfoDao.findFirmwareInfoByTenantId(tenantId, pageLink); | 171 | + return otaPackageInfoDao.findOtaPackageInfoByTenantId(tenantId, pageLink); |
178 | } | 172 | } |
179 | 173 | ||
180 | @Override | 174 | @Override |
181 | - public PageData<FirmwareInfo> findTenantFirmwaresByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, FirmwareType firmwareType, boolean hasData, PageLink pageLink) { | ||
182 | - log.trace("Executing findTenantFirmwaresByTenantIdAndHasData, tenantId [{}], hasData [{}] pageLink [{}]", tenantId, hasData, pageLink); | 175 | + public PageData<OtaPackageInfo> findTenantOtaPackagesByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType, boolean hasData, PageLink pageLink) { |
176 | + log.trace("Executing findTenantOtaPackagesByTenantIdAndHasData, tenantId [{}], hasData [{}] pageLink [{}]", tenantId, hasData, pageLink); | ||
183 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 177 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
184 | validatePageLink(pageLink); | 178 | validatePageLink(pageLink); |
185 | - return firmwareInfoDao.findFirmwareInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(tenantId, deviceProfileId, firmwareType, hasData, pageLink); | 179 | + return otaPackageInfoDao.findOtaPackageInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(tenantId, deviceProfileId, otaPackageType, hasData, pageLink); |
186 | } | 180 | } |
187 | 181 | ||
188 | @Override | 182 | @Override |
189 | - public void deleteFirmware(TenantId tenantId, FirmwareId firmwareId) { | ||
190 | - log.trace("Executing deleteFirmware [{}]", firmwareId); | ||
191 | - validateId(firmwareId, INCORRECT_FIRMWARE_ID + firmwareId); | 183 | + public void deleteOtaPackage(TenantId tenantId, OtaPackageId otaPackageId) { |
184 | + log.trace("Executing deleteOtaPackage [{}]", otaPackageId); | ||
185 | + validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId); | ||
192 | try { | 186 | try { |
193 | - Cache cache = cacheManager.getCache(FIRMWARE_CACHE); | ||
194 | - cache.evict(toFirmwareInfoKey(firmwareId)); | ||
195 | - firmwareDataCache.evict(firmwareId.toString()); | ||
196 | - firmwareDao.removeById(tenantId, firmwareId.getId()); | 187 | + Cache cache = cacheManager.getCache(OTA_PACKAGE_CACHE); |
188 | + cache.evict(toOtaPackageInfoKey(otaPackageId)); | ||
189 | + otaPackageDataCache.evict(otaPackageId.toString()); | ||
190 | + otaPackageDao.removeById(tenantId, otaPackageId.getId()); | ||
197 | } catch (Exception t) { | 191 | } catch (Exception t) { |
198 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); | 192 | ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); |
199 | if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_firmware_device")) { | 193 | if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_firmware_device")) { |
200 | - throw new DataValidationException("The firmware referenced by the devices cannot be deleted!"); | 194 | + throw new DataValidationException("The otaPackage referenced by the devices cannot be deleted!"); |
201 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_firmware_device_profile")) { | 195 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_firmware_device_profile")) { |
202 | - throw new DataValidationException("The firmware referenced by the device profile cannot be deleted!"); | 196 | + throw new DataValidationException("The otaPackage referenced by the device profile cannot be deleted!"); |
203 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_software_device")) { | 197 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_software_device")) { |
204 | throw new DataValidationException("The software referenced by the devices cannot be deleted!"); | 198 | throw new DataValidationException("The software referenced by the devices cannot be deleted!"); |
205 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_software_device_profile")) { | 199 | } else if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("fk_software_device_profile")) { |
@@ -211,154 +205,154 @@ public class BaseFirmwareService implements FirmwareService { | @@ -211,154 +205,154 @@ public class BaseFirmwareService implements FirmwareService { | ||
211 | } | 205 | } |
212 | 206 | ||
213 | @Override | 207 | @Override |
214 | - public void deleteFirmwaresByTenantId(TenantId tenantId) { | ||
215 | - log.trace("Executing deleteFirmwaresByTenantId, tenantId [{}]", tenantId); | 208 | + public void deleteOtaPackagesByTenantId(TenantId tenantId) { |
209 | + log.trace("Executing deleteOtaPackagesByTenantId, tenantId [{}]", tenantId); | ||
216 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); | 210 | validateId(tenantId, INCORRECT_TENANT_ID + tenantId); |
217 | - tenantFirmwareRemover.removeEntities(tenantId, tenantId); | 211 | + tenantOtaPackageRemover.removeEntities(tenantId, tenantId); |
218 | } | 212 | } |
219 | 213 | ||
220 | - private DataValidator<FirmwareInfo> firmwareInfoValidator = new DataValidator<>() { | 214 | + private DataValidator<OtaPackageInfo> otaPackageInfoValidator = new DataValidator<>() { |
221 | 215 | ||
222 | @Override | 216 | @Override |
223 | - protected void validateDataImpl(TenantId tenantId, FirmwareInfo firmwareInfo) { | ||
224 | - validateImpl(firmwareInfo); | 217 | + protected void validateDataImpl(TenantId tenantId, OtaPackageInfo otaPackageInfo) { |
218 | + validateImpl(otaPackageInfo); | ||
225 | } | 219 | } |
226 | 220 | ||
227 | @Override | 221 | @Override |
228 | - protected void validateUpdate(TenantId tenantId, FirmwareInfo firmware) { | ||
229 | - FirmwareInfo firmwareOld = firmwareInfoDao.findById(tenantId, firmware.getUuidId()); | 222 | + protected void validateUpdate(TenantId tenantId, OtaPackageInfo otaPackage) { |
223 | + OtaPackageInfo otaPackageOld = otaPackageInfoDao.findById(tenantId, otaPackage.getUuidId()); | ||
230 | 224 | ||
231 | - validateUpdateDeviceProfile(firmware, firmwareOld); | ||
232 | - BaseFirmwareService.validateUpdate(firmware, firmwareOld); | 225 | + validateUpdateDeviceProfile(otaPackage, otaPackageOld); |
226 | + BaseOtaPackageService.validateUpdate(otaPackage, otaPackageOld); | ||
233 | } | 227 | } |
234 | }; | 228 | }; |
235 | 229 | ||
236 | - private DataValidator<Firmware> firmwareValidator = new DataValidator<>() { | 230 | + private DataValidator<OtaPackage> otaPackageValidator = new DataValidator<>() { |
237 | 231 | ||
238 | @Override | 232 | @Override |
239 | - protected void validateDataImpl(TenantId tenantId, Firmware firmware) { | ||
240 | - validateImpl(firmware); | 233 | + protected void validateDataImpl(TenantId tenantId, OtaPackage otaPackage) { |
234 | + validateImpl(otaPackage); | ||
241 | 235 | ||
242 | - if (StringUtils.isEmpty(firmware.getFileName())) { | ||
243 | - throw new DataValidationException("Firmware file name should be specified!"); | 236 | + if (StringUtils.isEmpty(otaPackage.getFileName())) { |
237 | + throw new DataValidationException("OtaPackage file name should be specified!"); | ||
244 | } | 238 | } |
245 | 239 | ||
246 | - if (StringUtils.isEmpty(firmware.getContentType())) { | ||
247 | - throw new DataValidationException("Firmware content type should be specified!"); | 240 | + if (StringUtils.isEmpty(otaPackage.getContentType())) { |
241 | + throw new DataValidationException("OtaPackage content type should be specified!"); | ||
248 | } | 242 | } |
249 | 243 | ||
250 | - if (firmware.getChecksumAlgorithm() == null) { | ||
251 | - throw new DataValidationException("Firmware checksum algorithm should be specified!"); | 244 | + if (otaPackage.getChecksumAlgorithm() == null) { |
245 | + throw new DataValidationException("OtaPackage checksum algorithm should be specified!"); | ||
252 | } | 246 | } |
253 | - if (StringUtils.isEmpty(firmware.getChecksum())) { | ||
254 | - throw new DataValidationException("Firmware checksum should be specified!"); | 247 | + if (StringUtils.isEmpty(otaPackage.getChecksum())) { |
248 | + throw new DataValidationException("OtaPackage checksum should be specified!"); | ||
255 | } | 249 | } |
256 | 250 | ||
257 | String currentChecksum; | 251 | String currentChecksum; |
258 | 252 | ||
259 | - currentChecksum = generateChecksum(firmware.getChecksumAlgorithm(), firmware.getData()); | 253 | + currentChecksum = generateChecksum(otaPackage.getChecksumAlgorithm(), otaPackage.getData()); |
260 | 254 | ||
261 | - if (!currentChecksum.equals(firmware.getChecksum())) { | ||
262 | - throw new DataValidationException("Wrong firmware file!"); | 255 | + if (!currentChecksum.equals(otaPackage.getChecksum())) { |
256 | + throw new DataValidationException("Wrong otaPackage file!"); | ||
263 | } | 257 | } |
264 | } | 258 | } |
265 | 259 | ||
266 | @Override | 260 | @Override |
267 | - protected void validateUpdate(TenantId tenantId, Firmware firmware) { | ||
268 | - Firmware firmwareOld = firmwareDao.findById(tenantId, firmware.getUuidId()); | 261 | + protected void validateUpdate(TenantId tenantId, OtaPackage otaPackage) { |
262 | + OtaPackage otaPackageOld = otaPackageDao.findById(tenantId, otaPackage.getUuidId()); | ||
269 | 263 | ||
270 | - validateUpdateDeviceProfile(firmware, firmwareOld); | ||
271 | - BaseFirmwareService.validateUpdate(firmware, firmwareOld); | 264 | + validateUpdateDeviceProfile(otaPackage, otaPackageOld); |
265 | + BaseOtaPackageService.validateUpdate(otaPackage, otaPackageOld); | ||
272 | 266 | ||
273 | - if (firmwareOld.getData() != null && !firmwareOld.getData().equals(firmware.getData())) { | ||
274 | - throw new DataValidationException("Updating firmware data is prohibited!"); | 267 | + if (otaPackageOld.getData() != null && !otaPackageOld.getData().equals(otaPackage.getData())) { |
268 | + throw new DataValidationException("Updating otaPackage data is prohibited!"); | ||
275 | } | 269 | } |
276 | } | 270 | } |
277 | }; | 271 | }; |
278 | 272 | ||
279 | - private void validateUpdateDeviceProfile(FirmwareInfo firmware, FirmwareInfo firmwareOld) { | ||
280 | - if (firmwareOld.getDeviceProfileId() != null && !firmwareOld.getDeviceProfileId().equals(firmware.getDeviceProfileId())) { | ||
281 | - if (firmwareInfoDao.isFirmwareUsed(firmwareOld.getId(), firmware.getType(), firmwareOld.getDeviceProfileId())) { | ||
282 | - throw new DataValidationException("Can`t update deviceProfileId because firmware is already in use!"); | 273 | + private void validateUpdateDeviceProfile(OtaPackageInfo otaPackage, OtaPackageInfo otaPackageOld) { |
274 | + if (otaPackageOld.getDeviceProfileId() != null && !otaPackageOld.getDeviceProfileId().equals(otaPackage.getDeviceProfileId())) { | ||
275 | + if (otaPackageInfoDao.isOtaPackageUsed(otaPackageOld.getId(), otaPackage.getType(), otaPackageOld.getDeviceProfileId())) { | ||
276 | + throw new DataValidationException("Can`t update deviceProfileId because otaPackage is already in use!"); | ||
283 | } | 277 | } |
284 | } | 278 | } |
285 | } | 279 | } |
286 | 280 | ||
287 | - private static void validateUpdate(FirmwareInfo firmware, FirmwareInfo firmwareOld) { | ||
288 | - if (!firmwareOld.getType().equals(firmware.getType())) { | 281 | + private static void validateUpdate(OtaPackageInfo otaPackage, OtaPackageInfo otaPackageOld) { |
282 | + if (!otaPackageOld.getType().equals(otaPackage.getType())) { | ||
289 | throw new DataValidationException("Updating type is prohibited!"); | 283 | throw new DataValidationException("Updating type is prohibited!"); |
290 | } | 284 | } |
291 | 285 | ||
292 | - if (!firmwareOld.getTitle().equals(firmware.getTitle())) { | ||
293 | - throw new DataValidationException("Updating firmware title is prohibited!"); | 286 | + if (!otaPackageOld.getTitle().equals(otaPackage.getTitle())) { |
287 | + throw new DataValidationException("Updating otaPackage title is prohibited!"); | ||
294 | } | 288 | } |
295 | 289 | ||
296 | - if (!firmwareOld.getVersion().equals(firmware.getVersion())) { | ||
297 | - throw new DataValidationException("Updating firmware version is prohibited!"); | 290 | + if (!otaPackageOld.getVersion().equals(otaPackage.getVersion())) { |
291 | + throw new DataValidationException("Updating otaPackage version is prohibited!"); | ||
298 | } | 292 | } |
299 | 293 | ||
300 | - if (firmwareOld.getFileName() != null && !firmwareOld.getFileName().equals(firmware.getFileName())) { | ||
301 | - throw new DataValidationException("Updating firmware file name is prohibited!"); | 294 | + if (otaPackageOld.getFileName() != null && !otaPackageOld.getFileName().equals(otaPackage.getFileName())) { |
295 | + throw new DataValidationException("Updating otaPackage file name is prohibited!"); | ||
302 | } | 296 | } |
303 | 297 | ||
304 | - if (firmwareOld.getContentType() != null && !firmwareOld.getContentType().equals(firmware.getContentType())) { | ||
305 | - throw new DataValidationException("Updating firmware content type is prohibited!"); | 298 | + if (otaPackageOld.getContentType() != null && !otaPackageOld.getContentType().equals(otaPackage.getContentType())) { |
299 | + throw new DataValidationException("Updating otaPackage content type is prohibited!"); | ||
306 | } | 300 | } |
307 | 301 | ||
308 | - if (firmwareOld.getChecksumAlgorithm() != null && !firmwareOld.getChecksumAlgorithm().equals(firmware.getChecksumAlgorithm())) { | ||
309 | - throw new DataValidationException("Updating firmware content type is prohibited!"); | 302 | + if (otaPackageOld.getChecksumAlgorithm() != null && !otaPackageOld.getChecksumAlgorithm().equals(otaPackage.getChecksumAlgorithm())) { |
303 | + throw new DataValidationException("Updating otaPackage content type is prohibited!"); | ||
310 | } | 304 | } |
311 | 305 | ||
312 | - if (firmwareOld.getChecksum() != null && !firmwareOld.getChecksum().equals(firmware.getChecksum())) { | ||
313 | - throw new DataValidationException("Updating firmware content type is prohibited!"); | 306 | + if (otaPackageOld.getChecksum() != null && !otaPackageOld.getChecksum().equals(otaPackage.getChecksum())) { |
307 | + throw new DataValidationException("Updating otaPackage content type is prohibited!"); | ||
314 | } | 308 | } |
315 | 309 | ||
316 | - if (firmwareOld.getDataSize() != null && !firmwareOld.getDataSize().equals(firmware.getDataSize())) { | ||
317 | - throw new DataValidationException("Updating firmware data size is prohibited!"); | 310 | + if (otaPackageOld.getDataSize() != null && !otaPackageOld.getDataSize().equals(otaPackage.getDataSize())) { |
311 | + throw new DataValidationException("Updating otaPackage data size is prohibited!"); | ||
318 | } | 312 | } |
319 | } | 313 | } |
320 | 314 | ||
321 | - private void validateImpl(FirmwareInfo firmwareInfo) { | ||
322 | - if (firmwareInfo.getTenantId() == null) { | ||
323 | - throw new DataValidationException("Firmware should be assigned to tenant!"); | 315 | + private void validateImpl(OtaPackageInfo otaPackageInfo) { |
316 | + if (otaPackageInfo.getTenantId() == null) { | ||
317 | + throw new DataValidationException("OtaPackage should be assigned to tenant!"); | ||
324 | } else { | 318 | } else { |
325 | - Tenant tenant = tenantDao.findById(firmwareInfo.getTenantId(), firmwareInfo.getTenantId().getId()); | 319 | + Tenant tenant = tenantDao.findById(otaPackageInfo.getTenantId(), otaPackageInfo.getTenantId().getId()); |
326 | if (tenant == null) { | 320 | if (tenant == null) { |
327 | - throw new DataValidationException("Firmware is referencing to non-existent tenant!"); | 321 | + throw new DataValidationException("OtaPackage is referencing to non-existent tenant!"); |
328 | } | 322 | } |
329 | } | 323 | } |
330 | 324 | ||
331 | - if (firmwareInfo.getDeviceProfileId() != null) { | ||
332 | - DeviceProfile deviceProfile = deviceProfileDao.findById(firmwareInfo.getTenantId(), firmwareInfo.getDeviceProfileId().getId()); | 325 | + if (otaPackageInfo.getDeviceProfileId() != null) { |
326 | + DeviceProfile deviceProfile = deviceProfileDao.findById(otaPackageInfo.getTenantId(), otaPackageInfo.getDeviceProfileId().getId()); | ||
333 | if (deviceProfile == null) { | 327 | if (deviceProfile == null) { |
334 | - throw new DataValidationException("Firmware is referencing to non-existent device profile!"); | 328 | + throw new DataValidationException("OtaPackage is referencing to non-existent device profile!"); |
335 | } | 329 | } |
336 | } | 330 | } |
337 | 331 | ||
338 | - if (firmwareInfo.getType() == null) { | 332 | + if (otaPackageInfo.getType() == null) { |
339 | throw new DataValidationException("Type should be specified!"); | 333 | throw new DataValidationException("Type should be specified!"); |
340 | } | 334 | } |
341 | 335 | ||
342 | - if (StringUtils.isEmpty(firmwareInfo.getTitle())) { | ||
343 | - throw new DataValidationException("Firmware title should be specified!"); | 336 | + if (StringUtils.isEmpty(otaPackageInfo.getTitle())) { |
337 | + throw new DataValidationException("OtaPackage title should be specified!"); | ||
344 | } | 338 | } |
345 | 339 | ||
346 | - if (StringUtils.isEmpty(firmwareInfo.getVersion())) { | ||
347 | - throw new DataValidationException("Firmware version should be specified!"); | 340 | + if (StringUtils.isEmpty(otaPackageInfo.getVersion())) { |
341 | + throw new DataValidationException("OtaPackage version should be specified!"); | ||
348 | } | 342 | } |
349 | } | 343 | } |
350 | 344 | ||
351 | - private PaginatedRemover<TenantId, FirmwareInfo> tenantFirmwareRemover = | 345 | + private PaginatedRemover<TenantId, OtaPackageInfo> tenantOtaPackageRemover = |
352 | new PaginatedRemover<>() { | 346 | new PaginatedRemover<>() { |
353 | 347 | ||
354 | @Override | 348 | @Override |
355 | - protected PageData<FirmwareInfo> findEntities(TenantId tenantId, TenantId id, PageLink pageLink) { | ||
356 | - return firmwareInfoDao.findFirmwareInfoByTenantId(id, pageLink); | 349 | + protected PageData<OtaPackageInfo> findEntities(TenantId tenantId, TenantId id, PageLink pageLink) { |
350 | + return otaPackageInfoDao.findOtaPackageInfoByTenantId(id, pageLink); | ||
357 | } | 351 | } |
358 | 352 | ||
359 | @Override | 353 | @Override |
360 | - protected void removeEntity(TenantId tenantId, FirmwareInfo entity) { | ||
361 | - deleteFirmware(tenantId, entity.getId()); | 354 | + protected void removeEntity(TenantId tenantId, OtaPackageInfo entity) { |
355 | + deleteOtaPackage(tenantId, entity.getId()); | ||
362 | } | 356 | } |
363 | }; | 357 | }; |
364 | 358 | ||
@@ -372,8 +366,8 @@ public class BaseFirmwareService implements FirmwareService { | @@ -372,8 +366,8 @@ public class BaseFirmwareService implements FirmwareService { | ||
372 | } | 366 | } |
373 | } | 367 | } |
374 | 368 | ||
375 | - private static List<FirmwareId> toFirmwareInfoKey(FirmwareId firmwareId) { | ||
376 | - return Collections.singletonList(firmwareId); | 369 | + private static List<OtaPackageId> toOtaPackageInfoKey(OtaPackageId otaPackageId) { |
370 | + return Collections.singletonList(otaPackageId); | ||
377 | } | 371 | } |
378 | 372 | ||
379 | } | 373 | } |
dao/src/main/java/org/thingsboard/server/dao/ota/OtaPackageDao.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/firmware/FirmwareDao.java
@@ -13,11 +13,11 @@ | @@ -13,11 +13,11 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.firmware; | 16 | +package org.thingsboard.server.dao.ota; |
17 | 17 | ||
18 | -import org.thingsboard.server.common.data.Firmware; | 18 | +import org.thingsboard.server.common.data.OtaPackage; |
19 | import org.thingsboard.server.dao.Dao; | 19 | import org.thingsboard.server.dao.Dao; |
20 | 20 | ||
21 | -public interface FirmwareDao extends Dao<Firmware> { | 21 | +public interface OtaPackageDao extends Dao<OtaPackage> { |
22 | 22 | ||
23 | } | 23 | } |
dao/src/main/java/org/thingsboard/server/dao/ota/OtaPackageInfoDao.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/firmware/FirmwareInfoDao.java
@@ -13,25 +13,23 @@ | @@ -13,25 +13,23 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.firmware; | 16 | +package org.thingsboard.server.dao.ota; |
17 | 17 | ||
18 | -import org.thingsboard.server.common.data.FirmwareInfo; | ||
19 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 18 | +import org.thingsboard.server.common.data.OtaPackageInfo; |
19 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
20 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 20 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
21 | -import org.thingsboard.server.common.data.id.FirmwareId; | 21 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
22 | import org.thingsboard.server.common.data.id.TenantId; | 22 | import org.thingsboard.server.common.data.id.TenantId; |
23 | import org.thingsboard.server.common.data.page.PageData; | 23 | import org.thingsboard.server.common.data.page.PageData; |
24 | import org.thingsboard.server.common.data.page.PageLink; | 24 | import org.thingsboard.server.common.data.page.PageLink; |
25 | import org.thingsboard.server.dao.Dao; | 25 | import org.thingsboard.server.dao.Dao; |
26 | 26 | ||
27 | -import java.util.UUID; | 27 | +public interface OtaPackageInfoDao extends Dao<OtaPackageInfo> { |
28 | 28 | ||
29 | -public interface FirmwareInfoDao extends Dao<FirmwareInfo> { | 29 | + PageData<OtaPackageInfo> findOtaPackageInfoByTenantId(TenantId tenantId, PageLink pageLink); |
30 | 30 | ||
31 | - PageData<FirmwareInfo> findFirmwareInfoByTenantId(TenantId tenantId, PageLink pageLink); | 31 | + PageData<OtaPackageInfo> findOtaPackageInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType, boolean hasData, PageLink pageLink); |
32 | 32 | ||
33 | - PageData<FirmwareInfo> findFirmwareInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, FirmwareType firmwareType, boolean hasData, PageLink pageLink); | ||
34 | - | ||
35 | - boolean isFirmwareUsed(FirmwareId firmwareId, FirmwareType type, DeviceProfileId deviceProfileId); | 33 | + boolean isOtaPackageUsed(OtaPackageId otaPackageId, OtaPackageType otaPackageType, DeviceProfileId deviceProfileId); |
36 | 34 | ||
37 | } | 35 | } |
@@ -96,23 +96,35 @@ public interface DeviceRepository extends PagingAndSortingRepository<DeviceEntit | @@ -96,23 +96,35 @@ public interface DeviceRepository extends PagingAndSortingRepository<DeviceEntit | ||
96 | Pageable pageable); | 96 | Pageable pageable); |
97 | 97 | ||
98 | @Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " + | 98 | @Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " + |
99 | - "AND d.type = :type " + | 99 | + "AND d.deviceProfileId = :deviceProfileId " + |
100 | "AND d.firmwareId = null " + | 100 | "AND d.firmwareId = null " + |
101 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") | 101 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") |
102 | Page<DeviceEntity> findByTenantIdAndTypeAndFirmwareIdIsNull(@Param("tenantId") UUID tenantId, | 102 | Page<DeviceEntity> findByTenantIdAndTypeAndFirmwareIdIsNull(@Param("tenantId") UUID tenantId, |
103 | - @Param("type") String type, | 103 | + @Param("deviceProfileId") UUID deviceProfileId, |
104 | @Param("textSearch") String textSearch, | 104 | @Param("textSearch") String textSearch, |
105 | Pageable pageable); | 105 | Pageable pageable); |
106 | 106 | ||
107 | @Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " + | 107 | @Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " + |
108 | - "AND d.type = :type " + | 108 | + "AND d.deviceProfileId = :deviceProfileId " + |
109 | "AND d.softwareId = null " + | 109 | "AND d.softwareId = null " + |
110 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") | 110 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") |
111 | Page<DeviceEntity> findByTenantIdAndTypeAndSoftwareIdIsNull(@Param("tenantId") UUID tenantId, | 111 | Page<DeviceEntity> findByTenantIdAndTypeAndSoftwareIdIsNull(@Param("tenantId") UUID tenantId, |
112 | - @Param("type") String type, | 112 | + @Param("deviceProfileId") UUID deviceProfileId, |
113 | @Param("textSearch") String textSearch, | 113 | @Param("textSearch") String textSearch, |
114 | Pageable pageable); | 114 | Pageable pageable); |
115 | 115 | ||
116 | + @Query("SELECT count(*) FROM DeviceEntity d WHERE d.tenantId = :tenantId " + | ||
117 | + "AND d.deviceProfileId = :deviceProfileId " + | ||
118 | + "AND d.firmwareId = null") | ||
119 | + Long countByTenantIdAndDeviceProfileIdAndFirmwareIdIsNull(@Param("tenantId") UUID tenantId, | ||
120 | + @Param("deviceProfileId") UUID deviceProfileId); | ||
121 | + | ||
122 | + @Query("SELECT count(*) FROM DeviceEntity d WHERE d.tenantId = :tenantId " + | ||
123 | + "AND d.deviceProfileId = :deviceProfileId " + | ||
124 | + "AND d.softwareId = null") | ||
125 | + Long countByTenantIdAndDeviceProfileIdAndSoftwareIdIsNull(@Param("tenantId") UUID tenantId, | ||
126 | + @Param("deviceProfileId") UUID deviceProfileId); | ||
127 | + | ||
116 | @Query("SELECT new org.thingsboard.server.dao.model.sql.DeviceInfoEntity(d, c.title, c.additionalInfo, p.name) " + | 128 | @Query("SELECT new org.thingsboard.server.dao.model.sql.DeviceInfoEntity(d, c.title, c.additionalInfo, p.name) " + |
117 | "FROM DeviceEntity d " + | 129 | "FROM DeviceEntity d " + |
118 | "LEFT JOIN CustomerEntity c on c.id = d.customerId " + | 130 | "LEFT JOIN CustomerEntity c on c.id = d.customerId " + |
@@ -18,6 +18,8 @@ package org.thingsboard.server.dao.sql.device; | @@ -18,6 +18,8 @@ package org.thingsboard.server.dao.sql.device; | ||
18 | import com.google.common.util.concurrent.ListenableFuture; | 18 | import com.google.common.util.concurrent.ListenableFuture; |
19 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
20 | import org.springframework.beans.factory.annotation.Autowired; | 20 | import org.springframework.beans.factory.annotation.Autowired; |
21 | +import org.springframework.data.domain.Page; | ||
22 | +import org.springframework.data.domain.Pageable; | ||
21 | import org.springframework.data.repository.CrudRepository; | 23 | import org.springframework.data.repository.CrudRepository; |
22 | import org.springframework.stereotype.Component; | 24 | import org.springframework.stereotype.Component; |
23 | import org.springframework.util.StringUtils; | 25 | import org.springframework.util.StringUtils; |
@@ -27,6 +29,8 @@ import org.thingsboard.server.common.data.DeviceTransportType; | @@ -27,6 +29,8 @@ import org.thingsboard.server.common.data.DeviceTransportType; | ||
27 | import org.thingsboard.server.common.data.EntitySubtype; | 29 | import org.thingsboard.server.common.data.EntitySubtype; |
28 | import org.thingsboard.server.common.data.EntityType; | 30 | import org.thingsboard.server.common.data.EntityType; |
29 | import org.thingsboard.server.common.data.id.TenantId; | 31 | import org.thingsboard.server.common.data.id.TenantId; |
32 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
33 | +import org.thingsboard.server.common.data.ota.OtaPackageUtil; | ||
30 | import org.thingsboard.server.common.data.page.PageData; | 34 | import org.thingsboard.server.common.data.page.PageData; |
31 | import org.thingsboard.server.common.data.page.PageLink; | 35 | import org.thingsboard.server.common.data.page.PageLink; |
32 | import org.thingsboard.server.dao.DaoUtil; | 36 | import org.thingsboard.server.dao.DaoUtil; |
@@ -155,23 +159,27 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao<DeviceEntity, Device> | @@ -155,23 +159,27 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao<DeviceEntity, Device> | ||
155 | } | 159 | } |
156 | 160 | ||
157 | @Override | 161 | @Override |
158 | - public PageData<Device> findDevicesByTenantIdAndTypeAndEmptyFirmware(UUID tenantId, String type, PageLink pageLink) { | ||
159 | - return DaoUtil.toPageData( | ||
160 | - deviceRepository.findByTenantIdAndTypeAndFirmwareIdIsNull( | ||
161 | - tenantId, | ||
162 | - type, | ||
163 | - Objects.toString(pageLink.getTextSearch(), ""), | ||
164 | - DaoUtil.toPageable(pageLink))); | 162 | + public PageData<Device> findDevicesByTenantIdAndTypeAndEmptyOtaPackage(UUID tenantId, |
163 | + UUID deviceProfileId, | ||
164 | + OtaPackageType type, | ||
165 | + PageLink pageLink) { | ||
166 | + Pageable pageable = DaoUtil.toPageable(pageLink); | ||
167 | + String searchText = Objects.toString(pageLink.getTextSearch(), ""); | ||
168 | + Page<DeviceEntity> page = OtaPackageUtil.getByOtaPackageType( | ||
169 | + () -> deviceRepository.findByTenantIdAndTypeAndFirmwareIdIsNull(tenantId, deviceProfileId, searchText, pageable), | ||
170 | + () -> deviceRepository.findByTenantIdAndTypeAndSoftwareIdIsNull(tenantId, deviceProfileId, searchText, pageable), | ||
171 | + type | ||
172 | + ); | ||
173 | + return DaoUtil.toPageData(page); | ||
165 | } | 174 | } |
166 | 175 | ||
167 | @Override | 176 | @Override |
168 | - public PageData<Device> findDevicesByTenantIdAndTypeAndEmptySoftware(UUID tenantId, String type, PageLink pageLink) { | ||
169 | - return DaoUtil.toPageData( | ||
170 | - deviceRepository.findByTenantIdAndTypeAndSoftwareIdIsNull( | ||
171 | - tenantId, | ||
172 | - type, | ||
173 | - Objects.toString(pageLink.getTextSearch(), ""), | ||
174 | - DaoUtil.toPageable(pageLink))); | 177 | + public Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(UUID tenantId, UUID deviceProfileId, OtaPackageType type) { |
178 | + return OtaPackageUtil.getByOtaPackageType( | ||
179 | + () -> deviceRepository.countByTenantIdAndDeviceProfileIdAndFirmwareIdIsNull(tenantId, deviceProfileId), | ||
180 | + () -> deviceRepository.countByTenantIdAndDeviceProfileIdAndSoftwareIdIsNull(tenantId, deviceProfileId), | ||
181 | + type | ||
182 | + ); | ||
175 | } | 183 | } |
176 | 184 | ||
177 | @Override | 185 | @Override |
dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageDao.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/sql/firmware/JpaFirmwareDao.java
@@ -13,34 +13,34 @@ | @@ -13,34 +13,34 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.sql.firmware; | 16 | +package org.thingsboard.server.dao.sql.ota; |
17 | 17 | ||
18 | import lombok.extern.slf4j.Slf4j; | 18 | import lombok.extern.slf4j.Slf4j; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 19 | import org.springframework.beans.factory.annotation.Autowired; |
20 | import org.springframework.data.repository.CrudRepository; | 20 | import org.springframework.data.repository.CrudRepository; |
21 | import org.springframework.stereotype.Component; | 21 | import org.springframework.stereotype.Component; |
22 | -import org.thingsboard.server.common.data.Firmware; | ||
23 | -import org.thingsboard.server.dao.firmware.FirmwareDao; | ||
24 | -import org.thingsboard.server.dao.model.sql.FirmwareEntity; | 22 | +import org.thingsboard.server.common.data.OtaPackage; |
23 | +import org.thingsboard.server.dao.ota.OtaPackageDao; | ||
24 | +import org.thingsboard.server.dao.model.sql.OtaPackageEntity; | ||
25 | import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | 25 | import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; |
26 | 26 | ||
27 | import java.util.UUID; | 27 | import java.util.UUID; |
28 | 28 | ||
29 | @Slf4j | 29 | @Slf4j |
30 | @Component | 30 | @Component |
31 | -public class JpaFirmwareDao extends JpaAbstractSearchTextDao<FirmwareEntity, Firmware> implements FirmwareDao { | 31 | +public class JpaOtaPackageDao extends JpaAbstractSearchTextDao<OtaPackageEntity, OtaPackage> implements OtaPackageDao { |
32 | 32 | ||
33 | @Autowired | 33 | @Autowired |
34 | - private FirmwareRepository firmwareRepository; | 34 | + private OtaPackageRepository otaPackageRepository; |
35 | 35 | ||
36 | @Override | 36 | @Override |
37 | - protected Class<FirmwareEntity> getEntityClass() { | ||
38 | - return FirmwareEntity.class; | 37 | + protected Class<OtaPackageEntity> getEntityClass() { |
38 | + return OtaPackageEntity.class; | ||
39 | } | 39 | } |
40 | 40 | ||
41 | @Override | 41 | @Override |
42 | - protected CrudRepository<FirmwareEntity, UUID> getCrudRepository() { | ||
43 | - return firmwareRepository; | 42 | + protected CrudRepository<OtaPackageEntity, UUID> getCrudRepository() { |
43 | + return otaPackageRepository; | ||
44 | } | 44 | } |
45 | 45 | ||
46 | } | 46 | } |
dao/src/main/java/org/thingsboard/server/dao/sql/ota/JpaOtaPackageInfoDao.java
renamed from
dao/src/main/java/org/thingsboard/server/dao/sql/firmware/JpaFirmwareInfoDao.java
@@ -13,22 +13,22 @@ | @@ -13,22 +13,22 @@ | ||
13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | -package org.thingsboard.server.dao.sql.firmware; | 16 | +package org.thingsboard.server.dao.sql.ota; |
17 | 17 | ||
18 | import lombok.extern.slf4j.Slf4j; | 18 | import lombok.extern.slf4j.Slf4j; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 19 | import org.springframework.beans.factory.annotation.Autowired; |
20 | import org.springframework.data.repository.CrudRepository; | 20 | import org.springframework.data.repository.CrudRepository; |
21 | import org.springframework.stereotype.Component; | 21 | import org.springframework.stereotype.Component; |
22 | -import org.thingsboard.server.common.data.FirmwareInfo; | ||
23 | -import org.thingsboard.server.common.data.firmware.FirmwareType; | 22 | +import org.thingsboard.server.common.data.OtaPackageInfo; |
23 | +import org.thingsboard.server.common.data.ota.OtaPackageType; | ||
24 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 24 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
25 | -import org.thingsboard.server.common.data.id.FirmwareId; | 25 | +import org.thingsboard.server.common.data.id.OtaPackageId; |
26 | import org.thingsboard.server.common.data.id.TenantId; | 26 | import org.thingsboard.server.common.data.id.TenantId; |
27 | import org.thingsboard.server.common.data.page.PageData; | 27 | import org.thingsboard.server.common.data.page.PageData; |
28 | import org.thingsboard.server.common.data.page.PageLink; | 28 | import org.thingsboard.server.common.data.page.PageLink; |
29 | import org.thingsboard.server.dao.DaoUtil; | 29 | import org.thingsboard.server.dao.DaoUtil; |
30 | -import org.thingsboard.server.dao.firmware.FirmwareInfoDao; | ||
31 | -import org.thingsboard.server.dao.model.sql.FirmwareInfoEntity; | 30 | +import org.thingsboard.server.dao.ota.OtaPackageInfoDao; |
31 | +import org.thingsboard.server.dao.model.sql.OtaPackageInfoEntity; | ||
32 | import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; | 32 | import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; |
33 | 33 | ||
34 | import java.util.Objects; | 34 | import java.util.Objects; |
@@ -36,39 +36,39 @@ import java.util.UUID; | @@ -36,39 +36,39 @@ import java.util.UUID; | ||
36 | 36 | ||
37 | @Slf4j | 37 | @Slf4j |
38 | @Component | 38 | @Component |
39 | -public class JpaFirmwareInfoDao extends JpaAbstractSearchTextDao<FirmwareInfoEntity, FirmwareInfo> implements FirmwareInfoDao { | 39 | +public class JpaOtaPackageInfoDao extends JpaAbstractSearchTextDao<OtaPackageInfoEntity, OtaPackageInfo> implements OtaPackageInfoDao { |
40 | 40 | ||
41 | @Autowired | 41 | @Autowired |
42 | - private FirmwareInfoRepository firmwareInfoRepository; | 42 | + private OtaPackageInfoRepository otaPackageInfoRepository; |
43 | 43 | ||
44 | @Override | 44 | @Override |
45 | - protected Class<FirmwareInfoEntity> getEntityClass() { | ||
46 | - return FirmwareInfoEntity.class; | 45 | + protected Class<OtaPackageInfoEntity> getEntityClass() { |
46 | + return OtaPackageInfoEntity.class; | ||
47 | } | 47 | } |
48 | 48 | ||
49 | @Override | 49 | @Override |
50 | - protected CrudRepository<FirmwareInfoEntity, UUID> getCrudRepository() { | ||
51 | - return firmwareInfoRepository; | 50 | + protected CrudRepository<OtaPackageInfoEntity, UUID> getCrudRepository() { |
51 | + return otaPackageInfoRepository; | ||
52 | } | 52 | } |
53 | 53 | ||
54 | @Override | 54 | @Override |
55 | - public FirmwareInfo findById(TenantId tenantId, UUID id) { | ||
56 | - return DaoUtil.getData(firmwareInfoRepository.findFirmwareInfoById(id)); | 55 | + public OtaPackageInfo findById(TenantId tenantId, UUID id) { |
56 | + return DaoUtil.getData(otaPackageInfoRepository.findOtaPackageInfoById(id)); | ||
57 | } | 57 | } |
58 | 58 | ||
59 | @Override | 59 | @Override |
60 | - public FirmwareInfo save(TenantId tenantId, FirmwareInfo firmwareInfo) { | ||
61 | - FirmwareInfo savedFirmware = super.save(tenantId, firmwareInfo); | ||
62 | - if (firmwareInfo.getId() == null) { | ||
63 | - return savedFirmware; | 60 | + public OtaPackageInfo save(TenantId tenantId, OtaPackageInfo otaPackageInfo) { |
61 | + OtaPackageInfo savedOtaPackage = super.save(tenantId, otaPackageInfo); | ||
62 | + if (otaPackageInfo.getId() == null) { | ||
63 | + return savedOtaPackage; | ||
64 | } else { | 64 | } else { |
65 | - return findById(tenantId, savedFirmware.getId().getId()); | 65 | + return findById(tenantId, savedOtaPackage.getId().getId()); |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | @Override | 69 | @Override |
70 | - public PageData<FirmwareInfo> findFirmwareInfoByTenantId(TenantId tenantId, PageLink pageLink) { | ||
71 | - return DaoUtil.toPageData(firmwareInfoRepository | 70 | + public PageData<OtaPackageInfo> findOtaPackageInfoByTenantId(TenantId tenantId, PageLink pageLink) { |
71 | + return DaoUtil.toPageData(otaPackageInfoRepository | ||
72 | .findAllByTenantId( | 72 | .findAllByTenantId( |
73 | tenantId.getId(), | 73 | tenantId.getId(), |
74 | Objects.toString(pageLink.getTextSearch(), ""), | 74 | Objects.toString(pageLink.getTextSearch(), ""), |
@@ -76,19 +76,19 @@ public class JpaFirmwareInfoDao extends JpaAbstractSearchTextDao<FirmwareInfoEnt | @@ -76,19 +76,19 @@ public class JpaFirmwareInfoDao extends JpaAbstractSearchTextDao<FirmwareInfoEnt | ||
76 | } | 76 | } |
77 | 77 | ||
78 | @Override | 78 | @Override |
79 | - public PageData<FirmwareInfo> findFirmwareInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, FirmwareType firmwareType, boolean hasData, PageLink pageLink) { | ||
80 | - return DaoUtil.toPageData(firmwareInfoRepository | 79 | + public PageData<OtaPackageInfo> findOtaPackageInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType, boolean hasData, PageLink pageLink) { |
80 | + return DaoUtil.toPageData(otaPackageInfoRepository | ||
81 | .findAllByTenantIdAndTypeAndDeviceProfileIdAndHasData( | 81 | .findAllByTenantIdAndTypeAndDeviceProfileIdAndHasData( |
82 | tenantId.getId(), | 82 | tenantId.getId(), |
83 | deviceProfileId.getId(), | 83 | deviceProfileId.getId(), |
84 | - firmwareType, | 84 | + otaPackageType, |
85 | hasData, | 85 | hasData, |
86 | Objects.toString(pageLink.getTextSearch(), ""), | 86 | Objects.toString(pageLink.getTextSearch(), ""), |
87 | DaoUtil.toPageable(pageLink))); | 87 | DaoUtil.toPageable(pageLink))); |
88 | } | 88 | } |
89 | 89 | ||
90 | @Override | 90 | @Override |
91 | - public boolean isFirmwareUsed(FirmwareId firmwareId, FirmwareType type, DeviceProfileId deviceProfileId) { | ||
92 | - return firmwareInfoRepository.isFirmwareUsed(firmwareId.getId(), deviceProfileId.getId(), type.name()); | 91 | + public boolean isOtaPackageUsed(OtaPackageId otaPackageId, OtaPackageType otaPackageType, DeviceProfileId deviceProfileId) { |
92 | + return otaPackageInfoRepository.isOtaPackageUsed(otaPackageId.getId(), deviceProfileId.getId(), otaPackageType.name()); | ||
93 | } | 93 | } |
94 | } | 94 | } |