SPRNET-1104: Updating to NHibernate 2.1 GA, porting Java features to LocalSessionFactoryObject, changing integration tests to use (local) SQL Server instance instead of fixed host name and named instance, changing to LinFu provider for now

This commit is contained in:
lahma
2009-07-24 14:59:24 +00:00
parent 403f53e6c0
commit 29f1437ea2
27 changed files with 320 additions and 134 deletions

View File

@@ -18,7 +18,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Release.AspNetCompiler.Debug = "False"
EndProjectSection
ProjectSection(SolutionItems) = preProject
Spring.build = Spring.build
..\..\Spring.build = ..\..\Spring.build
..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.build = ..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.build
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.2005", "..\..\src\Spring\Spring.Data\Spring.Data.2005.csproj", "{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}"
@@ -39,7 +40,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.Te
Release.AspNetCompiler.Debug = "False"
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.2005", "..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.2005.csproj", "{71368632-B8B7-4A6A-8C65-8DA848120C82}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.2005", "..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.2005.csproj", "{E57B4652-0231-49CB-B058-87E10EFE540D}"
ProjectSection(WebsiteProperties) = preProject
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.Debug = "False"
@@ -127,16 +128,16 @@ Global
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Any CPU.Build.0 = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|.NET.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|.NET.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Any CPU.Build.0 = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|.NET.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Any CPU.Build.0 = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|.NET.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.Build.0 = Debug|Any CPU

View File

@@ -2,7 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F04753EF-7A1B-4837-AB63-8C0821E8155D}"
ProjectSection(SolutionItems) = preProject
Spring.build = Spring.build
..\..\Spring.build = ..\..\Spring.build
..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.build = ..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.build
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Core.2008", "..\..\src\Spring\Spring.Core\Spring.Core.2008.csproj", "{710961A3-0DF4-49E4-A26E-F5B9C044AC84}"
@@ -13,9 +14,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.2008", "..\..\s
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.Integration.Tests.2008", "..\..\test\Spring\Spring.Data.NHibernate21.Integration.Tests\Spring.Data.NHibernate21.Integration.Tests.2008.csproj", "{4A07E150-ED90-407C-8CAD-4760444DDFD9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.Tests.2008", "..\..\test\Spring\Spring.Data.NHibernate21.Tests\Spring.Data.NHibernate21.Tests.2008.csproj", "{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.Tests.2008", "..\..\test\Spring\Spring.Data.NHibernate21.Tests\Spring.Data.NHibernate21.Tests.2008.csproj", "{90FEE979-7367-4542-BCCB-BF634E04A9D3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.2008", "..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.2008.csproj", "{71368632-B8B7-4A6A-8C65-8DA848120C82}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate21.2008", "..\..\src\Spring\Spring.Data.NHibernate21\Spring.Data.NHibernate21.2008.csproj", "{E57B4652-0231-49CB-B058-87E10EFE540D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.Tests.2008", "..\..\test\Spring\Spring.Data.Tests\Spring.Data.Tests.2008.csproj", "{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}"
EndProject
@@ -79,28 +80,28 @@ Global
{4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Any CPU.Build.0 = Release|Any CPU
{4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|.NET.ActiveCfg = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|.NET.Build.0 = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Any CPU.Build.0 = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|.NET.ActiveCfg = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|.NET.Build.0 = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Any CPU.Build.0 = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|.NET.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|.NET.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Any CPU.Build.0 = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{71368632-B8B7-4A6A-8C65-8DA848120C82}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|.NET.ActiveCfg = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|.NET.Build.0 = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|.NET.ActiveCfg = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|.NET.Build.0 = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|Any CPU.Build.0 = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{90FEE979-7367-4542-BCCB-BF634E04A9D3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|.NET.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Any CPU.Build.0 = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E57B4652-0231-49CB-B058-87E10EFE540D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|.NET.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.Build.0 = Debug|Any CPU

Binary file not shown.

View File

@@ -1,13 +0,0 @@
Copyright 2004-2005 Castle Project - http://www.castleproject.org/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

View File

@@ -42,8 +42,11 @@ using Spring.Dao.Support;
using Spring.Data.Common;
using Spring.Data.Support;
using Spring.Objects.Factory;
using Spring.Objects.Factory.Config;
using Spring.Util;
using Environment = NHibernate.Cfg.Environment;
using Configuration = NHibernate.Cfg.Configuration;
#endregion
@@ -71,7 +74,7 @@ namespace Spring.Data.NHibernate
/// </remarks>
/// <author>Mark Pollack (.NET)</author>
/// <version>$Id: LocalSessionFactoryObject.cs,v 1.2 2008/05/01 12:50:34 lahma Exp $</version>
public class LocalSessionFactoryObject : IFactoryObject, IInitializingObject, IPersistenceExceptionTranslator, System.IDisposable
public class LocalSessionFactoryObject : IFactoryObject, IInitializingObject, IPersistenceExceptionTranslator, IDisposable
{
#region Fields
@@ -95,14 +98,28 @@ namespace Spring.Data.NHibernate
private bool exposeTransactionAwareSessionFactory = false;
private IInterceptor entityInterceptor;
private INamingStrategy namingStrategy;
private IObjectDefinition[] typeDefinitions;
private FilterDefinition[] filterDefinitions;
private Properties entityCacheStrategies;
private Properties collectionCacheStrategies;
private IDictionary eventListeners;
private bool schemaUpdate = false;
private IAdoExceptionTranslator adoExceptionTranslator;
// Configuration time DB provider.
// This will not be available after configuration has been done.
private static IDbProvider configTimeDbProvider;
#endregion
#region Constants
@@ -113,8 +130,6 @@ namespace Spring.Data.NHibernate
protected static readonly ILog log =
LogManager.GetLogger(typeof (LocalSessionFactoryObject));
#endregion
#region Constructor (s)
@@ -224,8 +239,52 @@ namespace Spring.Data.NHibernate
set { exposeTransactionAwareSessionFactory = value; }
get { return exposeTransactionAwareSessionFactory; }
}
/// <summary>
/// Set a NHibernate entity interceptor that allows to inspect and change
/// property values before writing to and reading from the database.
/// Will get applied to any new Session created by this factory.
/// <p>Such an interceptor can either be set at the SessionFactory level, i.e. on
/// LocalSessionFactoryObject, or at the Session level, i.e. on HibernateTemplate,
/// HibernateInterceptor, and HibernateTransactionManager. It's preferable to set
/// it on LocalSessionFactoryObject or HibernateTransactionManager to avoid repeated
/// configuration and guarantee consistent behavior in transactions.</p>
/// </summary>
/// <seealso cref="HibernateTemplate.EntityInterceptor"/>
/// <seealso cref="HibernateTransactionManager.EntityInterceptor" />
/// <seealso cref="Configuration.Interceptor" />
public IInterceptor EntityInterceptor
{
set { this.entityInterceptor = value; }
}
/// <summary>
/// Set a Hibernate NamingStrategy for the SessionFactory, determining the
/// physical column and table names given the info in the mapping document.
/// </summary>
/// <seealso cref="Configuration.NamingStrategy" />
public INamingStrategy NamingStrategy
{
set { this.namingStrategy = value; }
}
/// <summary>
/// Specify the Hibernate type definitions to register with the SessionFactory,
/// as Spring IObjectDefinition instances. This is an alternative to specifying
/// &lt;typedef&gt; elements in Hibernate mapping files.
/// <p>Unfortunately, Hibernate itself does not define a complete object that
/// represents a type definition, hence the need for Spring's TypeDefinitionBean.</p>
/// @see TypeDefinitionBean
/// @see org.hibernate.cfg.Mappings#addTypeDef(String, String, java.util.Properties)
/// </summary>
public IObjectDefinition[] TypeDefinitions
{
set { this.typeDefinitions = value; }
}
/// <summary>
/// Specify the NHibernate FilterDefinitions to register with the SessionFactory.
/// This is an alternative to specifying &lt;filter-def&gt; elements in
/// Hibernate mapping files.
@@ -241,6 +300,51 @@ namespace Spring.Data.NHibernate
set { this.filterDefinitions = value; }
}
/// <summary>
/// Specify the cache strategies for entities (persistent classes or named entities).
/// This configuration setting corresponds to the &lt;class-cache&gt; entry
/// in the "hibernate.cfg.xml" configuration format.
/// <p>For example:
/// <pre>
/// &lt;property name="entityCacheStrategies"&gt;
/// &lt;props&gt;
/// &lt;prop key="MyCompany.Customer"&gt;read-write&lt;/prop&gt;
/// &lt;prop key="MyCompany.Product"&gt;read-only,myRegion&lt;/prop&gt;
/// &lt;/props&gt;
/// &lt;/property&gt;</pre>
/// </p>
/// Note that appending a cache region name (with a comma separator) is only
/// supported on Hibernate 3.1, where this functionality is publically available.
/// </summary>
/// <seealso cref="Configuration.SetCacheConcurrencyStrategy(string, string)" />
public Properties EntityCacheStrategies
{
set { this.entityCacheStrategies = value; }
}
/// <summary>
/// Specify the cache strategies for persistent collections (with specific roles).
/// This configuration setting corresponds to the &lt;collection-cache&gt; entry
/// in the "hibernate.cfg.xml" configuration format.
/// <p>For example:
/// <pre>
/// &lt;property name="CollectionCacheStrategies"&gt;
/// &lt;props&gt;
/// &lt;prop key="MyCompany.Order.Items">read-write&lt;/prop&gt;
/// &lt;prop key="MyCompany.Product.Categories"&gt;read-only,myRegion&lt;/prop&gt;
/// &lt;/props&gt;
/// &lt;/property&gt;</pre>
/// </p>
/// Note that appending a cache region name (with a comma separator) is only
/// supported on Hibernate 3.1, where this functionality is publically available.
/// <seealso cref="Configuration.SetCollectionCacheConcurrencyStrategy(string, string)"/>
/// </summary>
public Properties CollectionCacheStrategies
{
set { this.collectionCacheStrategies = value; }
}
/// <summary>
/// Specify the NHibernate event listeners to register, with listener types
/// as keys and listener objects as values.
@@ -314,7 +418,7 @@ namespace Spring.Data.NHibernate
/// Return the type <see cref="ISessionFactory"/> or subclass.
/// </summary>
/// <value>The type created by this factory</value>
public System.Type ObjectType
public Type ObjectType
{
get
{
@@ -328,10 +432,7 @@ namespace Spring.Data.NHibernate
/// <value>true</value>
public bool IsSingleton
{
get
{
return true;
}
get { return true; }
}
/// <summary>
@@ -343,13 +444,11 @@ namespace Spring.Data.NHibernate
// Create Configuration instance.
Configuration config = NewConfiguration();
if (this.dbProvider != null)
{
config.SetProperty(Environment.ConnectionString,
dbProvider.ConnectionString);
config.SetProperty(Environment.ConnectionString, dbProvider.ConnectionString);
config.SetProperty(Environment.ConnectionProvider, typeof(DbProviderWrapper).AssemblyQualifiedName);
configTimeDbProvider = this.dbProvider;
}
if (ExposeTransactionAwareSessionFactory)
@@ -357,13 +456,46 @@ namespace Spring.Data.NHibernate
// Set ICurrentSessionContext implementation,
// providing the Spring-managed ISession s current Session.
// Can be overridden by a custom value for the corresponding Hibernate property
#if NH_2_1
config.SetProperty(Environment.CurrentSessionContextClass, "Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate21");
#else
config.SetProperty(Environment.CurrentSessionContextClass, "Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate20");
#endif
config.SetProperty(Environment.CurrentSessionContextClass, typeof(SpringSessionContext).AssemblyQualifiedName);
}
if (this.entityInterceptor != null)
{
// Set given entity interceptor at SessionFactory level.
config.SetInterceptor(this.entityInterceptor);
}
if (this.namingStrategy != null)
{
// Pass given naming strategy to Hibernate Configuration.
config.SetNamingStrategy(this.namingStrategy);
}
#if NH_2_1
if (this.typeDefinitions != null)
{
// Register specified Hibernate type definitions.
IDictionary<string, string> typedProperties = new Dictionary<string, string>();
foreach (DictionaryEntry entry in hibernateProperties)
{
typedProperties.Add((string) entry.Key, (string) entry.Value);
}
Dialect dialect = Dialect.GetDialect(typedProperties);
Mappings mappings = config.CreateMappings(dialect);
for (int i = 0; i < this.typeDefinitions.Length; i++)
{
IObjectDefinition typeDef = this.typeDefinitions[i];
Dictionary<string, string> typedParamMap = new Dictionary<string, string>();
foreach (DictionaryEntry entry in typeDef.PropertyValues)
{
typedParamMap.Add((string) entry.Key, (string) entry.Value);
}
mappings.AddTypeDef(typeDef.ObjectTypeName, typeDef.ObjectTypeName, typedParamMap);
}
}
#endif
if (this.filterDefinitions != null)
{
// Register specified NHibernate FilterDefinitions.
@@ -426,9 +558,43 @@ namespace Spring.Data.NHibernate
// for availability of the mapping information in further processing.
PostProcessMappings(config);
config.BuildMappings();
#endif
// TODO: entityCacheStrategies and collectionCacheStrategies
if (this.entityCacheStrategies != null)
{
// Register cache strategies for mapped entities.
foreach (string className in this.entityCacheStrategies.Keys)
{
String[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.entityCacheStrategies.GetProperty(className));
if (strategyAndRegion.Length > 1)
{
config.SetCacheConcurrencyStrategy(className, strategyAndRegion[0], strategyAndRegion[1]);
}
else if (strategyAndRegion.Length > 0)
{
config.SetCacheConcurrencyStrategy(className, strategyAndRegion[0]);
}
}
}
if (this.collectionCacheStrategies != null)
{
// Register cache strategies for mapped collections.
foreach (string collRole in collectionCacheStrategies.Keys)
{
string[] strategyAndRegion = StringUtils.CommaDelimitedListToStringArray(this.collectionCacheStrategies.GetProperty(collRole));
if (strategyAndRegion.Length > 1)
{
throw new Exception("Collection cache concurrency strategy region definition not supported yet");
//config.SetCollectionCacheConcurrencyStrategy(collRole, strategyAndRegion[0], strategyAndRegion[1]);
}
else if (strategyAndRegion.Length > 0)
{
config.SetCollectionCacheConcurrencyStrategy(collRole, strategyAndRegion[0]);
}
}
}
#endif
if (this.eventListeners != null)
{
@@ -463,7 +629,8 @@ namespace Spring.Data.NHibernate
}
}
#if NH_2_1
#endif
// Perform custom post-processing in subclasses.
PostProcessConfiguration(config);
@@ -473,6 +640,9 @@ namespace Spring.Data.NHibernate
this.sessionFactory = NewSessionFactory(config);
AfterSessionFactoryCreation();
// set config time DB provider back to null
configTimeDbProvider = null;
}
/// <summary>
@@ -714,7 +884,7 @@ namespace Spring.Data.NHibernate
protected virtual ISessionFactory NewSessionFactory(Configuration config)
{
ISessionFactory sf = config.BuildSessionFactory();
ISessionFactoryImplementor sfImplementor = sf as ISessionFactoryImplementor;
ISessionFactoryImplementor sfImplementor = sf as ISessionFactoryImplementor;
if (sfImplementor != null)
{
@@ -752,7 +922,20 @@ namespace Spring.Data.NHibernate
public override IDbConnection GetConnection()
{
IDbConnection dbCon = _dbProvider.CreateConnection();
IDbProvider provider = _dbProvider;
if (provider == null && configTimeDbProvider != null)
{
// NH 2.1 has a need to access db provider before
// it has been set "the natural way" (it gets the DB's reserved words)
// allow it via configuration time db provider reference
provider = configTimeDbProvider;
}
if (provider == null)
{
throw new Exception("There was no DB provider available, unable to create connection");
}
IDbConnection dbCon = provider.CreateConnection();
dbCon.Open();
return dbCon;
}
@@ -814,9 +997,7 @@ namespace Spring.Data.NHibernate
protected virtual DataAccessException ConvertAdoAccessException(ADOException ex)
{
string sqlString = (ex.SqlString != null)
? ex.SqlString.ToString()
: string.Empty;
string sqlString = (ex.SqlString != null) ? ex.SqlString : string.Empty;
return AdoExceptionTranslator.Translate(
"Hibernate operation: " + ex.Message, sqlString, ex.InnerException);

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{E57B4652-0231-49CB-B058-87E10EFE540D}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -20,7 +20,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>Spring.Data.NHibernate21.xml</DocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<NoWarn>
</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>

View File

@@ -80,6 +80,8 @@ namespace Spring.Aspects.Cache
store.DeleteAll();
Assert.AreEqual(0, cache.Count);
store.GetAllNoCacheKey();
}
#if NET_2_0
@@ -111,6 +113,7 @@ namespace Spring.Aspects.Cache
public interface IInventorStore
{
IList GetAll();
IList GetAllNoCacheKey();
Inventor Load(string name);
void Save(Inventor inventor);
void Delete(Inventor inventor);
@@ -135,6 +138,13 @@ namespace Spring.Aspects.Cache
return new ArrayList(inventors.Values);
}
[CacheResultItems(CacheName = "inventors")]
public IList GetAllNoCacheKey()
{
return new ArrayList(inventors.Values);
}
[CacheResult("inventors", "#name")]
public Inventor Load(string name)
{

View File

@@ -91,7 +91,7 @@ namespace Spring.Data.NHibernate
Assert.IsNotNull(ctx, "Application Context is null");
mgr = ctx["accountManager"] as IAccountManager;
Assert.IsNotNull(mgr, "accountManager not of expected type. Type = " + ctx["accountManager"].GetType().ToString());
Assert.IsNotNull(mgr, "accountManager not of expected type. Type = " + ctx["accountManager"].GetType());
mgr.DoTransfer(transferAmount, transferAmount);
}

View File

@@ -67,7 +67,7 @@ namespace Spring.Data.NHibernate
public TestObject FindByName(string name)
{
IList result = HibernateTemplate.Find(
"select from TestObject as to where to.Name=?",
"from TestObject to where to.Name=?",
name,
TypeFactory.GetStringType(50)
);

View File

@@ -23,7 +23,12 @@
using System.Collections;
using System.IO;
using NHibernate;
using NHibernate.ByteCode.LinFu;
using NHibernate.Cfg;
using NHibernate.Connection;
using NHibernate.Dialect;
using NHibernate.Driver;
using NUnit.Framework;
using Spring.Data.Common;
@@ -43,27 +48,26 @@ namespace Spring.Data.NHibernate
public void LocalSessionFactoryObjectWithDbProviderAndProperties()
{
IDbProvider dbProvider = DbProviderFactory.GetDbProvider("System.Data.SqlClient");
dbProvider.ConnectionString = "badConnectionString";
dbProvider.ConnectionString = "Data Source=(local);Database=Spring;Trusted_Connection=false";
LocalSessionFactoryObject sfo = new LocalSessionFactoryObject();
sfo.DbProvider = dbProvider;
IDictionary properties = new Hashtable();
properties.Add(Environment.Dialect, "NHibernate.Dialect.MsSql2000Dialect");
properties.Add(Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver");
properties.Add(Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
properties.Add(Environment.Dialect, typeof(MsSql2000Dialect).AssemblyQualifiedName);
properties.Add(Environment.ConnectionDriver, typeof(SqlClientDriver).AssemblyQualifiedName);
properties.Add(Environment.ConnectionProvider, typeof(DriverConnectionProvider).AssemblyQualifiedName);
#if NH_2_1
properties.Add(Environment.ProxyFactoryFactoryClass, "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
properties.Add(Environment.ProxyFactoryFactoryClass, typeof(ProxyFactoryFactory).AssemblyQualifiedName);
#endif
sfo.HibernateProperties = properties;
sfo.AfterPropertiesSet();
Assert.IsNotNull(sfo.Configuration);
Assert.AreEqual(sfo.Configuration.Properties[Environment.ConnectionProvider],
"NHibernate.Connection.DriverConnectionProvider");
Assert.AreEqual(sfo.Configuration.Properties[Environment.Dialect],
"NHibernate.Dialect.MsSql2000Dialect");
Assert.AreEqual(sfo.Configuration.Properties[Environment.ConnectionProvider], typeof(DriverConnectionProvider).AssemblyQualifiedName);
Assert.AreEqual(sfo.Configuration.Properties[Environment.ConnectionDriver], typeof(SqlClientDriver).AssemblyQualifiedName);
Assert.AreEqual(sfo.Configuration.Properties[Environment.Dialect], typeof(MsSql2000Dialect).AssemblyQualifiedName);
#if NH_2_1
Assert.AreEqual(sfo.Configuration.Properties[Environment.ProxyFactoryFactoryClass], "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
Assert.AreEqual(sfo.Configuration.Properties[Environment.ProxyFactoryFactoryClass], typeof(ProxyFactoryFactory).AssemblyQualifiedName);
#endif
}
@@ -83,7 +87,7 @@ namespace Spring.Data.NHibernate
{
LocalSessionFactoryObject sfo = new LocalSessionFactoryObject();
IDictionary properties = new Hashtable();
properties.Add(Environment.Dialect, "NHibernate.Dialect.MsSql2000Dialect");
properties.Add(Environment.Dialect, typeof(MsSql2000Dialect).AssemblyQualifiedName);
properties.Add(Environment.ConnectionProvider, "myClass");
sfo.HibernateProperties = properties;
sfo.AfterPropertiesSet();

View File

@@ -4,11 +4,11 @@
<db:provider id="DbProvider1"
provider="SqlServer-1.1"
connectionString="Data Source=MARKT60\SQL2005;Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
<db:provider id="DbProvider2"
provider="SqlServer-1.1"
connectionString="Data Source=MARKT60\SQL2005;Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
<object id="SessionFactory1" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate21">
@@ -31,7 +31,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu"/>
</dictionary>
</property>
@@ -58,7 +58,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu"/>
</dictionary>
</property>

View File

@@ -4,7 +4,7 @@
<db:provider id="DbProvider"
provider="SqlServer-1.1"
connectionString="Data Source=MARKT60\SQL2005;Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
<!--
<db:provider id="DbProvider"
@@ -34,7 +34,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu"/>
</dictionary>
</property>

View File

@@ -10,18 +10,18 @@
<object id="DbProvider" type="Spring.Data.Common.UserCredentialsDbProvider, Spring.Data">
<property name="TargetDbProvider" ref="targetDbProvider"/>
<property name="Username" value="User ID=defaultName"/>
<property name="Password" value="Password=defaultPass"/>
<property name="Username" value="User ID=springqa"/>
<property name="Password" value="Password=springqa"/>
</object>
<db:provider id="targetDbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=MARKT60\SQL2005;Trusted_Connection=False"/>
connectionString="Data Source=(local);Database=Spring;Trusted_Connection=False"/>
<db:provider id="standardDbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=MARKT60\SQL2005;Trusted_Connection=False;User ID=springqa;Password=springqa"/>
connectionString="Data Source=(local);Database=Spring;Trusted_Connection=False;User ID=springqa;Password=springqa"/>
@@ -57,7 +57,7 @@
-->
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu"/>
</dictionary>
</property>

View File

@@ -5,7 +5,7 @@
<db:provider id="DbProvider"
provider="SqlServer-1.1"
connectionString="Data Source=MARKT60\SQL2005;Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
connectionString="Data Source=(local);Database=Spring;User ID=springqa;Password=springqa;Trusted_Connection=False"/>
<!--
connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;User ID=springqa; Password=springqa"/>
-->
@@ -54,7 +54,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu"/>
</dictionary>
</property>

View File

@@ -28,10 +28,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Castle.DynamicProxy, Version=1.1.5.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Castle.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=1.0.2.0, Culture=neutral, PublicKeyToken=af08829b84f0328e">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
@@ -40,6 +36,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Iesi.Collections.dll</HintPath>
</Reference>
<Reference Include="LinFu.DynamicProxy, Version=1.0.3.14911, Culture=neutral, PublicKeyToken=62a6874124340d6e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\LinFu.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\log4net.dll</HintPath>
@@ -48,9 +48,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NHibernate.ByteCode.Castle, Version=2.1.0.1001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<Reference Include="NHibernate.ByteCode.LinFu, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.Castle.dll</HintPath>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.LinFu.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.4.1.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{4A07E150-ED90-407C-8CAD-4760444DDFD9}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -28,10 +28,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Castle.DynamicProxy, Version=1.1.5.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Castle.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=1.0.2.0, Culture=neutral, PublicKeyToken=af08829b84f0328e">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
@@ -40,6 +36,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Iesi.Collections.dll</HintPath>
</Reference>
<Reference Include="LinFu.DynamicProxy, Version=1.0.3.14911, Culture=neutral, PublicKeyToken=62a6874124340d6e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\LinFu.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\log4net.dll</HintPath>
@@ -48,9 +48,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NHibernate.ByteCode.Castle, Version=2.1.0.1001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<Reference Include="NHibernate.ByteCode.LinFu, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.Castle.dll</HintPath>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.LinFu.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.4.1.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>

View File

@@ -8,7 +8,7 @@
<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa;"/>
connectionString="Data Source=(local);Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa;"/>
@@ -28,7 +28,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" />
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu" />
</dictionary>
</property>

View File

@@ -9,7 +9,7 @@
<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa;"/>
connectionString="Data Source=(local);Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa;"/>
@@ -29,7 +29,7 @@
value="NHibernate.Driver.SqlClientDriver"/>
<entry key="proxyfactory.factory_class"
value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" />
value="NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu" />
</dictionary>
</property>

View File

@@ -28,10 +28,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Castle.DynamicProxy, Version=1.1.5.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Castle.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=1.1.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
@@ -40,6 +36,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Iesi.Collections.dll</HintPath>
</Reference>
<Reference Include="LinFu.DynamicProxy, Version=1.0.3.14911, Culture=neutral, PublicKeyToken=62a6874124340d6e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\LinFu.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\log4net.dll</HintPath>
@@ -48,9 +48,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NHibernate.ByteCode.Castle, Version=2.1.0.1001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<Reference Include="NHibernate.ByteCode.LinFu, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.Castle.dll</HintPath>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.LinFu.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.2.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{90FEE979-7367-4542-BCCB-BF634E04A9D3}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -28,10 +28,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Castle.DynamicProxy2, Version=1.1.5.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Castle.DynamicProxy2.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=1.1.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
@@ -40,6 +36,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\Iesi.Collections.dll</HintPath>
</Reference>
<Reference Include="LinFu.DynamicProxy, Version=1.0.3.14911, Culture=neutral, PublicKeyToken=62a6874124340d6e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\LinFu.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\log4net.dll</HintPath>
@@ -48,9 +48,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.dll</HintPath>
</Reference>
<Reference Include="NHibernate.ByteCode.Castle, Version=2.1.0.1001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<Reference Include="NHibernate.ByteCode.LinFu, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.Castle.dll</HintPath>
<HintPath>..\..\..\lib\NHibernate21\net\2.0\NHibernate.ByteCode.LinFu.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.2.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>