}
RoutingMap.RoutingInfo info = routingMap.getRoutingInfo(msg.getRoutingKey());
if (info == null) {
Sink defaultSink = sinkManager.getSink("default");
input.setPause(defaultSink.checkPause());
defaultSink.writeTo(msg);
} else if (info.doFilter(msg)) {
List<Route> routes = info.getWhere();
for (Route route : routes) {
if (route.doFilter(msg)) {
Sink sink = sinkManager.getSink(route.getSink());
input.setPause(sink.checkPause());
if (!Strings.isNullOrEmpty(route.getAlias())) {
sink.writeTo(
new DefaultMessageContainer(
new Message(route.getAlias(), msg.getMessage().getPayload()), jsonMapper));
} else {
sink.writeTo(msg);
}
}
}
}
}