From e9f21fb3b0f5be988897f469c408b30a9090541e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Dec 2016 23:05:11 +0300 Subject: [PATCH] Removed module lifecycle manager. --- src/Volo.Abp/Volo/Abp/AbpApplication.cs | 4 +- ...{AbpModuleFinder.cs => AbpModuleHelper.cs} | 2 +- .../ApplicationInitializationContext.cs | 5 ++- .../Abp/Modularity/IModuleLifecycleManager.cs | 9 ----- .../Volo/Abp/Modularity/IModuleManager.cs | 4 ++ .../Abp/Modularity/ModuleLifecycleManager.cs | 39 ------------------- .../Volo/Abp/Modularity/ModuleLoader.cs | 4 +- .../Volo/Abp/Modularity/ModuleManager.cs | 29 +++++++++++++- .../PlugIns/PlugInSourceExtensions.cs | 2 +- 9 files changed, 41 insertions(+), 57 deletions(-) rename src/Volo.Abp/Volo/Abp/Modularity/{AbpModuleFinder.cs => AbpModuleHelper.cs} (97%) delete mode 100644 src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs delete mode 100644 src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs diff --git a/src/Volo.Abp/Volo/Abp/AbpApplication.cs b/src/Volo.Abp/Volo/Abp/AbpApplication.cs index 5eca86466a..9a22ebe5a4 100644 --- a/src/Volo.Abp/Volo/Abp/AbpApplication.cs +++ b/src/Volo.Abp/Volo/Abp/AbpApplication.cs @@ -65,7 +65,7 @@ namespace Volo.Abp Check.NotNull(serviceProvider, nameof(serviceProvider)); ServiceProvider = serviceProvider; - ServiceProvider.GetRequiredService().InitializeModules(); + ServiceProvider.GetRequiredService().InitializeModules(); } private AbpModuleDescriptor[] LoadModules(IServiceCollection services, AbpApplicationCreationOptions options) @@ -81,7 +81,7 @@ namespace Volo.Abp public void Shutdown() { - ServiceProvider.GetRequiredService().ShutdownModules(); + ServiceProvider.GetRequiredService().ShutdownModules(); } } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/AbpModuleFinder.cs b/src/Volo.Abp/Volo/Abp/Modularity/AbpModuleHelper.cs similarity index 97% rename from src/Volo.Abp/Volo/Abp/Modularity/AbpModuleFinder.cs rename to src/Volo.Abp/Volo/Abp/Modularity/AbpModuleHelper.cs index 1a159995f8..5bac844ada 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/AbpModuleFinder.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/AbpModuleHelper.cs @@ -6,7 +6,7 @@ using Volo.ExtensionMethods.Collections.Generic; namespace Volo.Abp.Modularity { - public static class AbpModuleFinder + internal static class AbpModuleHelper { public static List FindAllModuleTypes(Type startupModuleType) { diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ApplicationInitializationContext.cs b/src/Volo.Abp/Volo/Abp/Modularity/ApplicationInitializationContext.cs index 6ddf6bd59a..0ceed2191a 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/ApplicationInitializationContext.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/ApplicationInitializationContext.cs @@ -1,4 +1,5 @@ using System; +using JetBrains.Annotations; namespace Volo.Abp.Modularity { @@ -6,8 +7,10 @@ namespace Volo.Abp.Modularity { public IServiceProvider ServiceProvider { get; set; } - public ApplicationInitializationContext(IServiceProvider serviceProvider) + public ApplicationInitializationContext([NotNull] IServiceProvider serviceProvider) { + Check.NotNull(serviceProvider, nameof(serviceProvider)); + ServiceProvider = serviceProvider; } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs deleted file mode 100644 index 2ddd471664..0000000000 --- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Volo.Abp.Modularity -{ - public interface IModuleLifecycleManager - { - void InitializeModules(); - - void ShutdownModules(); - } -} \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs index 418b9bec40..b1de3ac201 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs @@ -5,5 +5,9 @@ namespace Volo.Abp.Modularity public interface IModuleManager { IReadOnlyList Modules { get; } + + void InitializeModules(); + + void ShutdownModules(); } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs deleted file mode 100644 index 21dd5f1682..0000000000 --- a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections.Generic; -using Volo.DependencyInjection; - -namespace Volo.Abp.Modularity -{ - public class ModuleLifecycleManager : IModuleLifecycleManager, ISingletonDependency - { - private readonly IModuleManager _moduleManager; - private readonly IEnumerable _contributers; - - public ModuleLifecycleManager(IModuleManager moduleManager, IEnumerable contributers) - { - _moduleManager = moduleManager; - _contributers = contributers; - } - - public void InitializeModules() - { - foreach (var contributer in _contributers) - { - foreach (var module in _moduleManager.Modules) - { - contributer.Initialize(module.Instance); - } - } - } - - public void ShutdownModules() - { - foreach (var contributer in _contributers) - { - foreach (var module in _moduleManager.Modules) - { - contributer.Shutdown(module.Instance); - } - } - } - } -} \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs index 6435328586..9893482bf4 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.Modularity protected virtual void FillModules(List modules, IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources) { //All modules starting from the startup module - var moduleTypes = AbpModuleFinder.FindAllModuleTypes(startupModuleType); + var moduleTypes = AbpModuleHelper.FindAllModuleTypes(startupModuleType); //Add plugin modules foreach (var moduleType in plugInSources.GetAllModules()) @@ -76,7 +76,7 @@ namespace Volo.Abp.Modularity protected virtual void SetModuleDependencies(List modules, AbpModuleDescriptor module) { - foreach (var dependedModuleType in AbpModuleFinder.FindDependedModuleTypes(module.Type)) + foreach (var dependedModuleType in AbpModuleHelper.FindDependedModuleTypes(module.Type)) { var dependedModule = modules.FirstOrDefault(m => m.Type == dependedModuleType); if (dependedModule == null) diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs index ae8ec1c0ce..18405efa26 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs @@ -10,11 +10,36 @@ namespace Volo.Abp.Modularity public IReadOnlyList Modules => _modules.ToImmutableList(); private readonly List _modules; + private readonly IEnumerable _lifecycleContributers; - public ModuleManager(AbpApplication application) + public ModuleManager( + AbpApplication application, + IEnumerable lifecycleContributers) { + _lifecycleContributers = lifecycleContributers; _modules = application.Modules.ToList(); } - + + public void InitializeModules() + { + foreach (var contributer in _lifecycleContributers) + { + foreach (var module in Modules) + { + contributer.Initialize(module.Instance); + } + } + } + + public void ShutdownModules() + { + foreach (var contributer in _lifecycleContributers) + { + foreach (var module in Modules) + { + contributer.Shutdown(module.Instance); + } + } + } } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs index d6c356eda6..7cd1556483 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.Modularity.PlugIns { return plugInSource .GetModules() - .SelectMany(AbpModuleFinder.FindAllModuleTypes) + .SelectMany(AbpModuleHelper.FindAllModuleTypes) .Distinct() .ToList(); }