From fa7f3c119af7c52f52d025b829bf0d54d1ea8e06 Mon Sep 17 00:00:00 2001 From: John Niang Date: Mon, 27 Mar 2023 12:22:10 +0800 Subject: [PATCH] Change type of SettingFetcher from interface into abstract class (#3593) #### What type of PR is this? /kind bug /area core #### What this PR does / why we need it: Change type of SettingFetcher from interface into abstract class for backward compatibility. See https://github.com/halo-dev/halo/issues/3592 for more. #### Which issue(s) this PR fixes: Fixes https://github.com/halo-dev/halo/issues/3592 #### Special notes for your reviewer: Please use [plugin-search-widget](https://github.com/halo-sigs/plugin-search-widget) to test. #### Does this PR introduce a user-facing change? ```release-note None ``` --- .../java/run/halo/app/plugin/SettingFetcher.java | 13 +++++++++---- .../run/halo/app/plugin/DefaultSettingFetcher.java | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/run/halo/app/plugin/SettingFetcher.java b/api/src/main/java/run/halo/app/plugin/SettingFetcher.java index 5d504477f..79374a465 100644 --- a/api/src/main/java/run/halo/app/plugin/SettingFetcher.java +++ b/api/src/main/java/run/halo/app/plugin/SettingFetcher.java @@ -4,12 +4,17 @@ import com.fasterxml.jackson.databind.JsonNode; import java.util.Map; import java.util.Optional; -public interface SettingFetcher { +/** + * SettingFetcher must be a class instead of an interface due to backward compatibility. + * + * @author johnniang + */ +public abstract class SettingFetcher { - Optional fetch(String group, Class clazz); + public abstract Optional fetch(String group, Class clazz); - JsonNode get(String group); + public abstract JsonNode get(String group); - Map getValues(); + public abstract Map getValues(); } diff --git a/application/src/main/java/run/halo/app/plugin/DefaultSettingFetcher.java b/application/src/main/java/run/halo/app/plugin/DefaultSettingFetcher.java index 633f23ff9..0437acdce 100644 --- a/application/src/main/java/run/halo/app/plugin/DefaultSettingFetcher.java +++ b/application/src/main/java/run/halo/app/plugin/DefaultSettingFetcher.java @@ -21,7 +21,7 @@ import run.halo.app.infra.utils.JsonUtils; * @author guqing * @since 2.0.0 */ -public class DefaultSettingFetcher implements SettingFetcher { +public class DefaultSettingFetcher extends SettingFetcher { private final ExtensionClient extensionClient;