Showing
14 changed files
with
98 additions
and
167 deletions
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <logger name="org.springframework.boot.test" level="WARN"/> | 14 | <logger name="org.springframework.boot.test" level="WARN"/> |
15 | <logger name="org.apache.cassandra" level="WARN"/> | 15 | <logger name="org.apache.cassandra" level="WARN"/> |
16 | <logger name="org.cassandraunit" level="INFO"/> | 16 | <logger name="org.cassandraunit" level="INFO"/> |
17 | - <logger name="org.eclipse.leshan" level="TRACE"/> | 17 | + <logger name="org.eclipse.leshan" level="INFO"/> |
18 | 18 | ||
19 | 19 | ||
20 | <root level="WARN"> | 20 | <root level="WARN"> |
@@ -42,14 +42,12 @@ public class OtaPackageTransportResource extends AbstractCoapTransportResource { | @@ -42,14 +42,12 @@ public class OtaPackageTransportResource extends AbstractCoapTransportResource { | ||
42 | private static final int ACCESS_TOKEN_POSITION = 2; | 42 | private static final int ACCESS_TOKEN_POSITION = 2; |
43 | 43 | ||
44 | private final OtaPackageType otaPackageType; | 44 | private final OtaPackageType otaPackageType; |
45 | - private final ExecutorService sendOtaDataOutUriLarge; | ||
46 | 45 | ||
47 | public OtaPackageTransportResource(CoapTransportContext ctx, OtaPackageType otaPackageType) { | 46 | public OtaPackageTransportResource(CoapTransportContext ctx, OtaPackageType otaPackageType) { |
48 | super(ctx, otaPackageType.getKeyPrefix()); | 47 | super(ctx, otaPackageType.getKeyPrefix()); |
49 | this.otaPackageType = otaPackageType; | 48 | this.otaPackageType = otaPackageType; |
50 | 49 | ||
51 | this.setObservable(true); | 50 | this.setObservable(true); |
52 | - this.sendOtaDataOutUriLarge = ThingsBoardExecutors.newWorkStealingPool(10, "LwM2M sendOtaDataOutUriLarge"); | ||
53 | } | 51 | } |
54 | 52 | ||
55 | @Override | 53 | @Override |
@@ -140,46 +138,12 @@ public class OtaPackageTransportResource extends AbstractCoapTransportResource { | @@ -140,46 +138,12 @@ public class OtaPackageTransportResource extends AbstractCoapTransportResource { | ||
140 | Response response = new Response(CoAP.ResponseCode.CONTENT); | 138 | Response response = new Response(CoAP.ResponseCode.CONTENT); |
141 | if (data != null && data.length > 0) { | 139 | if (data != null && data.length > 0) { |
142 | response.setPayload(data); | 140 | response.setPayload(data); |
143 | -// response.getOptions().setAccept(MediaTypeRegistry.APPLICATION_OCTET_STREAM); | ||
144 | if (exchange.getRequestOptions().getBlock2() != null) { | 141 | if (exchange.getRequestOptions().getBlock2() != null) { |
145 | int chunkSize = exchange.getRequestOptions().getBlock2().getSzx(); | 142 | int chunkSize = exchange.getRequestOptions().getBlock2().getSzx(); |
146 | boolean lastFlag = data.length <= chunkSize; | 143 | boolean lastFlag = data.length <= chunkSize; |
147 | - this.sendOtaDataOutUriLarge.submit(() -> { | ||
148 | - response.getOptions().setBlock2(chunkSize, lastFlag, 0); | ||
149 | - }); } | ||
150 | - exchange.respond(response); | ||
151 | - } | ||
152 | - } | ||
153 | - | ||
154 | - public class CoapResourceObserver implements ResourceObserver { | ||
155 | - @Override | ||
156 | - public void changedName(String old) { | ||
157 | - | ||
158 | - } | ||
159 | - | ||
160 | - @Override | ||
161 | - public void changedPath(String old) { | ||
162 | - | ||
163 | - } | ||
164 | - | ||
165 | - @Override | ||
166 | - public void addedChild(Resource child) { | ||
167 | - | ||
168 | - } | ||
169 | - | ||
170 | - @Override | ||
171 | - public void removedChild(Resource child) { | ||
172 | - | ||
173 | - } | ||
174 | - | ||
175 | - @Override | ||
176 | - public void addedObserveRelation(ObserveRelation relation) { | ||
177 | - | ||
178 | - } | ||
179 | - | ||
180 | - @Override | ||
181 | - public void removedObserveRelation(ObserveRelation relation) { | ||
182 | - | 144 | + response.getOptions().setBlock2(chunkSize, lastFlag, 0); |
145 | + } | ||
146 | + transportContext.getExecutor().submit(() -> exchange.respond(response)); | ||
183 | } | 147 | } |
184 | } | 148 | } |
185 | 149 |
@@ -142,7 +142,7 @@ public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig { | @@ -142,7 +142,7 @@ public class LwM2MTransportServerConfig implements LwM2MSecureServerConfig { | ||
142 | URI uri = null; | 142 | URI uri = null; |
143 | try { | 143 | try { |
144 | uri = Resources.getResource(keyStorePathFile).toURI(); | 144 | uri = Resources.getResource(keyStorePathFile).toURI(); |
145 | - log.error("URI: {}", uri); | 145 | + log.info("URI: {}", uri); |
146 | File keyStoreFile = new File(uri); | 146 | File keyStoreFile = new File(uri); |
147 | InputStream inKeyStore = new FileInputStream(keyStoreFile); | 147 | InputStream inKeyStore = new FileInputStream(keyStoreFile); |
148 | keyStoreValue = KeyStore.getInstance(keyStoreType); | 148 | keyStoreValue = KeyStore.getInstance(keyStoreType); |
@@ -59,12 +59,12 @@ public class LwM2mCredentialsSecurityInfoValidator { | @@ -59,12 +59,12 @@ public class LwM2mCredentialsSecurityInfoValidator { | ||
59 | public TbLwM2MSecurityInfo getEndpointSecurityInfoByCredentialsId(String credentialsId, LwM2mTypeServer keyValue) { | 59 | public TbLwM2MSecurityInfo getEndpointSecurityInfoByCredentialsId(String credentialsId, LwM2mTypeServer keyValue) { |
60 | CountDownLatch latch = new CountDownLatch(1); | 60 | CountDownLatch latch = new CountDownLatch(1); |
61 | final TbLwM2MSecurityInfo[] resultSecurityStore = new TbLwM2MSecurityInfo[1]; | 61 | final TbLwM2MSecurityInfo[] resultSecurityStore = new TbLwM2MSecurityInfo[1]; |
62 | - log.warn("001) [{}]", credentialsId); | 62 | + log.trace("Validating credentials [{}]", credentialsId); |
63 | context.getTransportService().process(ValidateDeviceLwM2MCredentialsRequestMsg.newBuilder().setCredentialsId(credentialsId).build(), | 63 | context.getTransportService().process(ValidateDeviceLwM2MCredentialsRequestMsg.newBuilder().setCredentialsId(credentialsId).build(), |
64 | new TransportServiceCallback<>() { | 64 | new TransportServiceCallback<>() { |
65 | @Override | 65 | @Override |
66 | public void onSuccess(ValidateDeviceCredentialsResponse msg) { | 66 | public void onSuccess(ValidateDeviceCredentialsResponse msg) { |
67 | - log.warn("002) [{}] [{}]", credentialsId, msg); | 67 | + log.trace("Validated credentials: [{}] [{}]", credentialsId, msg); |
68 | String credentialsBody = msg.getCredentials(); | 68 | String credentialsBody = msg.getCredentials(); |
69 | resultSecurityStore[0] = createSecurityInfo(credentialsId, credentialsBody, keyValue); | 69 | resultSecurityStore[0] = createSecurityInfo(credentialsId, credentialsBody, keyValue); |
70 | resultSecurityStore[0].setMsg(msg); | 70 | resultSecurityStore[0].setMsg(msg); |
@@ -74,7 +74,6 @@ public class LwM2mCredentialsSecurityInfoValidator { | @@ -74,7 +74,6 @@ public class LwM2mCredentialsSecurityInfoValidator { | ||
74 | 74 | ||
75 | @Override | 75 | @Override |
76 | public void onError(Throwable e) { | 76 | public void onError(Throwable e) { |
77 | - log.warn("003) [{}] [{}] Failed to process credentials ", credentialsId, e); | ||
78 | log.trace("[{}] [{}] Failed to process credentials ", credentialsId, e); | 77 | log.trace("[{}] [{}] Failed to process credentials ", credentialsId, e); |
79 | resultSecurityStore[0] = createSecurityInfo(credentialsId, null, null); | 78 | resultSecurityStore[0] = createSecurityInfo(credentialsId, null, null); |
80 | latch.countDown(); | 79 | latch.countDown(); |
@@ -46,10 +46,10 @@ import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTrans | @@ -46,10 +46,10 @@ import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTrans | ||
46 | import org.thingsboard.server.common.transport.TransportServiceCallback; | 46 | import org.thingsboard.server.common.transport.TransportServiceCallback; |
47 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; | 47 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; |
48 | import org.thingsboard.server.transport.lwm2m.server.client.ResourceValue; | 48 | import org.thingsboard.server.transport.lwm2m.server.client.ResourceValue; |
49 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateResultFw; | ||
50 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateStateFw; | ||
51 | -import org.thingsboard.server.transport.lwm2m.server.ota.software.UpdateResultSw; | ||
52 | -import org.thingsboard.server.transport.lwm2m.server.ota.software.UpdateStateSw; | 49 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateResult; |
50 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateState; | ||
51 | +import org.thingsboard.server.transport.lwm2m.server.ota.software.SoftwareUpdateResult; | ||
52 | +import org.thingsboard.server.transport.lwm2m.server.ota.software.SoftwareUpdateState; | ||
53 | import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2MUplinkMsgHandler; | 53 | import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2MUplinkMsgHandler; |
54 | 54 | ||
55 | import java.util.ArrayList; | 55 | import java.util.ArrayList; |
@@ -148,19 +148,19 @@ public class LwM2mTransportUtil { | @@ -148,19 +148,19 @@ public class LwM2mTransportUtil { | ||
148 | if (path != null) { | 148 | if (path != null) { |
149 | if (FW_STATE_ID.equals(path)) { | 149 | if (FW_STATE_ID.equals(path)) { |
150 | lwM2mOtaConvert.setCurrentType(STRING); | 150 | lwM2mOtaConvert.setCurrentType(STRING); |
151 | - lwM2mOtaConvert.setValue(UpdateStateFw.fromStateFwByCode(((Long) value).intValue()).type); | 151 | + lwM2mOtaConvert.setValue(FirmwareUpdateState.fromStateFwByCode(((Long) value).intValue()).type); |
152 | return lwM2mOtaConvert; | 152 | return lwM2mOtaConvert; |
153 | } else if (FW_RESULT_ID.equals(path)) { | 153 | } else if (FW_RESULT_ID.equals(path)) { |
154 | lwM2mOtaConvert.setCurrentType(STRING); | 154 | lwM2mOtaConvert.setCurrentType(STRING); |
155 | - lwM2mOtaConvert.setValue(UpdateResultFw.fromUpdateResultFwByCode(((Long) value).intValue()).getType()); | 155 | + lwM2mOtaConvert.setValue(FirmwareUpdateResult.fromUpdateResultFwByCode(((Long) value).intValue()).getType()); |
156 | return lwM2mOtaConvert; | 156 | return lwM2mOtaConvert; |
157 | } else if (SW_UPDATE_STATE_ID.equals(path)) { | 157 | } else if (SW_UPDATE_STATE_ID.equals(path)) { |
158 | lwM2mOtaConvert.setCurrentType(STRING); | 158 | lwM2mOtaConvert.setCurrentType(STRING); |
159 | - lwM2mOtaConvert.setValue(UpdateStateSw.fromUpdateStateSwByCode(((Long) value).intValue()).type); | 159 | + lwM2mOtaConvert.setValue(SoftwareUpdateState.fromUpdateStateSwByCode(((Long) value).intValue()).type); |
160 | return lwM2mOtaConvert; | 160 | return lwM2mOtaConvert; |
161 | } else if (SW_RESULT_ID.equals(path)) { | 161 | } else if (SW_RESULT_ID.equals(path)) { |
162 | lwM2mOtaConvert.setCurrentType(STRING); | 162 | lwM2mOtaConvert.setCurrentType(STRING); |
163 | - lwM2mOtaConvert.setValue(UpdateResultSw.fromUpdateResultSwByCode(((Long) value).intValue()).type); | 163 | + lwM2mOtaConvert.setValue(SoftwareUpdateResult.fromUpdateResultSwByCode(((Long) value).intValue()).type); |
164 | return lwM2mOtaConvert; | 164 | return lwM2mOtaConvert; |
165 | } | 165 | } |
166 | } | 166 | } |
@@ -435,19 +435,6 @@ public class LwM2mTransportUtil { | @@ -435,19 +435,6 @@ public class LwM2mTransportUtil { | ||
435 | } | 435 | } |
436 | } | 436 | } |
437 | 437 | ||
438 | -// public static boolean isFwSwWords(String pathName) { | ||
439 | -// return OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.VERSION).equals(pathName) | ||
440 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.TITLE).equals(pathName) | ||
441 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.CHECKSUM).equals(pathName) | ||
442 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
443 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.FIRMWARE, OtaPackageKey.SIZE).equals(pathName) | ||
444 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.VERSION).equals(pathName) | ||
445 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.TITLE).equals(pathName) | ||
446 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.CHECKSUM).equals(pathName) | ||
447 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.CHECKSUM_ALGORITHM).equals(pathName) | ||
448 | -// || OtaPackageUtil.getAttributeKey(OtaPackageType.SOFTWARE, OtaPackageKey.SIZE).equals(pathName); | ||
449 | -// } | ||
450 | - | ||
451 | /** | 438 | /** |
452 | * @param lwM2MClient - | 439 | * @param lwM2MClient - |
453 | * @param path - | 440 | * @param path - |
@@ -25,6 +25,7 @@ import org.springframework.stereotype.Service; | @@ -25,6 +25,7 @@ import org.springframework.stereotype.Service; | ||
25 | import org.thingsboard.common.util.DonAsynchron; | 25 | import org.thingsboard.common.util.DonAsynchron; |
26 | import org.thingsboard.server.cache.ota.OtaPackageDataCache; | 26 | import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
27 | import org.thingsboard.server.common.data.StringUtils; | 27 | import org.thingsboard.server.common.data.StringUtils; |
28 | +import org.thingsboard.server.common.data.device.data.lwm2m.OtherConfiguration; | ||
28 | import org.thingsboard.server.common.data.ota.OtaPackageKey; | 29 | import org.thingsboard.server.common.data.ota.OtaPackageKey; |
29 | import org.thingsboard.server.common.data.ota.OtaPackageType; | 30 | import org.thingsboard.server.common.data.ota.OtaPackageType; |
30 | import org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus; | 31 | import org.thingsboard.server.common.data.ota.OtaPackageUpdateStatus; |
@@ -45,12 +46,12 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteReplac | @@ -45,12 +46,12 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteReplac | ||
45 | import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteResponseCallback; | 46 | import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteResponseCallback; |
46 | import org.thingsboard.server.transport.lwm2m.server.log.LwM2MTelemetryLogService; | 47 | import org.thingsboard.server.transport.lwm2m.server.log.LwM2MTelemetryLogService; |
47 | import org.thingsboard.server.transport.lwm2m.server.ota.firmware.LwM2MFirmwareUpdateStrategy; | 48 | import org.thingsboard.server.transport.lwm2m.server.ota.firmware.LwM2MFirmwareUpdateStrategy; |
48 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateDeliveryFw; | ||
49 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateResultFw; | ||
50 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateStateFw; | 49 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareDeliveryMethod; |
50 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateResult; | ||
51 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateState; | ||
51 | import org.thingsboard.server.transport.lwm2m.server.ota.software.LwM2MSoftwareUpdateStrategy; | 52 | import org.thingsboard.server.transport.lwm2m.server.ota.software.LwM2MSoftwareUpdateStrategy; |
52 | -import org.thingsboard.server.transport.lwm2m.server.ota.software.UpdateResultSw; | ||
53 | -import org.thingsboard.server.transport.lwm2m.server.ota.software.UpdateStateSw; | 53 | +import org.thingsboard.server.transport.lwm2m.server.ota.software.SoftwareUpdateResult; |
54 | +import org.thingsboard.server.transport.lwm2m.server.ota.software.SoftwareUpdateState; | ||
54 | import org.thingsboard.server.transport.lwm2m.server.uplink.LwM2mUplinkMsgHandler; | 55 | import org.thingsboard.server.transport.lwm2m.server.uplink.LwM2mUplinkMsgHandler; |
55 | 56 | ||
56 | import javax.annotation.PostConstruct; | 57 | import javax.annotation.PostConstruct; |
@@ -201,20 +202,20 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -201,20 +202,20 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
201 | } | 202 | } |
202 | 203 | ||
203 | @Override | 204 | @Override |
204 | - public void onCurrentFirmwareStrategyUpdate(LwM2mClient client, Integer newStrategy, String newBaseUrl) { | ||
205 | - log.debug("[{}] Current fw strategy: {}", client.getEndpoint(), newStrategy); | 205 | + public void onCurrentFirmwareStrategyUpdate(LwM2mClient client, OtherConfiguration configuration) { |
206 | + log.debug("[{}] Current fw strategy: {}", client.getEndpoint(), configuration.getFwUpdateStrategy()); | ||
206 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); | 207 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); |
207 | - fwInfo.setFwStrategy(LwM2MFirmwareUpdateStrategy.fromStrategyFwByCode(newStrategy)); | ||
208 | - fwInfo.setBaseUrl(newBaseUrl); | 208 | + fwInfo.setFwStrategy(LwM2MFirmwareUpdateStrategy.fromStrategyFwByCode(configuration.getFwUpdateStrategy())); |
209 | + fwInfo.setBaseUrl(configuration.getFwUpdateRecourse()); | ||
209 | startFirmwareUpdateIfNeeded(client, fwInfo); | 210 | startFirmwareUpdateIfNeeded(client, fwInfo); |
210 | } | 211 | } |
211 | 212 | ||
212 | @Override | 213 | @Override |
213 | - public void onCurrentSoftwareStrategyUpdate(LwM2mClient client, Integer newStrategy, String newBaseUrl) { | ||
214 | - log.debug("[{}] Current sw strategy: {}", client.getEndpoint(), newStrategy); | 214 | + public void onCurrentSoftwareStrategyUpdate(LwM2mClient client, OtherConfiguration configuration) { |
215 | + log.debug("[{}] Current sw strategy: {}", client.getEndpoint(), configuration.getSwUpdateStrategy()); | ||
215 | LwM2MClientOtaInfo swInfo = getOrInitSwInfo(client); | 216 | LwM2MClientOtaInfo swInfo = getOrInitSwInfo(client); |
216 | - swInfo.setSwStrategy(LwM2MSoftwareUpdateStrategy.fromStrategySwByCode(newStrategy)); | ||
217 | - swInfo.setBaseUrl(newBaseUrl); | 217 | + swInfo.setSwStrategy(LwM2MSoftwareUpdateStrategy.fromStrategySwByCode(configuration.getSwUpdateStrategy())); |
218 | + swInfo.setBaseUrl(configuration.getSwUpdateRecourse()); | ||
218 | startSoftwareUpdateIfNeeded(client, swInfo); | 219 | startSoftwareUpdateIfNeeded(client, swInfo); |
219 | } | 220 | } |
220 | 221 | ||
@@ -236,8 +237,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -236,8 +237,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
236 | public void onCurrentFirmwareStateUpdate(LwM2mClient client, Long stateCode) { | 237 | public void onCurrentFirmwareStateUpdate(LwM2mClient client, Long stateCode) { |
237 | log.debug("[{}] Current fw state: {}", client.getEndpoint(), stateCode); | 238 | log.debug("[{}] Current fw state: {}", client.getEndpoint(), stateCode); |
238 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); | 239 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); |
239 | - UpdateStateFw state = UpdateStateFw.fromStateFwByCode(stateCode.intValue()); | ||
240 | - if (UpdateStateFw.DOWNLOADED.equals(state)) { | 240 | + FirmwareUpdateState state = FirmwareUpdateState.fromStateFwByCode(stateCode.intValue()); |
241 | + if (FirmwareUpdateState.DOWNLOADED.equals(state)) { | ||
241 | executeFwUpdate(client); | 242 | executeFwUpdate(client); |
242 | } | 243 | } |
243 | fwInfo.setUpdateState(state); | 244 | fwInfo.setUpdateState(state); |
@@ -250,7 +251,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -250,7 +251,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
250 | public void onCurrentFirmwareResultUpdate(LwM2mClient client, Long code) { | 251 | public void onCurrentFirmwareResultUpdate(LwM2mClient client, Long code) { |
251 | log.debug("[{}] Current fw result: {}", client.getEndpoint(), code); | 252 | log.debug("[{}] Current fw result: {}", client.getEndpoint(), code); |
252 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); | 253 | LwM2MClientOtaInfo fwInfo = getOrInitFwInfo(client); |
253 | - UpdateResultFw result = UpdateResultFw.fromUpdateResultFwByCode(code.intValue()); | 254 | + FirmwareUpdateResult result = FirmwareUpdateResult.fromUpdateResultFwByCode(code.intValue()); |
254 | Optional<OtaPackageUpdateStatus> status = this.toOtaPackageUpdateStatus(result); | 255 | Optional<OtaPackageUpdateStatus> status = this.toOtaPackageUpdateStatus(result); |
255 | status.ifPresent(otaStatus -> sendStateUpdateToTelemetry(client, fwInfo, | 256 | status.ifPresent(otaStatus -> sendStateUpdateToTelemetry(client, fwInfo, |
256 | otaStatus, "Firmware Update Result: " + result.name())); | 257 | otaStatus, "Firmware Update Result: " + result.name())); |
@@ -324,10 +325,10 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -324,10 +325,10 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
324 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus())) { | 325 | if (TransportProtos.ResponseStatus.SUCCESS.equals(response.getResponseStatus())) { |
325 | UUID otaPackageId = new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB()); | 326 | UUID otaPackageId = new UUID(response.getOtaPackageIdMSB(), response.getOtaPackageIdLSB()); |
326 | LwM2MFirmwareUpdateStrategy strategy; | 327 | LwM2MFirmwareUpdateStrategy strategy; |
327 | - if (fwInfo.getDeliveryMethod() == null || fwInfo.getDeliveryMethod() == UpdateDeliveryFw.BOTH.code) { | 328 | + if (fwInfo.getDeliveryMethod() == null || fwInfo.getDeliveryMethod() == FirmwareDeliveryMethod.BOTH.code) { |
328 | strategy = fwInfo.getFwStrategy(); | 329 | strategy = fwInfo.getFwStrategy(); |
329 | } else { | 330 | } else { |
330 | - strategy = fwInfo.getDeliveryMethod() == UpdateDeliveryFw.PULL.code ? LwM2MFirmwareUpdateStrategy.OBJ_5_TEMP_URL : LwM2MFirmwareUpdateStrategy.OBJ_5_BINARY; | 331 | + strategy = fwInfo.getDeliveryMethod() == FirmwareDeliveryMethod.PULL.code ? LwM2MFirmwareUpdateStrategy.OBJ_5_TEMP_URL : LwM2MFirmwareUpdateStrategy.OBJ_5_BINARY; |
331 | } | 332 | } |
332 | switch (strategy) { | 333 | switch (strategy) { |
333 | case OBJ_5_BINARY: | 334 | case OBJ_5_BINARY: |
@@ -405,8 +406,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -405,8 +406,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
405 | helper.sendParametersOnThingsboardTelemetry(result, client.getSession()); | 406 | helper.sendParametersOnThingsboardTelemetry(result, client.getSession()); |
406 | } | 407 | } |
407 | 408 | ||
408 | - private static Optional<OtaPackageUpdateStatus> toOtaPackageUpdateStatus(UpdateResultFw updateResultFw) { | ||
409 | - switch (updateResultFw) { | 409 | + private static Optional<OtaPackageUpdateStatus> toOtaPackageUpdateStatus(FirmwareUpdateResult fwUpdateResult) { |
410 | + switch (fwUpdateResult) { | ||
410 | case INITIAL: | 411 | case INITIAL: |
411 | return Optional.empty(); | 412 | return Optional.empty(); |
412 | case UPDATE_SUCCESSFULLY: | 413 | case UPDATE_SUCCESSFULLY: |
@@ -421,12 +422,12 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -421,12 +422,12 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
421 | case UNSUPPORTED_PROTOCOL: | 422 | case UNSUPPORTED_PROTOCOL: |
422 | return Optional.of(FAILED); | 423 | return Optional.of(FAILED); |
423 | default: | 424 | default: |
424 | - throw new CodecException("Invalid value stateFw %s for FirmwareUpdateStatus.", updateResultFw.name()); | 425 | + throw new CodecException("Invalid value stateFw %s for FirmwareUpdateStatus.", fwUpdateResult.name()); |
425 | } | 426 | } |
426 | } | 427 | } |
427 | 428 | ||
428 | - private static Optional<OtaPackageUpdateStatus> toOtaPackageUpdateStatus(UpdateStateFw updateStateFw) { | ||
429 | - switch (updateStateFw) { | 429 | + private static Optional<OtaPackageUpdateStatus> toOtaPackageUpdateStatus(FirmwareUpdateState firmwareUpdateState) { |
430 | + switch (firmwareUpdateState) { | ||
430 | case IDLE: | 431 | case IDLE: |
431 | return Optional.empty(); | 432 | return Optional.empty(); |
432 | case DOWNLOADING: | 433 | case DOWNLOADING: |
@@ -436,7 +437,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -436,7 +437,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
436 | case UPDATING: | 437 | case UPDATING: |
437 | return Optional.of(UPDATING); | 438 | return Optional.of(UPDATING); |
438 | default: | 439 | default: |
439 | - throw new CodecException("Invalid value stateFw %d for FirmwareUpdateStatus.", updateStateFw); | 440 | + throw new CodecException("Invalid value stateFw %d for FirmwareUpdateStatus.", firmwareUpdateState); |
440 | } | 441 | } |
441 | } | 442 | } |
442 | 443 | ||
@@ -444,10 +445,10 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -444,10 +445,10 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
444 | * FirmwareUpdateStatus { | 445 | * FirmwareUpdateStatus { |
445 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED | 446 | * DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED, FAILED |
446 | */ | 447 | */ |
447 | - public static Optional<OtaPackageUpdateStatus> toSwSateResultUpdateStatus(UpdateStateSw updateStateSw, UpdateResultSw updateResultSw) { | ||
448 | - switch (updateResultSw) { | 448 | + public static Optional<OtaPackageUpdateStatus> toSwSateResultUpdateStatus(SoftwareUpdateState softwareUpdateState, SoftwareUpdateResult softwareUpdateResult) { |
449 | + switch (softwareUpdateResult) { | ||
449 | case INITIAL: | 450 | case INITIAL: |
450 | - switch (updateStateSw) { | 451 | + switch (softwareUpdateState) { |
451 | case INITIAL: | 452 | case INITIAL: |
452 | case DOWNLOAD_STARTED: | 453 | case DOWNLOAD_STARTED: |
453 | return Optional.of(DOWNLOADING); | 454 | return Optional.of(DOWNLOADING); |
@@ -473,10 +474,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | @@ -473,10 +474,8 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl | ||
473 | case UN_INSTALL_FAILURE: | 474 | case UN_INSTALL_FAILURE: |
474 | return Optional.of(FAILED); | 475 | return Optional.of(FAILED); |
475 | default: | 476 | default: |
476 | - throw new CodecException("Invalid value stateFw %s %s for FirmwareUpdateStatus.", updateStateSw.name(), updateResultSw.name()); | 477 | + throw new CodecException("Invalid value stateFw %s %s for FirmwareUpdateStatus.", softwareUpdateState.name(), softwareUpdateResult.name()); |
477 | } | 478 | } |
478 | } | 479 | } |
479 | 480 | ||
480 | - | ||
481 | - | ||
482 | } | 481 | } |
@@ -19,8 +19,8 @@ import lombok.Data; | @@ -19,8 +19,8 @@ import lombok.Data; | ||
19 | import org.thingsboard.server.common.data.StringUtils; | 19 | import org.thingsboard.server.common.data.StringUtils; |
20 | import org.thingsboard.server.common.data.ota.OtaPackageType; | 20 | import org.thingsboard.server.common.data.ota.OtaPackageType; |
21 | import org.thingsboard.server.transport.lwm2m.server.ota.firmware.LwM2MFirmwareUpdateStrategy; | 21 | import org.thingsboard.server.transport.lwm2m.server.ota.firmware.LwM2MFirmwareUpdateStrategy; |
22 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateResultFw; | ||
23 | -import org.thingsboard.server.transport.lwm2m.server.ota.firmware.UpdateStateFw; | 22 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateResult; |
23 | +import org.thingsboard.server.transport.lwm2m.server.ota.firmware.FirmwareUpdateState; | ||
24 | import org.thingsboard.server.transport.lwm2m.server.ota.software.LwM2MSoftwareUpdateStrategy; | 24 | import org.thingsboard.server.transport.lwm2m.server.ota.software.LwM2MSoftwareUpdateStrategy; |
25 | 25 | ||
26 | import java.util.Optional; | 26 | import java.util.Optional; |
@@ -47,8 +47,8 @@ public class LwM2MClientOtaInfo { | @@ -47,8 +47,8 @@ public class LwM2MClientOtaInfo { | ||
47 | //TODO: use value from device if applicable; | 47 | //TODO: use value from device if applicable; |
48 | private LwM2MFirmwareUpdateStrategy fwStrategy; | 48 | private LwM2MFirmwareUpdateStrategy fwStrategy; |
49 | private LwM2MSoftwareUpdateStrategy swStrategy; | 49 | private LwM2MSoftwareUpdateStrategy swStrategy; |
50 | - private UpdateStateFw updateState; | ||
51 | - private UpdateResultFw updateResult; | 50 | + private FirmwareUpdateState updateState; |
51 | + private FirmwareUpdateResult updateResult; | ||
52 | 52 | ||
53 | private String failedPackageId; | 53 | private String failedPackageId; |
54 | private int retryAttempts; | 54 | private int retryAttempts; |
@@ -90,7 +90,7 @@ public class LwM2MClientOtaInfo { | @@ -90,7 +90,7 @@ public class LwM2MClientOtaInfo { | ||
90 | return StringUtils.isNotEmpty(currentName) || StringUtils.isNotEmpty(currentVersion5) || StringUtils.isNotEmpty(currentVersion3); | 90 | return StringUtils.isNotEmpty(currentName) || StringUtils.isNotEmpty(currentVersion5) || StringUtils.isNotEmpty(currentVersion3); |
91 | } | 91 | } |
92 | 92 | ||
93 | - public void setUpdateResult(UpdateResultFw updateResult) { | 93 | + public void setUpdateResult(FirmwareUpdateResult updateResult) { |
94 | this.updateResult = updateResult; | 94 | this.updateResult = updateResult; |
95 | switch (updateResult) { | 95 | switch (updateResult) { |
96 | case INITIAL: | 96 | case INITIAL: |
@@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.transport.lwm2m.server.ota; | 16 | package org.thingsboard.server.transport.lwm2m.server.ota; |
17 | 17 | ||
18 | +import org.thingsboard.server.common.data.device.data.lwm2m.OtherConfiguration; | ||
18 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; | 19 | import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient; |
19 | 20 | ||
20 | import java.util.Optional; | 21 | import java.util.Optional; |
@@ -31,9 +32,9 @@ public interface LwM2MOtaUpdateService { | @@ -31,9 +32,9 @@ public interface LwM2MOtaUpdateService { | ||
31 | 32 | ||
32 | void onCurrentFirmwareNameUpdate(LwM2mClient client, String name); | 33 | void onCurrentFirmwareNameUpdate(LwM2mClient client, String name); |
33 | 34 | ||
34 | - void onCurrentFirmwareStrategyUpdate(LwM2mClient client, Integer newStrategy, String newBaseUrl); | 35 | + void onCurrentFirmwareStrategyUpdate(LwM2mClient client, OtherConfiguration configuration); |
35 | 36 | ||
36 | - void onCurrentSoftwareStrategyUpdate(LwM2mClient client, Integer newStrategy, String newBaseUrl); | 37 | + void onCurrentSoftwareStrategyUpdate(LwM2mClient client, OtherConfiguration configuration); |
37 | 38 | ||
38 | void onCurrentFirmwareVersion3Update(LwM2mClient client, String version); | 39 | void onCurrentFirmwareVersion3Update(LwM2mClient client, String version); |
39 | 40 |
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/FirmwareDeliveryMethod.java
renamed from
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/UpdateDeliveryFw.java
@@ -15,14 +15,7 @@ | @@ -15,14 +15,7 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.transport.lwm2m.server.ota.firmware; | 16 | package org.thingsboard.server.transport.lwm2m.server.ota.firmware; |
17 | 17 | ||
18 | -/** | ||
19 | - * /** Delivery Method R | ||
20 | - * 0: Pull only | ||
21 | - * 1: Push only | ||
22 | - * 2: Both: | ||
23 | - * - In this case the LwM2M Server MAY choose the preferred mechanism for conveying the firmware image to the LwM2M Client. | ||
24 | - */ | ||
25 | -public enum UpdateDeliveryFw { | 18 | +public enum FirmwareDeliveryMethod { |
26 | PULL(0, "Pull only"), | 19 | PULL(0, "Pull only"), |
27 | PUSH(1, "Push only"), | 20 | PUSH(1, "Push only"), |
28 | BOTH(2, "Push or Push"); | 21 | BOTH(2, "Push or Push"); |
@@ -30,13 +23,13 @@ public enum UpdateDeliveryFw { | @@ -30,13 +23,13 @@ public enum UpdateDeliveryFw { | ||
30 | public int code; | 23 | public int code; |
31 | public String type; | 24 | public String type; |
32 | 25 | ||
33 | - UpdateDeliveryFw(int code, String type) { | 26 | + FirmwareDeliveryMethod(int code, String type) { |
34 | this.code = code; | 27 | this.code = code; |
35 | this.type = type; | 28 | this.type = type; |
36 | } | 29 | } |
37 | 30 | ||
38 | - public static UpdateDeliveryFw fromStateFwByType(String type) { | ||
39 | - for (UpdateDeliveryFw to : UpdateDeliveryFw.values()) { | 31 | + public static FirmwareDeliveryMethod fromStateFwByType(String type) { |
32 | + for (FirmwareDeliveryMethod to : FirmwareDeliveryMethod.values()) { | ||
40 | if (to.type.equals(type)) { | 33 | if (to.type.equals(type)) { |
41 | return to; | 34 | return to; |
42 | } | 35 | } |
@@ -44,8 +37,8 @@ public enum UpdateDeliveryFw { | @@ -44,8 +37,8 @@ public enum UpdateDeliveryFw { | ||
44 | throw new IllegalArgumentException(String.format("Unsupported FW delivery type : %s", type)); | 37 | throw new IllegalArgumentException(String.format("Unsupported FW delivery type : %s", type)); |
45 | } | 38 | } |
46 | 39 | ||
47 | - public static UpdateDeliveryFw fromStateFwByCode(int code) { | ||
48 | - for (UpdateDeliveryFw to : UpdateDeliveryFw.values()) { | 40 | + public static FirmwareDeliveryMethod fromStateFwByCode(int code) { |
41 | + for (FirmwareDeliveryMethod to : FirmwareDeliveryMethod.values()) { | ||
49 | if (to.code == code) { | 42 | if (to.code == code) { |
50 | return to; | 43 | return to; |
51 | } | 44 | } |
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/FirmwareUpdateResult.java
renamed from
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/UpdateResultFw.java
@@ -30,7 +30,7 @@ import lombok.Getter; | @@ -30,7 +30,7 @@ import lombok.Getter; | ||
30 | * 8: Firmware update failed. | 30 | * 8: Firmware update failed. |
31 | * 9: Unsupported protocol. | 31 | * 9: Unsupported protocol. |
32 | */ | 32 | */ |
33 | -public enum UpdateResultFw { | 33 | +public enum FirmwareUpdateResult { |
34 | INITIAL(0, "Initial value", false), | 34 | INITIAL(0, "Initial value", false), |
35 | UPDATE_SUCCESSFULLY(1, "Firmware updated successfully", false), | 35 | UPDATE_SUCCESSFULLY(1, "Firmware updated successfully", false), |
36 | NOT_ENOUGH(2, "Not enough flash memory for the new firmware package", false), | 36 | NOT_ENOUGH(2, "Not enough flash memory for the new firmware package", false), |
@@ -49,14 +49,14 @@ public enum UpdateResultFw { | @@ -49,14 +49,14 @@ public enum UpdateResultFw { | ||
49 | @Getter | 49 | @Getter |
50 | private boolean again; | 50 | private boolean again; |
51 | 51 | ||
52 | - UpdateResultFw(int code, String type, boolean isAgain) { | 52 | + FirmwareUpdateResult(int code, String type, boolean isAgain) { |
53 | this.code = code; | 53 | this.code = code; |
54 | this.type = type; | 54 | this.type = type; |
55 | this.again = isAgain; | 55 | this.again = isAgain; |
56 | } | 56 | } |
57 | 57 | ||
58 | - public static UpdateResultFw fromUpdateResultFwByType(String type) { | ||
59 | - for (UpdateResultFw to : UpdateResultFw.values()) { | 58 | + public static FirmwareUpdateResult fromUpdateResultFwByType(String type) { |
59 | + for (FirmwareUpdateResult to : FirmwareUpdateResult.values()) { | ||
60 | if (to.type.equals(type)) { | 60 | if (to.type.equals(type)) { |
61 | return to; | 61 | return to; |
62 | } | 62 | } |
@@ -64,8 +64,8 @@ public enum UpdateResultFw { | @@ -64,8 +64,8 @@ public enum UpdateResultFw { | ||
64 | throw new IllegalArgumentException(String.format("Unsupported FW Update Result type : %s", type)); | 64 | throw new IllegalArgumentException(String.format("Unsupported FW Update Result type : %s", type)); |
65 | } | 65 | } |
66 | 66 | ||
67 | - public static UpdateResultFw fromUpdateResultFwByCode(int code) { | ||
68 | - for (UpdateResultFw to : UpdateResultFw.values()) { | 67 | + public static FirmwareUpdateResult fromUpdateResultFwByCode(int code) { |
68 | + for (FirmwareUpdateResult to : FirmwareUpdateResult.values()) { | ||
69 | if (to.code == code) { | 69 | if (to.code == code) { |
70 | return to; | 70 | return to; |
71 | } | 71 | } |
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/FirmwareUpdateState.java
renamed from
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/firmware/UpdateStateFw.java
@@ -22,7 +22,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.firmware; | @@ -22,7 +22,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.firmware; | ||
22 | * 2: Downloaded | 22 | * 2: Downloaded |
23 | * 3: Updating | 23 | * 3: Updating |
24 | */ | 24 | */ |
25 | -public enum UpdateStateFw { | 25 | +public enum FirmwareUpdateState { |
26 | IDLE(0, "Idle"), | 26 | IDLE(0, "Idle"), |
27 | DOWNLOADING(1, "Downloading"), | 27 | DOWNLOADING(1, "Downloading"), |
28 | DOWNLOADED(2, "Downloaded"), | 28 | DOWNLOADED(2, "Downloaded"), |
@@ -31,13 +31,13 @@ public enum UpdateStateFw { | @@ -31,13 +31,13 @@ public enum UpdateStateFw { | ||
31 | public int code; | 31 | public int code; |
32 | public String type; | 32 | public String type; |
33 | 33 | ||
34 | - UpdateStateFw(int code, String type) { | 34 | + FirmwareUpdateState(int code, String type) { |
35 | this.code = code; | 35 | this.code = code; |
36 | this.type = type; | 36 | this.type = type; |
37 | } | 37 | } |
38 | 38 | ||
39 | - public static UpdateStateFw fromStateFwByType(String type) { | ||
40 | - for (UpdateStateFw to : UpdateStateFw.values()) { | 39 | + public static FirmwareUpdateState fromStateFwByType(String type) { |
40 | + for (FirmwareUpdateState to : FirmwareUpdateState.values()) { | ||
41 | if (to.type.equals(type)) { | 41 | if (to.type.equals(type)) { |
42 | return to; | 42 | return to; |
43 | } | 43 | } |
@@ -45,8 +45,8 @@ public enum UpdateStateFw { | @@ -45,8 +45,8 @@ public enum UpdateStateFw { | ||
45 | throw new IllegalArgumentException(String.format("Unsupported FW State type : %s", type)); | 45 | throw new IllegalArgumentException(String.format("Unsupported FW State type : %s", type)); |
46 | } | 46 | } |
47 | 47 | ||
48 | - public static UpdateStateFw fromStateFwByCode(int code) { | ||
49 | - for (UpdateStateFw to : UpdateStateFw.values()) { | 48 | + public static FirmwareUpdateState fromStateFwByCode(int code) { |
49 | + for (FirmwareUpdateState to : FirmwareUpdateState.values()) { | ||
50 | if (to.code == code) { | 50 | if (to.code == code) { |
51 | return to; | 51 | return to; |
52 | } | 52 | } |
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/software/SoftwareUpdateResult.java
renamed from
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/software/UpdateResultSw.java
@@ -39,7 +39,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.software; | @@ -39,7 +39,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.software; | ||
39 | * 60-200 : (for expansion, selection to be in blocks depending on new introduction of features) | 39 | * 60-200 : (for expansion, selection to be in blocks depending on new introduction of features) |
40 | * This Resource MAY be reported by sending Observe operation. | 40 | * This Resource MAY be reported by sending Observe operation. |
41 | */ | 41 | */ |
42 | -public enum UpdateResultSw { | 42 | +public enum SoftwareUpdateResult { |
43 | INITIAL(0, "Initial value", false), | 43 | INITIAL(0, "Initial value", false), |
44 | DOWNLOADING(1, "Downloading", false), | 44 | DOWNLOADING(1, "Downloading", false), |
45 | SUCCESSFULLY_INSTALLED(2, "Software successfully installed", false), | 45 | SUCCESSFULLY_INSTALLED(2, "Software successfully installed", false), |
@@ -58,14 +58,14 @@ public enum UpdateResultSw { | @@ -58,14 +58,14 @@ public enum UpdateResultSw { | ||
58 | public String type; | 58 | public String type; |
59 | public boolean isAgain; | 59 | public boolean isAgain; |
60 | 60 | ||
61 | - UpdateResultSw(int code, String type, boolean isAgain) { | 61 | + SoftwareUpdateResult(int code, String type, boolean isAgain) { |
62 | this.code = code; | 62 | this.code = code; |
63 | this.type = type; | 63 | this.type = type; |
64 | this.isAgain = isAgain; | 64 | this.isAgain = isAgain; |
65 | } | 65 | } |
66 | 66 | ||
67 | - public static UpdateResultSw fromUpdateResultSwByType(String type) { | ||
68 | - for (UpdateResultSw to : UpdateResultSw.values()) { | 67 | + public static SoftwareUpdateResult fromUpdateResultSwByType(String type) { |
68 | + for (SoftwareUpdateResult to : SoftwareUpdateResult.values()) { | ||
69 | if (to.type.equals(type)) { | 69 | if (to.type.equals(type)) { |
70 | return to; | 70 | return to; |
71 | } | 71 | } |
@@ -73,8 +73,8 @@ public enum UpdateResultSw { | @@ -73,8 +73,8 @@ public enum UpdateResultSw { | ||
73 | throw new IllegalArgumentException(String.format("Unsupported SW Update Result type : %s", type)); | 73 | throw new IllegalArgumentException(String.format("Unsupported SW Update Result type : %s", type)); |
74 | } | 74 | } |
75 | 75 | ||
76 | - public static UpdateResultSw fromUpdateResultSwByCode(int code) { | ||
77 | - for (UpdateResultSw to : UpdateResultSw.values()) { | 76 | + public static SoftwareUpdateResult fromUpdateResultSwByCode(int code) { |
77 | + for (SoftwareUpdateResult to : SoftwareUpdateResult.values()) { | ||
78 | if (to.code == code) { | 78 | if (to.code == code) { |
79 | return to; | 79 | return to; |
80 | } | 80 | } |
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/software/SoftwareUpdateState.java
renamed from
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/ota/software/UpdateStateSw.java
@@ -26,7 +26,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.software; | @@ -26,7 +26,7 @@ package org.thingsboard.server.transport.lwm2m.server.ota.software; | ||
26 | * After executing the UnInstall Resource, the state changes to INITIAL. | 26 | * After executing the UnInstall Resource, the state changes to INITIAL. |
27 | * 4: INSTALLED | 27 | * 4: INSTALLED |
28 | */ | 28 | */ |
29 | -public enum UpdateStateSw { | 29 | +public enum SoftwareUpdateState { |
30 | INITIAL(0, "Initial"), | 30 | INITIAL(0, "Initial"), |
31 | DOWNLOAD_STARTED(1, "DownloadStarted"), | 31 | DOWNLOAD_STARTED(1, "DownloadStarted"), |
32 | DOWNLOADED(2, "Downloaded"), | 32 | DOWNLOADED(2, "Downloaded"), |
@@ -36,13 +36,13 @@ public enum UpdateStateSw { | @@ -36,13 +36,13 @@ public enum UpdateStateSw { | ||
36 | public int code; | 36 | public int code; |
37 | public String type; | 37 | public String type; |
38 | 38 | ||
39 | - UpdateStateSw(int code, String type) { | 39 | + SoftwareUpdateState(int code, String type) { |
40 | this.code = code; | 40 | this.code = code; |
41 | this.type = type; | 41 | this.type = type; |
42 | } | 42 | } |
43 | 43 | ||
44 | - public static UpdateStateSw fromUpdateStateSwByType(String type) { | ||
45 | - for (UpdateStateSw to : UpdateStateSw.values()) { | 44 | + public static SoftwareUpdateState fromUpdateStateSwByType(String type) { |
45 | + for (SoftwareUpdateState to : SoftwareUpdateState.values()) { | ||
46 | if (to.type.equals(type)) { | 46 | if (to.type.equals(type)) { |
47 | return to; | 47 | return to; |
48 | } | 48 | } |
@@ -50,8 +50,8 @@ public enum UpdateStateSw { | @@ -50,8 +50,8 @@ public enum UpdateStateSw { | ||
50 | throw new IllegalArgumentException(String.format("Unsupported SW State type : %s", type)); | 50 | throw new IllegalArgumentException(String.format("Unsupported SW State type : %s", type)); |
51 | } | 51 | } |
52 | 52 | ||
53 | - public static UpdateStateSw fromUpdateStateSwByCode(int code) { | ||
54 | - for (UpdateStateSw to : UpdateStateSw.values()) { | 53 | + public static SoftwareUpdateState fromUpdateStateSwByCode(int code) { |
54 | + for (SoftwareUpdateState to : SoftwareUpdateState.values()) { | ||
55 | if (to.code == code) { | 55 | if (to.code == code) { |
56 | return to; | 56 | return to; |
57 | } | 57 | } |
@@ -40,7 +40,9 @@ import org.thingsboard.common.util.DonAsynchron; | @@ -40,7 +40,9 @@ import org.thingsboard.common.util.DonAsynchron; | ||
40 | import org.thingsboard.server.cache.ota.OtaPackageDataCache; | 40 | import org.thingsboard.server.cache.ota.OtaPackageDataCache; |
41 | import org.thingsboard.server.common.data.Device; | 41 | import org.thingsboard.server.common.data.Device; |
42 | import org.thingsboard.server.common.data.DeviceProfile; | 42 | import org.thingsboard.server.common.data.DeviceProfile; |
43 | +import org.thingsboard.server.common.data.StringUtils; | ||
43 | import org.thingsboard.server.common.data.device.data.lwm2m.ObjectAttributes; | 44 | import org.thingsboard.server.common.data.device.data.lwm2m.ObjectAttributes; |
45 | +import org.thingsboard.server.common.data.device.data.lwm2m.OtherConfiguration; | ||
44 | import org.thingsboard.server.common.data.device.data.lwm2m.TelemetryMappingConfiguration; | 46 | import org.thingsboard.server.common.data.device.data.lwm2m.TelemetryMappingConfiguration; |
45 | import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration; | 47 | import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration; |
46 | import org.thingsboard.server.common.data.ota.OtaPackageUtil; | 48 | import org.thingsboard.server.common.data.ota.OtaPackageUtil; |
@@ -130,16 +132,13 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | @@ -130,16 +132,13 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | ||
130 | private final LwM2mTransportContext context; | 132 | private final LwM2mTransportContext context; |
131 | private final LwM2MAttributesService attributesService; | 133 | private final LwM2MAttributesService attributesService; |
132 | private final LwM2MOtaUpdateService otaService; | 134 | private final LwM2MOtaUpdateService otaService; |
133 | - public final LwM2MTransportServerConfig config; | 135 | + private final LwM2MTransportServerConfig config; |
134 | private final LwM2MTelemetryLogService logService; | 136 | private final LwM2MTelemetryLogService logService; |
135 | - public final OtaPackageDataCache otaPackageDataCache; | ||
136 | - public final LwM2mTransportServerHelper helper; | 137 | + private final LwM2mTransportServerHelper helper; |
137 | private final TbLwM2MDtlsSessionStore sessionStore; | 138 | private final TbLwM2MDtlsSessionStore sessionStore; |
138 | - public final LwM2mClientContext clientContext; | 139 | + private final LwM2mClientContext clientContext; |
139 | private final LwM2MRpcRequestHandler rpcHandler; | 140 | private final LwM2MRpcRequestHandler rpcHandler; |
140 | - public final LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler; | ||
141 | - | ||
142 | - public final Map<String, Integer> firmwareUpdateState; | 141 | + private final LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler; |
143 | 142 | ||
144 | public DefaultLwM2MUplinkMsgHandler(TransportService transportService, | 143 | public DefaultLwM2MUplinkMsgHandler(TransportService transportService, |
145 | LwM2MTransportServerConfig config, | 144 | LwM2MTransportServerConfig config, |
@@ -150,7 +149,6 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | @@ -150,7 +149,6 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | ||
150 | @Lazy LwM2MAttributesService attributesService, | 149 | @Lazy LwM2MAttributesService attributesService, |
151 | @Lazy LwM2MRpcRequestHandler rpcHandler, | 150 | @Lazy LwM2MRpcRequestHandler rpcHandler, |
152 | @Lazy LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler, | 151 | @Lazy LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler, |
153 | - OtaPackageDataCache otaPackageDataCache, | ||
154 | LwM2mTransportContext context, TbLwM2MDtlsSessionStore sessionStore) { | 152 | LwM2mTransportContext context, TbLwM2MDtlsSessionStore sessionStore) { |
155 | this.transportService = transportService; | 153 | this.transportService = transportService; |
156 | this.attributesService = attributesService; | 154 | this.attributesService = attributesService; |
@@ -161,9 +159,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | @@ -161,9 +159,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | ||
161 | this.logService = logService; | 159 | this.logService = logService; |
162 | this.rpcHandler = rpcHandler; | 160 | this.rpcHandler = rpcHandler; |
163 | this.defaultLwM2MDownlinkMsgHandler = defaultLwM2MDownlinkMsgHandler; | 161 | this.defaultLwM2MDownlinkMsgHandler = defaultLwM2MDownlinkMsgHandler; |
164 | - this.otaPackageDataCache = otaPackageDataCache; | ||
165 | this.context = context; | 162 | this.context = context; |
166 | - this.firmwareUpdateState = new ConcurrentHashMap<>(); | ||
167 | this.sessionStore = sessionStore; | 163 | this.sessionStore = sessionStore; |
168 | } | 164 | } |
169 | 165 | ||
@@ -781,27 +777,19 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | @@ -781,27 +777,19 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl | ||
781 | } | 777 | } |
782 | } | 778 | } |
783 | 779 | ||
784 | - // # 7.1 | ||
785 | // update value in fwInfo | 780 | // update value in fwInfo |
786 | - if (!newProfile.getClientLwM2mSettings().getFwUpdateStrategy().equals(oldProfile.getClientLwM2mSettings().getFwUpdateStrategy()) | ||
787 | - || (LwM2MFirmwareUpdateStrategy.OBJ_5_TEMP_URL.code == newProfile.getClientLwM2mSettings().getFwUpdateStrategy() && | ||
788 | - !newProfile.getClientLwM2mSettings().getFwUpdateRecourse().equals(oldProfile.getClientLwM2mSettings().getFwUpdateRecourse()))) { | ||
789 | - clients.forEach(lwM2MClient -> { | ||
790 | - otaService.onCurrentFirmwareStrategyUpdate(lwM2MClient, | ||
791 | - newProfile.getClientLwM2mSettings().getFwUpdateStrategy(), | ||
792 | - newProfile.getClientLwM2mSettings().getFwUpdateRecourse()); | ||
793 | - }); | 781 | + OtherConfiguration newLwM2mSettings = newProfile.getClientLwM2mSettings(); |
782 | + OtherConfiguration oldLwM2mSettings = oldProfile.getClientLwM2mSettings(); | ||
783 | + if (!newLwM2mSettings.getFwUpdateStrategy().equals(oldLwM2mSettings.getFwUpdateStrategy()) | ||
784 | + || (StringUtils.isNotEmpty(newLwM2mSettings.getFwUpdateRecourse()) && | ||
785 | + !newLwM2mSettings.getFwUpdateRecourse().equals(oldLwM2mSettings.getFwUpdateRecourse()))) { | ||
786 | + clients.forEach(lwM2MClient -> otaService.onCurrentFirmwareStrategyUpdate(lwM2MClient, newLwM2mSettings)); | ||
794 | } | 787 | } |
795 | 788 | ||
796 | - //# 7.2 // update value in swInfo | ||
797 | - if (!newProfile.getClientLwM2mSettings().getSwUpdateStrategy().equals(oldProfile.getClientLwM2mSettings().getSwUpdateStrategy()) | ||
798 | - || (LwM2MSoftwareUpdateStrategy.TEMP_URL.code == newProfile.getClientLwM2mSettings().getSwUpdateStrategy() && | ||
799 | - !newProfile.getClientLwM2mSettings().getSwUpdateRecourse().equals(oldProfile.getClientLwM2mSettings().getSwUpdateRecourse()))) { | ||
800 | - clients.forEach(lwM2MClient -> { | ||
801 | - otaService.onCurrentSoftwareStrategyUpdate(lwM2MClient, | ||
802 | - newProfile.getClientLwM2mSettings().getFwUpdateStrategy(), | ||
803 | - newProfile.getClientLwM2mSettings().getFwUpdateRecourse()); | ||
804 | - }); | 789 | + if (!newLwM2mSettings.getSwUpdateStrategy().equals(oldLwM2mSettings.getSwUpdateStrategy()) |
790 | + || (StringUtils.isNotEmpty(newLwM2mSettings.getSwUpdateRecourse()) && | ||
791 | + !newLwM2mSettings.getSwUpdateRecourse().equals(oldLwM2mSettings.getSwUpdateRecourse()))) { | ||
792 | + clients.forEach(lwM2MClient -> otaService.onCurrentSoftwareStrategyUpdate(lwM2MClient, newLwM2mSettings)); | ||
805 | } | 793 | } |
806 | } | 794 | } |
807 | } | 795 | } |