哈德逊的Java @extension - 何时以及为何

时间:2013-09-04 11:19:25

标签: java hudson clearcase

当我们需要在java中为hudson使用@extension时,情况如何? 根据定义,它说for a class/method so that hudson can locate implementation of ExtensionPoints automatically.

哈德森的延伸点是什么?一个例子可以更好地描述理论。

1 个答案:

答案 0 :(得分:1)

我只看到JAvaDoc所说的内容:

  

标记自动发现的字段,方法或类,以便Hudson可以自动定位ExtensionPoints的实现。

     

(相比之下,在早期的Hudson中,注册是手动的。)

     

在最简单的情况下,将它放在你的类上,Hudson将创建它的一个实例并将其注册到相应的ExtensionList。

     

如果您希望Hudson调用工厂方法而不是构造函数,请将此注释放在静态工厂方法上。 Hudson将调用它,如果该方法返回一个非null实例,它将被注册。该方法的返回类型用于确定哪个ExtensionList将获取实例。最后,如果该字段包含对您要注册的实例的引用,则可以将此注释放在静态字段上。

     

这是将您的实现自动注册到Hudson的默认方式,但Hudson还支持任意DI容器来托管您的实现。有关详细信息,请参阅ExtensionFinder


您引用的示例(hudson.plugins.clearcase.ItemListenerImpl)是Hudson ItemListener的特例。