Пример #1
0
 /**
  * Create a reply based on an incoming message
  *
  * @param srcMessage the incoming message
  * @param instanceName the instance that is the source of the reply
  * @param taskResultMap the result of executing the incoming message
  * @return the reply Message
  */
 public static Message createReplyMessage(
     Message srcMessage, String instanceName, Map<String, String> taskResultMap) {
   if (srcMessage.getCorrelationId() == null) {
     throw new HelixException(
         "Message " + srcMessage.getMessageId() + " does not contain correlation id");
   }
   Message replyMessage =
       new Message(MessageType.TASK_REPLY, MessageId.from(UUID.randomUUID().toString()));
   replyMessage.setCorrelationId(srcMessage.getCorrelationId());
   replyMessage.setResultMap(taskResultMap);
   replyMessage.setTgtSessionId(SessionId.from("*"));
   replyMessage.setMsgState(MessageState.NEW);
   replyMessage.setSrcName(instanceName);
   if (srcMessage.getSrcInstanceType() == InstanceType.CONTROLLER) {
     replyMessage.setTgtName("Controller");
   } else {
     replyMessage.setTgtName(srcMessage.getMsgSrc());
   }
   return replyMessage;
 }
Пример #2
0
 /**
  * Instantiate a message with a new id
  *
  * @param record a ZNRecord corresponding to a message
  * @param id unique message identifier
  */
 public Message(ZNRecord record, String id) {
   this(record, MessageId.from(id));
 }
Пример #3
0
 /**
  * Get the unique identifier of this message
  *
  * @return message identifier
  */
 public MessageId getMessageId() {
   return MessageId.from(getMsgId());
 }
Пример #4
0
 /**
  * Instantiate a message
  *
  * @param type {@link MessageType} as a string or a custom message type
  * @param msgId unique message identifier
  */
 public Message(String type, String msgId) {
   this(type, MessageId.from(msgId));
 }