Browse Source

Merge pull request #470 from colinin/fix-pre-configure

fix: IServiceCollection.ExecutePreConfiguredActions extension should be in the service before starting
pull/474/head
yx lin 4 years ago
committed by GitHub
parent
commit
7e5dc667e1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN/Abp/EventBus/CAP/AbpCAPEventBusModule.cs
  2. 8
      aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Dashboard/LINGYUN/Abp/Hangfire/Dashboard/AbpHangfireDashboardModule.cs
  3. 21
      aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationInitializeService.cs
  4. 6
      aspnet-core/modules/common/LINGYUN.Abp.Notifications.Sms/LINGYUN/Abp/Notifications/Sms/AbpNotificationsSmsModule.cs
  5. 7
      aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationModule.cs
  6. 3
      aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md
  7. 8
      aspnet-core/modules/wechat/LINGYUN.Abp.Notifications.WeChat.MiniProgram/LINGYUN/Abp/Notifications/WeChat/MiniProgram/AbpNotificationsWeChatMiniProgramModule.cs
  8. 3
      aspnet-core/modules/workflow/LINGYUN.Abp.WorkflowCore/LINGYUN/Abp/WorkflowCore/AbpWorkflowCoreModule.cs
  9. 3
      aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs
  10. 1
      build/modules.dependencies.json

8
aspnet-core/modules/common/LINGYUN.Abp.EventBus.CAP/LINGYUN/Abp/EventBus/CAP/AbpCAPEventBusModule.cs

@ -1,4 +1,5 @@
using Microsoft.Extensions.Configuration; using DotNetCore.CAP;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
@ -23,13 +24,16 @@ namespace LINGYUN.Abp.EventBus.CAP
context.Services.AddTransient<IFailedThresholdCallbackNotifier, FailedThresholdCallbackNotifier>(); context.Services.AddTransient<IFailedThresholdCallbackNotifier, FailedThresholdCallbackNotifier>();
var preActions = context.Services.GetPreConfigureActions<CapOptions>();
context.Services.AddCAPEventBus(options => context.Services.AddCAPEventBus(options =>
{ {
// 取消默认的五分钟高频清理 // 取消默认的五分钟高频清理
// options.CollectorCleaningInterval = 360_0000; // options.CollectorCleaningInterval = 360_0000;
configuration.GetSection("CAP:EventBus").Bind(options); configuration.GetSection("CAP:EventBus").Bind(options);
context.Services.ExecutePreConfiguredActions(options); preActions.Configure(options);
if (options.FailedThresholdCallback == null) if (options.FailedThresholdCallback == null)
{ {
options.FailedThresholdCallback = async (failed) => options.FailedThresholdCallback = async (failed) =>

8
aspnet-core/modules/common/LINGYUN.Abp.Hangfire.Dashboard/LINGYUN/Abp/Hangfire/Dashboard/AbpHangfireDashboardModule.cs

@ -1,4 +1,5 @@
using Microsoft.Extensions.DependencyInjection; using Hangfire;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization; using Volo.Abp.Authorization;
using Volo.Abp.Hangfire; using Volo.Abp.Hangfire;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
@ -12,10 +13,13 @@ namespace LINGYUN.Abp.Hangfire.Dashboard
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var preActions = context.Services.GetPreConfigureActions<DashboardOptions>();
context.Services.AddTransient(serviceProvider => context.Services.AddTransient(serviceProvider =>
{ {
var options = serviceProvider.GetRequiredService<AbpHangfireDashboardOptionsProvider>().Get(); var options = serviceProvider.GetRequiredService<AbpHangfireDashboardOptionsProvider>().Get();
return context.Services.ExecutePreConfiguredActions(options); preActions.Configure(options);
return options;
}); });
} }
} }

21
aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationInitializeService.cs

@ -1,5 +1,6 @@
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Localization; using Volo.Abp.Localization;
@ -24,20 +25,24 @@ namespace LINGYUN.Abp.Localization.Dynamic
protected override async Task ExecuteAsync(CancellationToken stoppingToken) protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{ {
foreach (var resource in LocalizationOptions.Resources) try
{ {
foreach (var contributor in resource.Value.Contributors) foreach (var resource in LocalizationOptions.Resources)
{ {
if (contributor.GetType().IsAssignableFrom(typeof(DynamicLocalizationResourceContributor))) foreach (var contributor in resource.Value.Contributors)
{ {
var resourceLocalizationDic = await Store if (contributor.GetType().IsAssignableFrom(typeof(DynamicLocalizationResourceContributor)))
.GetLocalizationDictionaryAsync( {
resource.Value.ResourceName, var resourceLocalizationDic = await Store
stoppingToken); .GetLocalizationDictionaryAsync(
DynamicOptions.AddOrUpdate(resource.Value.ResourceName, resourceLocalizationDic); resource.Value.ResourceName,
stoppingToken);
DynamicOptions.AddOrUpdate(resource.Value.ResourceName, resourceLocalizationDic);
}
} }
} }
} }
catch (OperationCanceledException) { } // 忽略此异常
} }
} }
} }

