Commit d2736610e523db5c44f80b101456af3aa5777d37

Authored by YevhenBondarenko
1 parent fa0e55f1

added removing registration for onDeviceDelete

@@ -25,7 +25,6 @@ import org.eclipse.leshan.core.node.codec.DefaultLwM2mNodeEncoder; @@ -25,7 +25,6 @@ import org.eclipse.leshan.core.node.codec.DefaultLwM2mNodeEncoder;
25 import org.eclipse.leshan.server.californium.LeshanServer; 25 import org.eclipse.leshan.server.californium.LeshanServer;
26 import org.eclipse.leshan.server.californium.LeshanServerBuilder; 26 import org.eclipse.leshan.server.californium.LeshanServerBuilder;
27 import org.eclipse.leshan.server.californium.registration.CaliforniumRegistrationStore; 27 import org.eclipse.leshan.server.californium.registration.CaliforniumRegistrationStore;
28 -import org.eclipse.leshan.server.model.LwM2mModelProvider;  
29 import org.springframework.stereotype.Component; 28 import org.springframework.stereotype.Component;
30 import org.thingsboard.server.cache.ota.OtaPackageDataCache; 29 import org.thingsboard.server.cache.ota.OtaPackageDataCache;
31 import org.thingsboard.server.common.data.DataConstants; 30 import org.thingsboard.server.common.data.DataConstants;
@@ -33,7 +32,6 @@ import org.thingsboard.server.queue.util.TbLwM2mTransportComponent; @@ -33,7 +32,6 @@ import org.thingsboard.server.queue.util.TbLwM2mTransportComponent;
33 import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig; 32 import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
34 import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MAuthorizer; 33 import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MAuthorizer;
35 import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MDtlsCertificateVerifier; 34 import org.thingsboard.server.transport.lwm2m.secure.TbLwM2MDtlsCertificateVerifier;
36 -import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext;  
37 import org.thingsboard.server.transport.lwm2m.server.store.TbSecurityStore; 35 import org.thingsboard.server.transport.lwm2m.server.store.TbSecurityStore;
38 import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2MUplinkMsgHandler; 36 import org.thingsboard.server.transport.lwm2m.server.uplink.DefaultLwM2MUplinkMsgHandler;
39 import org.thingsboard.server.transport.lwm2m.utils.LwM2mValueConverterImpl; 37 import org.thingsboard.server.transport.lwm2m.utils.LwM2mValueConverterImpl;
@@ -28,14 +28,17 @@ import org.eclipse.leshan.core.node.LwM2mObjectInstance; @@ -28,14 +28,17 @@ import org.eclipse.leshan.core.node.LwM2mObjectInstance;
28 import org.eclipse.leshan.core.node.LwM2mPath; 28 import org.eclipse.leshan.core.node.LwM2mPath;
29 import org.eclipse.leshan.core.node.LwM2mResource; 29 import org.eclipse.leshan.core.node.LwM2mResource;
30 import org.eclipse.leshan.core.observation.Observation; 30 import org.eclipse.leshan.core.observation.Observation;
  31 +import org.eclipse.leshan.core.request.ExecuteRequest;
31 import org.eclipse.leshan.core.request.ObserveRequest; 32 import org.eclipse.leshan.core.request.ObserveRequest;
32 import org.eclipse.leshan.core.request.ReadRequest; 33 import org.eclipse.leshan.core.request.ReadRequest;
33 import org.eclipse.leshan.core.request.WriteCompositeRequest; 34 import org.eclipse.leshan.core.request.WriteCompositeRequest;
34 import org.eclipse.leshan.core.request.WriteRequest; 35 import org.eclipse.leshan.core.request.WriteRequest;
  36 +import org.eclipse.leshan.core.response.ExecuteResponse;
35 import org.eclipse.leshan.core.response.ObserveResponse; 37 import org.eclipse.leshan.core.response.ObserveResponse;
36 import org.eclipse.leshan.core.response.ReadCompositeResponse; 38 import org.eclipse.leshan.core.response.ReadCompositeResponse;
37 import org.eclipse.leshan.core.response.ReadResponse; 39 import org.eclipse.leshan.core.response.ReadResponse;
38 import org.eclipse.leshan.server.registration.Registration; 40 import org.eclipse.leshan.server.registration.Registration;
  41 +import org.eclipse.leshan.server.registration.RegistrationStore;
