in amazon-sns-trigger-server/src/main/java/jetbrains/buildServer/clouds/amazon/sns/trigger/service/SnsBuildTriggeringPolicy.java [63:95]
public void triggerBuild(@NotNull PolledTriggerContext context) throws BuildTriggerException {
final Logger contextLogger = context.getLogger();
AwsSnsBuildTriggerState state = new AwsSnsBuildTriggerState(
context,
myTriggeringContext.getObjectMapper(),
contextLogger
);
// here it is safe to use context.getCustomDataStorage() without wrapper
// because we are not going to put any data
myTimeIntervalAction.executeCustomAction(context.getCustomDataStorage()::refresh);
if (!state.hasNewNotifications()) {
contextLogger.debug("No new SNS messages registered");
return;
}
Map<String, SnsNotificationDto> registeredMessages = state.getRegisteredMessages();
SnsNotificationDto latestSnsMessage = getLatest(registeredMessages);
Set<String> registeredMessagesIds = registeredMessages.keySet();
BuildPromotionEx buildPromotion = createBuildPromotion(context, latestSnsMessage);
TriggeredByBuilder builder = new TriggeredByBuilder();
builder.addParameter(TriggeredByBuilder.TYPE_PARAM_NAME, "sns");
builder.addParameter(TriggeredByBuilder.TRIGGER_ID_PARAM_NAME, context.getTriggerDescriptor().getId());
builder.addParameter(BuildQueueImpl.TRIGGERED_BY_QUEUE_OPTIMIZATION_ENABLED_PARAM, "false");
((BuildTypeEx) context.getBuildType()).addToQueue(buildPromotion, builder.toString());
state.persist(registeredMessagesIds);
}