Я пытаюсь разработать новый плагин уведомлений Bamboo.
Согласно официальной документации, если я хочу создать Пользовательское уведомление, в котором я хочу добавить файл журнала в качестве вложения к моему электронному письму, например, мне нужно реализовать следующий интерфейс ExtendedNotification.
public class MyNotification extends AbstractNotification implements ExtendedNotification {
...
}
Этот интерфейс ExtendedNotification имеет следующий метод, который необходимо реализовать:
@NotNull
@Override
public Email updateEmail (@NotNull Email email) {
return null;
}
Проблема заключается в том, что при построении самого Email получение версии сборки из контекста в этом методе не работает (чтобы попытаться прикрепить правильный файл журнала).
Например, если у меня есть следующий файл журнала — \BAMBOO\tools\logs\${bamboo.planKey}\health_${bamboo.buildNumber}.txt). Ниже приведен код полного метода.
@NotNull
@Override
public Email updateEmail (@NotNull Email email) {
try {
//VariableContext variables = taskContext.getBuildContext ().getVariableContext ();
// E:\Atlassian\BAMBOO\tools\logs\${bamboo.planKey}\health_${bamboo.buildNumber}.txt
File logFile = new File ("E:\\Atlassian\\BAMBOO\\tools\\logs\\" + taskContext.getBuildContext().getPlanKey () + "\\health_" + taskContext.getBuildContext().getBuildNumber() + ".txt");
//Message message = new MimeMessage(session);
Multipart multipart = new MimeMultipart ();
// creates body part for the message
MimeBodyPart messageBodyPart = new MimeBodyPart ();
messageBodyPart.setContent (getHtmlEmailContent (), "text/html");
// creates body part for the attachment
MimeBodyPart attachPart = new MimeBodyPart ();
// code to add attachment...will be revealed later
attachPart.attachFile (logFile);
// adds parts to the multipart
multipart.addBodyPart (messageBodyPart);
multipart.addBodyPart (attachPart);
// sets the multipart as message's content
email.setMultipart (multipart);
} catch (Exception e) {
log.error ("There was a problem composing the email", e);
return null;
}
return email;
}
Моя проблема заключается в том, чтобы получить ключевую переменную плана в Bamboo, в Java. В моем коде выше я попытался получить его, используя:
taskContext.getBuildContext ().getVariableContext ();
как описано здесь вопрос StackOverflow, но это не работает.
Я видел пример создания пользовательского уведомления здесь — введите здесь описание ссылки, но код довольно старый и не использует никаких вложений.
Любая идея о том, как этого добиться? Спасибо