From 1fc33ebf03beeb22c70de9a1467fb67425917c74 Mon Sep 17 00:00:00 2001 From: ChiaraBm Date: Wed, 18 Feb 2026 13:21:15 +0100 Subject: [PATCH] Switched to SimplePlugin plugin loader --- Hosts/Moonlight.Api.Host/AppStartupLoader.cs | 10 ---------- .../Moonlight.Api.Host.csproj | 5 +++-- Hosts/Moonlight.Api.Host/Program.cs | 17 +++++++++++------ .../Moonlight.Frontend.Host/AppStartupLoader.cs | 10 ---------- .../Moonlight.Frontend.Host.csproj | 4 ++-- Hosts/Moonlight.Frontend.Host/Program.cs | 15 ++++++++++----- Moonlight.Api/Moonlight.Api.csproj | 1 + Moonlight.Api/Startup/IAppStartup.cs | 3 ++- Moonlight.Api/Startup/Startup.cs | 2 ++ Moonlight.Frontend/Moonlight.Frontend.csproj | 1 + Moonlight.Frontend/Startup/IAppStartup.cs | 3 ++- Moonlight.Frontend/Startup/Startup.cs | 2 ++ 12 files changed, 36 insertions(+), 37 deletions(-) delete mode 100644 Hosts/Moonlight.Api.Host/AppStartupLoader.cs delete mode 100644 Hosts/Moonlight.Frontend.Host/AppStartupLoader.cs diff --git a/Hosts/Moonlight.Api.Host/AppStartupLoader.cs b/Hosts/Moonlight.Api.Host/AppStartupLoader.cs deleted file mode 100644 index c1e7a9e8..00000000 --- a/Hosts/Moonlight.Api.Host/AppStartupLoader.cs +++ /dev/null @@ -1,10 +0,0 @@ -using MoonCore.PluginFramework; -using Moonlight.Api.Startup; - -namespace Moonlight.Api.Host; - -[PluginLoader] -public partial class AppStartupLoader : IAppStartup -{ - -} \ No newline at end of file diff --git a/Hosts/Moonlight.Api.Host/Moonlight.Api.Host.csproj b/Hosts/Moonlight.Api.Host/Moonlight.Api.Host.csproj index ca1ae0b3..052019ff 100644 --- a/Hosts/Moonlight.Api.Host/Moonlight.Api.Host.csproj +++ b/Hosts/Moonlight.Api.Host/Moonlight.Api.Host.csproj @@ -7,8 +7,6 @@ - - @@ -16,6 +14,9 @@ all runtime; build; native; analyzers; buildtransitive + + + diff --git a/Hosts/Moonlight.Api.Host/Program.cs b/Hosts/Moonlight.Api.Host/Program.cs index c4b7d8f9..dc76f08c 100644 --- a/Hosts/Moonlight.Api.Host/Program.cs +++ b/Hosts/Moonlight.Api.Host/Program.cs @@ -1,17 +1,22 @@ -using Moonlight.Api.Host; +using Moonlight.Api.Startup; +using SimplePlugin.Generated; -var appLoader = new AppStartupLoader(); -appLoader.Initialize(); +var modules = PluginRegistry.Modules + .OfType() + .ToArray(); var builder = WebApplication.CreateBuilder(args); -appLoader.PreBuild(builder); +foreach (var startup in modules) + startup.PreBuild(builder); var app = builder.Build(); -appLoader.PostBuild(app); +foreach (var startup in modules) + startup.PostBuild(app); -appLoader.PostMiddleware(app); +foreach (var startup in modules) + startup.PostMiddleware(app); if (app.Environment.IsDevelopment()) app.UseWebAssemblyDebugging(); diff --git a/Hosts/Moonlight.Frontend.Host/AppStartupLoader.cs b/Hosts/Moonlight.Frontend.Host/AppStartupLoader.cs deleted file mode 100644 index 6ef20cd4..00000000 --- a/Hosts/Moonlight.Frontend.Host/AppStartupLoader.cs +++ /dev/null @@ -1,10 +0,0 @@ -using MoonCore.PluginFramework; -using Moonlight.Frontend.Startup; - -namespace Moonlight.Frontend.Host; - -[PluginLoader] -public partial class AppStartupLoader : IAppStartup -{ - -} \ No newline at end of file diff --git a/Hosts/Moonlight.Frontend.Host/Moonlight.Frontend.Host.csproj b/Hosts/Moonlight.Frontend.Host/Moonlight.Frontend.Host.csproj index 6e02dc87..9f1cd1f5 100644 --- a/Hosts/Moonlight.Frontend.Host/Moonlight.Frontend.Host.csproj +++ b/Hosts/Moonlight.Frontend.Host/Moonlight.Frontend.Host.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/Hosts/Moonlight.Frontend.Host/Program.cs b/Hosts/Moonlight.Frontend.Host/Program.cs index 5b58db81..de4aecc0 100644 --- a/Hosts/Moonlight.Frontend.Host/Program.cs +++ b/Hosts/Moonlight.Frontend.Host/Program.cs @@ -1,15 +1,20 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Moonlight.Frontend.Host; +using Moonlight.Frontend.Startup; +using SimplePlugin.Generated; -var appLoader = new AppStartupLoader(); -appLoader.Initialize(); +var modules = PluginRegistry + .Modules + .OfType() + .ToArray(); var builder = WebAssemblyHostBuilder.CreateDefault(args); -appLoader.PreBuild(builder); +foreach (var startup in modules) + startup.PreBuild(builder); var app = builder.Build(); -appLoader.PostBuild(app); +foreach(var startup in modules) + startup.PostBuild(app); await app.RunAsync(); \ No newline at end of file diff --git a/Moonlight.Api/Moonlight.Api.csproj b/Moonlight.Api/Moonlight.Api.csproj index 9d1fc83a..d1125b26 100644 --- a/Moonlight.Api/Moonlight.Api.csproj +++ b/Moonlight.Api/Moonlight.Api.csproj @@ -30,6 +30,7 @@ + diff --git a/Moonlight.Api/Startup/IAppStartup.cs b/Moonlight.Api/Startup/IAppStartup.cs index 7f49b7d7..20fcaf3f 100644 --- a/Moonlight.Api/Startup/IAppStartup.cs +++ b/Moonlight.Api/Startup/IAppStartup.cs @@ -1,8 +1,9 @@ using Microsoft.AspNetCore.Builder; +using SimplePlugin.Abstractions; namespace Moonlight.Api.Startup; -public interface IAppStartup +public interface IAppStartup : IPluginModule { public void PreBuild(WebApplicationBuilder builder); public void PostBuild(WebApplication application); diff --git a/Moonlight.Api/Startup/Startup.cs b/Moonlight.Api/Startup/Startup.cs index 7aebd692..b785d7df 100644 --- a/Moonlight.Api/Startup/Startup.cs +++ b/Moonlight.Api/Startup/Startup.cs @@ -1,7 +1,9 @@ using Microsoft.AspNetCore.Builder; +using SimplePlugin.Abstractions; namespace Moonlight.Api.Startup; +[PluginModule] public partial class Startup : IAppStartup { public void PreBuild(WebApplicationBuilder builder) diff --git a/Moonlight.Frontend/Moonlight.Frontend.csproj b/Moonlight.Frontend/Moonlight.Frontend.csproj index 2cfb72cf..f5522291 100644 --- a/Moonlight.Frontend/Moonlight.Frontend.csproj +++ b/Moonlight.Frontend/Moonlight.Frontend.csproj @@ -26,6 +26,7 @@ + diff --git a/Moonlight.Frontend/Startup/IAppStartup.cs b/Moonlight.Frontend/Startup/IAppStartup.cs index 0fbe5eff..f9e821eb 100644 --- a/Moonlight.Frontend/Startup/IAppStartup.cs +++ b/Moonlight.Frontend/Startup/IAppStartup.cs @@ -1,8 +1,9 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using SimplePlugin.Abstractions; namespace Moonlight.Frontend.Startup; -public interface IAppStartup +public interface IAppStartup : IPluginModule { public void PreBuild(WebAssemblyHostBuilder builder); public void PostBuild(WebAssemblyHost application); diff --git a/Moonlight.Frontend/Startup/Startup.cs b/Moonlight.Frontend/Startup/Startup.cs index 90631038..3a03308a 100644 --- a/Moonlight.Frontend/Startup/Startup.cs +++ b/Moonlight.Frontend/Startup/Startup.cs @@ -1,7 +1,9 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using SimplePlugin.Abstractions; namespace Moonlight.Frontend.Startup; +[PluginModule] public partial class Startup : IAppStartup { public void PreBuild(WebAssemblyHostBuilder builder)