You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(248) |
May
(82) |
Jun
(90) |
Jul
(177) |
Aug
(253) |
Sep
(157) |
Oct
(151) |
Nov
(143) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(152) |
Feb
(107) |
Mar
(177) |
Apr
(133) |
May
(259) |
Jun
(81) |
Jul
(119) |
Aug
(306) |
Sep
(416) |
Oct
(240) |
Nov
(329) |
Dec
(206) |
2006 |
Jan
(466) |
Feb
(382) |
Mar
(153) |
Apr
(162) |
May
(133) |
Jun
(21) |
Jul
(18) |
Aug
(37) |
Sep
(97) |
Oct
(114) |
Nov
(110) |
Dec
(28) |
2007 |
Jan
(74) |
Feb
(65) |
Mar
(49) |
Apr
(76) |
May
(43) |
Jun
(15) |
Jul
(68) |
Aug
(55) |
Sep
(63) |
Oct
(59) |
Nov
(70) |
Dec
(66) |
2008 |
Jan
(71) |
Feb
(60) |
Mar
(120) |
Apr
(31) |
May
(48) |
Jun
(81) |
Jul
(107) |
Aug
(51) |
Sep
(80) |
Oct
(83) |
Nov
(83) |
Dec
(79) |
2009 |
Jan
(83) |
Feb
(110) |
Mar
(97) |
Apr
(91) |
May
(291) |
Jun
(250) |
Jul
(197) |
Aug
(58) |
Sep
(54) |
Oct
(122) |
Nov
(68) |
Dec
(34) |
2010 |
Jan
(50) |
Feb
(17) |
Mar
(63) |
Apr
(61) |
May
(84) |
Jun
(81) |
Jul
(138) |
Aug
(144) |
Sep
(78) |
Oct
(26) |
Nov
(30) |
Dec
(61) |
2011 |
Jan
(33) |
Feb
(35) |
Mar
(166) |
Apr
(221) |
May
(109) |
Jun
(76) |
Jul
(27) |
Aug
(37) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ric...@us...> - 2010-08-14 21:04:57
|
Revision: 5155 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5155&view=rev Author: ricbrown Date: 2010-08-14 21:04:51 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Added example of overriding join in QueryOver. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2010-08-14 21:04:51 UTC (rev 5155) @@ -39,6 +39,8 @@ { s.CreateQuery("delete from Child").ExecuteUpdate(); s.CreateQuery("delete from Person").ExecuteUpdate(); + s.CreateQuery("delete from JoinedChild").ExecuteUpdate(); + s.CreateQuery("delete from Parent").ExecuteUpdate(); t.Commit(); } } @@ -345,6 +347,40 @@ } [Test] + public void OverrideEagerJoin() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + s.Save(new Parent() + .AddChild(new JoinedChild()) + .AddChild(new JoinedChild())); + + t.Commit(); + } + + using (ISession s = OpenSession()) + { + var persons = + s.QueryOver<Parent>() + .List(); + + Assert.That(NHibernateUtil.IsInitialized(persons[0].Children), "Default query did not eagerly load children"); + } + + using (ISession s = OpenSession()) + { + var persons = + s.QueryOver<Parent>() + .Fetch(p => p.Children).Lazy + .List(); + + Assert.That(persons.Count, Is.EqualTo(1)); + Assert.That(!NHibernateUtil.IsInitialized(persons[0].Children), "Children not lazy loaded"); + } + } + + [Test] public void RowCount() { SetupPagingData(); Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2010-08-14 21:04:51 UTC (rev 5155) @@ -25,4 +25,21 @@ <many-to-one name="Parent" class="Person" /> </class> + <class name="Parent"> + <id name="Id"> + <generator class="native"/> + </id> + <bag name="Children" fetch="join" inverse="true" cascade="all-delete-orphan"> + <key column="Parent" /> + <one-to-many class="JoinedChild" /> + </bag> + </class> + + <class name="JoinedChild"> + <id name="Id"> + <generator class="native"/> + </id> + <many-to-one name="Parent" class="Parent" /> + </class> + </hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2010-08-14 21:04:51 UTC (rev 5155) @@ -81,5 +81,28 @@ public int Count { get; set; } } + public class Parent + { + public Parent() + { + Children = new List<JoinedChild>(); + } + + public virtual int Id { get; set; } + public virtual IEnumerable<JoinedChild> Children { get; set; } + + public virtual Parent AddChild(JoinedChild child) + { + child.Parent = this; + (Children as IList<JoinedChild>).Add(child); + return this; + } + } + + public class JoinedChild + { + public virtual int Id { get; set; } + public virtual Parent Parent { get; set; } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ric...@us...> - 2010-08-14 20:29:20
|
Revision: 5154 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5154&view=rev Author: ricbrown Date: 2010-08-14 20:29:14 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Updated config for tests to work with Oracle. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/App.config trunk/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/App.config trunk/nhibernate/src/NHibernate.ByteCode.Spring.Tests/App.config Modified: trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/App.config =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/App.config 2010-08-14 17:52:57 UTC (rev 5153) +++ trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/App.config 2010-08-14 20:29:14 UTC (rev 5154) @@ -24,6 +24,7 @@ <property name="prepare_sql">false</property> <property name="query.startup_check">false</property> <property name="connection.isolation">ReadCommitted</property> + <property name="hbm2ddl.keywords">none</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string"> Server=(local);initial catalog=nhibernate;Integrated Security=SSPI Modified: trunk/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/App.config =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/App.config 2010-08-14 17:52:57 UTC (rev 5153) +++ trunk/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/App.config 2010-08-14 20:29:14 UTC (rev 5154) @@ -22,6 +22,7 @@ <property name="prepare_sql">false</property> <property name="query.startup_check">false</property> <property name="connection.isolation">ReadCommitted</property> + <property name="hbm2ddl.keywords">none</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string"> Server=(local);initial catalog=nhibernate;Integrated Security=SSPI Modified: trunk/nhibernate/src/NHibernate.ByteCode.Spring.Tests/App.config =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Spring.Tests/App.config 2010-08-14 17:52:57 UTC (rev 5153) +++ trunk/nhibernate/src/NHibernate.ByteCode.Spring.Tests/App.config 2010-08-14 20:29:14 UTC (rev 5154) @@ -22,6 +22,7 @@ <property name="prepare_sql">false</property> <property name="query.startup_check">false</property> <property name="connection.isolation">ReadCommitted</property> + <property name="hbm2ddl.keywords">none</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string"> Server=(local);initial catalog=nhibernate;Integrated Security=SSPI This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:53:03
|
Revision: 5153 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5153&view=rev Author: fabiomaulo Date: 2010-08-14 17:52:57 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Sybase drivers using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs trunk/nhibernate/src/NHibernate/Driver/SybaseClientDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs 2010-08-14 17:50:54 UTC (rev 5152) +++ trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs 2010-08-14 17:52:57 UTC (rev 5153) @@ -16,6 +16,7 @@ /// </exception> public SybaseAdoNet12ClientDriver() : base( + "Sybase.Data.AseClient", "Sybase.AdoNet2.AseClient", "Sybase.Data.AseClient.AseConnection", "Sybase.Data.AseClient.AseCommand") Modified: trunk/nhibernate/src/NHibernate/Driver/SybaseClientDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SybaseClientDriver.cs 2010-08-14 17:50:54 UTC (rev 5152) +++ trunk/nhibernate/src/NHibernate/Driver/SybaseClientDriver.cs 2010-08-14 17:52:57 UTC (rev 5153) @@ -18,6 +18,7 @@ /// </exception> public SybaseClientDriver() : base( "Sybase.Data.AseClient", + "Sybase.Data.AseClient", "Sybase.Data.AseClient.AseConnection", "Sybase.Data.AseClient.AseCommand") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:51:00
|
Revision: 5152 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5152&view=rev Author: fabiomaulo Date: 2010-08-14 17:50:54 +0000 (Sat, 14 Aug 2010) Log Message: ----------- SQLite drivers using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/SQLite20Driver.cs trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/SQLite20Driver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SQLite20Driver.cs 2010-08-14 17:48:54 UTC (rev 5151) +++ trunk/nhibernate/src/NHibernate/Driver/SQLite20Driver.cs 2010-08-14 17:50:54 UTC (rev 5152) @@ -27,6 +27,7 @@ /// </exception> public SQLite20Driver() : base( "System.Data.SQLite", + "System.Data.SQLite", "System.Data.SQLite.SQLiteConnection", "System.Data.SQLite.SQLiteCommand") { Modified: trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-14 17:48:54 UTC (rev 5151) +++ trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-14 17:50:54 UTC (rev 5152) @@ -27,6 +27,7 @@ /// Thrown when the <c>SQLite.NET</c> assembly can not be loaded. /// </exception> public SQLiteDriver() : base( + "System.Data.SQLite", "SQLite.NET", "Finisar.SQLite.SQLiteConnection", "Finisar.SQLite.SQLiteCommand") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:49:00
|
Revision: 5151 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5151&view=rev Author: fabiomaulo Date: 2010-08-14 17:48:54 +0000 (Sat, 14 Aug 2010) Log Message: ----------- NpgsqlDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/NpgsqlDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/NpgsqlDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/NpgsqlDriver.cs 2010-08-14 17:47:59 UTC (rev 5150) +++ trunk/nhibernate/src/NHibernate/Driver/NpgsqlDriver.cs 2010-08-14 17:48:54 UTC (rev 5151) @@ -31,6 +31,7 @@ /// </exception> public NpgsqlDriver() : base( "Npgsql", + "Npgsql", "Npgsql.NpgsqlConnection", "Npgsql.NpgsqlCommand") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:48:07
|
Revision: 5150 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5150&view=rev Author: fabiomaulo Date: 2010-08-14 17:47:59 +0000 (Sat, 14 Aug 2010) Log Message: ----------- IfxDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/IfxDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/IfxDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/IfxDriver.cs 2010-08-14 17:46:32 UTC (rev 5149) +++ trunk/nhibernate/src/NHibernate/Driver/IfxDriver.cs 2010-08-14 17:47:59 UTC (rev 5150) @@ -14,6 +14,7 @@ public IfxDriver() : base( "IBM.Data.Informix", + "IBM.Data.Informix", "IBM.Data.Informix.IfxConnection", "IBM.Data.Informix.IfxCommand") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:46:38
|
Revision: 5149 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5149&view=rev Author: fabiomaulo Date: 2010-08-14 17:46:32 +0000 (Sat, 14 Aug 2010) Log Message: ----------- OracleDataClientDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/OracleDataClientDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/OracleDataClientDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/OracleDataClientDriver.cs 2010-08-14 17:44:56 UTC (rev 5148) +++ trunk/nhibernate/src/NHibernate/Driver/OracleDataClientDriver.cs 2010-08-14 17:46:32 UTC (rev 5149) @@ -32,6 +32,7 @@ /// </exception> public OracleDataClientDriver() : base( + "Oracle.DataAccess.Client", driverAssemblyName, connectionTypeName, commandTypeName) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:45:02
|
Revision: 5148 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5148&view=rev Author: fabiomaulo Date: 2010-08-14 17:44:56 +0000 (Sat, 14 Aug 2010) Log Message: ----------- OracleClientDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/OracleClientDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/OracleClientDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/OracleClientDriver.cs 2010-08-14 17:43:44 UTC (rev 5147) +++ trunk/nhibernate/src/NHibernate/Driver/OracleClientDriver.cs 2010-08-14 17:44:56 UTC (rev 5148) @@ -12,7 +12,9 @@ private static readonly SqlType GuidSqlType = new SqlType(DbType.Binary, 16); public OracleClientDriver() : - base("System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + base( + "System.Data.OracleClient", + "System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "System.Data.OracleClient.OracleConnection", "System.Data.OracleClient.OracleCommand") { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:43:50
|
Revision: 5147 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5147&view=rev Author: fabiomaulo Date: 2010-08-14 17:43:44 +0000 (Sat, 14 Aug 2010) Log Message: ----------- MySqlDataDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/MySqlDataDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/MySqlDataDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/MySqlDataDriver.cs 2010-08-14 17:41:32 UTC (rev 5146) +++ trunk/nhibernate/src/NHibernate/Driver/MySqlDataDriver.cs 2010-08-14 17:43:44 UTC (rev 5147) @@ -25,6 +25,7 @@ /// Thrown when the <c>MySql.Data</c> assembly can not be loaded. /// </exception> public MySqlDataDriver() : base( + "MySql.Data.MySqlClient", "MySql.Data", "MySql.Data.MySqlClient.MySqlConnection", "MySql.Data.MySqlClient.MySqlCommand") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:41:38
|
Revision: 5146 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5146&view=rev Author: fabiomaulo Date: 2010-08-14 17:41:32 +0000 (Sat, 14 Aug 2010) Log Message: ----------- FirebirdClientDriver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/FirebirdClientDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/FirebirdClientDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/FirebirdClientDriver.cs 2010-08-14 17:40:18 UTC (rev 5145) +++ trunk/nhibernate/src/NHibernate/Driver/FirebirdClientDriver.cs 2010-08-14 17:41:32 UTC (rev 5146) @@ -14,6 +14,7 @@ /// </exception> public FirebirdClientDriver() : base( "FirebirdSql.Data.FirebirdClient", + "FirebirdSql.Data.FirebirdClient", "FirebirdSql.Data.FirebirdClient.FbConnection", "FirebirdSql.Data.FirebirdClient.FbCommand") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:40:24
|
Revision: 5145 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5145&view=rev Author: fabiomaulo Date: 2010-08-14 17:40:18 +0000 (Sat, 14 Aug 2010) Log Message: ----------- DB2Driver using DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/DB2Driver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/DB2Driver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/DB2Driver.cs 2010-08-14 17:37:12 UTC (rev 5144) +++ trunk/nhibernate/src/NHibernate/Driver/DB2Driver.cs 2010-08-14 17:40:18 UTC (rev 5145) @@ -15,6 +15,7 @@ /// </exception> public DB2Driver() : base( "IBM.Data.DB2", + "IBM.Data.DB2", "IBM.Data.DB2.DB2Connection", "IBM.Data.DB2.DB2Command") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 17:37:19
|
Revision: 5144 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5144&view=rev Author: fabiomaulo Date: 2010-08-14 17:37:12 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Refactoring of ReflectionBasedDriver in order to use DbProviderFactories Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DriverTest/ReflectionBasedDriverTest.cs Modified: trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-14 16:58:49 UTC (rev 5143) +++ trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-14 17:37:12 UTC (rev 5144) @@ -1,4 +1,5 @@ using System.Data; +using System.Data.Common; using NHibernate.Util; namespace NHibernate.Driver @@ -20,16 +21,38 @@ /// <param name="connectionTypeName">Connection type name.</param> /// <param name="commandTypeName">Command type name.</param> protected ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) + : this(null, driverAssemblyName, connectionTypeName, commandTypeName) { + } + + /// <summary> + /// Initializes a new instance of <see cref="ReflectionBasedDriver" /> with + /// type names that are loaded from the specified assembly. + /// </summary> + /// <param name="providerInvariantName">The Invariant name of a provider.</param> + /// <param name="driverAssemblyName">Assembly to load the types from.</param> + /// <param name="connectionTypeName">Connection type name.</param> + /// <param name="commandTypeName">Command type name.</param> + /// <seealso cref="DbProviderFactories.GetFactory(string)"/> + protected ReflectionBasedDriver(string providerInvariantName, string driverAssemblyName, string connectionTypeName, string commandTypeName) + { // Try to get the types from an already loaded assembly var connectionType = ReflectHelper.TypeFromAssembly(connectionTypeName, driverAssemblyName, false); var commandType = ReflectHelper.TypeFromAssembly(commandTypeName, driverAssemblyName, false); if (connectionType == null || commandType == null) { - throw new HibernateException(string.Format(ReflectionTypedProviderExceptionMessageTemplate, driverAssemblyName)); + if (string.IsNullOrEmpty(providerInvariantName)) + { + throw new HibernateException(string.Format(ReflectionTypedProviderExceptionMessageTemplate, driverAssemblyName)); + } + var factory = DbProviderFactories.GetFactory(providerInvariantName); + connectionCommandProvider = new DbProviderFactoryDriveConnectionCommandProvider(factory); } - connectionCommandProvider = new ReflectionDriveConnectionCommandProvider(connectionType, commandType); + else + { + connectionCommandProvider = new ReflectionDriveConnectionCommandProvider(connectionType, commandType); + } } public override IDbConnection CreateConnection() Added: trunk/nhibernate/src/NHibernate.Test/DriverTest/ReflectionBasedDriverTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DriverTest/ReflectionBasedDriverTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DriverTest/ReflectionBasedDriverTest.cs 2010-08-14 17:37:12 UTC (rev 5144) @@ -0,0 +1,118 @@ +using System; +using NHibernate.Driver; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.DriverTest +{ + public class ReflectionBasedDriverTest + { + private class MyDriverWithWrongClassesAndGoodDbProviderFactory : ReflectionBasedDriver + { + public MyDriverWithWrongClassesAndGoodDbProviderFactory() + : base("System.Data.OracleClient", "pizza1", "pizza2", "pizza3") + { + } + public MyDriverWithWrongClassesAndGoodDbProviderFactory(string assemblyName) + : base("System.Data.OracleClient", assemblyName, "pizza2", "pizza3") + { + } + + public override bool UseNamedPrefixInSql + { + get { throw new NotImplementedException(); } + } + + public override bool UseNamedPrefixInParameter + { + get { throw new NotImplementedException(); } + } + + public override string NamedPrefix + { + get { throw new NotImplementedException(); } + } + } + private class MyDriverWithNoDbProviderFactory : ReflectionBasedDriver + { + public MyDriverWithNoDbProviderFactory(): + base(null, + "System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "System.Data.OracleClient.OracleConnection", + "System.Data.OracleClient.OracleCommand") { } + + public override bool UseNamedPrefixInSql + { + get { throw new NotImplementedException(); } + } + + public override bool UseNamedPrefixInParameter + { + get { throw new NotImplementedException(); } + } + + public override string NamedPrefix + { + get { throw new NotImplementedException(); } + } + } + + [Test] + public void WhenCreatedWithGoodDbProviderThenNotThrows() + { + Executing.This(()=> new MyDriverWithWrongClassesAndGoodDbProviderFactory()).Should().NotThrow(); + } + + [Test] + public void WhenCreatedWithNullAssemblyAndGoodDbProviderThenNotThrows() + { + Executing.This(() => new MyDriverWithWrongClassesAndGoodDbProviderFactory(null)).Should().NotThrow(); + } + + [Test] + public void WhenCreatedWithDbFactoryThenCanReturnConnection() + { + var provider = new MyDriverWithWrongClassesAndGoodDbProviderFactory(); + using (var connection = provider.CreateConnection()) + { + connection.Should().Not.Be.Null(); + } + } + + [Test] + public void WhenCreatedWithDbFactoryThenCanReturnCommand() + { + var provider = new MyDriverWithWrongClassesAndGoodDbProviderFactory(); + using (var command = provider.CreateCommand()) + { + command.Should().Not.Be.Null(); + } + } + + [Test] + public void WhenCreatedWithNoDbProviderThenNotThrows() + { + Executing.This(() => new MyDriverWithNoDbProviderFactory()).Should().NotThrow(); + } + + [Test] + public void WhenCreatedWithNoDbFactoryThenCanReturnConnection() + { + var provider = new MyDriverWithNoDbProviderFactory(); + using (var connection = provider.CreateConnection()) + { + connection.Should().Not.Be.Null(); + } + } + + [Test] + public void WhenCreatedNoWithDbFactoryThenCanReturnCommand() + { + var provider = new MyDriverWithNoDbProviderFactory(); + using (var command = provider.CreateCommand()) + { + command.Should().Not.Be.Null(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-14 16:58:49 UTC (rev 5143) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-14 17:37:12 UTC (rev 5144) @@ -182,6 +182,7 @@ <Compile Include="Criteria\Reptile.cs" /> <Compile Include="DialectTest\MsSqlCe40DialectFixture.cs" /> <Compile Include="DriverTest\DbProviderFactoryDriveConnectionCommandProviderTest.cs" /> + <Compile Include="DriverTest\ReflectionBasedDriverTest.cs" /> <Compile Include="DriverTest\Sql2008DateTime2Test.cs" /> <Compile Include="DriverTest\SqlClientDriverFixture.cs" /> <Compile Include="DriverTest\SqlServerCeDriverFixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 16:58:55
|
Revision: 5143 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5143&view=rev Author: fabiomaulo Date: 2010-08-14 16:58:49 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Minor (extracted exception message template) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-14 16:52:58 UTC (rev 5142) +++ trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-14 16:58:49 UTC (rev 5143) @@ -5,6 +5,11 @@ { public abstract class ReflectionBasedDriver : DriverBase { + protected const string ReflectionTypedProviderExceptionMessageTemplate = "The IDbCommand and IDbConnection implementation in the assembly {0} could not be found. " + + "Ensure that the assembly {0} is located in the application directory or in the Global " + + "Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the " + + "application configuration file to specify the full name of the assembly."; + private readonly IDriveConnectionCommandProvider connectionCommandProvider; /// <summary> @@ -22,13 +27,7 @@ if (connectionType == null || commandType == null) { - throw new HibernateException( - string.Format( - "The IDbCommand and IDbConnection implementation in the assembly {0} could not be found. " - + "Ensure that the assembly {0} is located in the application directory or in the Global " - + "Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the " - + "application configuration file to specify the full name of the assembly.", - driverAssemblyName)); + throw new HibernateException(string.Format(ReflectionTypedProviderExceptionMessageTemplate, driverAssemblyName)); } connectionCommandProvider = new ReflectionDriveConnectionCommandProvider(connectionType, commandType); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 16:53:05
|
Revision: 5142 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5142&view=rev Author: fabiomaulo Date: 2010-08-14 16:52:58 +0000 (Sat, 14 Aug 2010) Log Message: ----------- DbProviderFactoryDriveConnectionCommandProvider Modified Paths: -------------- trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Driver/DbProviderFactoryDriveConnectionCommandProvider.cs trunk/nhibernate/src/NHibernate.Test/DriverTest/DbProviderFactoryDriveConnectionCommandProviderTest.cs Added: trunk/nhibernate/src/NHibernate/Driver/DbProviderFactoryDriveConnectionCommandProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/DbProviderFactoryDriveConnectionCommandProvider.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Driver/DbProviderFactoryDriveConnectionCommandProvider.cs 2010-08-14 16:52:58 UTC (rev 5142) @@ -0,0 +1,30 @@ +using System; +using System.Data; +using System.Data.Common; + +namespace NHibernate.Driver +{ + public class DbProviderFactoryDriveConnectionCommandProvider : IDriveConnectionCommandProvider + { + private readonly DbProviderFactory dbProviderFactory; + + public DbProviderFactoryDriveConnectionCommandProvider(DbProviderFactory dbProviderFactory) + { + if (dbProviderFactory == null) + { + throw new ArgumentNullException("dbProviderFactory"); + } + this.dbProviderFactory = dbProviderFactory; + } + + public IDbConnection CreateConnection() + { + return dbProviderFactory.CreateConnection(); + } + + public IDbCommand CreateCommand() + { + return dbProviderFactory.CreateCommand(); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2010-08-14 15:59:58 UTC (rev 5141) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2010-08-14 16:52:58 UTC (rev 5142) @@ -593,6 +593,7 @@ <Compile Include="Dialect\SybaseASA10Dialect.cs" /> <Compile Include="Dialect\SybaseASA9Dialect.cs" /> <Compile Include="Driver\CsharpSqliteDriver.cs" /> + <Compile Include="Driver\DbProviderFactoryDriveConnectionCommandProvider.cs" /> <Compile Include="Driver\IDriveConnectionCommandProvider.cs" /> <Compile Include="Driver\IfxDriver.cs" /> <Compile Include="Driver\OracleLiteDataClientDriver.cs" /> Added: trunk/nhibernate/src/NHibernate.Test/DriverTest/DbProviderFactoryDriveConnectionCommandProviderTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DriverTest/DbProviderFactoryDriveConnectionCommandProviderTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DriverTest/DbProviderFactoryDriveConnectionCommandProviderTest.cs 2010-08-14 16:52:58 UTC (rev 5142) @@ -0,0 +1,39 @@ +using System; +using System.Data.Common; +using NHibernate.Driver; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.DriverTest +{ + public class DbProviderFactoryDriveConnectionCommandProviderTest + { + [Test] + public void WhenCreatedWithNullDbFactoryThenThrows() + { + Executing.This(() => new DbProviderFactoryDriveConnectionCommandProvider(null)).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void WhenCreatedWithDbFactoryThenCanReturnConnection() + { + var factory = DbProviderFactories.GetFactory("System.Data.OracleClient"); + var provider = new DbProviderFactoryDriveConnectionCommandProvider(factory); + using(var connection =provider.CreateConnection()) + { + connection.Should().Not.Be.Null(); + } + } + + [Test] + public void WhenCreatedWithDbFactoryThenCanReturnCommand() + { + var factory = DbProviderFactories.GetFactory("System.Data.OracleClient"); + var provider = new DbProviderFactoryDriveConnectionCommandProvider(factory); + using (var command = provider.CreateCommand()) + { + command.Should().Not.Be.Null(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-14 15:59:58 UTC (rev 5141) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-14 16:52:58 UTC (rev 5142) @@ -181,6 +181,7 @@ <Compile Include="Criteria\ProjectionsTest.cs" /> <Compile Include="Criteria\Reptile.cs" /> <Compile Include="DialectTest\MsSqlCe40DialectFixture.cs" /> + <Compile Include="DriverTest\DbProviderFactoryDriveConnectionCommandProviderTest.cs" /> <Compile Include="DriverTest\Sql2008DateTime2Test.cs" /> <Compile Include="DriverTest\SqlClientDriverFixture.cs" /> <Compile Include="DriverTest\SqlServerCeDriverFixture.cs" /> @@ -2578,7 +2579,6 @@ <EmbeddedResource Include="DynamicEntity\Tuplizer\Customer.hbm.xml" /> </ItemGroup> <ItemGroup> - <Folder Include="NHSpecificTest\NH2224" /> <Folder Include="Properties\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-14 16:00:05
|
Revision: 5141 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5141&view=rev Author: fabiomaulo Date: 2010-08-14 15:59:58 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Refactoring Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Driver/IDriveConnectionCommandProvider.cs trunk/nhibernate/src/NHibernate/Driver/ReflectionDriveConnectionCommandProvider.cs Added: trunk/nhibernate/src/NHibernate/Driver/IDriveConnectionCommandProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/IDriveConnectionCommandProvider.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Driver/IDriveConnectionCommandProvider.cs 2010-08-14 15:59:58 UTC (rev 5141) @@ -0,0 +1,10 @@ +using System.Data; + +namespace NHibernate.Driver +{ + public interface IDriveConnectionCommandProvider + { + IDbConnection CreateConnection(); + IDbCommand CreateCommand(); + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-11 16:08:53 UTC (rev 5140) +++ trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2010-08-14 15:59:58 UTC (rev 5141) @@ -5,8 +5,7 @@ { public abstract class ReflectionBasedDriver : DriverBase { - private readonly System.Type connectionType; - private readonly System.Type commandType; + private readonly IDriveConnectionCommandProvider connectionCommandProvider; /// <summary> /// Initializes a new instance of <see cref="ReflectionBasedDriver" /> with @@ -18,8 +17,8 @@ protected ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) { // Try to get the types from an already loaded assembly - connectionType = ReflectHelper.TypeFromAssembly(connectionTypeName, driverAssemblyName, false); - commandType = ReflectHelper.TypeFromAssembly(commandTypeName, driverAssemblyName, false); + var connectionType = ReflectHelper.TypeFromAssembly(connectionTypeName, driverAssemblyName, false); + var commandType = ReflectHelper.TypeFromAssembly(commandTypeName, driverAssemblyName, false); if (connectionType == null || commandType == null) { @@ -31,16 +30,17 @@ + "application configuration file to specify the full name of the assembly.", driverAssemblyName)); } + connectionCommandProvider = new ReflectionDriveConnectionCommandProvider(connectionType, commandType); } public override IDbConnection CreateConnection() { - return (IDbConnection) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(connectionType); + return connectionCommandProvider.CreateConnection(); } public override IDbCommand CreateCommand() { - return (IDbCommand) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(commandType); + return connectionCommandProvider.CreateCommand(); } } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Driver/ReflectionDriveConnectionCommandProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/ReflectionDriveConnectionCommandProvider.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Driver/ReflectionDriveConnectionCommandProvider.cs 2010-08-14 15:59:58 UTC (rev 5141) @@ -0,0 +1,40 @@ +using System; +using System.Data; +using Environment = NHibernate.Cfg.Environment; + +namespace NHibernate.Driver +{ + public class ReflectionDriveConnectionCommandProvider : IDriveConnectionCommandProvider + { + private readonly System.Type commandType; + private readonly System.Type connectionType; + + public ReflectionDriveConnectionCommandProvider(System.Type connectionType, System.Type commandType) + { + if (connectionType == null) + { + throw new ArgumentNullException("connectionType"); + } + if (commandType == null) + { + throw new ArgumentNullException("commandType"); + } + this.connectionType = connectionType; + this.commandType = commandType; + } + + #region IDriveConnectionCommandProvider Members + + public IDbConnection CreateConnection() + { + return (IDbConnection) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(connectionType); + } + + public IDbCommand CreateCommand() + { + return (IDbCommand) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(commandType); + } + + #endregion + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2010-08-11 16:08:53 UTC (rev 5140) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2010-08-14 15:59:58 UTC (rev 5141) @@ -593,8 +593,10 @@ <Compile Include="Dialect\SybaseASA10Dialect.cs" /> <Compile Include="Dialect\SybaseASA9Dialect.cs" /> <Compile Include="Driver\CsharpSqliteDriver.cs" /> + <Compile Include="Driver\IDriveConnectionCommandProvider.cs" /> <Compile Include="Driver\IfxDriver.cs" /> <Compile Include="Driver\OracleLiteDataClientDriver.cs" /> + <Compile Include="Driver\ReflectionDriveConnectionCommandProvider.cs" /> <Compile Include="Engine\Query\CallableParser.cs" /> <Compile Include="Engine\Query\HQLExpressionQueryPlan.cs" /> <Compile Include="Engine\Query\HQLStringQueryPlan.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-11 17:08:10
|
Revision: 5140 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5140&view=rev Author: julian-maughan Date: 2010-08-11 16:08:53 +0000 (Wed, 11 Aug 2010) Log Message: ----------- Fixed compiler warning: use of obsolete NUnit API Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/CfgTest/Loquacious/EntityCacheConfigurationFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/CfgTest/Loquacious/EntityCacheConfigurationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/CfgTest/Loquacious/EntityCacheConfigurationFixture.cs 2010-08-11 14:44:01 UTC (rev 5139) +++ trunk/nhibernate/src/NHibernate.Test/CfgTest/Loquacious/EntityCacheConfigurationFixture.cs 2010-08-11 16:08:53 UTC (rev 5140) @@ -77,7 +77,7 @@ var exception = Assert.Throws<ArgumentOutOfRangeException>( () => configure.EntityCache<EntityToCache>(ce => ce.Collection(e => e.Relation.Elements, cc => { }))); - Assert.That(exception.Message, Text.Contains("Collection not owned by")); + Assert.That(exception.Message, Is.StringContaining("Collection not owned by")); } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-11 14:44:07
|
Revision: 5139 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5139&view=rev Author: julian-maughan Date: 2010-08-11 14:44:01 +0000 (Wed, 11 Aug 2010) Log Message: ----------- NHSpecific test for NH-2224 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Domain.cs 2010-08-11 14:44:01 UTC (rev 5139) @@ -0,0 +1,32 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2224 +{ + public class Class1 + { + private long _number; + private DateTime _dateOfChange; + + public virtual long Number + { + get + { + return _number; + } + } + + + public virtual DateTime DateOfChange + { + get + { + return _dateOfChange; + } + set + { + if (_dateOfChange != value) + _dateOfChange = value; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Fixture.cs 2010-08-11 14:44:01 UTC (rev 5139) @@ -0,0 +1,59 @@ +using System; +using NHibernate.Cfg; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2224 +{ + [TestFixture] + public class Fixture: BugTestCase + { + protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) + { + return dialect is NHibernate.Dialect.SQLiteDialect; + } + + protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + var class1 = new Class1() { DateOfChange = DateTime.Now }; + s.Save(class1); + t.Commit(); + } + } + + protected override void OnTearDown() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + s.Delete("from Class1"); + t.Commit(); + } + base.OnTearDown(); + } + + [Test] + public void Test() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + var criteria = s.CreateCriteria<Class1>(); + criteria.Add(Restrictions.In( + Projections.SqlFunction( + "year", + NHibernateUtil.DateTime, + Projections.Property("DateOfChange")), + new string[] { "2010", "2011" })); + + var result = criteria.List(); + + Assert.That(result.Count, Is.EqualTo(1)); + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2224/Mappings.hbm.xml 2010-08-11 14:44:01 UTC (rev 5139) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH2224" + assembly="NHibernate.Test" + default-access="field.camelcase-underscore"> + + <class name="Class1"> + <id name="Number"> + <generator class="native" /> + </id> + <property name="DateOfChange" not-null="true" /> + </class> +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-11 14:37:05 UTC (rev 5138) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-11 14:44:01 UTC (rev 5139) @@ -1,4 +1,5 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> @@ -454,6 +455,8 @@ <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2148\BugFixture.cs" /> <Compile Include="NHSpecificTest\NH2148\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2224\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2224\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2245\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2245\Model.cs" /> <Compile Include="NHSpecificTest\NH2266\Domain.cs" /> @@ -1733,6 +1736,7 @@ <None Include="DbScripts\MsSql2008DialectLinqReadonlyDropScript.sql"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> + <EmbeddedResource Include="NHSpecificTest\NH2224\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\NHibernate.ByteCode.Castle\NHibernate.ByteCode.Castle.csproj"> @@ -2574,6 +2578,7 @@ <EmbeddedResource Include="DynamicEntity\Tuplizer\Customer.hbm.xml" /> </ItemGroup> <ItemGroup> + <Folder Include="NHSpecificTest\NH2224" /> <Folder Include="Properties\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-11 14:37:11
|
Revision: 5138 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5138&view=rev Author: julian-maughan Date: 2010-08-11 14:37:05 +0000 (Wed, 11 Aug 2010) Log Message: ----------- Corrected the return type for 'strftime' SQLFunctionTemplate (NH-2224) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/SQLiteDialect.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/SQLiteDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/SQLiteDialect.cs 2010-08-11 13:27:05 UTC (rev 5137) +++ trunk/nhibernate/src/NHibernate/Dialect/SQLiteDialect.cs 2010-08-11 14:37:05 UTC (rev 5138) @@ -47,12 +47,12 @@ RegisterColumnType(DbType.Boolean, "INTEGER"); RegisterColumnType(DbType.Guid, "UNIQUEIDENTIFIER"); - RegisterFunction("second", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%S\", ?1)")); - RegisterFunction("minute", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%M\", ?1)")); - RegisterFunction("hour", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%H\", ?1)")); - RegisterFunction("day", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%d\", ?1)")); - RegisterFunction("month", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%m\", ?1)")); - RegisterFunction("year", new SQLFunctionTemplate(NHibernateUtil.Int32, "strftime(\"%Y\", ?1)")); + RegisterFunction("second", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%S\", ?1)")); + RegisterFunction("minute", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%M\", ?1)")); + RegisterFunction("hour", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%H\", ?1)")); + RegisterFunction("day", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%d\", ?1)")); + RegisterFunction("month", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%m\", ?1)")); + RegisterFunction("year", new SQLFunctionTemplate(NHibernateUtil.String, "strftime(\"%Y\", ?1)")); RegisterFunction("substring", new StandardSQLFunction("substr", NHibernateUtil.String)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-11 13:27:11
|
Revision: 5137 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5137&view=rev Author: julian-maughan Date: 2010-08-11 13:27:05 +0000 (Wed, 11 Aug 2010) Log Message: ----------- Fixed typo in previous commit Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-11 13:25:54 UTC (rev 5136) +++ trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-11 13:27:05 UTC (rev 5137) @@ -17,7 +17,7 @@ /// Please check <a href="http://www.sqlite.org/"> http://www.sqlite.org/ </a> for more information regarding SQLite. /// </p> /// </remarks> - [Obsolete("Use NHibernate.Driver.SQLite20Driver"] + [Obsolete("Use NHibernate.Driver.SQLite20Driver")] public class SQLiteDriver : ReflectionBasedDriver { /// <summary> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-11 13:26:01
|
Revision: 5136 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5136&view=rev Author: julian-maughan Date: 2010-08-11 13:25:54 +0000 (Wed, 11 Aug 2010) Log Message: ----------- Added Obsolete attribute to driver class. Replaced by SQLite20Driver. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs Modified: trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-10 17:19:39 UTC (rev 5135) +++ trunk/nhibernate/src/NHibernate/Driver/SQLiteDriver.cs 2010-08-11 13:25:54 UTC (rev 5136) @@ -17,6 +17,7 @@ /// Please check <a href="http://www.sqlite.org/"> http://www.sqlite.org/ </a> for more information regarding SQLite. /// </p> /// </remarks> + [Obsolete("Use NHibernate.Driver.SQLite20Driver"] public class SQLiteDriver : ReflectionBasedDriver { /// <summary> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-08-10 17:19:45
|
Revision: 5135 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5135&view=rev Author: julian-maughan Date: 2010-08-10 17:19:39 +0000 (Tue, 10 Aug 2010) Log Message: ----------- Add support for variable limit-only queries (NH-1653) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2010-08-10 13:29:39 UTC (rev 5134) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2010-08-10 17:19:39 UTC (rev 5135) @@ -23,78 +23,74 @@ /// </summary> /// <param name="querySqlString">The <see cref="SqlString"/> to base the limit query off of.</param> /// <param name="offset">Offset of the first row to be returned by the query (zero-based)</param> - /// <param name="last">Maximum number of rows to be returned by the query</param> + /// <param name="limit">Maximum number of rows to be returned by the query</param> + /// <param name="offsetParameterIndex">Optionally, the Offset parameter index</param> + /// <param name="limitParameterIndex">Optionally, the Limit parameter index</param> /// <returns>A new <see cref="SqlString"/> with the <c>LIMIT</c> clause applied.</returns> /// <remarks> - /// The <c>LIMIT</c> SQL will look like - /// <code> - /// - /// SELECT - /// TOP last (columns) - /// FROM - /// (SELECT (columns), ROW_NUMBER() OVER(ORDER BY {original order by, with un-aliased column names) as __hibernate_sort_row - /// {original from}) as query - /// WHERE query.__hibernate_sort_row > offset - /// ORDER BY query.__hibernate_sort_row - /// - /// </code> - /// - /// Note that we need to add explicitly specify the columns, because we need to be able to use them - /// in a paged subselect. NH-1155 + /// Note that we need to explicitly specify the columns, because we need to be able to use them in a paged subselect [NH-1155] /// </remarks> - public override SqlString GetLimitString(SqlString querySqlString, int offset, int last, int? offsetParameterIndex, int? limitParameterIndex) + public override SqlString GetLimitString(SqlString querySqlString, int offset, int limit, int? offsetParameterIndex, int? limitParameterIndex) { - //dont do this paging code if there is no offset, use the - //sql 2000 dialect since it just uses a top statement + SqlStringBuilder result = new SqlStringBuilder(); + if (offset == 0) { - return base.GetLimitString(querySqlString, offset, last); + int insertPoint = this.GetAfterSelectInsertPoint(querySqlString); + + return result + .Add(querySqlString.Substring(0, insertPoint)) + .Add(" TOP (") + .Add(limitParameterIndex == null ? Parameter.Placeholder : Parameter.WithIndex(limitParameterIndex.Value)) + .Add(")") + .Add(querySqlString.Substring(insertPoint)) + .ToSqlString(); } int fromIndex = GetFromIndex(querySqlString); SqlString select = querySqlString.Substring(0, fromIndex); + List<SqlString> columnsOrAliases; Dictionary<SqlString, SqlString> aliasToColumn; ExtractColumnOrAliasNames(select, out columnsOrAliases, out aliasToColumn); - + int orderIndex = querySqlString.LastIndexOfCaseInsensitive(" order by "); - SqlString from; + SqlString fromAndWhere; SqlString[] sortExpressions; //don't use the order index if it is contained within a larger statement(assuming //a statement with non matching parenthesis is part of a larger block) if (orderIndex > 0 && HasMatchingParens(querySqlString.Substring(orderIndex).ToString())) { - from = querySqlString.Substring(fromIndex, orderIndex - fromIndex).Trim(); + fromAndWhere = querySqlString.Substring(fromIndex, orderIndex - fromIndex).Trim(); SqlString orderBy = querySqlString.Substring(orderIndex).Trim(); sortExpressions = orderBy.Substring(9).Split(","); } else { - from = querySqlString.Substring(fromIndex).Trim(); + fromAndWhere = querySqlString.Substring(fromIndex).Trim(); // Use dummy sort to avoid errors sortExpressions = new[] {new SqlString("CURRENT_TIMESTAMP"),}; - } - - SqlStringBuilder result = - new SqlStringBuilder() - .Add("SELECT TOP (") - .Add(Parameter.WithIndex(limitParameterIndex.Value)) - .Add(") ") - .Add(StringHelper.Join(", ", columnsOrAliases)) - .Add(" FROM (") - .Add(select) - .Add(", ROW_NUMBER() OVER(ORDER BY "); - + } + + result + .Add("SELECT TOP (") + .Add(limitParameterIndex == null ? Parameter.Placeholder : Parameter.WithIndex(limitParameterIndex.Value)) + .Add(") ") + .Add(StringHelper.Join(", ", columnsOrAliases)) + .Add(" FROM (") + .Add(select) + .Add(", ROW_NUMBER() OVER(ORDER BY "); + AppendSortExpressions(aliasToColumn, sortExpressions, result); result .Add(") as __hibernate_sort_row ") - .Add(from) + .Add(fromAndWhere) .Add(") as query WHERE query.__hibernate_sort_row > ") - .Add(Parameter.WithIndex(offsetParameterIndex.Value)) + .Add(offsetParameterIndex == null ? Parameter.Placeholder : Parameter.WithIndex(offsetParameterIndex.Value)) .Add(" ORDER BY query.__hibernate_sort_row"); - + return result.ToSqlString(); } @@ -143,6 +139,19 @@ } return fromIndex; } + + private int GetAfterSelectInsertPoint(SqlString sql) + { + if (sql.StartsWithCaseInsensitive("select distinct")) + { + return 15; + } + else if (sql.StartsWithCaseInsensitive("select")) + { + return 6; + } + throw new NotSupportedException("The query should start with 'SELECT' or 'SELECT DISTINCT'"); + } private static void ExtractColumnOrAliasNames(SqlString select, out List<SqlString> columnsOrAliases, out Dictionary<SqlString, SqlString> aliasToColumn) @@ -451,4 +460,4 @@ } } } -} +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-10 13:29:45
|
Revision: 5134 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5134&view=rev Author: fabiomaulo Date: 2010-08-10 13:29:39 +0000 (Tue, 10 Aug 2010) Log Message: ----------- Fixed build script Modified Paths: -------------- trunk/nhibernate/default.build Modified: trunk/nhibernate/default.build =================================================================== --- trunk/nhibernate/default.build 2010-08-10 02:46:39 UTC (rev 5133) +++ trunk/nhibernate/default.build 2010-08-10 13:29:39 UTC (rev 5134) @@ -299,7 +299,6 @@ <fileset basedir="${bin.dir}"> <include name="Antlr3.Runtime.dll" /> <include name="Iesi.Collections.???" /> - <include name="log4net*" /> <include name="Remotion.Data.Linq.dll" /> <include name="NHibernate.???" /> </fileset> @@ -329,13 +328,19 @@ <!-- Tests --> <copy file="${bin.dir}/TestEnbeddedConfig.cfg.xml" todir="${bin-pack.tests}"/> <copy file="${bin.dir}/ABC.hbm.xml" todir="${bin-pack.tests}"/> - <copy todir="${bin-pack.tests}"> + <copy todir="${bin-pack.tests}/DbScripts"> + <fileset basedir="${root.dir}/src/NHibernate.Test/DbScripts"> + <include name="*.sql" /> + </fileset> + </copy> + <copy todir="${bin-pack.tests}"> <fileset basedir="${bin.dir}"> <include name="nunit*" /> <include name="SharpTestsEx*" /> <include name="NHibernate.Domain*" /> <include name="NHibernate.Test*" /> - </fileset> + <include name="log4net*" /> + </fileset> </copy> </target> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-10 02:46:46
|
Revision: 5133 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5133&view=rev Author: fabiomaulo Date: 2010-08-10 02:46:39 +0000 (Tue, 10 Aug 2010) Log Message: ----------- Removed log4net from Bytecodes Modified Paths: -------------- trunk/nhibernate/src/NHibernate.ByteCode.Castle/ByteCode.build trunk/nhibernate/src/NHibernate.ByteCode.Castle/NHibernate.ByteCode.Castle.csproj trunk/nhibernate/src/NHibernate.ByteCode.Castle/ProxyFactory.cs trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ByteCode.build trunk/nhibernate/src/NHibernate.ByteCode.LinFu/NHibernate.ByteCode.LinFu.csproj trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ProxyFactory.cs trunk/nhibernate/src/NHibernate.ByteCode.Spring/ByteCode.build trunk/nhibernate/src/NHibernate.ByteCode.Spring/NHibernate.ByteCode.Spring.csproj Modified: trunk/nhibernate/src/NHibernate.ByteCode.Castle/ByteCode.build =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Castle/ByteCode.build 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.Castle/ByteCode.build 2010-08-10 02:46:39 UTC (rev 5133) @@ -23,7 +23,6 @@ <assemblyfileset basedir="${bin.dir}" id="project.references"> <include name="System.dll" /> <include name="Iesi.Collections.dll" /> - <include name="log4net.dll" /> <include name="Castle.Core.dll" /> <include name="Castle.DynamicProxy2.dll" /> <include name="NHibernate.dll" /> Modified: trunk/nhibernate/src/NHibernate.ByteCode.Castle/NHibernate.ByteCode.Castle.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Castle/NHibernate.ByteCode.Castle.csproj 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.Castle/NHibernate.ByteCode.Castle.csproj 2010-08-10 02:46:39 UTC (rev 5133) @@ -45,10 +45,6 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\..\lib\net\3.5\Iesi.Collections.dll</HintPath> </Reference> - <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\lib\net\3.5\log4net.dll</HintPath> - </Reference> <Reference Include="System" /> </ItemGroup> <ItemGroup> Modified: trunk/nhibernate/src/NHibernate.ByteCode.Castle/ProxyFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Castle/ProxyFactory.cs 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.Castle/ProxyFactory.cs 2010-08-10 02:46:39 UTC (rev 5133) @@ -1,6 +1,5 @@ using System; using Castle.DynamicProxy; -using log4net; using NHibernate.Engine; using NHibernate.Proxy; @@ -8,7 +7,7 @@ { public class ProxyFactory : AbstractProxyFactory { - protected static readonly ILog log = LogManager.GetLogger(typeof (ProxyFactory)); + protected static readonly ILogger log = LoggerProvider.LoggerFor(typeof (ProxyFactory)); private static readonly ProxyGenerator ProxyGenerator = new ProxyGenerator(); protected static ProxyGenerator DefaultProxyGenerator Modified: trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ByteCode.build =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ByteCode.build 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ByteCode.build 2010-08-10 02:46:39 UTC (rev 5133) @@ -23,7 +23,6 @@ <assemblyfileset basedir="${bin.dir}" id="project.references"> <include name="System.dll" /> <include name="Iesi.Collections.dll" /> - <include name="log4net.dll" /> <include name="LinFu.DynamicProxy.dll" /> <include name="NHibernate.dll" /> </assemblyfileset> Modified: trunk/nhibernate/src/NHibernate.ByteCode.LinFu/NHibernate.ByteCode.LinFu.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.LinFu/NHibernate.ByteCode.LinFu.csproj 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.LinFu/NHibernate.ByteCode.LinFu.csproj 2010-08-10 02:46:39 UTC (rev 5133) @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -42,10 +42,6 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\..\lib\net\3.5\LinFu.DynamicProxy.dll</HintPath> </Reference> - <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\lib\net\3.5\log4net.dll</HintPath> - </Reference> </ItemGroup> <ItemGroup> <Compile Include="AssemblyInfo.cs" /> Modified: trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ProxyFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ProxyFactory.cs 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.LinFu/ProxyFactory.cs 2010-08-10 02:46:39 UTC (rev 5133) @@ -1,5 +1,4 @@ using System; -using log4net; using NHibernate.Engine; using NHibernate.Proxy; @@ -8,7 +7,7 @@ public class ProxyFactory : AbstractProxyFactory { private static readonly global::LinFu.DynamicProxy.ProxyFactory factory = new global::LinFu.DynamicProxy.ProxyFactory(); - protected static readonly ILog log = LogManager.GetLogger(typeof (ProxyFactory)); + protected static readonly ILogger log = LoggerProvider.LoggerFor(typeof (ProxyFactory)); #region IProxyFactory Members Modified: trunk/nhibernate/src/NHibernate.ByteCode.Spring/ByteCode.build =================================================================== (Binary files differ) Modified: trunk/nhibernate/src/NHibernate.ByteCode.Spring/NHibernate.ByteCode.Spring.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.ByteCode.Spring/NHibernate.ByteCode.Spring.csproj 2010-08-09 13:03:36 UTC (rev 5132) +++ trunk/nhibernate/src/NHibernate.ByteCode.Spring/NHibernate.ByteCode.Spring.csproj 2010-08-10 02:46:39 UTC (rev 5133) @@ -45,10 +45,6 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\..\lib\net\3.5\Iesi.Collections.dll</HintPath> </Reference> - <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\lib\net\3.5\log4net.dll</HintPath> - </Reference> <Reference Include="Spring.Aop, Version=0.0.0.20110, Culture=neutral, PublicKeyToken=65e474d141e25e07, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\lib\net\3.5\Spring.Aop.dll</HintPath> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-09 13:03:42
|
Revision: 5132 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5132&view=rev Author: fabiomaulo Date: 2010-08-09 13:03:36 +0000 (Mon, 09 Aug 2010) Log Message: ----------- End logging abstraction : fix NH-1554 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Logging.cs trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs Modified: trunk/nhibernate/src/NHibernate/Logging.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Logging.cs 2010-08-09 11:43:36 UTC (rev 5131) +++ trunk/nhibernate/src/NHibernate/Logging.cs 2010-08-09 13:03:36 UTC (rev 5132) @@ -1,4 +1,7 @@ using System; +using System.Configuration; +using System.IO; +using System.Linq; using System.Linq.Expressions; namespace NHibernate @@ -38,14 +41,64 @@ public class LoggerProvider { + private const string NhibernateLoggerConfKey = "nhibernate-logger"; private readonly ILoggerFactory loggerFactory; private static LoggerProvider instance; static LoggerProvider() { - SetLoggersFactory(new Log4NetLoggerFactory()); + string nhibernateLoggerClass = GetNhibernateLoggerClass(); + ILoggerFactory loggerFactory = string.IsNullOrEmpty(nhibernateLoggerClass) ? new NoLoggingLoggerFactory() : GetLoggerFactory(nhibernateLoggerClass); + SetLoggersFactory(loggerFactory); } + private static ILoggerFactory GetLoggerFactory(string nhibernateLoggerClass) + { + ILoggerFactory loggerFactory; + var loggerFactoryType = System.Type.GetType(nhibernateLoggerClass); + try + { + loggerFactory = (ILoggerFactory) Activator.CreateInstance(loggerFactoryType); + } + catch (MissingMethodException ex) + { + throw new ApplicationException("Public constructor was not found for " + loggerFactoryType, ex); + } + catch (InvalidCastException ex) + { + throw new ApplicationException(loggerFactoryType + "Type does not implement " + typeof (ILoggerFactory), ex); + } + catch (Exception ex) + { + throw new ApplicationException("Unable to instantiate: " + loggerFactoryType, ex); + } + return loggerFactory; + } + + private static string GetNhibernateLoggerClass() + { + var nhibernateLogger = ConfigurationManager.AppSettings.Keys.Cast<string>().FirstOrDefault(k => NhibernateLoggerConfKey.Equals(k.ToLowerInvariant())); + string nhibernateLoggerClass = null; + if (string.IsNullOrEmpty(nhibernateLogger)) + { + // look for log4net.dll + string baseDir = AppDomain.CurrentDomain.BaseDirectory; + string relativeSearchPath = AppDomain.CurrentDomain.RelativeSearchPath; + string binPath = relativeSearchPath == null ? baseDir : Path.Combine(baseDir, relativeSearchPath); + var log4NetDllPath = Path.Combine(binPath, "log4net.dll"); + + if (File.Exists(log4NetDllPath)) + { + nhibernateLoggerClass = typeof (Log4NetLoggerFactory).AssemblyQualifiedName; + } + } + else + { + nhibernateLoggerClass = ConfigurationManager.AppSettings[nhibernateLogger]; + } + return nhibernateLoggerClass; + } + public static void SetLoggersFactory(ILoggerFactory loggerFactory) { instance = new LoggerProvider(loggerFactory); @@ -67,6 +120,104 @@ } } + public class NoLoggingLoggerFactory: ILoggerFactory + { + private static readonly ILogger Nologging = new NoLoggingLogger(); + public ILogger LoggerFor(string keyName) + { + return Nologging; + } + + public ILogger LoggerFor(System.Type type) + { + return Nologging; + } + } + + public class NoLoggingLogger: ILogger + { + public bool IsErrorEnabled + { + get { return false;} + } + + public bool IsFatalEnabled + { + get { return false; } + } + + public bool IsDebugEnabled + { + get { return false; } + } + + public bool IsInfoEnabled + { + get { return false; } + } + + public bool IsWarnEnabled + { + get { return false; } + } + + public void Error(object message) + { + } + + public void Error(object message, Exception exception) + { + } + + public void ErrorFormat(string format, params object[] args) + { + } + + public void Fatal(object message) + { + } + + public void Fatal(object message, Exception exception) + { + } + + public void Debug(object message) + { + } + + public void Debug(object message, Exception exception) + { + } + + public void DebugFormat(string format, params object[] args) + { + } + + public void Info(object message) + { + } + + public void Info(object message, Exception exception) + { + } + + public void InfoFormat(string format, params object[] args) + { + } + + public void Warn(object message) + { + } + + public void Warn(object message, Exception exception) + { + } + + public void WarnFormat(string format, params object[] args) + { + } + } + public class Log4NetLoggerFactory: ILoggerFactory { private static readonly System.Type LogManagerType = System.Type.GetType("log4net.LogManager, log4net"); Modified: trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs 2010-08-09 11:43:36 UTC (rev 5131) +++ trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs 2010-08-09 13:03:36 UTC (rev 5132) @@ -9,7 +9,13 @@ public void LoggerProviderCanCreateLoggers() { LoggerProvider.LoggerFor("pizza").Should().Not.Be.Null(); - LoggerProvider.LoggerFor(typeof(LoggerProviderTest)).Should().Not.Be.Null(); + LoggerProvider.LoggerFor(typeof (LoggerProviderTest)).Should().Not.Be.Null(); } + + [Test] + public void WhenNotConfiguredAndLog4NetExistsThenUseLog4NetFactory() + { + LoggerProvider.LoggerFor("pizza").Should().Be.InstanceOf<Log4NetLogger>(); + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-09 11:43:42
|
Revision: 5131 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5131&view=rev Author: fabiomaulo Date: 2010-08-09 11:43:36 +0000 (Mon, 09 Aug 2010) Log Message: ----------- Fixed TYPO Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs Modified: trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs 2010-08-09 11:41:40 UTC (rev 5130) +++ trunk/nhibernate/src/NHibernate.Test/Logging/LoggerProviderTest.cs 2010-08-09 11:43:36 UTC (rev 5131) @@ -6,7 +6,7 @@ public class LoggerProviderTest { [Test] - public void LogggerProviderCanCreateLobbers() + public void LoggerProviderCanCreateLoggers() { LoggerProvider.LoggerFor("pizza").Should().Not.Be.Null(); LoggerProvider.LoggerFor(typeof(LoggerProviderTest)).Should().Not.Be.Null(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |