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