diff options
| author | Patrick Barron <barronpm@gmail.com> | 2023-11-09 15:09:51 -0500 |
|---|---|---|
| committer | Patrick Barron <barronpm@gmail.com> | 2023-11-10 07:43:46 -0500 |
| commit | 1e1e1560a47439c02931e67736bcd87b606cf35c (patch) | |
| tree | 3e1899ddf433cab69a3d1f78c2dfdda4ec90a456 | |
| parent | 2b742be38e08afea1a1a417c258ac9469dd48a3b (diff) | |
Add IServerApplicationHost parameter to IPluginServiceRegistrator
3 files changed, 25 insertions, 24 deletions
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs index 20793ee39..db82a2900 100644 --- a/Emby.Server.Implementations/Plugins/PluginManager.cs +++ b/Emby.Server.Implementations/Plugins/PluginManager.cs @@ -12,10 +12,11 @@ using System.Threading.Tasks; using Emby.Server.Implementations.Library; using Jellyfin.Extensions.Json; using Jellyfin.Extensions.Json.Converters; -using MediaBrowser.Common; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; +using MediaBrowser.Controller; +using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.IO; using MediaBrowser.Model.Plugins; @@ -37,7 +38,7 @@ namespace Emby.Server.Implementations.Plugins private readonly List<AssemblyLoadContext> _assemblyLoadContexts; private readonly JsonSerializerOptions _jsonOptions; private readonly ILogger<PluginManager> _logger; - private readonly IApplicationHost _appHost; + private readonly IServerApplicationHost _appHost; private readonly ServerConfiguration _config; private readonly List<LocalPlugin> _plugins; private readonly Version _minimumVersion; @@ -48,13 +49,13 @@ namespace Emby.Server.Implementations.Plugins /// Initializes a new instance of the <see cref="PluginManager"/> class. /// </summary> /// <param name="logger">The <see cref="ILogger{PluginManager}"/>.</param> - /// <param name="appHost">The <see cref="IApplicationHost"/>.</param> + /// <param name="appHost">The <see cref="IServerApplicationHost"/>.</param> /// <param name="config">The <see cref="ServerConfiguration"/>.</param> /// <param name="pluginsPath">The plugin path.</param> /// <param name="appVersion">The application version.</param> public PluginManager( ILogger<PluginManager> logger, - IApplicationHost appHost, + IServerApplicationHost appHost, ServerConfiguration config, string pluginsPath, Version appVersion) @@ -222,7 +223,7 @@ namespace Emby.Server.Implementations.Plugins try { var instance = (IPluginServiceRegistrator?)Activator.CreateInstance(pluginServiceRegistrator); - instance?.RegisterServices(serviceCollection); + instance?.RegisterServices(serviceCollection, _appHost); } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception ex) diff --git a/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs b/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs deleted file mode 100644 index 3afe874c5..000000000 --- a/MediaBrowser.Common/Plugins/IPluginServiceRegistrator.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace MediaBrowser.Common.Plugins -{ - using Microsoft.Extensions.DependencyInjection; - - /// <summary> - /// Defines the <see cref="IPluginServiceRegistrator" />. - /// </summary> - public interface IPluginServiceRegistrator - { - /// <summary> - /// Registers the plugin's services with the service collection. - /// </summary> - /// <remarks> - /// This interface is only used for service registration and requires a parameterless constructor. - /// </remarks> - /// <param name="serviceCollection">The service collection.</param> - void RegisterServices(IServiceCollection serviceCollection); - } -} diff --git a/MediaBrowser.Controller/Plugins/IPluginServiceRegistrator.cs b/MediaBrowser.Controller/Plugins/IPluginServiceRegistrator.cs new file mode 100644 index 000000000..8b62f3808 --- /dev/null +++ b/MediaBrowser.Controller/Plugins/IPluginServiceRegistrator.cs @@ -0,0 +1,19 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace MediaBrowser.Controller.Plugins; + +/// <summary> +/// Defines the <see cref="IPluginServiceRegistrator" />. +/// </summary> +/// <remarks> +/// This interface is only used for service registration and requires a parameterless constructor. +/// </remarks> +public interface IPluginServiceRegistrator +{ + /// <summary> + /// Registers the plugin's services with the service collection. + /// </summary> + /// <param name="serviceCollection">The service collection.</param> + /// <param name="applicationHost">The server application host.</param> + void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost); +} |