6
aspnet-core/modules/common/LINGYUN.Abp.Notifications.Sms/LINGYUN/Abp/Notifications/Sms/AbpNotificationsSmsModule.cs

@ -11,16 +11,18 @@ namespace LINGYUN.Abp.Notifications.Sms
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var preSmsActions = context.Services.GetPreConfigureActions<AbpNotificationsSmsOptions>();
Configure<AbpNotificationsSmsOptions>(options => Configure<AbpNotificationsSmsOptions>(options =>
{ {
context.Services.ExecutePreConfiguredActions(options); preSmsActions.Configure(options);
}); });
Configure<AbpNotificationOptions>(options => Configure<AbpNotificationOptions>(options =>
{ {
options.PublishProviders.Add<SmsNotificationPublishProvider>(); options.PublishProviders.Add<SmsNotificationPublishProvider>();
var smsOptions = context.Services.ExecutePreConfiguredActions<AbpNotificationsSmsOptions>(); var smsOptions = preSmsActions.Configure();
options.NotificationDataMappings options.NotificationDataMappings
.MappingDefault( .MappingDefault(
SmsNotificationPublishProvider.ProviderName, SmsNotificationPublishProvider.ProviderName,

7
aspnet-core/modules/common/LINGYUN.Abp.Notifications/LINGYUN/Abp/Notifications/AbpNotificationModule.cs

@ -49,7 +49,7 @@ namespace LINGYUN.Abp.Notifications
} }
} }
private static void AutoAddDefinitionProviders(IServiceCollection services) private void AutoAddDefinitionProviders(IServiceCollection services)
{ {
var definitionProviders = new List<Type>(); var definitionProviders = new List<Type>();
@ -61,9 +61,10 @@ namespace LINGYUN.Abp.Notifications
} }
}); });
services.Configure<AbpNotificationOptions>(options => var preActions = services.GetPreConfigureActions<AbpNotificationOptions>();
Configure<AbpNotificationOptions>(options =>
{ {
services.ExecutePreConfiguredActions(options); preActions.Configure(options);
options.DefinitionProviders.AddIfNotContains(definitionProviders); options.DefinitionProviders.AddIfNotContains(definitionProviders);
}); });
} }

3
aspnet-core/modules/oss-management/LINGYUN.Abp.BlobStoring.OssManagement/README.md

