java - 如何在 gerrit 插件中使用 LifecycleListener?

标签 java guice gerrit

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

据我所知,Guice 的 gerrit 插件有两种操作模式。一种是不在 list 中声明任何内容,并使用 @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
                }
        }
}

最佳答案

我发现 LifecycleListener 不能与 AutoRegistration 结合使用。

原因如下:为了使 @Listen 注释正常工作,由类实现的 @ExtensionPoint 接口(interface)(在本例中为 LifecycleListener code>) 必须在 Guice 模块中具有 DynamicItemDynamicSetDynamicMap 定义,而 LifecycleListener< 则不然.

关于java - 如何在 gerrit 插件中使用 LifecycleListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338919/

相关文章:

java - Twitter4j 检查推文是否被我自己 Collection

annotations - guice 忽略提供者?

git - 无法克隆 Gerrit 存储库

jenkins - Repo、gerrit 和 Jenkins 合作

java - 在一个方法中处理多个异常

java - 带有 Flyway 4.2.0 的 Spring Boot 2.1.0

Java应用命令行启动

playframework - 如何访问 Play Guice 模块中的请求?

java - 我在哪里可以获得 Jersey 指南包?

linux - 无法在 Gerrit 中配置 LDAP