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);
};
}