@ -41,9 +41,10 @@ public class YouProjectModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
var preActions = context.Services.GetPreConfigureActions<AbpBlobStoringOptions>();
Configure<AbpBlobStoringOptions>(options => Configure<AbpBlobStoringOptions>(options =>
{ {
services.ExecutePreConfiguredActions(options); preActions.Configure(options);
// YouContainer use oss management // YouContainer use oss management
options.Containers.Configure<YouContainer>((containerConfiguration) => options.Containers.Configure<YouContainer>((containerConfiguration) =>
{ {

8
aspnet-core/modules/wechat/LINGYUN.Abp.Notifications.WeChat.MiniProgram/LINGYUN/Abp/Notifications/WeChat/MiniProgram/AbpNotificationsWeChatMiniProgramModule.cs

@ -10,17 +10,19 @@ namespace LINGYUN.Abp.Notifications.WeChat.MiniProgram
public class AbpNotificationsWeChatMiniProgramModule : AbpModule public class AbpNotificationsWeChatMiniProgramModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var preActions = context.Services.GetPreConfigureActions<AbpNotificationsWeChatMiniProgramOptions>();
Configure<AbpNotificationsWeChatMiniProgramOptions>(options => Configure<AbpNotificationsWeChatMiniProgramOptions>(options =>
{ {
context.Services.ExecutePreConfiguredActions(options); preActions.Configure(options);
}); });
Configure<AbpNotificationOptions>(options => Configure<AbpNotificationOptions>(options =>
{ {
options.PublishProviders.Add<WeChatMiniProgramNotificationPublishProvider>(); options.PublishProviders.Add<WeChatMiniProgramNotificationPublishProvider>();
var wechatOptions = context.Services.ExecutePreConfiguredActions<AbpNotificationsWeChatMiniProgramOptions>(); var wechatOptions = preActions.Configure();
options.NotificationDataMappings options.NotificationDataMappings
.MappingDefault(WeChatMiniProgramNotificationPublishProvider.ProviderName, .MappingDefault(WeChatMiniProgramNotificationPublishProvider.ProviderName,
data => NotificationData.ToStandardData(wechatOptions.DefaultMsgPrefix, data)); data => NotificationData.ToStandardData(wechatOptions.DefaultMsgPrefix, data));

3
aspnet-core/modules/workflow/LINGYUN.Abp.WorkflowCore/LINGYUN/Abp/WorkflowCore/AbpWorkflowCoreModule.cs

@ -36,9 +36,10 @@ namespace LINGYUN.Abp.WorkflowCore
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var preActions = context.Services.GetPreConfigureActions<WorkflowOptions>();
context.Services.AddWorkflow(options => context.Services.AddWorkflow(options =>
{ {
context.Services.ExecutePreConfiguredActions(options); preActions.Configure(options);
}); });
context.Services.AddWorkflowDSL(); context.Services.AddWorkflowDSL();

3
aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs

@ -44,9 +44,10 @@ public partial class WorkflowManagementHttpApiHostModule
private void ConfigureBlobStoring(IServiceCollection services, IConfiguration configuration) private void ConfigureBlobStoring(IServiceCollection services, IConfiguration configuration)
{ {
var preActions = services.GetPreConfigureActions<AbpBlobStoringOptions>();
Configure<AbpBlobStoringOptions>(options => Configure<AbpBlobStoringOptions>(options =>
{ {
services.ExecutePreConfiguredActions(options); preActions.Configure(options);
options.Containers.Configure<WorkflowContainer>((containerConfiguration) => options.Containers.Configure<WorkflowContainer>((containerConfiguration) =>
{ {
containerConfiguration.UseOssManagement(config => containerConfiguration.UseOssManagement(config =>

1
build/modules.dependencies.json

@ -58,6 +58,7 @@
"LINGYUN.Abp.Features.LimitValidation.Redis.dll", "LINGYUN.Abp.Features.LimitValidation.Redis.dll",
"LINGYUN.Abp.WorkflowManagement.Application.Contracts.dll", "LINGYUN.Abp.WorkflowManagement.Application.Contracts.dll",
"LINGYUN.Abp.WorkflowManagement.Domain.Shared.dll", "LINGYUN.Abp.WorkflowManagement.Domain.Shared.dll",
"LINGYUN.Abp.BackgroundTasks.Abstractions.dll",
"LINGYUN.Abp.TaskManagement.Application.Contracts.dll", "LINGYUN.Abp.TaskManagement.Application.Contracts.dll",
"LINGYUN.Abp.TaskManagement.Domain.Shared.dll" "LINGYUN.Abp.TaskManagement.Domain.Shared.dll"
] ]

Loading…
Cancel
Save