39 import org.springframework.context.annotation.Lazy; 42 import org.springframework.context.annotation.Lazy;
40 import org.springframework.stereotype.Service; 43 import org.springframework.stereotype.Service;
41 import org.thingsboard.common.util.DonAsynchron; 44 import org.thingsboard.common.util.DonAsynchron;
@@ -74,7 +77,6 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObser @@ -74,7 +77,6 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObser
74 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObserveRequest; 77 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObserveRequest;
75 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverCallback; 78 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverCallback;
76 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverRequest; 79 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverRequest;
77 -import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MExecuteCallback;  
78 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MExecuteRequest; 80 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MExecuteRequest;
79 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MLatchCallback; 81 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MLatchCallback;
80 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MObserveCallback; 82 import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MObserveCallback;
@@ -147,6 +149,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -147,6 +149,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
147 private final LwM2mClientContext clientContext; 149 private final LwM2mClientContext clientContext;
148 private final LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler; 150 private final LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler;
149 private final LwM2mVersionedModelProvider modelProvider; 151 private final LwM2mVersionedModelProvider modelProvider;
  152 + private final RegistrationStore registrationStore;
150 153
151 public DefaultLwM2MUplinkMsgHandler(TransportService transportService, 154 public DefaultLwM2MUplinkMsgHandler(TransportService transportService,
152 LwM2MTransportServerConfig config, 155 LwM2MTransportServerConfig config,
@@ -159,7 +162,8 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -159,7 +162,8 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
159 @Lazy LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler, 162 @Lazy LwM2mDownlinkMsgHandler defaultLwM2MDownlinkMsgHandler,
160 LwM2mTransportContext context, 163 LwM2mTransportContext context,
161 TbLwM2MDtlsSessionStore sessionStore, 164 TbLwM2MDtlsSessionStore sessionStore,
162 - LwM2mVersionedModelProvider modelProvider) { 165 + LwM2mVersionedModelProvider modelProvider,
  166 + RegistrationStore registrationStore) {
163 this.transportService = transportService; 167 this.transportService = transportService;
164 this.sessionManager = sessionManager; 168 this.sessionManager = sessionManager;
165 this.attributesService = attributesService; 169 this.attributesService = attributesService;
@@ -172,6 +176,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -172,6 +176,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
172 this.context = context; 176 this.context = context;
173 this.sessionStore = sessionStore; 177 this.sessionStore = sessionStore;
174 this.modelProvider = modelProvider; 178 this.modelProvider = modelProvider;
  179 + this.registrationStore = registrationStore;
175 } 180 }
176 181
177 @PostConstruct 182 @PostConstruct
@@ -402,7 +407,20 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -402,7 +407,20 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
402 public void onDeviceDelete(DeviceId deviceId) { 407 public void onDeviceDelete(DeviceId deviceId) {
403 LwM2mClient client = clientContext.getClientByDeviceId(deviceId.getId()); 408 LwM2mClient client = clientContext.getClientByDeviceId(deviceId.getId());
404 TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(REBOOT_ID).timeout(clientContext.getRequestTimeout(client)).build(); 409 TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(REBOOT_ID).timeout(clientContext.getRequestTimeout(client)).build();
405 - defaultLwM2MDownlinkMsgHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, REBOOT_ID)); 410 + defaultLwM2MDownlinkMsgHandler.sendExecuteRequest(client, request, new DownlinkRequestCallback<>() {
  411 + @Override
  412 + public void onSuccess(ExecuteRequest request, ExecuteResponse response) {
  413 + }
  414 +
  415 + @Override
  416 + public void onValidationError(String params, String msg) {
  417 + }
  418 +
  419 + @Override
  420 + public void onError(String params, Exception e) {
  421 + }
  422 + });
  423 + registrationStore.removeRegistration(client.getRegistration().getId());
406 doUnReg(client.getRegistration(), client); 424 doUnReg(client.getRegistration(), client);
407 } 425 }
408 426