Bind GerritChange in event context Change-Id: I80ca16fdb760b19322ca2ad142c6e07fb3c47f1d
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java index 9f6ce1a..4cce7cd 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java
@@ -32,9 +32,9 @@ } public void execute(Configuration config, Event event) { - GerritEventContextModule contextModule = new GerritEventContextModule(config); - EventHandlerTask.Factory taskHandlerFactory = injector.createChildInjector(contextModule) - .getInstance(EventHandlerTask.Factory.class); - executor.execute(taskHandlerFactory.create(event)); + GerritEventContextModule contextModule = new GerritEventContextModule(config, event); + EventHandlerTask task = injector.createChildInjector(contextModule) + .getInstance(EventHandlerTask.class); + executor.execute(task); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java index 796e77f..fafe16c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
@@ -3,13 +3,9 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Splitter; import com.google.gerrit.extensions.client.ChangeKind; -import com.google.gerrit.extensions.config.FactoryModule; import com.google.gerrit.server.data.ChangeAttribute; import com.google.gerrit.server.data.PatchSetAttribute; -import com.google.gerrit.server.events.Event; import com.google.inject.Inject; -import com.google.inject.Module; -import com.google.inject.assistedinject.Assisted; import com.googlesource.gerrit.plugins.chatgpt.PatchSetReviewer; import com.googlesource.gerrit.plugins.chatgpt.config.Configuration; import com.googlesource.gerrit.plugins.chatgpt.data.ChangeSetDataHandler; @@ -30,17 +26,6 @@ @Slf4j public class EventHandlerTask implements Runnable { - public static final Module MODULE = new FactoryModule() { - @Override - protected void configure() { - factory(EventHandlerTask.Factory.class); - } - }; - - public interface Factory { - EventHandlerTask create(Event event); - } - @VisibleForTesting public enum Result { OK, NOT_SUPPORTED, FAILURE @@ -51,26 +36,26 @@ "comment-added", true ); - private final Event event; private final Configuration config; private final GerritClient gerritClient; private final GitRepoFiles gitRepoFiles; + private final GerritChange change; private final PatchSetReviewer reviewer; private final PluginDataHandler pluginDataHandler; @Inject EventHandlerTask( Configuration config, + GerritChange change, PatchSetReviewer reviewer, GerritClient gerritClient, GitRepoFiles gitRepoFiles, - PluginDataHandler pluginDataHandler, - @Assisted Event event + PluginDataHandler pluginDataHandler ) { + this.change = change; this.reviewer = reviewer; this.gerritClient = gerritClient; this.config = config; - this.event = event; this.gitRepoFiles = gitRepoFiles; this.pluginDataHandler = pluginDataHandler; } @@ -82,7 +67,6 @@ @VisibleForTesting public Result execute() { - GerritChange change = new GerritChange(event); gerritClient.initialize(config, change); Integer gptAccountId = gerritClient.getNotNullAccountId(change, config.getGerritUserName()); ChangeSetData changeSetData = ChangeSetDataHandler.getNewInstance(config, change, gptAccountId);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java index d71d69a..b25d564 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java
@@ -1,19 +1,22 @@ package com.googlesource.gerrit.plugins.chatgpt.listener; import com.google.gerrit.extensions.config.FactoryModule; +import com.google.gerrit.server.events.Event; import com.googlesource.gerrit.plugins.chatgpt.config.Configuration; +import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange; public class GerritEventContextModule extends FactoryModule { + private final Event event; private final Configuration config; - public GerritEventContextModule(Configuration config) { + public GerritEventContextModule(Configuration config, Event event) { + this.event = event; this.config = config; } @Override protected void configure() { - install(EventHandlerTask.MODULE); - bind(Configuration.class).toInstance(config); + bind(GerritChange.class).toInstance(new GerritChange(event)); } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java index 59d96de..55140c8 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java +++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -205,10 +205,10 @@ setupCommonEventMocks((PatchSetEvent) event); // Apply common mock configurations typeSpecificSetup.accept(event); - EventHandlerTask.Factory factory = Guice.createInjector(EventHandlerTask.MODULE, new AbstractModule() { + EventHandlerTask task = Guice.createInjector(new AbstractModule() { @Override protected void configure() { - install(new GerritEventContextModule(config)); + install(new GerritEventContextModule(config, event)); bind(GerritClient.class).toInstance(gerritClient); bind(GitRepoFiles.class).toInstance(gitRepoFiles); @@ -216,8 +216,8 @@ bind(PatchSetReviewer.class).toInstance(patchSetReviewer); bind(PluginDataHandler.class).toInstance(pluginDataHandler); } - }).getInstance(EventHandlerTask.Factory.class); - return factory.create(event).execute(); + }).getInstance(EventHandlerTask.class); + return task.execute(); } protected void testRequestSent() {