Remove GitRepoFilesHandler Favor Guice injection over a static members and remove `GitRepoFilesHandler` that keept a single static instance of `GitRepoFiles` class. Change-Id: I72bc43728b27aa1757f096b55e38b79fa535724e
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 885736f..ea6b1fe 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
@@ -14,7 +14,6 @@ import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient; import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles; -import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFilesHandler; import lombok.extern.slf4j.Slf4j; import java.util.List; @@ -37,7 +36,6 @@ private final Configuration config; private final GerritClient gerritClient; - private final GitRepoFiles gitRepoFiles; private final ChangeSetData changeSetData; private final GerritChange change; private final PatchSetReviewer reviewer; @@ -50,7 +48,6 @@ GerritChange change, PatchSetReviewer reviewer, GerritClient gerritClient, - GitRepoFiles gitRepoFiles, PluginDataHandler pluginDataHandler ) { this.changeSetData = changeSetData; @@ -58,7 +55,6 @@ this.reviewer = reviewer; this.gerritClient = gerritClient; this.config = config; - this.gitRepoFiles = gitRepoFiles; this.pluginDataHandler = pluginDataHandler; } @@ -69,7 +65,6 @@ @VisibleForTesting public Result execute() { - GitRepoFilesHandler.createNewInstance(gitRepoFiles); ProjectDataHandler.createNewInstance(pluginDataHandler); if (!preProcessEvent(change, changeSetData)) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java index d8cc4de..4b4a86d 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java
@@ -8,7 +8,7 @@ import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.http.HttpClient; import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptTool; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.UriResourceLocatorStateful; -import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFilesHandler; +import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.prompt.ChatGptPromptStateful; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.model.api.chatgpt.ChatGptCreateAssistantResponse; import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.model.api.chatgpt.ChatGptFilesResponse; @@ -32,10 +32,12 @@ private final HttpClient httpClient = new HttpClient(); private final GerritChange change; + private final GitRepoFiles gitRepoFiles; - public ChatGptAssistant(Configuration config, GerritChange change) { + public ChatGptAssistant(Configuration config, GerritChange change, GitRepoFiles gitRepoFiles) { super(config); this.change = change; + this.gitRepoFiles = gitRepoFiles; } public void setupAssistant() { @@ -53,7 +55,7 @@ } private String uploadRepoFiles() { - String repoFiles = GitRepoFilesHandler.getInstance().getGitRepoFiles(change); + String repoFiles = gitRepoFiles.getGitRepoFiles(change); Path repoPath = createTempFileWithContent(change.getProjectName(), ".json", repoFiles); ChatGptFiles chatGptFiles = new ChatGptFiles(config); ChatGptFilesResponse chatGptFilesResponse = chatGptFiles.uploadFiles(repoPath);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java index 0b62eb0..22107e1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java
@@ -7,18 +7,21 @@ import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange; import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientPatchSet; import com.googlesource.gerrit.plugins.chatgpt.mode.interfaces.client.api.gerrit.IGerritClientPatchSet; +import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles; import lombok.extern.slf4j.Slf4j; @Slf4j public class GerritClientPatchSetStateful extends GerritClientPatchSet implements IGerritClientPatchSet { + private final GitRepoFiles gitRepoFiles; @Inject - public GerritClientPatchSetStateful(Configuration config) { + public GerritClientPatchSetStateful(Configuration config, GitRepoFiles gitRepoFiles) { super(config); + this.gitRepoFiles = gitRepoFiles; } public String getPatchSet(ChangeSetData changeSetData, GerritChange change) { - ChatGptAssistant chatGptAssistant = new ChatGptAssistant(config, change); + ChatGptAssistant chatGptAssistant = new ChatGptAssistant(config, change, gitRepoFiles); chatGptAssistant.setupAssistant(); return "";
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java deleted file mode 100644 index 7e734ff..0000000 --- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java +++ /dev/null
@@ -1,14 +0,0 @@ -package com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git; - -public class GitRepoFilesHandler { - private static GitRepoFiles gitRepoFiles; - - public static synchronized GitRepoFiles getInstance() { - return gitRepoFiles; - } - - public static synchronized void createNewInstance(GitRepoFiles gitRepoFiles) { - GitRepoFilesHandler.gitRepoFiles = gitRepoFiles; - } - -}
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 4966a2a..305ff60 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java +++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -315,7 +315,7 @@ private IGerritClientPatchSet getGerritClientPatchSet() { return switch (config.getGptMode()) { - case stateful -> new GerritClientPatchSetStateful(config); + case stateful -> new GerritClientPatchSetStateful(config, gitRepoFiles); case stateless -> new GerritClientPatchSetStateless(config); }; }