Skip to content

Commit 7641b79

Browse files
committed
Removing dep to NH Core's ProxyFactory.
Removing IEnversProxyFactory completely, now using hand written proxies instead.
1 parent b555d44 commit 7641b79

27 files changed

+366
-219
lines changed

Src/NHibernate.Envers.Tests/NetSpecific/Integration/Configuration/Serialize/InterfaceImplementationVerificationTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public class InterfaceImplementationVerificationTest
1515
private readonly System.Type[] serializableInterfaces =
1616
{
1717
typeof (ICollectionMapperFactory),
18-
typeof (IEnversProxyFactory),
1918
typeof (IRevisionInfoGenerator),
2019
typeof (IPropertyMapper),
2120
typeof (IIdMapper),

Src/NHibernate.Envers.Tests/NetSpecific/Integration/CustomMapping/UserCollection/CustomCollectionMapperFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ namespace NHibernate.Envers.Tests.NetSpecific.Integration.CustomMapping.UserColl
55
{
66
public class CustomCollectionMapperFactory : ICustomCollectionMapperFactory
77
{
8-
public IPropertyMapper Create(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentDatabool, bool embeddableElementType)
8+
public IPropertyMapper Create(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentDatabool, bool embeddableElementType)
99
{
10-
return new SpecialMapper(enversProxyFactory, commonCollectionMapperData, elementComponentData, embeddableElementType);
10+
return new SpecialMapper(commonCollectionMapperData, elementComponentData, embeddableElementType);
1111
}
1212
}
1313
}

Src/NHibernate.Envers.Tests/NetSpecific/Integration/CustomMapping/UserCollection/SpecialMapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ public class SpecialMapper : BagCollectionMapper<Number>
99
{
1010
private readonly MiddleComponentData _elementComponentData;
1111

12-
public SpecialMapper(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
13-
: base(enversProxyFactory, commonCollectionMapperData, typeof(ISpecialCollection), elementComponentData, embeddableElementType)
12+
public SpecialMapper(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
13+
: base(commonCollectionMapperData, typeof(ISpecialCollection), elementComponentData, embeddableElementType)
1414
{
1515
_elementComponentData = elementComponentData;
1616
}

Src/NHibernate.Envers.Tests/NetSpecific/UnitTests/CustomLists/CustomListTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ public void TestCustomLists()
3636

3737
internal class CustomCollectionMapperFactory<TItem> : ICustomCollectionMapperFactory
3838
{
39-
public IPropertyMapper Create(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
39+
public IPropertyMapper Create(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
4040
{
41-
return new CustomListCollectionMapper<CustomList<TItem>, TItem>(enversProxyFactory, commonCollectionMapperData, typeof(CustomList<TItem>), elementComponentData, indexComponentData, embeddableElementType);
41+
return new CustomListCollectionMapper<CustomList<TItem>, TItem>(commonCollectionMapperData, typeof(CustomList<TItem>), elementComponentData, indexComponentData, embeddableElementType);
4242
}
4343
}
4444

@@ -49,13 +49,12 @@ public class CustomListCollectionMapper<TCustomList, TItem> : AbstractCollection
4949
private readonly MiddleComponentData _elementComponentData;
5050
private readonly MiddleComponentData _indexComponentData;
5151

52-
public CustomListCollectionMapper(IEnversProxyFactory enversProxyFactory,
53-
CommonCollectionMapperData commonCollectionMapperData,
52+
public CustomListCollectionMapper(CommonCollectionMapperData commonCollectionMapperData,
5453
System.Type proxyType,
5554
MiddleComponentData elementComponentData,
5655
MiddleComponentData indexComponentData,
5756
bool revisionTypeInId)
58-
: base(enversProxyFactory, commonCollectionMapperData, proxyType, false, revisionTypeInId)
57+
: base(commonCollectionMapperData, proxyType, false, revisionTypeInId)
5958
{
6059
_elementComponentData = elementComponentData;
6160
_indexComponentData = indexComponentData;

Src/NHibernate.Envers.Tests/NetSpecific/UnitTests/Fluent/Model/SomeCollectionMapper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace NHibernate.Envers.Tests.NetSpecific.UnitTests.Fluent.Model
55
{
66
public class SomeCollectionMapper : ICustomCollectionMapperFactory
77
{
8-
public IPropertyMapper Create(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
8+
public IPropertyMapper Create(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
99
{
1010
return null;
1111
}

Src/NHibernate.Envers/Configuration/ConfigurationKey.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,6 @@ public static readonly StringConfigurationEntry DefaultCatalog
7474
public static readonly TypeConfigurationEntry CollectionMapperFactory
7575
= new TypeConfigurationEntry("nhibernate.envers.collection_mapper_factory", typeof(DefaultCollectionMapperFactory).AssemblyQualifiedName);
7676

77-
/// <summary>
78-
/// Resposible to create envers proxies.
79-
/// </summary>
80-
public static readonly TypeConfigurationEntry ProxyFactory
81-
= new TypeConfigurationEntry("nhibernate.envers.proxy_factory", typeof(DefaultEnversProxyFactory).AssemblyQualifiedName);
82-
8377
/// <summary>
8478
/// String that will be appended to the name of an audited
8579
/// entity to create the name of the entity, that will hold

Src/NHibernate.Envers/Configuration/GlobalConfiguration.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ public GlobalConfiguration(AuditConfiguration auditConfiguration, IDictionary<st
1818
IsTrackEntitiesChangedInRevisionEnabled = ConfigurationKey.TrackEntitiesChangedInRevision.ToBool(properties);
1919
DefaultSchemaName = ConfigurationKey.DefaultSchema.ToString(properties);
2020
DefaultCatalogName = ConfigurationKey.DefaultCatalog.ToString(properties);
21-
EnversProxyFactory = ConfigurationKey.ProxyFactory.ToInstance<IEnversProxyFactory>(properties);
2221
CollectionMapperFactory = ConfigurationKey.CollectionMapperFactory.ToInstance<ICollectionMapperFactory>(properties);
2322
CorrelatedSubqueryOperator = "=";
2423
IsGlobalWithModifiedFlag = ConfigurationKey.GlobalWithModifiedFlag.ToBool(properties);
@@ -72,7 +71,6 @@ public void SetTrackEntitiesChangedInRevisionEnabled()
7271
public string DefaultCatalogName { get; }
7372

7473
public ICollectionMapperFactory CollectionMapperFactory { get; }
75-
public IEnversProxyFactory EnversProxyFactory { get; }
7674

7775
public bool IsGlobalWithModifiedFlag { get; }
7876
public string ModifiedFlagSuffix { get; }

Src/NHibernate.Envers/Configuration/Metadata/CollectionMetadataGenerator.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ public sealed class CollectionMetadataGenerator
3737
/// </summary>
3838
private readonly string _referencedEntityName;
3939

40-
private static readonly MethodInfo sortedSetDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.SortedSet<object>(null, null, null, null, false));
41-
private static readonly MethodInfo setDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Set<object>(null, null, null, false));
42-
private static readonly MethodInfo bagDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Bag<object>(null, null, null, false));
43-
private static readonly MethodInfo idBagDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.IdBag<object>(null, null, null, false));
44-
private static readonly MethodInfo listDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.List<object>(null, null, null, null, false));
45-
private static readonly MethodInfo sortedMapDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.SortedMap<object, object>(null, null, null, null, null, false));
46-
private static readonly MethodInfo mapDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Map<object, object>(null, null, null, null, false));
40+
private static readonly MethodInfo sortedSetDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.SortedSet<object>(null, null, null, false));
41+
private static readonly MethodInfo setDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Set<object>(null, null, false));
42+
private static readonly MethodInfo bagDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Bag<object>(null, null, false));
43+
private static readonly MethodInfo idBagDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.IdBag<object>(null, null, false));
44+
private static readonly MethodInfo listDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.List<object>(null, null, null, false));
45+
private static readonly MethodInfo sortedMapDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.SortedMap<object, object>(null, null, null, null, false));
46+
private static readonly MethodInfo mapDefinition = ReflectHelper.GetMethodDefinition<ICollectionMapperFactory>(x => x.Map<object, object>(null, null, null, false));
4747

