@Override
  public MuleEvent process(MuleEvent event) throws MuleException {

    MuleMessage message = event.getMessage();
    List messageList = (List) message.getPayload();
    logger.info("message.getPayload() => {}", messageList);
    return event;
  }
  @Override
  public Object onCall(MuleEventContext eventContext) throws Exception {
    logger.info("Entering onCall .....");
    MuleMessage message = eventContext.getMessage();
    List messageList = (List) message.getPayload();
    logger.info("message.getPayload() => {}", messageList);
    MuleClient client = context.getClient();
    StringBuilder aggregated = new StringBuilder("AGGREGATED [");
    for (int i = 0; i < messageList.size(); i++) {
      String messageType = (String) messageList.get(i);
      MuleMessage muleMessage = new DefaultMuleMessage(messageType, context);
      StringBuilder muleURL = new StringBuilder();
      muleMessage.setOutboundProperty("X", messageType);
      client.dispatch("jms://queue1", muleMessage);

      MuleMessage muleMessage2 = new DefaultMuleMessage(messageType, context);
      muleMessage2.setOutboundProperty("X", messageType);
      MuleMessage result = client.send("jms://queue2", muleMessage2);
      aggregated.append(result.getPayload()).append(",");
    }
    aggregated.append("]");
    logger.info("Aggregated response {}", aggregated);
    return eventContext;
  }