Skip to content

Commit bc183b4

Browse files
committed
Remove dependency on ICacheConfigurationSectionHandler from ConfigurationProvider.Current
1 parent 196296f commit bc183b4

File tree

5 files changed

+42
-32
lines changed

5 files changed

+42
-32
lines changed

CoreDistributedCache/NHibernate.Caches.CoreDistributedCache.Tests/CoreDistributedCacheSectionHandlerFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public void TestGetConfigFromProvidedConfiguration()
123123
Assert.That(fooRegion.Properties["expiration"], Is.EqualTo("500"));
124124
}
125125

126-
private ConfigurationProviderBase<CacheConfig, CoreDistributedCacheSectionHandler> _configurationProviderBackup;
126+
private ConfigurationProviderBase<CacheConfig> _configurationProviderBackup;
127127

128128
[SetUp]
129129
public void OnSetup()

CoreMemoryCache/NHibernate.Caches.CoreMemoryCache.Tests/CoreMemoryCacheSectionHandlerFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public void TestGetConfigFromProvidedConfiguration()
9595
Assert.That(config.Regions[0].Properties["expiration"], Is.EqualTo("500"));
9696
}
9797

98-
private ConfigurationProviderBase<CacheConfig, CoreMemoryCacheSectionHandler> _configurationProviderBackup;
98+
private ConfigurationProviderBase<CacheConfig> _configurationProviderBackup;
9999

100100
[SetUp]
101101
public void OnSetup()

NHibernate.Caches.Common/ConfigurationProviderBase.cs

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,64 @@ namespace NHibernate.Caches.Common
88
/// Base generic class for the cache configuration settings.
99
/// </summary>
1010
/// <typeparam name="TConfig">The configuration class.</typeparam>
11-
/// <typeparam name="TConfigHandler">The configuration class section handler.</typeparam>
12-
public abstract class ConfigurationProviderBase<TConfig, TConfigHandler>
11+
public abstract class ConfigurationProviderBase<TConfig>
1312
where TConfig : class
14-
where TConfigHandler : ICacheConfigurationSectionHandler, new()
1513
{
16-
private static ConfigurationProviderBase<TConfig, TConfigHandler> _current;
17-
private static readonly string ConfigurationSectionName;
18-
19-
static ConfigurationProviderBase()
20-
{
21-
ConfigurationSectionName = new TConfigHandler().ConfigurationSectionName;
22-
}
14+
private static ConfigurationProviderBase<TConfig> _current;
2315

2416
/// <summary>
2517
/// Provides ability to override default <see cref="System.Configuration.ConfigurationManager"/> with custom implementation.
2618
/// Can be set to null if all configuration is specified by code.
2719
/// </summary>
28-
public static ConfigurationProviderBase<TConfig, TConfigHandler> Current
20+
public static ConfigurationProviderBase<TConfig> Current
2921
{
30-
get => _current ?? (_current = new StaticConfigurationManagerProvider());
22+
get => _current;
3123
set => _current = value ?? new NullConfigurationProvider();
3224
}
3325

26+
/// <summary>
27+
/// Get the cache configuration.
28+
/// </summary>
29+
/// <returns>The cache configuration.</returns>
30+
public abstract TConfig GetConfiguration();
31+
32+
private class NullConfigurationProvider : ConfigurationProviderBase<TConfig>
33+
{
34+
/// <inheritdoc />
35+
public override TConfig GetConfiguration()
36+
{
37+
return null;
38+
}
39+
}
40+
}
41+
42+
/// <summary>
43+
/// Base generic class for the cache configuration settings.
44+
/// </summary>
45+
/// <typeparam name="TConfig">The configuration class.</typeparam>
46+
/// <typeparam name="TConfigHandler">The configuration class section handler.</typeparam>
47+
public abstract class ConfigurationProviderBase<TConfig, TConfigHandler> : ConfigurationProviderBase<TConfig>
48+
where TConfig : class
49+
where TConfigHandler : ICacheConfigurationSectionHandler, new()
50+
{
51+
private static readonly string ConfigurationSectionName;
52+
53+
static ConfigurationProviderBase()
54+
{
55+
ConfigurationSectionName = new TConfigHandler().ConfigurationSectionName;
56+
Current = new StaticConfigurationManagerProvider();
57+
}
58+
3459
/// <summary>
3560
/// Directly supply the configuration to be used to the configuration provider.
3661
/// </summary>
3762
/// <param name="configuration">The configuration, or <see langword="null" /> for resetting the provider to its
3863
/// default behavior.</param>
3964
public static void SetConfiguration(Configuration configuration)
4065
{
41-
_current = configuration == null ? null : new SystemConfigurationProvider(configuration);
66+
Current = configuration == null ? null : new SystemConfigurationProvider(configuration);
4267
}
4368

44-
/// <summary>
45-
/// Get the cache configuration.
46-
/// </summary>
47-
/// <returns>The cache configuration.</returns>
48-
public abstract TConfig GetConfiguration();
49-
5069
private class StaticConfigurationManagerProvider : ConfigurationProviderBase<TConfig, TConfigHandler>
5170
{
5271
/// <inheritdoc />
@@ -82,14 +101,5 @@ public override TConfig GetConfiguration()
82101
return (TConfig) section.Create(null, null, xmlDoc.DocumentElement);
83102
}
84103
}
85-
86-
private class NullConfigurationProvider : ConfigurationProviderBase<TConfig, TConfigHandler>
87-
{
88-
/// <inheritdoc />
89-
public override TConfig GetConfiguration()
90-
{
91-
return null;
92-
}
93-
}
94104
}
95105
}

RtMemoryCache/NHibernate.Caches.RtMemoryCache.Tests/RtMemoryCacheSectionHandlerFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void TestGetConfigFromProvidedConfiguration()
8585
Assert.That(config[0].Properties["expiration"], Is.EqualTo("500"));
8686
}
8787

88-
private ConfigurationProviderBase<CacheConfig[], RtMemoryCacheSectionHandler> _configurationProviderBackup;
88+
private ConfigurationProviderBase<CacheConfig[]> _configurationProviderBackup;
8989

9090
[SetUp]
9191
public void OnSetup()

StackExchangeRedis/NHibernate.Caches.StackExchangeRedis.Tests/RedisSectionHandlerFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public void TestGetConfigFromProvidedConfiguration()
9292
Assert.That(config.Regions[0].Expiration, Is.EqualTo(TimeSpan.FromSeconds(500)));
9393
}
9494

95-
private ConfigurationProviderBase<CacheConfig, RedisSectionHandler> _configurationProviderBackup;
95+
private ConfigurationProviderBase<CacheConfig> _configurationProviderBackup;
9696

9797
[SetUp]
9898
public void OnSetup()

0 commit comments

Comments
 (0)