4848
/// <summary>
4949
/// Ctor
@@ -504,55 +504,55 @@ private void addMapper(CommonCollectionMapperData commonCollectionMapperData, Mi
504504

505505
if (_propertyAuditingData.CustomCollectionMapperFactory != null)
506506
{
507-
collectionMapper = _propertyAuditingData.CustomCollectionMapperFactory.Create(_mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType);
507+
collectionMapper = _propertyAuditingData.CustomCollectionMapperFactory.Create(commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType);
508508
}
509509
else if (propertyValueType == typeof(Set))
510510
{
511511
if (_propertyValue.IsSorted)
512512
{
513513
var methodInfo = sortedSetDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
514514
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
515-
new[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, _propertyValue.Comparer, embeddableElementType });
515+
new[] { commonCollectionMapperData, elementComponentData, _propertyValue.Comparer, embeddableElementType });
516516
}
517517
else
518518
{
519519
var methodInfo = setDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
520520
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
521-
new object[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, embeddableElementType });
521+
new object[] { commonCollectionMapperData, elementComponentData, embeddableElementType });
522522
}
523523
}
524524
else if (propertyValueType == typeof(List))
525525
{
526526
var methodInfo = listDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
527527
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
528-
new object[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType });
528+
new object[] { commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType });
529529
}
530530
else if (propertyValueType == typeof (Map))
531531
{
532532
if (_propertyValue.IsSorted)
533533
{
534534
var methodInfo = sortedMapDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
535535
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
536-
new[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, indexComponentData, _propertyValue.Comparer, embeddableElementType });
536+
new[] { commonCollectionMapperData, elementComponentData, indexComponentData, _propertyValue.Comparer, embeddableElementType });
537537
}
538538
else
539539
{
540540
var methodInfo = mapDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
541541
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
542-
new object[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType });
542+
new object[] { commonCollectionMapperData, elementComponentData, indexComponentData, embeddableElementType });
543543
}
544544
}
545545
else if (propertyValueType == typeof(Bag))
546546
{
547547
var methodInfo = bagDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
548548
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
549-
new object[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, embeddableElementType });
549+
new object[] { commonCollectionMapperData, elementComponentData, embeddableElementType });
550550
}
551551
else if (propertyValueType == typeof(IdentifierBag))
552552
{
553553
var methodInfo = idBagDefinition.MakeGenericMethod(type.ReturnedClass.GetGenericArguments());
554554
collectionMapper = (IPropertyMapper)methodInfo.Invoke(collectionProxyMapperFactory,
555-
new object[] { _mainGenerator.GlobalCfg.EnversProxyFactory, commonCollectionMapperData, elementComponentData, embeddableElementType });
555+
new object[] { commonCollectionMapperData, elementComponentData, embeddableElementType });
556556
}
557557
else
558558
{

Src/NHibernate.Envers/Configuration/Metadata/DefaultCollectionMapperFactory.cs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,51 @@
22
using System.Collections.Generic;
33
using NHibernate.Envers.Entities.Mapper;
44
using NHibernate.Envers.Entities.Mapper.Relation;
5+
using NHibernate.Envers.Entities.Mapper.Relation.Lazy.Proxy;
56

67
namespace NHibernate.Envers.Configuration.Metadata
78
{
89
[Serializable]
910
public class DefaultCollectionMapperFactory : ICollectionMapperFactory
1011
{
11-
public virtual IPropertyMapper Array(IEnversProxyFactory enversProxyFactory, System.Type elementType, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
12+
public virtual IPropertyMapper Array(System.Type elementType, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
1213
{
1314
throw new NotImplementedException("Array is not supported by DefaultCollectionMapperFactory");
1415
}
1516

16-
public virtual IPropertyMapper IdBag<T>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
17+
public virtual IPropertyMapper IdBag<T>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
1718
{
18-
return new IdBagCollectionMapper<T>(enversProxyFactory, commonCollectionMapperData, typeof(IList<T>), elementComponentData, embeddableElementType);
19+
return new IdBagCollectionMapper<T>(commonCollectionMapperData, typeof(ListProxy<T>), elementComponentData, embeddableElementType);
1920
}
2021

21-
public virtual IPropertyMapper Set<T>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
22+
public virtual IPropertyMapper Set<T>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
2223
{
23-
return new SetCollectionMapper<T>(enversProxyFactory,
24-
commonCollectionMapperData,
25-
typeof (ISet<T>),
26-
elementComponentData,
27-
embeddableElementType,
28-
embeddableElementType);
24+
return new SetCollectionMapper<T>(commonCollectionMapperData, typeof (SetProxy<T>), elementComponentData, embeddableElementType, embeddableElementType);
2925
}
3026

31-
public virtual IPropertyMapper SortedSet<T>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, IComparer<T> comparer, bool embeddableElementType)
27+
public virtual IPropertyMapper SortedSet<T>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, IComparer<T> comparer, bool embeddableElementType)
3228
{
33-
return new SortedSetCollectionMapper<T>(enversProxyFactory,
34-
commonCollectionMapperData,
35-
typeof(ISet<T>),
36-
elementComponentData,
37-
comparer,
38-
embeddableElementType,
39-
embeddableElementType);
29+
return new SortedSetCollectionMapper<T>(commonCollectionMapperData, typeof(SetProxy<T>), elementComponentData, comparer, embeddableElementType, embeddableElementType);
4030
}
4131

42-
public virtual IPropertyMapper List<T>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
32+
public virtual IPropertyMapper List<T>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
4333
{
44-
return new ListCollectionMapper<T>(enversProxyFactory, commonCollectionMapperData, typeof(IList<T>), elementComponentData, indexComponentData, embeddableElementType);
34+
return new ListCollectionMapper<T>(commonCollectionMapperData, typeof(ListProxy<T>), elementComponentData, indexComponentData, embeddableElementType);
4535
}
4636

47-
public virtual IPropertyMapper Map<TKey, TValue>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
37+
public virtual IPropertyMapper Map<TKey, TValue>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, bool embeddableElementType)
4838
{
49-
return new MapCollectionMapper<TKey, TValue>(enversProxyFactory, commonCollectionMapperData, typeof(IDictionary<TKey, TValue>), elementComponentData, indexComponentData, embeddableElementType);
39+
return new MapCollectionMapper<TKey, TValue>(commonCollectionMapperData, typeof(DictionaryProxy<TKey, TValue>), elementComponentData, indexComponentData, embeddableElementType);
5040
}
5141

52-
public virtual IPropertyMapper SortedMap<TKey, TValue>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, IComparer<TKey> comparer, bool embeddableElementType)
42+
public virtual IPropertyMapper SortedMap<TKey, TValue>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, MiddleComponentData indexComponentData, IComparer<TKey> comparer, bool embeddableElementType)
5343
{
54-
return new SortedMapCollectionMapper<TKey, TValue>(enversProxyFactory, commonCollectionMapperData, typeof(IDictionary<TKey, TValue>), elementComponentData, indexComponentData, comparer, embeddableElementType);
44+
return new SortedMapCollectionMapper<TKey, TValue>(commonCollectionMapperData, typeof(DictionaryProxy<TKey, TValue>), elementComponentData, indexComponentData, comparer, embeddableElementType);
5545
}
5646

57-
public virtual IPropertyMapper Bag<T>(IEnversProxyFactory enversProxyFactory, CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
47+
public virtual IPropertyMapper Bag<T>(CommonCollectionMapperData commonCollectionMapperData, MiddleComponentData elementComponentData, bool embeddableElementType)
5848
{
59-
return new BagCollectionMapper<T>(enversProxyFactory, commonCollectionMapperData, typeof(IList<T>), elementComponentData, embeddableElementType);
49+
return new BagCollectionMapper<T>(commonCollectionMapperData, typeof(ListProxy<T>), elementComponentData, embeddableElementType);
6050
}
6151
}
6252
}

0 commit comments

Comments
 (0)