public void mapData()

in aws-core-server/src/main/java/jetbrains/buildServer/serverSide/connections/aws/AwsConnectionSettingsMapper.java [24:55]


  public void mapData(@NotNull final CopiedObjects copiedObjects) {
    final List<Map.Entry<SProjectFeatureDescriptor, SProjectFeatureDescriptor>> newAwsConnections = copiedObjects
      .getCopiedProjectFeatureDescriptorsMap()
      .entrySet()
      .stream()
      .filter(e -> OAuthConstants.FEATURE_TYPE.equals(e.getKey().getType()) &&
                   AwsCloudConnectorConstants.CLOUD_TYPE.equals(e.getKey().getParameters().get(OAuthConstants.OAUTH_TYPE_PARAM)))
      .collect(Collectors.toList());

    for (Map.Entry<SProjectFeatureDescriptor, SProjectFeatureDescriptor> newAwsConnection : newAwsConnections) {
      final String sourceId = newAwsConnection.getKey().getId();
      final SProjectFeatureDescriptor copiedFeature = newAwsConnection.getValue();

      // Project Manager already holds a copy of the new project - it just isn't persisted yet
      final SProject newProject = myProjectManager.findProjectById(copiedFeature.getProjectId());
      if (newProject == null) {
        continue;
      }

      updateBuildTypeSettings(newProject::getOwnBuildTypes, sourceId, copiedFeature);
      updateBuildTypeSettings(newProject::getOwnBuildTypeTemplates, sourceId, copiedFeature);

      newProject.getOwnFeatures()
                .stream()
                .filter(feature -> sourceId.equals(feature.getParameters().get(AwsCloudConnectorConstants.CHOSEN_AWS_CONN_ID_PARAM)))
                .forEach(feature -> {
                  final Map<String, String> newParams = new HashMap<>(feature.getParameters());
                  newParams.put(AwsCloudConnectorConstants.CHOSEN_AWS_CONN_ID_PARAM, copiedFeature.getId());
                  newProject.updateFeature(feature.getId(), feature.getType(), newParams);
                });
    }
  }