Commit d8ea6ac37d568bb31be72fa4115e15e1691d2789
1 parent
447bf05b
Lwm2m: back: add tenantId and repositoryTenant - test3
Showing
5 changed files
with
59 additions
and
6 deletions
@@ -52,6 +52,8 @@ import org.thingsboard.server.transport.lwm2m.server.adaptors.LwM2MJsonAdaptor; | @@ -52,6 +52,8 @@ import org.thingsboard.server.transport.lwm2m.server.adaptors.LwM2MJsonAdaptor; | ||
52 | 52 | ||
53 | import java.util.List; | 53 | import java.util.List; |
54 | import java.util.UUID; | 54 | import java.util.UUID; |
55 | +import java.util.concurrent.CountDownLatch; | ||
56 | +import java.util.concurrent.TimeUnit; | ||
55 | 57 | ||
56 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandler.LOG_LW2M_TELEMETRY; | 58 | import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandler.LOG_LW2M_TELEMETRY; |
57 | 59 | ||
@@ -152,7 +154,7 @@ public class LwM2mTransportContextServer extends TransportContext { | @@ -152,7 +154,7 @@ public class LwM2mTransportContextServer extends TransportContext { | ||
152 | * @return | 154 | * @return |
153 | */ | 155 | */ |
154 | public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) { | 156 | public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) { |
155 | - | 157 | + CountDownLatch latch = new CountDownLatch(1); |
156 | GetResourcesResponseMsg responseMsg = | 158 | GetResourcesResponseMsg responseMsg = |
157 | this.getTransportService() | 159 | this.getTransportService() |
158 | .getResources(GetResourcesRequestMsg.newBuilder() | 160 | .getResources(GetResourcesRequestMsg.newBuilder() |
@@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext { | @@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext { | ||
160 | .setTenantIdLSB(tenantId.getLeastSignificantBits()) | 162 | .setTenantIdLSB(tenantId.getLeastSignificantBits()) |
161 | .setTenantIdMSB(tenantId.getMostSignificantBits()) | 163 | .setTenantIdMSB(tenantId.getMostSignificantBits()) |
162 | .build()); | 164 | .build()); |
165 | + latch.countDown(); | ||
166 | + try { | ||
167 | + latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS); | ||
168 | + } catch (InterruptedException e) { | ||
169 | + log.error("Failed to await credentials!", e); | ||
170 | + } | ||
171 | + | ||
163 | return responseMsg; | 172 | return responseMsg; |
164 | } | 173 | } |
165 | 174 | ||
175 | + public GetResourcesResponseMsg getResourceTenantProcess (UUID tenantId, String resourceType) { | ||
176 | + CountDownLatch latch = new CountDownLatch(2); | ||
177 | + final GetResourcesResponseMsg[] responseMsg = {null}; | ||
178 | + this.getTransportService().process(GetResourcesRequestMsg.newBuilder() | ||
179 | + .setResourceType(resourceType) | ||
180 | + .setTenantIdLSB(tenantId.getLeastSignificantBits()) | ||
181 | + .setTenantIdMSB(tenantId.getMostSignificantBits()) | ||
182 | + .build(), | ||
183 | + new TransportServiceCallback<>() { | ||
184 | + @Override | ||
185 | + public void onSuccess(GetResourcesResponseMsg msg) { responseMsg[0] = msg; | ||
186 | + latch.countDown(); | ||
187 | + } | ||
188 | + | ||
189 | + @Override | ||
190 | + public void onError(Throwable e) { | ||
191 | + log.trace("[{}] [{}] Failed to process credentials ", tenantId, e); | ||
192 | + latch.countDown(); | ||
193 | + } | ||
194 | + }); | ||
195 | + try { | ||
196 | + latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS); | ||
197 | + } catch (InterruptedException e) { | ||
198 | + log.error("Failed to await credentials!", e); | ||
199 | + } | ||
200 | + return responseMsg[0]; | ||
201 | + } | ||
166 | } | 202 | } |
@@ -101,7 +101,8 @@ public class LwM2mTransportServerConfiguration { | @@ -101,7 +101,8 @@ public class LwM2mTransportServerConfiguration { | ||
101 | builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort)); | 101 | builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort)); |
102 | 102 | ||
103 | /** Define model provider (Create Models )*/ | 103 | /** Define model provider (Create Models )*/ |
104 | - TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); | 104 | + TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); |
105 | +// TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); | ||
105 | // LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon()); | 106 | // LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon()); |
106 | LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext); | 107 | LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext); |
107 | builder.setObjectModelProvider(modelProvider); | 108 | builder.setObjectModelProvider(modelProvider); |
@@ -40,6 +40,8 @@ import org.springframework.stereotype.Service; | @@ -40,6 +40,8 @@ import org.springframework.stereotype.Service; | ||
40 | import org.thingsboard.common.util.JacksonUtil; | 40 | import org.thingsboard.common.util.JacksonUtil; |
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.id.TenantId; | ||
44 | +import org.thingsboard.server.common.data.transport.resource.ResourceType; | ||
43 | import org.thingsboard.server.common.transport.TransportService; | 45 | import org.thingsboard.server.common.transport.TransportService; |
44 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; | 46 | import org.thingsboard.server.common.transport.adaptor.AdaptorException; |
45 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; | 47 | import org.thingsboard.server.common.transport.adaptor.JsonConverter; |
@@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService { | @@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService { | ||
154 | try { | 156 | try { |
155 | log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId()); | 157 | log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId()); |
156 | ((LwM2mVersionedModelProvider)leshanServer.getModelProvider()).setRepository(this.lwM2mTransportContextServer.getLwM2MTransportConfigServer().getModelsValueCommon()); | 158 | ((LwM2mVersionedModelProvider)leshanServer.getModelProvider()).setRepository(this.lwM2mTransportContextServer.getLwM2MTransportConfigServer().getModelsValueCommon()); |
157 | -// (((VersionedModelProvider) (leshanServer)).modelProvider).repository; | 159 | + TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); |
160 | +// TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name()); | ||
161 | + | ||
162 | + // (((VersionedModelProvider) (leshanServer)).modelProvider).repository; | ||
158 | LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration); | 163 | LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration); |
159 | if (lwM2MClient != null) { | 164 | if (lwM2MClient != null) { |
160 | SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration); | 165 | SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration); |
@@ -75,8 +75,9 @@ public interface TransportService { | @@ -75,8 +75,9 @@ public interface TransportService { | ||
75 | 75 | ||
76 | void onProfileUpdate(DeviceProfile deviceProfile); | 76 | void onProfileUpdate(DeviceProfile deviceProfile); |
77 | 77 | ||
78 | - void process(LwM2MRequestMsg msg, | ||
79 | - TransportServiceCallback<LwM2MResponseMsg> callback); | 78 | + void process(LwM2MRequestMsg msg, TransportServiceCallback<LwM2MResponseMsg> callback); |
79 | + | ||
80 | + void process(GetResourcesRequestMsg msg, TransportServiceCallback<GetResourcesResponseMsg> callback); | ||
80 | 81 | ||
81 | void process(SessionInfoProto sessionInfo, SessionEventMsg msg, TransportServiceCallback<Void> callback); | 82 | void process(SessionInfoProto sessionInfo, SessionEventMsg msg, TransportServiceCallback<Void> callback); |
82 | 83 |
@@ -61,7 +61,6 @@ import org.thingsboard.server.common.transport.util.JsonUtils; | @@ -61,7 +61,6 @@ import org.thingsboard.server.common.transport.util.JsonUtils; | ||
61 | import org.thingsboard.server.gen.transport.TransportProtos; | 61 | import org.thingsboard.server.gen.transport.TransportProtos; |
62 | import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg; | 62 | import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg; |
63 | import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg; | 63 | import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg; |
64 | -import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto; | ||
65 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; | 64 | import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
66 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; | 65 | import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg; |
67 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; | 66 | import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg; |
@@ -267,6 +266,16 @@ public class DefaultTransportService implements TransportService { | @@ -267,6 +266,16 @@ public class DefaultTransportService implements TransportService { | ||
267 | } | 266 | } |
268 | 267 | ||
269 | @Override | 268 | @Override |
269 | + public void process(TransportProtos.GetResourcesRequestMsg msg, TransportServiceCallback<TransportProtos.GetResourcesResponseMsg> callback) { | ||
270 | + log.trace("Processing msg: {}", msg); | ||
271 | + TbProtoQueueMsg<TransportProtos.TransportApiRequestMsg> protoMsg = | ||
272 | + new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.TransportApiRequestMsg.newBuilder().setResourcesRequestMsg(msg).build()); | ||
273 | + AsyncCallbackTemplate.withCallback(transportApiRequestTemplate.send(protoMsg), | ||
274 | + response -> callback.onSuccess(response.getValue().getResourcesResponseMsg()), callback::onError, transportCallbackExecutor); | ||
275 | + } | ||
276 | + | ||
277 | + | ||
278 | + @Override | ||
270 | public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg, | 279 | public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg, |
271 | TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { | 280 | TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { |
272 | log.trace("Processing msg: {}", msg); | 281 | log.trace("Processing msg: {}", msg); |
@@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService { | @@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService { | ||
292 | response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor); | 301 | response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor); |
293 | } | 302 | } |
294 | 303 | ||
304 | + @Override | ||
295 | public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { | 305 | public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) { |
296 | log.trace("Processing msg: {}", msg); | 306 | log.trace("Processing msg: {}", msg); |
297 | TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build()); | 307 | TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build()); |