Refactor access to dynamic configuration
Direct access to dynamic configuration through the plugin data handler
has been replaced with access via DynamicConfiguration to enhance
responsibility segregation.
Change-Id: I2776b9e762e434fadfaa0f5eb1423717d5eae02d
Signed-off-by: Patrizio <patrizio.gelosi@amarulasolutions.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/DynamicConfiguration.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/DynamicConfiguration.java
index 7e8dee9..6062c90 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/DynamicConfiguration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/config/DynamicConfiguration.java
@@ -2,6 +2,7 @@
import com.googlesource.gerrit.plugins.chatgpt.data.PluginDataHandler;
import com.googlesource.gerrit.plugins.chatgpt.data.PluginDataHandlerProvider;
+import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
@@ -13,6 +14,7 @@
public static final String KEY_DYNAMIC_CONFIG = "dynamicConfig";
private final PluginDataHandler pluginDataHandler;
+ @Getter
private final Map<String, String> dynamicConfig;
public DynamicConfiguration(PluginDataHandlerProvider pluginDataHandlerProvider) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
index 5e707dc..46af398 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/api/gerrit/GerritClientReview.java
@@ -11,7 +11,7 @@
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.inject.Inject;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
-import com.googlesource.gerrit.plugins.chatgpt.data.PluginDataHandler;
+import com.googlesource.gerrit.plugins.chatgpt.config.DynamicConfiguration;
import com.googlesource.gerrit.plugins.chatgpt.data.PluginDataHandlerProvider;
import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages.DebugCodeBlocksDynamicSettings;
@@ -25,13 +25,12 @@
import java.util.Map;
import java.util.Optional;
-import static com.googlesource.gerrit.plugins.chatgpt.config.DynamicConfiguration.KEY_DYNAMIC_CONFIG;
import static com.googlesource.gerrit.plugins.chatgpt.mode.common.client.prompt.MessageSanitizer.sanitizeChatGptMessage;
import static com.googlesource.gerrit.plugins.chatgpt.utils.TextUtils.joinWithDoubleNewLine;
@Slf4j
public class GerritClientReview extends GerritClientAccount {
- private final PluginDataHandler pluginDataHandler;
+ private final PluginDataHandlerProvider pluginDataHandlerProvider;
private final Localizer localizer;
private final DebugCodeBlocksDynamicSettings debugCodeBlocksDynamicSettings;
@@ -44,7 +43,7 @@
Localizer localizer
) {
super(config, accountCache);
- this.pluginDataHandler = pluginDataHandlerProvider.getChangeScope();
+ this.pluginDataHandlerProvider = pluginDataHandlerProvider;
this.localizer = localizer;
debugCodeBlocksDynamicSettings = new DebugCodeBlocksDynamicSettings(localizer);
}
@@ -106,7 +105,7 @@
private void updateSystemMessage(ReviewInput reviewInput, boolean emptyComments, String systemMessage) {
List<String> messages = new ArrayList<>();
- Map<String, String> dynamicConfig = pluginDataHandler.getJsonValue(KEY_DYNAMIC_CONFIG, String.class);
+ Map<String, String> dynamicConfig = new DynamicConfiguration(pluginDataHandlerProvider).getDynamicConfig();
if (dynamicConfig != null && !dynamicConfig.isEmpty()) {
messages.add(debugCodeBlocksDynamicSettings.getDebugCodeBlock(dynamicConfig));
}