code: public BaseMessage processIncomingMessage(BaseMessage messageReplyIn, BaseMessage messageOut)
      {
          messageReplyIn = this.convertExternalReplyToInternal(messageReplyIn, messageOut);
  
          String strMessageInfoType = this.getMessageInfoType(messageReplyIn);
          String strDefaultProcessorClass = MessageInfoTypeModel.REQUEST.equals(strMessageInfoType) ? BaseMessageInProcessor.class.getName() : BaseMessageReplyInProcessor.class.getName();
          BaseExternalMessageProcessor messageInProcessor = (BaseExternalMessageProcessor)BaseMessageProcessor.getMessageProcessor(this.getTask(), messageReplyIn, strDefaultProcessorClass);
          Utility.getLogger().info("processIncommingMessage - processor: " + messageInProcessor);
          BaseMessage messageReply = null;
          if (messageInProcessor == null)
          {
              String strErrorMessage = "Message in processor not found " + strDefaultProcessorClass;
              messageReply = BaseMessageProcessor.processErrorMessage(this, messageReplyIn, strErrorMessage);
          }
          else
          {
              messageReply = messageInProcessor.processMessage(messageReplyIn);
              messageInProcessor.free();
          }
          // Next step - setup the reply
          if (messageReply != null)   // Never for replies.
          {
              this.setupReplyMessage(messageReply, messageReplyIn, null, null);
              if ((messageReply.getMessageDataDesc(null) != null)
                  && (messageReplyIn.getMessageDataDesc(null) != null))
                      ((MessageRecordDesc)messageReply.getMessageDataDesc(null)).moveRequestInfoToReply(messageReplyIn);
  
              Utility.getLogger().info("returning msgReplyInternal: " + messageReplyIn);
              return messageReply;    // Have the caller process (send) this return message
          }
          return null;
      }
docs: Here is an incoming message.
  Figure out what it is and process it.
  Note: the caller should have logged this message since I have no way to serialize the raw data.
  @param messageReplyIn - The incoming message
  @param messageOut - The (optional) outgoing message that this is a reply to (null if unknown).
  @return The optional return message.