public final SwarmClient getSwarmClient()

in commit-status-publisher-server/src/main/java/jetbrains/buildServer/swarm/SwarmClientManager.java [71:99]


  public final SwarmClient getSwarmClient(@NotNull SBuildType buildType, @NotNull VcsRootInstance root) {
    if (!PERFORCE_VCS_NAME.equals(root.getVcsName())) {
      return null;
    }

    Set<Map<String, String>> ourFeatures = new HashSet<Map<String, String>>();
    for (SBuildFeatureDescriptor buildFeature : buildType.getResolvedSettings().getBuildFeatures()) {
      Map<String, String> parameters = buildFeature.getParameters();

      if (CommitStatusPublisherFeature.TYPE.equals(buildFeature.getType()) &&
          SwarmPublisherSettings.ID.equals(parameters.get(PUBLISHER_ID_PARAM)) &&
          buildType.isEnabled(buildFeature.getId())) {

        ourFeatures.add(parameters);
      }
    }

    for (Map<String, String> parameters : ourFeatures) {
      String vcsRootId = parameters.get(VCS_ROOT_ID_PARAM);

      // Either strict match of the VCS Root ID according to build feature settings
      // or there is only one build feature configured - match case "any VCS Root"
      if (root.getExternalId().equals(vcsRootId) || (vcsRootId == null && ourFeatures.size() == 1)) {
        return getSwarmClient(parameters);
      }
    }

    return null;
  }