InternalEvent.builder(executionContext).message(messageCollection1) .groupCorrelation(Optional.of(GroupCorrelation.of(0, 2))) .build(); CoreEvent event2 = InternalEvent.builder(executionContext).message(messageCollection2) .groupCorrelation(Optional.of(GroupCorrelation.of(0, 2))) .build();
Message message3 = Message.of("test event C"); PrivilegedEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1", simpleDateType1).build(); MuleSession session = event1.getSession(); PrivilegedEvent event2 = InternalEvent.builder(context).message(message2).session(session) .addVariable("key2", "value2", simpleDateType1).build(); InternalEvent event3 = InternalEvent.builder(context).message(message3).session(session) .addVariable("key3", "value3", simpleDateType1).build(); event1.getSession().setProperty("key", "value"); event2.getSession().setProperty("key1", "value1");
InternalEvent.builder(executionContext).message(messageCollection1) .groupCorrelation(Optional.of(GroupCorrelation.of(0, 2))) .build(); CoreEvent event2 = InternalEvent.builder(executionContext).message(messageCollection2) .groupCorrelation(Optional.of(GroupCorrelation.of(0, 2))) .build();
Message message3 = Message.of("test event C"); PrivilegedEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1", simpleDateType1).build(); MuleSession session = event1.getSession(); PrivilegedEvent event2 = InternalEvent.builder(context).message(message2).session(session) .addVariable("key2", "value2", simpleDateType1).build(); InternalEvent event3 = InternalEvent.builder(context).message(message3).session(session) .addVariable("key3", "value3", simpleDateType1).build(); event1.getSession().setProperty("key", "value"); event2.getSession().setProperty("key1", "value1");
@Test public void aggregateMultipleMuleMessageCollections() { Message message1 = Message.of("test event A"); CoreEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1").build(); Message messageCollection = Message.of(list); CoreEvent event2 = InternalEvent.builder(context).message(messageCollection).addVariable("key2", "value2").build(); Message messageCollection2 = Message.of(list2); CoreEvent event3 = InternalEvent.builder(context).message(messageCollection2).addVariable("key3", "value3").build();
InternalEvent.builder(context).message(message1).groupCorrelation(Optional.of(GroupCorrelation.of(0, 3))) .session(session).build(); CoreEvent event2 = InternalEvent.builder(context).message(message2).session(session).build(); CoreEvent event3 = InternalEvent.builder(context).message(message3).session(session).build();
@Test public void testMessageAggregator() throws Exception { Flow flow = createAndRegisterFlow(muleContext, APPLE_FLOW, componentLocator); MuleSession session = new DefaultMuleSession(); TestEventAggregator router = new TestEventAggregator(3); router.setAnnotations(getAppleFlowComponentLocationAnnotations()); initialiseIfNeeded(router, true, muleContext); EventContext context = create(flow, TEST_CONNECTOR_LOCATION, "foo"); Message message1 = Message.of("test event A"); Message message2 = Message.of("test event B"); Message message3 = Message.of("test event C"); CoreEvent event1 = InternalEvent.builder(context).message(message1).session(session).build(); CoreEvent event2 = InternalEvent.builder(context).message(message2).session(session).build(); CoreEvent event3 = InternalEvent.builder(context).message(message3).session(session).build(); assertNull(router.process(event1)); assertNull(router.process(event2)); CoreEvent result = router.process(event3); assertNotNull(result); PrivilegedEvent privilegedResult = (PrivilegedEvent) result; assertTrue(privilegedResult.getMessageAsString(muleContext).contains("test event A")); assertTrue(privilegedResult.getMessageAsString(muleContext).contains("test event B")); assertTrue(privilegedResult.getMessageAsString(muleContext).contains("test event C")); assertTrue(privilegedResult.getMessageAsString(muleContext) .matches("test event [A,B,C] test event [A,B,C] test event [A,B,C] ")); }
@Test public void testMessageResequencer() throws Exception { MuleSession session = new DefaultMuleSession(); Flow flow = createAndRegisterFlow(muleContext, APPLE_FLOW, componentLocator); assertNotNull(flow); TestEventResequencer router = new TestEventResequencer(3); router.setMuleContext(muleContext); router.setAnnotations(getAppleFlowComponentLocationAnnotations()); initialiseIfNeeded(router, true, muleContext); EventContext context = create(flow, TEST_CONNECTOR_LOCATION, "foo"); Message message1 = Message.of("test event A"); Message message2 = Message.of("test event B"); Message message3 = Message.of("test event C"); CoreEvent event1 = InternalEvent.builder(context).message(message1).session(session).build(); CoreEvent event2 = InternalEvent.builder(context).message(message2).session(session).build(); CoreEvent event3 = InternalEvent.builder(context).message(message3).session(session).build(); assertNull(router.process(event2)); assertNull(router.process(event3)); CoreEvent resultEvent = router.process(event1); assertNotNull(resultEvent); Message resultMessage = resultEvent.getMessage(); assertNotNull(resultMessage); assertTrue(getPayloadAsString(resultMessage).equals("test event A") || getPayloadAsString(resultMessage).equals("test event B") || getPayloadAsString(resultMessage).equals("test event C")); }
@Test public void testAggregateSingleEvent() throws Exception { Flow flow = createAndRegisterFlow(muleContext, APPLE_FLOW, componentLocator); assertNotNull(flow); SimpleCollectionAggregator router = new SimpleCollectionAggregator(); SensingNullMessageProcessor sensingMessageProcessor = getSensingNullMessageProcessor(); router.setListener(sensingMessageProcessor); router.setMuleContext(muleContext); router.setAnnotations(getAppleFlowComponentLocationAnnotations()); initialiseIfNeeded(router, true, muleContext); EventContext executionContext = create(flow, TEST_CONNECTOR_LOCATION, "foo"); Message message1 = of("test event A"); CoreEvent event1 = InternalEvent.builder(executionContext).message(message1).groupCorrelation(Optional.of(GroupCorrelation.of(0, 1))) .build(); CoreEvent resultEvent = router.process(event1); assertNotNull(sensingMessageProcessor.event); assertThat(resultEvent, equalTo(sensingMessageProcessor.event)); Message nextMessage = sensingMessageProcessor.event.getMessage(); assertNotNull(nextMessage); assertTrue(nextMessage.getPayload().getValue() instanceof List<?>); List<InternalMessage> payload = (List<InternalMessage>) nextMessage.getPayload().getValue(); assertEquals(1, payload.size()); assertEquals("test event A", payload.get(0).getPayload().getValue()); }
@Test public void aggregateSingleMuleMessageCollection() { Message message1 = Message.of("test event A"); CoreEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1").build(); Message message2 = Message.of("test event B"); Message message3 = Message.of("test event C"); List<Message> list = new ArrayList<>(); list.add(message2); list.add(message3); Message messageCollection = Message.of(list); CoreEvent event2 = InternalEvent.builder(context).message(messageCollection).addVariable("key2", "value2").build(); CoreEvent result = resultsHandler.aggregateResults(Collections.<CoreEvent>singletonList(event2), event1); assertSame(event2, result); // Because same event instance is returned rather than MessageCollection // don't copy invocation properties assertThat(result.getVariables().keySet(), not(hasItem("key1"))); assertThat(result.getVariables().get("key2").getValue(), equalTo("value2")); }
@Test public void aggregateSingleEvent() { Message message1 = Message.of("test event A"); InternalEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key1", "value1").build(); event1.getSession().setProperty("key", "value"); Message message2 = Message.of("test event B"); InternalEvent event2 = InternalEvent.builder(context).message(message2).addVariable("key2", "value2").build(); event2.getSession().setProperty("key", "valueNEW"); event2.getSession().setProperty("key1", "value1"); CoreEvent result = resultsHandler.aggregateResults(singletonList(event2), event1); assertSame(event2, result); // Because same event instance is returned rather than MessageCollection // don't copy invocation properties assertThat(result.getVariables().keySet(), not(hasItem("key1"))); assertThat(result.getVariables().get("key2").getValue(), equalTo("value2")); PrivilegedEvent privilegedResult = (PrivilegedEvent) result; assertThat(privilegedResult.getSession().getProperty("key"), equalTo("valueNEW")); assertThat(privilegedResult.getSession().getProperty("key1"), equalTo("value1")); }
@Test public void aggregateMultipleEventsAllButOneNull() { Message message1 = Message.of("test event A"); Message message2 = Message.of("test event B"); CoreEvent event1 = InternalEvent.builder(context).message(message1).addVariable("key", "value").build(); CoreEvent event2 = InternalEvent.builder(context).message(message2).addVariable("key2", "value2").build(); List<CoreEvent> events = new ArrayList<>(); events.add(null); events.add(event2); CoreEvent result = resultsHandler.aggregateResults(events, event1); assertSame(event2, result); // Because same event instance is returned rather than MessageCollection // don't copy invocation properties assertThat(result.getVariables().keySet(), not(hasItem("key1"))); assertThat(result.getVariables().get("key2").getValue(), equalTo("value2")); }
@Override public void run() { for (int i = 0; i < numMessages; i++) { Message msg = of(TEST_MESSAGE + messageNumber.getAndIncrement()); CoreEvent event = InternalEvent.builder(create(flowConstruct, TEST_CONNECTOR_LOCATION)).message(msg).session(session).build(); try { target.process(event); } catch (MuleException e) { // this is expected } } } }
public DefaultInterceptionEvent setError(ErrorType errorType, Throwable cause) { ErrorBuilder errorBuilder = ErrorBuilder.builder(cause); errorBuilder.errorType(errorType); interceptedOutput = interceptedOutput.error(errorBuilder.build()).removeInternalParameter(INTERCEPTION_RESOLVED_PARAMS); return this; }
@Test public void exceptionCausedBy() throws Exception { CoreEvent event = createEvent(); Message message = event.getMessage(); MessagingException me = new MessagingException(CoreMessages.createStaticMessage(""), InternalEvent.builder(context).message(message).build(), new IllegalAccessException()); when(mockError.getCause()).thenReturn(me); assertTrue((Boolean) evaluate("exception.causedBy(java.lang.IllegalAccessException)", event)); }