Browse Source

Revise app initialize and shotdown components.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
7658c75319
  1. 4
      src/Volo.Abp/Volo/Abp/AbpApplication.cs
  2. 3
      src/Volo.Abp/Volo/Abp/IOnApplicationInitialization.cs
  3. 3
      src/Volo.Abp/Volo/Abp/IOnApplicationShutdown.cs
  4. 21
      src/Volo.Abp/Volo/Abp/Modularity/DefaultModuleLifecycleContributer.cs
  5. 4
      src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs
  6. 4
      src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs
  7. 4
      src/Volo.Abp/Volo/Abp/Modularity/ModuleLifecycleContributerBase.cs
  8. 8
      src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs

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

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

3
src/Volo.Abp/Volo/Abp/Modularity/IOnApplicationInitialization.cs → src/Volo.Abp/Volo/Abp/IOnApplicationInitialization.cs

@ -1,6 +1,7 @@
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Modularity;
namespace Volo.Abp.Modularity namespace Volo.Abp
{ {
public interface IOnApplicationInitialization public interface IOnApplicationInitialization
{ {

3
src/Volo.Abp/Volo/Abp/Modularity/IOnApplicationShutdown.cs → src/Volo.Abp/Volo/Abp/IOnApplicationShutdown.cs

@ -1,6 +1,7 @@
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Modularity;
namespace Volo.Abp.Modularity namespace Volo.Abp
{ {
public interface IOnApplicationShutdown public interface IOnApplicationShutdown
{ {

21
src/Volo.Abp/Volo/Abp/Modularity/DefaultModuleLifecycleContributer.cs

@ -1,29 +1,14 @@
using System; namespace Volo.Abp.Modularity
namespace Volo.Abp.Modularity
{ {
public class DefaultModuleLifecycleContributer : ModuleLifecycleContributerBase public class DefaultModuleLifecycleContributer : ModuleLifecycleContributerBase
{ {
private readonly IServiceProvider _serviceProvider; public override void Initialize(ApplicationInitializationContext context, IAbpModule module)
public DefaultModuleLifecycleContributer(IServiceProvider serviceProvider)
{ {
_serviceProvider = serviceProvider;
}
public override void Initialize(IAbpModule module)
{
var context = new ApplicationInitializationContext(
_serviceProvider
);
(module as IOnApplicationInitialization)?.OnApplicationInitialization(context); (module as IOnApplicationInitialization)?.OnApplicationInitialization(context);
} }
public override void Shutdown(IAbpModule module) public override void Shutdown(ApplicationShutdownContext context, IAbpModule module)
{ {
var context = new ApplicationShutdownContext();
(module as IOnApplicationShutdown)?.OnApplicationShutdown(context); (module as IOnApplicationShutdown)?.OnApplicationShutdown(context);
} }
} }

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

@ -5,8 +5,8 @@ namespace Volo.Abp.Modularity
{ {
public interface IModuleLifecycleContributer : ISingletonDependency public interface IModuleLifecycleContributer : ISingletonDependency
{ {
void Initialize([NotNull] IAbpModule module); void Initialize([NotNull] ApplicationInitializationContext context, [NotNull] IAbpModule module);
void Shutdown([NotNull] IAbpModule module); void Shutdown([NotNull] ApplicationShutdownContext context, [NotNull] IAbpModule module);
} }
} }

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

@ -8,8 +8,8 @@ namespace Volo.Abp.Modularity
[NotNull] [NotNull]
IReadOnlyList<AbpModuleDescriptor> Modules { get; } IReadOnlyList<AbpModuleDescriptor> Modules { get; }
void InitializeModules(); void InitializeModules([NotNull] ApplicationInitializationContext context);
void ShutdownModules(); void ShutdownModules([NotNull] ApplicationShutdownContext context);
} }
} }

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

@ -2,11 +2,11 @@
{ {
public abstract class ModuleLifecycleContributerBase : IModuleLifecycleContributer public abstract class ModuleLifecycleContributerBase : IModuleLifecycleContributer
{ {
public virtual void Initialize(IAbpModule module) public virtual void Initialize(ApplicationInitializationContext context, IAbpModule module)
{ {
} }
public virtual void Shutdown(IAbpModule module) public virtual void Shutdown(ApplicationShutdownContext context, IAbpModule module)
{ {
} }
} }

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

@ -20,24 +20,24 @@ namespace Volo.Abp.Modularity
_modules = application.Modules.ToList(); _modules = application.Modules.ToList();
} }
public void InitializeModules() public void InitializeModules(ApplicationInitializationContext context)
{ {
foreach (var contributer in _lifecycleContributers) foreach (var contributer in _lifecycleContributers)
{ {
foreach (var module in Modules) foreach (var module in Modules)
{ {
contributer.Initialize(module.Instance); contributer.Initialize(context, module.Instance);
} }
} }
} }
public void ShutdownModules() public void ShutdownModules(ApplicationShutdownContext context)
{ {
foreach (var contributer in _lifecycleContributers) foreach (var contributer in _lifecycleContributers)
{ {
foreach (var module in Modules) foreach (var module in Modules)
{ {
contributer.Shutdown(module.Instance); contributer.Shutdown(context, module.Instance);
} }
} }
} }

Loading…
Cancel
Save