Я хотел бы использовать экземпляр класса, который создает другой плагин.
В частности, я хотел бы использовать экземпляр MQConnection
, который mq-notifier-plugin создает и поддерживает.
Я объявил этот плагин как зависимость в POM:
<dependency>
<groupId>com.sonymobile.jenkins.plugins.mq</groupId>
<artifactId>mq-notifier</artifactId>
<version>1.2.5</version>
</dependency>
Импортировал класс:
import com.sonymobile.jenkins.plugins.mq.mqnotifier.MQConnection;
Пыталсяполучите экземпляр и добавьте сообщение в шаг рабочего процесса:
..
public static class TestConnectionWorkflowStep extends AbstractSynchronousNonBlockingStepExecution<Void> {
private static final long serialVersionUID = 1L;
@StepContextParameter
private transient Run build;
@StepContextParameter
transient TaskListener listener;
@Override
protected Void run() throws Exception {
..
// fill in with exchange, routing_key, data, properties
MQConnection.getInstance().addMessageToQueue(..);
}
}
Он компилируется нормально.Я также дал указание классу MQConnection
регистрировать всякий раз, когда добавляется сообщение.
Кажется, что ни одно из моих шагов шага сборки не добавляется в очередь экземпляра и просто молча продолжается.
И, как и ожидалось, я все еще вижу сообщения от mq-notifier-plugin, которые отображаются нормально.
Я пытался использовать Jenkins.getInstance().getPlugin(MQConnection.class)
, но не работает, так как MQConnection
не является подклассом Plugin
.
Как получить доступ к экземпляру MQConnection
из моего плагина?