in tools/code/extractor/App.cs [36:84]
private static RunApplication GetRunApplication(IServiceProvider provider)
{
var extractNamedValues = provider.GetRequiredService<ExtractNamedValues>();
var extractTags = provider.GetRequiredService<ExtractTags>();
var extractGateways = provider.GetRequiredService<ExtractGateways>();
var extractVersionSets = provider.GetRequiredService<ExtractVersionSets>();
var extractBackends = provider.GetRequiredService<ExtractBackends>();
var extractLoggers = provider.GetRequiredService<ExtractLoggers>();
var extractDiagnostics = provider.GetRequiredService<ExtractDiagnostics>();
var extractPolicyFragments = provider.GetRequiredService<ExtractPolicyFragments>();
var extractServicePolicies = provider.GetRequiredService<ExtractServicePolicies>();
var extractProducts = provider.GetRequiredService<ExtractProducts>();
var extractGroups = provider.GetRequiredService<ExtractGroups>();
var extractSubscriptions = provider.GetRequiredService<ExtractSubscriptions>();
var extractApis = provider.GetRequiredService<ExtractApis>();
var extractWorkspaces = provider.GetRequiredService<ExtractWorkspaces>();
var featureManager = provider.GetRequiredService<IFeatureManager>();
var activitySource = provider.GetRequiredService<ActivitySource>();
var logger = provider.GetRequiredService<ILogger>();
var releaseVersion = Assembly.GetEntryAssembly()?.GetCustomAttribute<AssemblyFileVersionAttribute>()?.Version ?? "0.0.0";
return async cancellationToken =>
{
using var activity = activitySource.StartActivity(nameof(RunApplication));
logger.LogInformation("Running extractor {ReleaseVersion}...", releaseVersion);
await extractNamedValues(cancellationToken);
await extractTags(cancellationToken);
await extractGateways(cancellationToken);
await extractVersionSets(cancellationToken);
await extractBackends(cancellationToken);
await extractLoggers(cancellationToken);
await extractDiagnostics(cancellationToken);
await extractPolicyFragments(cancellationToken);
await extractServicePolicies(cancellationToken);
await extractProducts(cancellationToken);
await extractGroups(cancellationToken);
await extractSubscriptions(cancellationToken);
await extractApis(cancellationToken);
if (await featureManager.IsEnabledAsync("Workspaces"))
{
await extractWorkspaces(cancellationToken);
}
logger.LogInformation("Extractor completed.");
};
}