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