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.
|