private ClientSync validate(ClientSync sync) throws PlatformEncDecException { if (sync.getClientSyncMetaData() == null) { throw new PlatformEncDecException( MessageFormat.format("Input data does not have client sync meta data: {0}!", sync)); } return sync; } }
private String getSdkToken(ClientSync request) { return request.getClientSyncMetaData().getSdkToken(); }
protected EndpointObjectHash getEndpointObjectHash(ClientSync request) { return EndpointObjectHash.fromBytes( request.getClientSyncMetaData().getEndpointPublicKeyHash().array()); } }
private long getDelay(SyncRequestMessage requestMessage, long start) { return requestMessage.getRequest() .getClientSyncMetaData() .getTimeout() - (System.currentTimeMillis() - start); }
private ClientSync decodePlatformLevelData(Integer platformId, byte[] requestRaw) throws PlatformEncDecException { PlatformEncDec encDec = platformEncDecMap.get(platformId); if (encDec != null) { ClientSync syncRequest = platformEncDecMap.get(platformId).decode(requestRaw); addAppTokenToClientSyncMetaData(syncRequest.getClientSyncMetaData()); return syncRequest; } else { throw new PlatformEncDecException( MessageFormat.format("Decoder for platform protocol [{0}] is not defined", platformId)); } }
/** * Return true if client sync information is valid or false if not. * * @return true if valid, false if not */ public boolean isValid() { ClientSyncMetaData md = this.getClientSyncMetaData(); // TODO: validate if public key hash matches hash of public key during // profile registration command. if (md.getProfileHash() == null) { ProfileClientSync profileRequest = this.getProfileSync(); if (profileRequest == null || profileRequest.getEndpointPublicKey() == null) { return false; } } return true; }
channelUuid, request, other); request.setRequestId(other.getRequestId()); request.getClientSyncMetaData() .setProfileHash(other.getClientSyncMetaData().getProfileHash()); LOG.debug("[{}] Updated request id and profile hash", channelUuid); ClientSync diff = new ClientSync(); diff.setRequestId(other.getRequestId()); diff.setClientSyncMetaData(other.getClientSyncMetaData()); diff.setUseConfigurationRawSchema(other.isUseConfigurationRawSchema()); if (request.getClientSyncMetaData().getApplicationToken() != null) { LOG.debug("Setting application token, as it was null: {}", request.getClientSyncMetaData().getApplicationToken()); diff.getClientSyncMetaData() .setApplicationToken(request.getClientSyncMetaData().getApplicationToken()); } else { LOG.trace("[{}] Application token is null for request", request);
private void syncChannels(ActorContext context, Set<ChannelMetaData> channels, boolean cfUpdate, boolean nfUpdate) { for (ChannelMetaData channel : channels) { ClientSync originalRequest = channel.getRequestMessage().getRequest(); ClientSync newRequest = new ClientSync(); newRequest.setRequestId(originalRequest.getRequestId()); newRequest.setClientSyncMetaData(originalRequest.getClientSyncMetaData()); newRequest.setUseConfigurationRawSchema(originalRequest.isUseConfigurationRawSchema()); if (cfUpdate && originalRequest.getConfigurationSync() != null) { newRequest.setForceConfigurationSync(true); newRequest.setConfigurationSync(originalRequest.getConfigurationSync()); } if (nfUpdate && originalRequest.getNotificationSync() != null) { newRequest.setForceNotificationSync(true); newRequest.setNotificationSync(originalRequest.getNotificationSync()); } LOG.debug("[{}][{}] Processing request {}", endpointKey, actorKey, newRequest); sync(context, new SyncRequestMessage(channel.getRequestMessage().getSession(), newRequest, channel.getRequestMessage().getCommand(), channel.getRequestMessage().getOriginator())); } }
context.setEndpointKey(endpointKey); context.setRequestHash(request.hashCode()); context.setMetaData(request.getClientSyncMetaData());