Browse Source

Removed module lifecycle manager.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
e9f21fb3b0
  1. 4
      src/Volo.Abp/Volo/Abp/AbpApplication.cs
  2. 2
      src/Volo.Abp/Volo/Abp/Modularity/AbpModuleHelper.cs
  3. 5
      src/Volo.Abp/Volo/Abp/Modularity/ApplicationInitializationContext.cs
  4. 9
      src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs
  5. 4
      src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs
  6. 39
      src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs
  7. 4
      src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs
  8. 29
      src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs
  9. 2
      src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs

4
src/Volo.Abp/Volo/Abp/AbpApplication.cs

@ -65,7 +65,7 @@ namespace Volo.Abp
Check.NotNull(serviceProvider, nameof(serviceProvider));
ServiceProvider = serviceProvider;
ServiceProvider.GetRequiredService<IModuleLifecycleManager>().InitializeModules();
ServiceProvider.GetRequiredService<IModuleManager>().InitializeModules();
}
private AbpModuleDescriptor[] LoadModules(IServiceCollection services, AbpApplicationCreationOptions options)
@ -81,7 +81,7 @@ namespace Volo.Abp
public void Shutdown()
{
ServiceProvider.GetRequiredService<IModuleLifecycleManager>().ShutdownModules();
ServiceProvider.GetRequiredService<IModuleManager>().ShutdownModules();
}
}
}

2
src/Volo.Abp/Volo/Abp/Modularity/AbpModuleFinder.cs → 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<Type> FindAllModuleTypes(Type startupModuleType)
{

5
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;
}
}

9
src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleManager.cs

@ -1,9 +0,0 @@
namespace Volo.Abp.Modularity
{
public interface IModuleLifecycleManager
{
void InitializeModules();
void ShutdownModules();
}
}

4
src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs

@ -5,5 +5,9 @@ namespace Volo.Abp.Modularity
public interface IModuleManager
{
IReadOnlyList<AbpModuleDescriptor> Modules { get; }
void InitializeModules();
void ShutdownModules();
}
}

39
src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleManager.cs

@ -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<IModuleLifecycleContributer> _contributers;
public ModuleLifecycleManager(IModuleManager moduleManager, IEnumerable<IModuleLifecycleContributer> 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);
}
}
}
}
}

4
src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs

@ -24,7 +24,7 @@ namespace Volo.Abp.Modularity
protected virtual void FillModules(List<AbpModuleDescriptor> 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<AbpModuleDescriptor> 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)

29
src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs

@ -10,11 +10,36 @@ namespace Volo.Abp.Modularity
public IReadOnlyList<AbpModuleDescriptor> Modules => _modules.ToImmutableList();
private readonly List<AbpModuleDescriptor> _modules;
private readonly IEnumerable<IModuleLifecycleContributer> _lifecycleContributers;
public ModuleManager(AbpApplication application)
public ModuleManager(
AbpApplication application,
IEnumerable<IModuleLifecycleContributer> 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);
}
}
}
}
}

2
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();
}

Loading…
Cancel
Save