private Map<String, Object> marshalChannelInfo(ChannelInfo channelInfo) throws ParseException { Map<String, Object> unmarshalledChannelInfo = new HashMap<>(); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_NAME, channelInfo.getName()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_TIMESTAMP, KapuaDateUtils.formatDate(channelInfo.getFirstMessageOn())); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_CLIENT_ID, channelInfo.getClientId()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_SCOPE_ID, channelInfo.getScopeId().toStringId()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_MESSAGE_ID, channelInfo.getFirstMessageId().toString()); return unmarshalledChannelInfo; }
/** * Get the channel identifier getting parameters from the channelInfo. Then it calls {@link ChannelInfoField#getOrDeriveId(StorableId id, KapuaId scopeId, String clientId, String channel)} * * @param id * @param channelInfo * @return */ public static String getOrDeriveId(StorableId id, ChannelInfo channelInfo) { return getOrDeriveId(id, channelInfo.getScopeId(), channelInfo.getClientId(), channelInfo.getName()); }
sort.add(SortField.descending(MessageSchema.MESSAGE_TIMESTAMP)); MessageQuery messageQuery = new MessageQueryImpl(channelInfo.getScopeId()); messageQuery.setAskTotalCount(true); messageQuery.setFetchStyle(StorableFetchStyle.FIELDS); } else if (messageList.isEmpty()) { LOG.warn("Cannot find last timestamp for the specified client id '{}' - account '{}'", channelInfo.getScopeId(), channelInfo.getClientId()); } else { LOG.error("Cannot find last timestamp for the specified client id '{}' - account '{}'. More than one result returned by the query!", channelInfo.getScopeId(), channelInfo.getClientId());
ConfigurationException, ClientException { ArgumentValidator.notNull(channelInfo, "channelInfo"); ArgumentValidator.notNull(channelInfo.getScopeId(), "channelInfo.scopeId"); ArgumentValidator.notNull(channelInfo.getName(), "channelInfo.name"); ArgumentValidator.notNull(channelInfo.getFirstMessageId(), "channelInfo.messageId"); if (!DatastoreCacheManager.getInstance().getChannelsCache().get(channelInfoId)) { ChannelInfo storedField = find(channelInfo.getScopeId(), storableId); if (storedField == null) { Metadata metadata = mediator.getMetadata(channelInfo.getScopeId(), channelInfo.getFirstMessageOn().getTime()); String registryIndexName = metadata.getRegistryIndexName();