示例#1
0
  public void testDispatchAsyncComplex() throws Throwable {
    UMOConnector c = ConnectorFactory.getConnectorByProtocol(getProtocol());
    assertNotNull(c);
    UMOMessageDispatcher dispatcher = c.getDispatcher("ANY");
    UMOEndpoint endpoint =
        new MuleEndpoint(
            "test",
            new MuleEndpointURI(getDispatchAsyncComplexEndpoint1()),
            c,
            null,
            UMOEndpoint.ENDPOINT_TYPE_SENDER,
            0,
            null);
    UMOEvent event = getTestEvent(new Person("Joe", "Blow"), endpoint);

    dispatcher.dispatch(event);
    Thread.sleep(2000);
    // lets get our newly added person
    UMOMessage result =
        dispatcher.receive(new MuleEndpointURI(getDispatchAsyncComplexEndpoint2()), 0);
    assertNotNull(result);
    assertTrue(result.getPayload() instanceof Person);
    assertEquals("Joe", ((Person) result.getPayload()).getFirstName());
    assertEquals("Blow", ((Person) result.getPayload()).getLastName());
  }
示例#2
0
 public void onMessage(MessageExchange messageExchange) throws MessagingException {
   try {
     UMOMessageDispatcher dispatcher =
         endpoint.getConnector().getDispatcher(endpoint.getEndpointURI().getAddress());
     NormalizedMessage out = getOutMessage(messageExchange);
     UMOMessage message = JbiUtils.createMessage(out);
     UMOEvent event =
         new MuleEvent(message, endpoint, new MuleSession(), endpoint.isSynchronous());
     if (endpoint.isSynchronous()) {
       UMOMessage result = dispatcher.send(event);
       // todo send result back
     } else {
       dispatcher.dispatch(event);
     }
   } catch (Exception e) {
     error(messageExchange, e);
   }
 }