@Override
public void configure() {
String state = container.getState();
CamelProcessor terminatingMailetProcessor = new CamelProcessor(metricFactory, container, new TerminatingMailet());
RouteDefinition processorDef = from(container.getEndpoint())
.routeId(state)
.setExchangePattern(ExchangePattern.InOnly);
for (MatcherMailetPair pair : pairs) {
CamelProcessor mailetProccessor = new CamelProcessor(metricFactory, container, pair.getMailet());
MatcherSplitter matcherSplitter = new MatcherSplitter(metricFactory, container, pair);
processorDef
.split().method(matcherSplitter)
.aggregationStrategy(new UseLatestAggregationStrategy())
.process(exchange -> handleMailet(exchange, container, mailetProccessor));
}
processorDef
.process(exchange -> terminateSmoothly(exchange, container, terminatingMailetProcessor));
}