public Collection mergeJvmArguments()

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;
  }