From 23fc1fbf4ccd75a6ab1f8f0a9fe6343580a7a6fe Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 9 Jun 2022 12:24:17 +0800 Subject: [PATCH 1/2] Revert "Merge pull request #12946 from abpframework/revert-12932-IAsyncInitialize" This reverts commit a43ed0c8885c12bef7e096b32536f4cd75a2c814, reversing changes made to 883ab744886ede06077e2000fc8ae753c2042892. --- .../Web/AbpAspNetCoreComponentsWebModule.cs | 15 +++++++- .../Web/Security/AbpComponentsClaimsCache.cs | 6 +--- .../AbpWebAssemblyHostBuilderExtensions.cs | 32 ----------------- ...bpAspNetCoreComponentsWebAssemblyModule.cs | 36 ++++++++++++++++++- ...blyCachedApplicationConfigurationClient.cs | 5 --- .../ICachedApplicationConfigurationClient.cs | 2 +- .../Client/AbpAspNetCoreMvcClientModule.cs | 14 +++++++- ...MvcCachedApplicationConfigurationClient.cs | 5 --- .../Volo/Abp/IAsyncInitialize.cs | 12 ------- 9 files changed, 64 insertions(+), 63 deletions(-) delete mode 100644 framework/src/Volo.Abp.Core/Volo/Abp/IAsyncInitialize.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs index 28984ce5d0..50248d42ab 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs @@ -1,8 +1,11 @@ -using Microsoft.AspNetCore.Components; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.AspNetCore.Components.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.Modularity; +using Volo.Abp.Threading; using Volo.Abp.UI; namespace Volo.Abp.AspNetCore.Components.Web; @@ -22,4 +25,14 @@ public class AbpAspNetCoreComponentsWebModule : AbpModule { context.Services.Replace(ServiceDescriptor.Transient()); } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context)); + } + + public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) + { + await context.ServiceProvider.GetRequiredService().InitializeAsync(); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs index bb053eac21..7473387f83 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Security/AbpComponentsClaimsCache.cs @@ -7,11 +7,7 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.Web.Security; -[ExposeServices( - typeof(AbpComponentsClaimsCache), - typeof(IAsyncInitialize) -)] -public class AbpComponentsClaimsCache : IScopedDependency, IAsyncInitialize +public class AbpComponentsClaimsCache : IScopedDependency { public ClaimsPrincipal Principal { get; private set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs index 5c77dcff49..21f29f995c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs @@ -1,15 +1,12 @@ using System; -using System.Globalization; using System.Runtime.CompilerServices; using System.Threading.Tasks; using JetBrains.Annotations; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; -using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.AspNetCore.Components.Web.DependencyInjection; using Volo.Abp.AspNetCore.Components.WebAssembly; -using Volo.Abp.AspNetCore.Mvc.Client; using Volo.Abp.DependencyInjection; using Volo.Abp.Modularity; @@ -76,34 +73,5 @@ public static class AbpWebAssemblyHostBuilderExtensions .GetRequiredService()).ServiceProvider = serviceProvider; await application.InitializeAsync(serviceProvider); - await InitializeModulesAsync(serviceProvider); - await SetCurrentLanguageAsync(serviceProvider); - } - - private async static Task InitializeModulesAsync(IServiceProvider serviceProvider) - { - foreach (var service in serviceProvider.GetServices()) - { - await service.InitializeAsync(); - } - } - - private async static Task SetCurrentLanguageAsync(IServiceProvider serviceProvider) - { - var configurationClient = serviceProvider.GetRequiredService(); - var utilsService = serviceProvider.GetRequiredService(); - var configuration = await configurationClient.GetAsync(); - var cultureName = configuration.Localization?.CurrentCulture?.CultureName; - if (!cultureName.IsNullOrEmpty()) - { - var culture = new CultureInfo(cultureName); - CultureInfo.DefaultThreadCurrentCulture = culture; - CultureInfo.DefaultThreadCurrentUICulture = culture; - } - - if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) - { - await utilsService.AddClassToTagAsync("body", "rtl"); - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs index 56dd8106a3..5473213bee 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs @@ -1,10 +1,14 @@ -using Microsoft.Extensions.DependencyInjection; +using System; +using System.Globalization; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.AspNetCore.Components.Web.ExceptionHandling; using Volo.Abp.AspNetCore.Mvc.Client; using Volo.Abp.Http.Client; using Volo.Abp.Modularity; +using Volo.Abp.Threading; using Volo.Abp.UI; namespace Volo.Abp.AspNetCore.Components.WebAssembly; @@ -33,4 +37,34 @@ public class AbpAspNetCoreComponentsWebAssemblyModule : AbpModule .GetHostBuilder().Logging .AddProvider(new AbpExceptionHandlingLoggerProvider(context.Services)); } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context)); + } + + public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) + { + await context.ServiceProvider.GetRequiredService().InitializeAsync(); + await SetCurrentLanguageAsync(context.ServiceProvider); + } + + private async static Task SetCurrentLanguageAsync(IServiceProvider serviceProvider) + { + var configurationClient = serviceProvider.GetRequiredService(); + var utilsService = serviceProvider.GetRequiredService(); + var configuration = await configurationClient.GetAsync(); + var cultureName = configuration.Localization?.CurrentCulture?.CultureName; + if (!cultureName.IsNullOrEmpty()) + { + var culture = new CultureInfo(cultureName); + CultureInfo.DefaultThreadCurrentCulture = culture; + CultureInfo.DefaultThreadCurrentUICulture = culture; + } + + if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) + { + await utilsService.AddClassToTagAsync("body", "rtl"); + } + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs index 4dbd188a47..523a770a17 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs @@ -7,11 +7,6 @@ using Volo.Abp.MultiTenancy; namespace Volo.Abp.AspNetCore.Components.WebAssembly; -[ExposeServices( - typeof(WebAssemblyCachedApplicationConfigurationClient), - typeof(ICachedApplicationConfigurationClient), - typeof(IAsyncInitialize) - )] public class WebAssemblyCachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ITransientDependency { protected AbpApplicationConfigurationClientProxy ApplicationConfigurationAppService { get; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/ICachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/ICachedApplicationConfigurationClient.cs index f173082fa3..84621fd8c3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/ICachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/ICachedApplicationConfigurationClient.cs @@ -3,7 +3,7 @@ using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; namespace Volo.Abp.AspNetCore.Mvc.Client; -public interface ICachedApplicationConfigurationClient : IAsyncInitialize +public interface ICachedApplicationConfigurationClient { Task GetAsync(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/AbpAspNetCoreMvcClientModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/AbpAspNetCoreMvcClientModule.cs index a7dc58f82a..7a9168eefb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/AbpAspNetCoreMvcClientModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/AbpAspNetCoreMvcClientModule.cs @@ -1,5 +1,8 @@ -using Volo.Abp.EventBus; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.EventBus; using Volo.Abp.Modularity; +using Volo.Abp.Threading; namespace Volo.Abp.AspNetCore.Mvc.Client; @@ -9,4 +12,13 @@ namespace Volo.Abp.AspNetCore.Mvc.Client; )] public class AbpAspNetCoreMvcClientModule : AbpModule { + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context)); + } + + public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) + { + await context.ServiceProvider.GetRequiredService().InitializeAsync(); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs index fba7a3fdfe..59690b2d03 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient.cs @@ -11,11 +11,6 @@ using Volo.Abp.Users; namespace Volo.Abp.AspNetCore.Mvc.Client; -[ExposeServices( - typeof(MvcCachedApplicationConfigurationClient), - typeof(ICachedApplicationConfigurationClient), - typeof(IAsyncInitialize) - )] public class MvcCachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ITransientDependency { protected IHttpContextAccessor HttpContextAccessor { get; } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/IAsyncInitialize.cs b/framework/src/Volo.Abp.Core/Volo/Abp/IAsyncInitialize.cs deleted file mode 100644 index 3f0b16f06e..0000000000 --- a/framework/src/Volo.Abp.Core/Volo/Abp/IAsyncInitialize.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Threading.Tasks; - -namespace Volo.Abp; - -/// -/// IMPORTANT: THIS IS AN INTERNAL CLASS TO BE USED BY THE ABP FRAMEWORK. -/// IT WILL BE REMOVED IN THE FUTURE VERSIONS. DON'T USE IT! -/// -public interface IAsyncInitialize //TODO: Remove once we have async module initialization -{ - Task InitializeAsync(); -} From 2458c8e45daf0335fc8e8c98ff3bc7371542c1d6 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 9 Jun 2022 12:36:49 +0800 Subject: [PATCH 2/2] Initialize the `AbpComponentsClaimsCache` on `AbpAspNetCoreComponentsWebAssemblyModule`. --- .../Web/AbpAspNetCoreComponentsWebModule.cs | 20 +------------------ ...bpAspNetCoreComponentsWebAssemblyModule.cs | 2 ++ 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs index 50248d42ab..193224ae65 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs @@ -1,11 +1,8 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.AspNetCore.Components.DependencyInjection; -using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.Modularity; -using Volo.Abp.Threading; using Volo.Abp.UI; namespace Volo.Abp.AspNetCore.Components.Web; @@ -16,23 +13,8 @@ namespace Volo.Abp.AspNetCore.Components.Web; )] public class AbpAspNetCoreComponentsWebModule : AbpModule { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - - } - public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.Replace(ServiceDescriptor.Transient()); } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context)); - } - - public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) - { - await context.ServiceProvider.GetRequiredService().InitializeAsync(); - } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs index 5473213bee..33716d8383 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/AbpAspNetCoreComponentsWebAssemblyModule.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Volo.Abp.AspNetCore.Components.Web; using Volo.Abp.AspNetCore.Components.Web.ExceptionHandling; +using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.AspNetCore.Mvc.Client; using Volo.Abp.Http.Client; using Volo.Abp.Modularity; @@ -46,6 +47,7 @@ public class AbpAspNetCoreComponentsWebAssemblyModule : AbpModule public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { await context.ServiceProvider.GetRequiredService().InitializeAsync(); + await context.ServiceProvider.GetRequiredService().InitializeAsync(); await SetCurrentLanguageAsync(context.ServiceProvider); }