Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Method

Description

from(endpointUri)

Matches only when Exchanges are incoming from that particular endpoint. The endpointUri can be a pattern, which is the same pattern matching used by Intercept.

fromRoute(routeId)

Camel 2.4: Matches only when Exchanges are incoming from that particular route. The routeId can be a pattern, which is the same pattern matching used by Intercept.

filter(predicate)

Filters out unwanted Exchanges (only messages passing (true) the predicate is used).

whenReceived(number)

Matches when X number or more messages has been received.

whenDone(number)

Matches when X number or more messages is done.

whenDoneByIndex(index)

Camel 2.8: Matches when the n'th (index) message is done.

whenComplete(number)

Matches when X number or more messages is complete.

whenFailed(number)

Matches when X number or more messages is failed.

whenExactlyDone(number)

Matches when exactly X number of messages is done.

whenExactlyComplete(number)

Matches when exactly X number of messages is complete.

whenExactlyFailed(number)

Matches when exactly X number of messages is failed.

whenBodiesReceived(bodies)

Matches when the message bodies has been received in the same order. This method is non strict which means that it will disregard any additional received messages.

whenExactBodiesReceived(bodies)

Matches when the message bodies has been received in the same order. This method is strict which means the exact number of message bodies is expected.

whenBodiesDone(bodies)

Matches when the message bodies are done in the same order. This method is non strict which means that it will disregard any additional done messages.

whenExactBodiesDone(bodies)

Matches when the message bodies are done in the same order. This method is strict which means the exact number of message bodies is expected.

whenAnyReceivedMatches(predicate)

Matches if any one of the received messages matched the Predicate.

whenAllReceivedMatches(predicate)

Matches only when all of the received messages matched the Predicate.

whenAnyDoneMatches(predicate)

Matches if any one of the done messages matched the Predicate.

whenAllDoneMatches(predicate)

Matches only when all of the done messages matched the Predicate.

whenReceivedSatisfied(mock)

Matches if the Mock is satisfied for received messages. Is used for fine grained matching by setting the expectations on the Mock which already have a great library for doing so.

whenReceivedNotSatisfied(mock)

Matches if the Mock is not satisfied for received messages. Is used for fine grained matching by setting the expectations on the Mock which already have a great library for doing so.

whenDoneSatisfied(mock)

Matches if the Mock is satisfied for messages done. Is used for fine grained matching by setting the expectations on the Mock which already have a great library for doing so.

whenDoneNotSatisfied(mock)

Matches if the Mock is not satisfied for messages done. Is used for fine grained matching by setting the expectations on the Mock which already have a great library for doing so.

and

Appends an additional expressions using the and operator.

or

Appends an additional expressions using the or operator.

not

Appends an additional expressions using the not operator.

...

Here we want to match when the direct:foo endpoint have done 5 messages.

You may also want to be notified when an message is done by the index, for example the very first message. To do that you can simply do:

Code Block

        NotifyBuilder notify = new NotifyBuilder(context)
                .whenDoneByIndex(0)
                .create();

This ensures that the notifier only matches exactly when the first message is done.

If you use whenDone(1) instead, then the notifier matches when at least one message is done. There could be use cases where whenDone(1) would match even if the first message hasn't been done yet, as other message in between could be done ahead of the first message. That is why whenDoneByIndex was introduced in Camel 2.8 onwards to support this scenario.

Code Block
        NotifyBuilder notify = new NotifyBuilder(context)
                .from("direct:foo").filter(body().contains("test")).whenDone(5)
                .create();

...