in server/src/jetbrains/buildServer/sharedResources/server/report/BuildUsedResourcesReport.java [43:66]
public void save(@NotNull final BuildPromotionEx promo,
@NotNull final Map<String, Resource> resources,
@NotNull final Map<Lock, String> takenLocks) {
if (takenLocks.isEmpty()) return;
final List<UsedResource> usedResources = new ArrayList<>();
takenLocks.forEach((lock, value) -> {
final Resource resource = resources.get(lock.getName());
if (resource != null) {
usedResources.add(new UsedResource(resource, Collections.singleton(Lock.createFrom(lock, value))));
} else {
LOG.warn("Resource with name " + lock.getName() + " was not found for used resources report for build promotion with id " + promo.getId());
}
});
final File artifact = new File(promo.getArtifactsDirectory(), ARTIFACT_PATH);
try {
if (FileUtil.createParentDirs(artifact)) {
try (FileWriter w = new FileWriter(artifact)) {
mySerializer.write(usedResources, w);
}
}
} catch (IOException | JsonIOException e) {
LOG.warnAndDebugDetails("Failed to store resources and locks to " + artifact.getPath() + " for build promotion with id " + promo.getId(), e);
}
}