in src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdate.java [93:126]
private void updateProducerProjectVersionUpdate(RefUpdatedEvent refUpdatedEvent) {
String refName = refUpdatedEvent.getRefName();
if (isSpecialRefName(refName)) {
logger.atFine().log(
"Found a special ref name %s, skipping update for %s",
refName, refUpdatedEvent.getProjectNameKey().get());
return;
}
try {
Project.NameKey projectNameKey = refUpdatedEvent.getProjectNameKey();
long newVersion = getCurrentGlobalVersionNumber();
Optional<RefUpdate> newProjectVersionRefUpdate =
updateLocalProjectVersion(projectNameKey, newVersion);
if (newProjectVersionRefUpdate.isPresent()) {
verLogger.log(projectNameKey, newVersion, 0L);
if (updateSharedProjectVersion(
projectNameKey, newProjectVersionRefUpdate.get().getNewObjectId(), newVersion)) {
gitReferenceUpdated.fire(projectNameKey, newProjectVersionRefUpdate.get(), null);
}
} else {
logger.atWarning().log(
"Ref %s not found on projet %s: skipping project version update",
refUpdatedEvent.getRefName(), projectNameKey);
}
} catch (LocalProjectVersionUpdateException | SharedProjectVersionUpdateException e) {
logger.atSevere().withCause(e).log(
"Issue encountered when updating version for project "
+ refUpdatedEvent.getProjectNameKey());
}
}