No, it is not intended, and StringUtils.join could be used. To be honest, I do not know why I reimplemented this, but I guess I was not aware that apache-commons was available and/or did not want to add a new dependency.

However, the algorithm in ProjectConfigurator.concatenate(Set<String>) DOES NOT add a trailing Separator. In each iteration it FIRST adds a Separator (except the first iteration), and THEN adds the library String. Unless there is an empty String in sonarLibraries, there is no way of having a trailing Separator.