in gradle-runner-agent/src/main/java/jetbrains/buildServer/gradle/runtime/service/jvmargs/GradleJvmArgsMerger.java [33:61]
public Collection<String> mergeJvmArguments(@NotNull Collection<String> gradleProjectJvmArgs, @NotNull Collection<String> tcJvmArgs) {
logger.debug("Merging JVM arguments");
logger.debug("Gradle JVM arguments: " + String.join(" ", gradleProjectJvmArgs));
logger.debug("TC JVM arguments: " + String.join(" ", tcJvmArgs));
Map<String, LinkedHashSet<String>> arguments = groupArgumentValuesByKey(gradleProjectJvmArgs, tcJvmArgs);
for (String argKey : arguments.keySet()) {
Collection<String> argValues = arguments.get(argKey);
if (argValues.size() > 1) {
Collection<String> mergedValues = mergeArgumentValues(argKey, argValues);
argValues.clear();
argValues.addAll(mergedValues);
}
}
List<String> result = new ArrayList<>();
arguments.keySet().forEach(key -> arguments.get(key).forEach(val -> {
if (isCompositeValue(val)) {
result.add(key);
result.add(val);
} else {
result.add(key + val);
}
}));
logger.debug("Merging result: " + String.join(" ", result));
return result;
}