in text-translators-agent/src/jetbrains/buildServer/agent/messages/TextBuildMessagesTranslator.java [62:124]
public List<BuildMessage1> translateMessages(@NotNull final AgentRunningBuild build, @NotNull final List<BuildMessage1> messages) {
final BuildLogTail tail = ((AgentRunningBuildEx) build).getBuildLogTail();
if (!String.valueOf(build.getBuildId()).equals(tail.getBuildId())) {
return messages;
}
// Only text messages processed
for (BuildMessage1 message : messages) {
if (!DefaultMessagesInfo.MSG_TEXT.equals(message.getTypeId())) {
return messages;
}
}
final ArrayList<BuildMessage1> result = new ArrayList<BuildMessage1>(messages.size());
final List<SimpleMessagesTranslator> translators = getAllTranslators((AgentRunningBuildEx) build);
for (BuildMessage1 message : messages) {
ServiceMessagesProcessor.processTextMessage(message, new AbstractTextMessageProcessor() {
public void processServiceMessage(final @NotNull ServiceMessage message, final @NotNull BuildMessage1 originalMessage) {
if (ServiceMessage.DISABLE.equals(message.getMessageName())) {
mySuspendServiceMessages = true;
return;
}
if (ServiceMessage.ENABLE.equals(message.getMessageName())) {
mySuspendServiceMessages = false;
return;
}
if (mySuspendServiceMessages) return;
for (SimpleMessagesTranslator simpleMessagesTranslator : translators) {
final SimpleMessagesTranslator.Result result1 = simpleMessagesTranslator.doProcessMessage(message, tail);
if (!result1.isConsumed()) continue;
final List<BuildMessage1> additional = new ArrayList<BuildMessage1>();
if (result1.isKeepOrigin()) {
additional.add(originalMessage);
}
additional.addAll(result1.getMessages());
result.addAll(additional);
}
}
@Override
public void processText(final @NotNull BuildMessage1 originalMessage) {
for (SimpleMessagesTranslator simpleMessagesTranslator : translators) {
final SimpleMessagesTranslator.Result result1 = simpleMessagesTranslator.doProcessText((String) originalMessage.getValue(), tail);
if (!result1.isConsumed()) continue;
final List<BuildMessage1> additional = new ArrayList<BuildMessage1>();
if (result1.isKeepOrigin()) {
additional.add(originalMessage);
}
additional.addAll(result1.getMessages());
result.addAll(additional);
}
}
@Override
public void processParseException(final @NotNull ParseException e, final @NotNull BuildMessage1 originalMessage) {
LOG.warn("Invalid service message: " + originalMessage.getValue() + ", error: " + e.toString());
}
});
}
return result;
}