Skip to content

Commit

Permalink
[#264] [add] impl
Browse files Browse the repository at this point in the history
  • Loading branch information
i4004 committed May 29, 2024
1 parent 19d24c4 commit 8c82ab2
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 16 deletions.
1 change: 1 addition & 0 deletions src/SampleApps/SampleApp.Classic/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"StringTableFiles": "Titles.xml, Messages.xml",
"StaticFilesPaths": "styles, scripts, images, content, fonts, node_modules",
"ErrorPageDarkStyle": true,
"MeasurementsEnabled": true,
"ConsoleTracing": true
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using Moq;
using NUnit.Framework;
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;
using Simplify.Web.Modules.Data;
using Simplify.Web.Page.Composition.Stages;

Expand Down
12 changes: 9 additions & 3 deletions src/Simplify.Web/Bootstrapper/Setup/BaseBootstrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ protected IConfiguration Configuration
set => _configuration = value;
}

private ISimplifyWebSettings Settings { get; set; } = null!;


/// <summary>
/// Provides the `Simplify.Web` types to exclude from registrations.
/// </summary>
Expand All @@ -44,7 +47,7 @@ public void Register(IConfiguration? configuration = null, IEnumerable<Type>? ty
RegisterConfiguration(Configuration);
}

var settings = new SimplifyWebSettings(Configuration);
Settings = new SimplifyWebSettings(Configuration);

// Registering Simplify.Web types

Expand Down Expand Up @@ -80,12 +83,15 @@ public void Register(IConfiguration? configuration = null, IEnumerable<Type>? ty
RegisterRouteMatcherResolverMatchers();
RegisterSecurityChecker();
RegisterSecurityRules();
RegisterSimplifyWebSettings(settings);
RegisterSimplifyWebSettings(Settings);
RegisterStaticFile();
RegisterStaticFileProcessingContextFactory();
RegisterStaticFileRequestHandlingPipeline();
RegisterStaticFileRequestHandlingPipelineHandlers();
RegisterStopwatchProvider();

if (Settings.MeasurementsEnabled)
RegisterStopwatchProvider();

RegisterStringTable();
RegisterTemplateFactory();
RegisterViewFactory();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.Linq;
using Simplify.DI;
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;

namespace Simplify.Web.Bootstrapper.Setup;

Expand Down
15 changes: 11 additions & 4 deletions src/Simplify.Web/Bootstrapper/Setup/BaseBootstrapperPages.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using Simplify.DI;
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;
using Simplify.Web.Modules.ApplicationEnvironment;
using Simplify.Web.Modules.Context;
using Simplify.Web.Modules.Data;
Expand Down Expand Up @@ -42,13 +42,20 @@ public virtual void RegisterPageCompositionStages()
return;

BootstrapperFactory.ContainerProvider.Register<IReadOnlyList<IPageCompositionStage>>(r =>
[
{
var stages = new List<IPageCompositionStage>
{
new StringTableItemsInjectionStage(r.Resolve<IStringTable>()),
new LanguageInjectionStage(r.Resolve<ILanguageManagerProvider>()),
new EnvironmentVariablesInjectionStage(r.Resolve<IDynamicEnvironment>()),
new ContextVariablesInjectionStage(r.Resolve<IWebContextProvider>()),
new SiteTitleInjectionStage(r.Resolve<IWebContextProvider>(), r.Resolve<IStringTable>()),
new StopwatchDataInjectionStage(r.Resolve<IStopwatchProvider>())
]);
};

if (Settings.MeasurementsEnabled)
stages.Add(new StopwatchDataInjectionStage(r.Resolve<IStopwatchProvider>()));

return stages;
});
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;
using Simplify.DI;
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;

namespace Simplify.Web.Bootstrapper.SimplifyWebRegistrationsOverride;

Expand Down
1 change: 1 addition & 0 deletions src/Simplify.Web/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

- Version 2 controllers
- Built-in Json response using System.Text.Json
- Switchable measurements (StopwatchProvider), disabled by default

### Removed

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System;

namespace Simplify.Web.Diagnostics.Measurement;
namespace Simplify.Web.Diagnostics.Measurements;

/// <summary>
/// Represent a stopwatch provider.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Simplify.DI;
using Simplify.Web.Settings;

namespace Simplify.Web.Diagnostics.Measurement;
namespace Simplify.Web.Diagnostics.Measurements;

/// <summary>
/// Provides the measurement extensions.
Expand All @@ -13,6 +14,9 @@ public static class ScopeMeasurementExtensions
/// <param name="scope">The scope.</param>
public static ILifetimeScope StartMeasurements(this ILifetimeScope scope)
{
if (!scope.Resolver.Resolve<ISimplifyWebSettings>().MeasurementsEnabled)
return scope;

// Starts execution measurement
scope.Resolver.Resolve<IStopwatchProvider>().StartMeasurement();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System.Diagnostics;

namespace Simplify.Web.Diagnostics.Measurement;
namespace Simplify.Web.Diagnostics.Measurements;

/// <summary>
/// Provides the stopwatch provider.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Simplify.DI;
using Simplify.Web.Bootstrapper;
using Simplify.Web.Diagnostics;
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;
using Simplify.Web.Diagnostics.Trace;
using Simplify.Web.Modules;
using Simplify.Web.Modules.Context;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Simplify.Web.Diagnostics.Measurement;
using Simplify.Web.Diagnostics.Measurements;
using Simplify.Web.Modules.Data;

namespace Simplify.Web.Page.Composition.Stages;
Expand Down
5 changes: 5 additions & 0 deletions src/Simplify.Web/Settings/ISimplifyWebSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@ public interface ISimplifyWebSettings
/// </summary>
bool DisableFileReaderCache { get; }

/// <summary>
/// Gets the value indicating whether measurements is enabled.
/// </summary>
bool MeasurementsEnabled { get; }

/// <summary>
/// Gets the value indicating whether console tracing is enabled.
/// </summary>
Expand Down
7 changes: 6 additions & 1 deletion src/Simplify.Web/Settings/SimplifyWebSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ public SimplifyWebSettings(IConfiguration configuration)

public bool DisableFileReaderCache { get; private set; }

public bool MeasurementsEnabled { get; private set; }

public bool ConsoleTracing { get; private set; }

private void LoadLanguageManagerSettings(IConfiguration config)
Expand Down Expand Up @@ -133,6 +135,9 @@ private void LoadCacheSettings(IConfiguration config)
DisableFileReaderCache = config.GetValue<bool>(nameof(DisableFileReaderCache));
}

private void LoadDiagnosticSettings(IConfiguration config) =>
private void LoadDiagnosticSettings(IConfiguration config)
{
MeasurementsEnabled = config.GetValue<bool>(nameof(MeasurementsEnabled));
ConsoleTracing = config.GetValue<bool>(nameof(ConsoleTracing));
}
}

0 comments on commit 8c82ab2

Please sign in to comment.