Browse Source

Lwm2m: back: add tenantId and repositoryTenant - test3

pull/4238/head
nickAS21 5 years ago
parent
commit
d8ea6ac37d
  1. 38
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportContextServer.java
  2. 3
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportServerConfiguration.java
  3. 7
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportServiceImpl.java
  4. 5
      common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java
  5. 12
      common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java

38
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportContextServer.java

@ -52,6 +52,8 @@ import org.thingsboard.server.transport.lwm2m.server.adaptors.LwM2MJsonAdaptor;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandler.LOG_LW2M_TELEMETRY;
@ -152,7 +154,7 @@ public class LwM2mTransportContextServer extends TransportContext {
* @return
*/
public GetResourcesResponseMsg getResourceTenant (UUID tenantId, String resourceType) {
CountDownLatch latch = new CountDownLatch(1);
GetResourcesResponseMsg responseMsg =
this.getTransportService()
.getResources(GetResourcesRequestMsg.newBuilder()
@ -160,7 +162,41 @@ public class LwM2mTransportContextServer extends TransportContext {
.setTenantIdLSB(tenantId.getLeastSignificantBits())
.setTenantIdMSB(tenantId.getMostSignificantBits())
.build());
latch.countDown();
try {
latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
log.error("Failed to await credentials!", e);
}
return responseMsg;
}
public GetResourcesResponseMsg getResourceTenantProcess (UUID tenantId, String resourceType) {
CountDownLatch latch = new CountDownLatch(2);
final GetResourcesResponseMsg[] responseMsg = {null};
this.getTransportService().process(GetResourcesRequestMsg.newBuilder()
.setResourceType(resourceType)
.setTenantIdLSB(tenantId.getLeastSignificantBits())
.setTenantIdMSB(tenantId.getMostSignificantBits())
.build(),
new TransportServiceCallback<>() {
@Override
public void onSuccess(GetResourcesResponseMsg msg) { responseMsg[0] = msg;
latch.countDown();
}
@Override
public void onError(Throwable e) {
log.trace("[{}] [{}] Failed to process credentials ", tenantId, e);
latch.countDown();
}
});
try {
latch.await(this.getLwM2MTransportConfigServer().getTimeout(), TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
log.error("Failed to await credentials!", e);
}
return responseMsg[0];
}
}

3
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportServerConfiguration.java

@ -101,7 +101,8 @@ public class LwM2mTransportServerConfiguration {
builder.setCoapConfig(getCoapConfig(serverPortNoSec, serverSecurePort));
/** Define model provider (Create Models )*/
TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
// TransportProtos.GetResourcesResponseMsg responseMsg= this.context.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
// LwM2mModelProvider modelProvider = new VersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueCommon());
LwM2mModelProvider modelProvider = new LwM2mVersionedModelProvider(this.context.getLwM2MTransportConfigServer().getModelsValueServer(), this.lwM2mClientContext);
builder.setObjectModelProvider(modelProvider);

7
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mTransportServiceImpl.java

@ -40,6 +40,8 @@ import org.springframework.stereotype.Service;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.DeviceProfile;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.transport.resource.ResourceType;
import org.thingsboard.server.common.transport.TransportService;
import org.thingsboard.server.common.transport.adaptor.AdaptorException;
import org.thingsboard.server.common.transport.adaptor.JsonConverter;
@ -154,7 +156,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
try {
log.warn("[{}] [{{}] Client: create after Registration", registration.getEndpoint(), registration.getId());
((LwM2mVersionedModelProvider)leshanServer.getModelProvider()).setRepository(this.lwM2mTransportContextServer.getLwM2MTransportConfigServer().getModelsValueCommon());
// (((VersionedModelProvider) (leshanServer)).modelProvider).repository;
TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenantProcess(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
// TransportProtos.GetResourcesResponseMsg responseMsg= this.lwM2mTransportContextServer.getResourceTenant(TenantId.SYS_TENANT_ID.getId(), ResourceType.LWM2M_MODEL.name());
// (((VersionedModelProvider) (leshanServer)).modelProvider).repository;
LwM2mClient lwM2MClient = this.lwM2mClientContext.updateInSessionsLwM2MClient(registration);
if (lwM2MClient != null) {
SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration);

5
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java

@ -75,8 +75,9 @@ public interface TransportService {
void onProfileUpdate(DeviceProfile deviceProfile);
void process(LwM2MRequestMsg msg,
TransportServiceCallback<LwM2MResponseMsg> callback);
void process(LwM2MRequestMsg msg, TransportServiceCallback<LwM2MResponseMsg> callback);
void process(GetResourcesRequestMsg msg, TransportServiceCallback<GetResourcesResponseMsg> callback);
void process(SessionInfoProto sessionInfo, SessionEventMsg msg, TransportServiceCallback<Void> callback);

12
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java

@ -61,7 +61,6 @@ import org.thingsboard.server.common.transport.util.JsonUtils;
import org.thingsboard.server.gen.transport.TransportProtos;
import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceRequestMsg;
import org.thingsboard.server.gen.transport.TransportProtos.ProvisionDeviceResponseMsg;
import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto;
import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg;
import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg;
import org.thingsboard.server.gen.transport.TransportProtos.ToTransportMsg;
@ -266,6 +265,16 @@ public class DefaultTransportService implements TransportService {
}
}
@Override
public void process(TransportProtos.GetResourcesRequestMsg msg, TransportServiceCallback<TransportProtos.GetResourcesResponseMsg> callback) {
log.trace("Processing msg: {}", msg);
TbProtoQueueMsg<TransportProtos.TransportApiRequestMsg> protoMsg =
new TbProtoQueueMsg<>(UUID.randomUUID(), TransportProtos.TransportApiRequestMsg.newBuilder().setResourcesRequestMsg(msg).build());
AsyncCallbackTemplate.withCallback(transportApiRequestTemplate.send(protoMsg),
response -> callback.onSuccess(response.getValue().getResourcesResponseMsg()), callback::onError, transportCallbackExecutor);
}
@Override
public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceTokenRequestMsg msg,
TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
@ -292,6 +301,7 @@ public class DefaultTransportService implements TransportService {
response -> callback.onSuccess(response.getValue().getValidateCredResponseMsg()), callback::onError, transportCallbackExecutor);
}
@Override
public void process(DeviceTransportType transportType, TransportProtos.ValidateDeviceX509CertRequestMsg msg, TransportServiceCallback<ValidateDeviceCredentialsResponse> callback) {
log.trace("Processing msg: {}", msg);
TbProtoQueueMsg<TransportApiRequestMsg> protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setValidateX509CertRequestMsg(msg).build());

Loading…
Cancel
Save