/** * Gets publication time of this message in Unix time format. * * @return Publication time of this message in Unix time format. */ @Override public long getTimeStamp() { return hzMessage.getPublishTime(); }
@Override protected org.springframework.messaging.Message<?> toMessage(Message<E> event) { Assert.notNull(event.getMessageObject(), "message must not be null"); final Map<String, Object> headers = new HashMap<>(); headers.put(HazelcastHeaders.MEMBER, event.getPublishingMember().getSocketAddress()); headers.put(HazelcastHeaders.CACHE_NAME, event.getSource()); headers.put(HazelcastHeaders.PUBLISHING_TIME, event.getPublishTime()); return getMessageBuilderFactory().withPayload(event.getMessageObject()).copyHeaders(headers).build(); }
@Override public void onMessage(Message message) { if (!endpoint.isAlive()) { return; } if (!(message instanceof DataAwareMessage)) { throw new IllegalArgumentException("Expecting: DataAwareMessage, Found: " + message.getClass().getSimpleName()); } DataAwareMessage dataAwareMessage = (DataAwareMessage) message; Data messageData = dataAwareMessage.getMessageData(); String publisherUuid = message.getPublishingMember().getUuid(); ClientMessage eventMessage = TopicAddMessageListenerCodec.encodeTopicEvent(messageData, message.getPublishTime(), publisherUuid); boolean isMultithreaded = nodeEngine.getConfig().findTopicConfig(parameters.name).isMultiThreadingEnabled(); if (isMultithreaded) { int key = rand.nextInt(); int partitionId = hashToIndex(key, nodeEngine.getPartitionService().getPartitionCount()); eventMessage.setPartitionId(partitionId); sendClientMessage(eventMessage); } else { sendClientMessage(partitionKey, eventMessage); } } }
@Override public void onMessage(Message message) { if (!endpoint.isAlive()) { return; } if (!(message instanceof DataAwareMessage)) { throw new IllegalArgumentException("Expecting: DataAwareMessage, Found: " + message.getClass().getSimpleName()); } DataAwareMessage dataAwareMessage = (DataAwareMessage) message; Data messageData = dataAwareMessage.getMessageData(); String publisherUuid = message.getPublishingMember().getUuid(); ClientMessage eventMessage = TopicAddMessageListenerCodec.encodeTopicEvent(messageData, message.getPublishTime(), publisherUuid); boolean isMultithreaded = nodeEngine.getConfig().findTopicConfig(parameters.name).isMultiThreadingEnabled(); if (isMultithreaded) { int key = rand.nextInt(); int partitionId = hashToIndex(key, nodeEngine.getPartitionService().getPartitionCount()); eventMessage.setPartitionId(partitionId); sendClientMessage(eventMessage); } else { sendClientMessage(partitionKey, eventMessage); } } }