Skip to content

Commit af3ad13

Browse files
bahusoidhazzik
authored andcommitted
Obsolete interfaces for Loquacios configuration and use config classes directly
1 parent c436dd4 commit af3ad13

26 files changed

+770
-144
lines changed

src/NHibernate/Cfg/Configuration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ namespace NHibernate.Cfg
4747
/// </para>
4848
/// </remarks>
4949
[Serializable]
50-
public class Configuration : ISerializable
50+
public partial class Configuration : ISerializable
5151
{
5252
/// <summary>Default name for hibernate configuration file.</summary>
5353
public const string DefaultHibernateCfgFileName = "hibernate.cfg.xml";

src/NHibernate/Cfg/ConfigurationExtensions.cs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,107 @@
11
using System;
22
using NHibernate.Cfg.Loquacious;
33
using NHibernate.Context;
4-
using NHibernate.Engine;
54
using NHibernate.Hql;
65
using NHibernate.Linq;
76
using NHibernate.Linq.Functions;
87
using NHibernate.Util;
98

109
namespace NHibernate.Cfg
1110
{
11+
//Since 5.3
12+
[Obsolete]
1213
public static class ConfigurationExtensions
1314
{
15+
//Since 5.3
16+
[Obsolete("Please use Configuration instance method instead")]
1417
public static IFluentSessionFactoryConfiguration SessionFactory(this Configuration configuration)
1518
{
1619
return new FluentSessionFactoryConfiguration(configuration);
1720
}
1821

22+
//Since 5.3
23+
[Obsolete("Please use Configuration instance method instead")]
1924
public static Configuration SessionFactoryName(this Configuration configuration, string sessionFactoryName)
2025
{
2126
configuration.SetProperty(Environment.SessionFactoryName, sessionFactoryName);
2227
return configuration;
2328
}
2429

30+
//Since 5.3
31+
[Obsolete("Please use Configuration instance method instead")]
2532
public static Configuration Cache(this Configuration configuration, Action<ICacheConfigurationProperties> cacheProperties)
2633
{
2734
cacheProperties(new CacheConfigurationProperties(configuration));
2835
return configuration;
2936
}
3037

38+
//Since 5.3
39+
[Obsolete("Please use Configuration instance method instead")]
3140
public static Configuration CollectionTypeFactory<TCollecionsFactory>(this Configuration configuration)
3241
{
3342
configuration.SetProperty(Environment.CollectionTypeFactoryClass,
3443
typeof(TCollecionsFactory).AssemblyQualifiedName);
3544
return configuration;
3645
}
3746

47+
//Since 5.3
48+
[Obsolete("Please use Configuration instance method instead")]
3849
public static Configuration Proxy(this Configuration configuration, Action<IProxyConfigurationProperties> proxyProperties)
3950
{
4051
proxyProperties(new ProxyConfigurationProperties(configuration));
4152
return configuration;
4253
}
4354

55+
//Since 5.3
56+
[Obsolete("Please use Configuration instance method instead")]
4457
public static Configuration HqlQueryTranslator<TQueryTranslator>(this Configuration configuration) where TQueryTranslator : IQueryTranslatorFactory
4558
{
4659
configuration.SetProperty(Environment.QueryTranslator, typeof(TQueryTranslator).AssemblyQualifiedName);
4760
return configuration;
4861
}
4962

63+
//Since 5.3
64+
[Obsolete("Please use Configuration instance method instead")]
5065
public static Configuration LinqQueryProvider<TQueryProvider>(this Configuration configuration) where TQueryProvider : INhQueryProvider
5166
{
5267
configuration.SetProperty(Environment.QueryLinqProvider, typeof(TQueryProvider).AssemblyQualifiedName);
5368
return configuration;
5469
}
5570

71+
//Since 5.3
72+
[Obsolete("Please use Configuration instance method instead")]
5673
public static Configuration LinqToHqlGeneratorsRegistry<TLinqToHqlGeneratorsRegistry>(this Configuration configuration) where TLinqToHqlGeneratorsRegistry : ILinqToHqlGeneratorsRegistry
5774
{
5875
configuration.SetProperty(Environment.LinqToHqlGeneratorsRegistry, typeof(TLinqToHqlGeneratorsRegistry).AssemblyQualifiedName);
5976
return configuration;
6077
}
6178

79+
//Since 5.3
80+
[Obsolete("Please use Configuration instance method instead")]
6281
public static Configuration CurrentSessionContext<TCurrentSessionContext>(this Configuration configuration) where TCurrentSessionContext : ICurrentSessionContext
6382
{
6483
configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(TCurrentSessionContext).AssemblyQualifiedName);
6584
return configuration;
6685
}
6786

87+
//Since 5.3
88+
[Obsolete("Please use Configuration instance method instead")]
6889
public static Configuration Mappings(this Configuration configuration, Action<IMappingsConfigurationProperties> mappingsProperties)
6990
{
7091
mappingsProperties(new MappingsConfigurationProperties(configuration));
7192
return configuration;
7293
}
7394

95+
//Since 5.3
96+
[Obsolete("Please use Configuration instance method instead")]
7497
public static Configuration DataBaseIntegration(this Configuration configuration, Action<IDbIntegrationConfigurationProperties> dataBaseIntegration)
7598
{
7699
dataBaseIntegration(new DbIntegrationConfigurationProperties(configuration));
77100
return configuration;
78101
}
79102

103+
//Since 5.3
104+
[Obsolete("Please use Configuration instance method instead")]
80105
public static Configuration EntityCache<TEntity>(this Configuration configuration, Action<IEntityCacheConfigurationProperties<TEntity>> entityCacheConfiguration)
81106
where TEntity : class
82107
{
@@ -126,14 +151,16 @@ public static Configuration EntityCache<TEntity>(this Configuration configuratio
126151
///</list>
127152
/// </para>
128153
/// </remarks>
154+
//Since 5.3
155+
[Obsolete("Please use Configuration instance method instead")]
129156
public static Configuration TypeDefinition<TDef>(this Configuration configuration, Action<ITypeDefConfigurationProperties> typeDefConfiguration)
130157
where TDef : class
131158
{
132159
if (typeDefConfiguration == null)
133160
{
134161
return configuration;
135162
}
136-
var tdConfiguration = new TypeDefConfigurationProperties<TDef>();
163+
var tdConfiguration = TypeDefConfigurationProperties.Create<TDef>();
137164
typeDefConfiguration(tdConfiguration);
138165
if(string.IsNullOrEmpty(tdConfiguration.Alias))
139166
{
@@ -145,6 +172,8 @@ public static Configuration TypeDefinition<TDef>(this Configuration configuratio
145172
return configuration;
146173
}
147174

175+
//Since 5.3
176+
[Obsolete("Please use Configuration instance method instead")]
148177
public static Configuration AddNamedQuery(this Configuration configuration, string queryIdentifier, Action<INamedQueryDefinitionBuilder> namedQueryDefinition)
149178
{
150179
if (configuration == null)
@@ -165,4 +194,4 @@ public static Configuration AddNamedQuery(this Configuration configuration, stri
165194
return configuration;
166195
}
167196
}
168-
}
197+
}

src/NHibernate/Cfg/Loquacious/CacheConfiguration.cs

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33

44
namespace NHibernate.Cfg.Loquacious
55
{
6-
internal class CacheConfigurationProperties : ICacheConfigurationProperties
6+
public class CacheConfigurationProperties
7+
#pragma warning disable 618
8+
: ICacheConfigurationProperties
9+
#pragma warning restore 618
710
{
811
private readonly Configuration cfg;
912

@@ -46,6 +49,8 @@ public void QueryCache<TFactory>() where TFactory : IQueryCache
4649
throw new InvalidOperationException("This method is invalid and should not be used. Use QueryCacheFactory method instead.");
4750
}
4851

52+
#endregion
53+
4954
public void QueryCacheFactory<TFactory>() where TFactory : IQueryCacheFactory
5055
{
5156
UseSecondLevelCache = true;
@@ -57,10 +62,12 @@ private bool UseSecondLevelCache
5762
{
5863
set { cfg.SetProperty(Environment.UseSecondLevelCache, value.ToString().ToLowerInvariant()); }
5964
}
60-
#endregion
6165
}
6266

63-
internal class CacheConfiguration : ICacheConfiguration
67+
public class CacheConfiguration
68+
#pragma warning disable 618
69+
: ICacheConfiguration
70+
#pragma warning restore 618
6471
{
6572
private readonly FluentSessionFactoryConfiguration fc;
6673

@@ -75,39 +82,66 @@ internal Configuration Configuration
7582
get { return fc.Configuration; }
7683
}
7784

78-
#region Implementation of ICacheConfiguration
79-
80-
public ICacheConfiguration Through<TProvider>() where TProvider : ICacheProvider
85+
public CacheConfiguration Through<TProvider>() where TProvider : ICacheProvider
8186
{
8287
fc.Configuration.SetProperty(Environment.UseSecondLevelCache, "true");
8388
fc.Configuration.SetProperty(Environment.CacheProvider, typeof(TProvider).AssemblyQualifiedName);
8489
return this;
8590
}
8691

87-
public ICacheConfiguration PrefixingRegionsWith(string regionPrefix)
92+
public CacheConfiguration PrefixingRegionsWith(string regionPrefix)
8893
{
8994
fc.Configuration.SetProperty(Environment.CacheRegionPrefix, regionPrefix);
9095
return this;
9196
}
9297

93-
public ICacheConfiguration UsingMinimalPuts()
98+
public CacheConfiguration UsingMinimalPuts()
9499
{
95100
fc.Configuration.SetProperty(Environment.UseMinimalPuts, true.ToString().ToLowerInvariant());
96101
return this;
97102
}
98103

99-
public IFluentSessionFactoryConfiguration WithDefaultExpiration(int seconds)
104+
public FluentSessionFactoryConfiguration WithDefaultExpiration(int seconds)
100105
{
101106
fc.Configuration.SetProperty(Environment.CacheDefaultExpiration, seconds.ToString());
102107
return fc;
103108
}
104109

105-
public IQueryCacheConfiguration Queries { get; private set; }
110+
public QueryCacheConfiguration Queries { get; }
111+
112+
#pragma warning disable 618
113+
#region Implementation of ICacheConfiguration
114+
115+
ICacheConfiguration ICacheConfiguration.Through<TProvider>()
116+
{
117+
return Through<TProvider>();
118+
}
119+
120+
ICacheConfiguration ICacheConfiguration.PrefixingRegionsWith(string regionPrefix)
121+
{
122+
return PrefixingRegionsWith(regionPrefix);
123+
}
124+
125+
ICacheConfiguration ICacheConfiguration.UsingMinimalPuts()
126+
{
127+
return UsingMinimalPuts();
128+
}
129+
130+
IFluentSessionFactoryConfiguration ICacheConfiguration.WithDefaultExpiration(int seconds)
131+
{
132+
return WithDefaultExpiration(seconds);
133+
}
134+
135+
IQueryCacheConfiguration ICacheConfiguration.Queries => Queries;
106136

107137
#endregion
138+
#pragma warning restore 618
108139
}
109140

110-
internal class QueryCacheConfiguration : IQueryCacheConfiguration
141+
public class QueryCacheConfiguration
142+
#pragma warning disable 618
143+
: IQueryCacheConfiguration
144+
#pragma warning restore 618
111145
{
112146
private readonly CacheConfiguration cc;
113147

@@ -116,10 +150,8 @@ public QueryCacheConfiguration(CacheConfiguration cc)
116150
this.cc = cc;
117151
}
118152

119-
#region Implementation of IQueryCacheConfiguration
120-
121153
// 6.0 TODO: enable constraint and remove runtime type check
122-
public ICacheConfiguration Through<TFactory>() // where TFactory : IQueryCacheFactory
154+
public CacheConfiguration Through<TFactory>() //where TFactory : IQueryCacheFactory
123155
{
124156
if (!typeof(IQueryCacheFactory).IsAssignableFrom(typeof(TFactory)))
125157
throw new ArgumentException($"{nameof(TFactory)} must be an {nameof(IQueryCacheFactory)}", nameof(TFactory));
@@ -130,6 +162,15 @@ public ICacheConfiguration Through<TFactory>() // where TFactory : IQueryCacheFa
130162
return cc;
131163
}
132164

165+
#region Implementation of IQueryCacheConfiguration
166+
#pragma warning disable 618
167+
168+
ICacheConfiguration IQueryCacheConfiguration.Through<TFactory>()
169+
{
170+
return Through<TFactory>();
171+
}
172+
173+
#pragma warning restore 618
133174
#endregion
134175
}
135176
}

0 commit comments

Comments
 (0)