0

我正在编写一个 gerrit 插件,并希望在插件重启/关闭时关闭网络连接。这可以使用LifecycleListener.

据我所知,关于 Guice 的 gerrit 插件有两种操作模式。一种是不在 Manifest 中声明任何内容,而是对所有内容使用自动注册,使用 和 之类的@Listen注释@Export。另一种是创建一个 Guice 模块并在该模块中手动完成所有接线。

我想使用自动注册,但我无法使用LifecycleListener. 添加@Listen注释无效,侦听器被忽略。

我的代码看起来像这样(最小化):

@Listen
@Singleton
public class CommitValidationTest implements CommitValidationListener {
        @Listen
        public static class Lifecycle implements LifecycleListener {
                @Override
                public void start() {
                    // write to log
                }

                @Override
                public void stop() {
                    // write to log
                }
        }
}
4

1 回答 1

1

我收集到LifecycleListeners 不能与 AutoRegistration 结合使用。

原因如下:为了使@Listen注解起作用,@ExtensionPoint由类(在这种情况下LifecycleListener)实现的接口必须在 Guice 模块中有一个或定义,DynamicItem而.DynamicSetDynamicMapLifecycleListener

于 2013-09-04T09:05:23.493 回答