in server/src/jetbrains/buildServer/agentsDiff/BuildAgentsDiffCalculator.java [24:50]
public BuildAgentsDiffBean calculateDiff(@NotNull final AgentDescription agentA, @NotNull final AgentDescription agentB) {
final Map<String, String> configParamsA = simplifyParameters(agentA.getAvailableParameters());
final Map<String, String> configParamsB = simplifyParameters(agentB.getAvailableParameters());
final List<BuildAgentsDiffEntry> entries = new LinkedList<>();
final MapDifference<String, String> mapDifference = Maps.difference(configParamsA, configParamsB);
if(!mapDifference.areEqual()){
final Map<String, MapDifference.ValueDifference<String>> stringValueDifferenceMap = mapDifference.entriesDiffering();
for(String key : stringValueDifferenceMap.keySet()){
final MapDifference.ValueDifference<String> stringValueDifference = stringValueDifferenceMap.get(key);
entries.add(new BuildAgentsDiffEntry(BuildAgentsDiffEntryType.PARAMETER_VALUE, key, stringValueDifference.leftValue(), stringValueDifference.rightValue()));
}
Map<String, String> map = mapDifference.entriesOnlyOnLeft();
for(String key : map.keySet()){
entries.add(new BuildAgentsDiffEntry(BuildAgentsDiffEntryType.PARAMETER_NAME, key, map.get(key), null));
}
map = mapDifference.entriesOnlyOnRight();
for(String key : map.keySet()){
entries.add(new BuildAgentsDiffEntry(BuildAgentsDiffEntryType.PARAMETER_NAME, key, null, map.get(key)));
}
}
entries.sort((o1, o2) -> o1.getPropertyName().compareToIgnoreCase(o2.getPropertyName()));
return new BuildAgentsDiffBean(agentA, agentB, entries);
}