From 716a2a2c2b15d859657ff22ec13471f2f3913f18 Mon Sep 17 00:00:00 2001
From: guqing
Date: Thu, 17 Nov 2022 16:25:43 +0800
Subject: [PATCH 1/2] feat: support obtaining the configuration of
halo.external-url for themes and plugins
---
.../app/plugin/SharedApplicationContextHolder.java | 3 +++
.../halo/app/theme/SiteSettingVariablesAcquirer.java | 11 ++++++-----
.../run/halo/app/theme/finders/vo/SiteSettingVo.java | 5 +++++
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java b/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
index 4e98468e20..4f6c9cb368 100644
--- a/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
+++ b/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
@@ -6,6 +6,7 @@
import run.halo.app.extension.DefaultSchemeManager;
import run.halo.app.extension.ExtensionClient;
import run.halo.app.extension.ReactiveExtensionClient;
+import run.halo.app.infra.ExternalUrlSupplier;
/**
*
This {@link SharedApplicationContextHolder} class is used to hold a singleton instance of
@@ -61,6 +62,8 @@ SharedApplicationContext createSharedApplicationContext() {
DefaultSchemeManager defaultSchemeManager =
rootApplicationContext.getBean(DefaultSchemeManager.class);
beanFactory.registerSingleton("schemeManager", defaultSchemeManager);
+ beanFactory.registerSingleton("externalUrlSupplier",
+ rootApplicationContext.getBean(ExternalUrlSupplier.class));
// TODO add more shared instance here
return sharedApplicationContext;
diff --git a/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java b/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
index 413a57cfa1..4713fa7a9d 100644
--- a/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
+++ b/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
@@ -1,9 +1,11 @@
package run.halo.app.theme;
import java.util.Map;
+import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
+import run.halo.app.infra.ExternalUrlSupplier;
import run.halo.app.infra.SystemConfigurableEnvironmentFetcher;
import run.halo.app.theme.finders.vo.SiteSettingVo;
@@ -14,20 +16,19 @@
* @since 2.0.0
*/
@Component
+@AllArgsConstructor
public class SiteSettingVariablesAcquirer implements ViewContextBasedVariablesAcquirer {
private final SystemConfigurableEnvironmentFetcher environmentFetcher;
-
- public SiteSettingVariablesAcquirer(SystemConfigurableEnvironmentFetcher environmentFetcher) {
- this.environmentFetcher = environmentFetcher;
- }
+ private final ExternalUrlSupplier externalUrlSupplier;
@Override
public Mono