Browse Source
Merge pull request #5955 from YevhenBondarenko/fix/lwm2m-transport
[3.3.3] fixed lwm2m transport initialization (ordering)
pull/5962/head
Andrew Shvayka
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
12 additions and
3 deletions
-
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/DefaultLwM2mTransportService.java
-
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/rpc/RpcDownlinkRequestCallbackProxy.java
-
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java
|
|
|
@ -71,7 +71,7 @@ public class DefaultLwM2mTransportService implements LwM2MTransportService { |
|
|
|
|
|
|
|
private LeshanServer server; |
|
|
|
|
|
|
|
@AfterStartUp |
|
|
|
@AfterStartUp(order = Integer.MAX_VALUE - 1) |
|
|
|
public void init() { |
|
|
|
this.server = getLhServer(); |
|
|
|
/* |
|
|
|
@ -83,8 +83,8 @@ public class DefaultLwM2mTransportService implements LwM2MTransportService { |
|
|
|
*/ |
|
|
|
LwM2mTransportCoapResource otaCoapResource = new LwM2mTransportCoapResource(otaPackageDataCache, FIRMWARE_UPDATE_COAP_RESOURCE); |
|
|
|
this.server.coap().getServer().add(otaCoapResource); |
|
|
|
this.startLhServer(); |
|
|
|
this.context.setServer(server); |
|
|
|
this.startLhServer(); |
|
|
|
} |
|
|
|
|
|
|
|
private void startLhServer() { |
|
|
|
|
|
|
|
@ -111,7 +111,11 @@ public abstract class RpcDownlinkRequestCallbackProxy<R, T> implements DownlinkR |
|
|
|
} |
|
|
|
|
|
|
|
protected void sendRpcReplyOnError(Exception e) { |
|
|
|
reply(LwM2MRpcResponseBody.builder().result(ResponseCode.INTERNAL_SERVER_ERROR.getName()).error(e.getMessage()).build()); |
|
|
|
String error = e.getMessage(); |
|
|
|
if (error == null) { |
|
|
|
error = e.toString(); |
|
|
|
} |
|
|
|
reply(LwM2MRpcResponseBody.builder().result(ResponseCode.INTERNAL_SERVER_ERROR.getName()).error(error).build()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -91,6 +91,7 @@ import org.thingsboard.server.queue.provider.TbQueueProducerProvider; |
|
|
|
import org.thingsboard.server.queue.provider.TbTransportQueueFactory; |
|
|
|
import org.thingsboard.server.queue.scheduler.SchedulerComponent; |
|
|
|
import org.thingsboard.server.queue.usagestats.TbApiUsageClient; |
|
|
|
import org.thingsboard.server.queue.util.AfterStartUp; |
|
|
|
import org.thingsboard.server.queue.util.TbTransportComponent; |
|
|
|
|
|
|
|
import javax.annotation.PostConstruct; |
|
|
|
@ -227,6 +228,10 @@ public class DefaultTransportService implements TransportService { |
|
|
|
transportNotificationsConsumer.subscribe(Collections.singleton(tpi)); |
|
|
|
transportApiRequestTemplate.init(); |
|
|
|
mainConsumerExecutor = Executors.newSingleThreadExecutor(ThingsBoardThreadFactory.forName("transport-consumer")); |
|
|
|
} |
|
|
|
|
|
|
|
@AfterStartUp |
|
|
|
private void start() { |
|
|
|
mainConsumerExecutor.execute(() -> { |
|
|
|
while (!stopped) { |
|
|
|
try { |
|
|
|
|