From 22165b009bbf690d6ac6887b9377c3e07e4e872e Mon Sep 17 00:00:00 2001
From: Nathan Brown
Date: Thu, 28 Dec 2017 09:53:17 -0700
Subject: [PATCH 01/23] Eliminate usage of protected field
uniqueKeyPropertyName.
---
src/NHibernate/Async/Type/EntityType.cs | 6 +++---
src/NHibernate/Type/EntityType.cs | 26 ++++++++++++++++---------
src/NHibernate/Type/ManyToOneType.cs | 2 +-
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/src/NHibernate/Async/Type/EntityType.cs b/src/NHibernate/Async/Type/EntityType.cs
index 6e0e345b1bc..864d11c4dd2 100644
--- a/src/NHibernate/Async/Type/EntityType.cs
+++ b/src/NHibernate/Async/Type/EntityType.cs
@@ -65,12 +65,12 @@ protected internal async Task
///
+#if DRIVER_PACKAGE
+ public class PostgreSqlDriver : DriverBase
+#else
+ [Obsolete("Use NHibernate.Driver.PostgreSql NuGet package and PostgreSqlDriver."
+ + " There are also Loquacious configuration points: .Connection.ByPostgreSqlDriver() and .DataBaseIntegration(x => x.PostgreSqlDriver()).")]
public class NpgsqlDriver : ReflectionBasedDriver
+#endif
{
+#if DRIVER_PACKAGE
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public PostgreSqlDriver()
+ {
+ DriverVersion = typeof(Npgsql.NpgsqlCommand).Assembly.GetName().Version;
+ }
+#else
///
/// Initializes a new instance of the class.
///
@@ -39,6 +55,24 @@ public NpgsqlDriver() : base(
"Npgsql.NpgsqlCommand")
{
}
+#endif
+
+#if DRIVER_PACKAGE
+ ///
+ /// The driver assembly version.
+ ///
+ protected Version DriverVersion { get; }
+
+ public override DbConnection CreateConnection()
+ {
+ return new Npgsql.NpgsqlConnection();
+ }
+
+ public override DbCommand CreateCommand()
+ {
+ return new Npgsql.NpgsqlCommand();
+ }
+#endif
public override bool UseNamedPrefixInSql => true;
diff --git a/src/NHibernate/Driver/OracleManagedDataClientDriver.cs b/src/NHibernate/Driver/OracleManagedDataClientDriver.cs
index 247a84dfaff..de606ef29a4 100644
--- a/src/NHibernate/Driver/OracleManagedDataClientDriver.cs
+++ b/src/NHibernate/Driver/OracleManagedDataClientDriver.cs
@@ -1,8 +1,12 @@
+using System;
+
namespace NHibernate.Driver
{
///
/// A NHibernate Driver for using the Oracle.ManagedDataAccess DataProvider
///
+ [Obsolete("Use NHibernate.Driver.Oracle.Managed NuGet package and OracleManagedDriver."
+ + " There are also Loquacious configuration points: .Connection.ByOracleManagedDriver() and .DataBaseIntegration(x => x.OracleManagedDriver()).")]
public class OracleManagedDataClientDriver : OracleDataClientDriverBase
{
///
diff --git a/src/NHibernate/Driver/SQLite20Driver.cs b/src/NHibernate/Driver/SQLite20Driver.cs
index 8f84a216869..a472d98b0d0 100644
--- a/src/NHibernate/Driver/SQLite20Driver.cs
+++ b/src/NHibernate/Driver/SQLite20Driver.cs
@@ -1,3 +1,4 @@
+using System;
using System.Data;
using System.Data.Common;
@@ -19,28 +20,54 @@ namespace NHibernate.Driver
/// Please check https://www.sqlite.org/ for more information regarding SQLite.
///
///
+#if DRIVER_PACKAGE
+ public class SQLiteDriver : DriverBase
+#else
+ [Obsolete("Use NHibernate.Driver.SQlLite NuGet package and SQLiteDriver."
+ + " There are also Loquacious configuration points: .Connection.BySQLiteDriver() and .DataBaseIntegration(x => x.SQLiteDriver()).")]
public class SQLite20Driver : ReflectionBasedDriver
+#endif
{
+#if DRIVER_PACKAGE
+ public SQLiteDriver()
+ {}
+#else
///
/// Initializes a new instance of .
///
///
/// Thrown when the SQLite.NET assembly can not be loaded.
///
- public SQLite20Driver() : base(
- "System.Data.SQLite",
- "System.Data.SQLite",
- "System.Data.SQLite.SQLiteConnection",
- "System.Data.SQLite.SQLiteCommand")
+ public SQLite20Driver()
+ : base(
+ "System.Data.SQLite",
+ "System.Data.SQLite",
+ "System.Data.SQLite.SQLiteConnection",
+ "System.Data.SQLite.SQLiteCommand")
{
}
+#endif
+#if DRIVER_PACKAGE
+ public override DbConnection CreateConnection()
+ {
+ var connection = new System.Data.SQLite.SQLiteConnection();
+ connection.StateChange += Connection_StateChange;
+ return connection;
+ }
+
+ public override DbCommand CreateCommand()
+ {
+ return new System.Data.SQLite.SQLiteCommand();
+ }
+#else
public override DbConnection CreateConnection()
{
var connection = base.CreateConnection();
connection.StateChange += Connection_StateChange;
return connection;
}
+#endif
private static void Connection_StateChange(object sender, StateChangeEventArgs e)
{
diff --git a/src/NHibernate/Driver/Sql2008ClientDriver.cs b/src/NHibernate/Driver/Sql2008ClientDriver.cs
index d6ba53d8627..54481d2de5f 100644
--- a/src/NHibernate/Driver/Sql2008ClientDriver.cs
+++ b/src/NHibernate/Driver/Sql2008ClientDriver.cs
@@ -5,7 +5,13 @@
namespace NHibernate.Driver
{
+#if DRIVER_PACKAGE
+ public class SqlServer2008Driver : SqlServer2000Driver
+#else
+ [Obsolete("Use NHibernate.Driver.SqlServer NuGet package and SqlServer2008Driver."
+ + " There are also Loquacious configuration points: .Connection.BySqlServer2008Driver() and .DataBaseIntegration(x => x.SqlServer2008Driver()).")]
public class Sql2008ClientDriver : SqlClientDriver
+#endif
{
const byte MaxTime = 5;
diff --git a/src/NHibernate/Driver/SqlClientDriver.cs b/src/NHibernate/Driver/SqlClientDriver.cs
index 63f7a6d3102..91f58f93b10 100644
--- a/src/NHibernate/Driver/SqlClientDriver.cs
+++ b/src/NHibernate/Driver/SqlClientDriver.cs
@@ -13,7 +13,13 @@ namespace NHibernate.Driver
///
/// A NHibernate Driver for using the SqlClient DataProvider
///
+#if DRIVER_PACKAGE
+ public class SqlServer2000Driver : DriverBase, IEmbeddedBatcherFactoryProvider
+#else
+ [Obsolete("Use NHibernate.Driver.SqlServer NuGet package and SqlServer2000Driver."
+ + " There are also Loquacious configuration points: .Connection.BySqlServer2000Driver() and .DataBaseIntegration(x => x.SqlServer2000Driver()).")]
public class SqlClientDriver : DriverBase, IEmbeddedBatcherFactoryProvider
+#endif
{
// Since v5.1
[Obsolete("Use MsSql2000Dialect.MaxSizeForAnsiClob")]
diff --git a/src/NHibernate/Driver/SqlServerCeDriver.cs b/src/NHibernate/Driver/SqlServerCeDriver.cs
index 300e15c06cc..f8ecb610d26 100644
--- a/src/NHibernate/Driver/SqlServerCeDriver.cs
+++ b/src/NHibernate/Driver/SqlServerCeDriver.cs
@@ -10,8 +10,15 @@ namespace NHibernate.Driver
///
/// A NHibernate driver for Microsoft SQL Server CE data provider
///
+#if DRIVER_PACKAGE
+ public class SqlServerCompactDriver : DriverBase
+#else
+ [Obsolete("Use NHibernate.Driver.SqlServer.Compact NuGet package and SqlServerCompactDriver."
+ + " There are also Loquacious configuration points: .Connection.BySqlServerCompactDriver() and .DataBaseIntegration(x => x.SqlServerCompactDriver()).")]
public class SqlServerCeDriver : ReflectionBasedDriver
+#endif
{
+#if !DRIVER_PACKAGE
///
/// Initializes a new instance of the class.
///
@@ -22,7 +29,19 @@ public SqlServerCeDriver()
"System.Data.SqlServerCe.SqlCeCommand")
{
}
+#endif
+#if DRIVER_PACKAGE
+ public override DbConnection CreateConnection()
+ {
+ return new System.Data.SqlServerCe.SqlCeConnection();
+ }
+
+ public override DbCommand CreateCommand()
+ {
+ return new System.Data.SqlServerCe.SqlCeCommand();
+ }
+#else
private PropertyInfo dbParamSqlDbTypeProperty;
public override void Configure(IDictionary settings)
@@ -35,6 +54,7 @@ public override void Configure(IDictionary settings)
dbParamSqlDbTypeProperty = dbParam.GetType().GetProperty("SqlDbType");
}
}
+#endif
///
/// MsSql requires the use of a Named Prefix in the SQL statement.
@@ -107,6 +127,17 @@ private static SqlType AdjustSqlType(SqlType sqlType)
private void AdjustDbParamTypeForLargeObjects(DbParameter dbParam, SqlType sqlType)
{
+#if DRIVER_PACKAGE
+ var sqlCeParam = (System.Data.SqlServerCe.SqlCeParameter) dbParam;
+ if (sqlType is BinaryBlobSqlType)
+ {
+ sqlCeParam.SqlDbType = SqlDbType.Image;
+ }
+ else if (sqlType is StringClobSqlType)
+ {
+ sqlCeParam.SqlDbType = SqlDbType.NText;
+ }
+#else
if (sqlType is BinaryBlobSqlType)
{
dbParamSqlDbTypeProperty.SetValue(dbParam, SqlDbType.Image, null);
@@ -115,13 +146,14 @@ private void AdjustDbParamTypeForLargeObjects(DbParameter dbParam, SqlType sqlTy
{
dbParamSqlDbTypeProperty.SetValue(dbParam, SqlDbType.NText, null);
}
+#endif
}
public override bool SupportsNullEnlistment => false;
///
/// . Enlistment is completely disabled when auto-enlistment is disabled.
- /// does nothing in
+ /// DbConnection.EnlistTransaction(System.Transactions.Transaction) does nothing in
/// this case.
///
public override bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled => false;
From 6cdb111fe1ae0110cea33ee178af3482a2e77331 Mon Sep 17 00:00:00 2001
From: Nathan Brown
Date: Wed, 8 Nov 2017 17:05:58 -0700
Subject: [PATCH 10/23] NH-4008 - Enable separate drivers for tests.
---
build-common/nhibernate-properties.xml | 2 +-
build-common/teamcity-hibernate.cfg.xml | 2 +-
.../FireBird.cfg.xml | 2 +-
src/NHibernate.Config.Templates/MSSQL.cfg.xml | 2 +-
src/NHibernate.Config.Templates/MySql.cfg.xml | 4 +-
.../Oracle-Managed.cfg.xml | 2 +-
.../PostgreSQL.cfg.xml | 2 +-
.../SQLite.cfg.xml | 2 +-
.../SqlServerCe.cfg.xml | 2 +-
.../NHibernate.Driver.Firebird.csproj | 2 +-
.../NHibernate.Driver.MySql.csproj | 4 +-
.../NHibernate.Driver.PostgreSql.csproj | 8 +-
.../NHibernate.Driver.SQLite.csproj | 2 +-
.../Infrastructure/AppSessionFactory.cs | 2 +-
.../NHibernate.Example.Web.csproj | 1 +
src/NHibernate.Test/App.config | 2 +-
.../Async/CfgTest/ConfigurationFixture.cs | 2 +-
.../DriverTest/FirebirdClientDriverFixture.cs | 6 +-
.../Async/DriverTest/ObsoleteDriverFixture.cs | 101 +++++++++++++++++
...erFixture.cs => SqlServerDriverFixture.cs} | 4 +-
.../SQLExceptionConversionTest.cs | 2 +-
.../Async/Futures/FallbackFixture.cs | 4 +-
.../Insertordering/InsertOrderingFixture.cs | 2 +-
.../Async/NHSpecificTest/NH1507/Fixture.cs | 2 +-
.../SnapshotIsolationUpdateConflictTest.cs | 2 +-
.../Async/NHSpecificTest/NH2020/Fixture.cs | 2 +-
.../Async/NHSpecificTest/NH2207/SampleTest.cs | 2 +-
.../Async/NHSpecificTest/NH2296/Fixture.cs | 2 +-
.../NHSpecificTest/NH2660And2661/Test.cs | 2 +-
.../Async/NHSpecificTest/NH2846/Fixture.cs | 2 +-
.../Async/NHSpecificTest/NH2852/Fixture.cs | 2 +-
.../NH3023/DeadlockConnectionPoolIssueTest.cs | 2 +-
.../Async/NHSpecificTest/NH3121/Fixture.cs | 4 +-
.../NHSpecificTest/NH3142/ChildrenTest.cs | 2 +-
.../Async/NHSpecificTest/NH3202/Fixture.cs | 2 +-
.../Async/NHSpecificTest/NH3252/Fixture.cs | 2 +-
.../NHSpecificTest/NH3518/XmlColumnTest.cs | 2 +-
.../Async/NHSpecificTest/NH3620/Fixture.cs | 2 +-
.../NH3912/ReusableBatcherFixture.cs | 2 +-
.../SqlConverterAndMultiQuery/Fixture.cs | 2 +-
.../Async/Pagination/CustomDialectFixture.cs | 2 +-
.../MSSQLIdentityInsertWithStoredProcsTest.cs | 2 +-
.../TypesTest/StringTypeWithLengthFixture.cs | 2 +-
.../Async/TypesTest/XDocTypeFixture.cs | 2 +-
.../Async/TypesTest/XmlDocTypeFixture.cs | 2 +-
.../CfgTest/ConfigurationFixture.cs | 2 +-
.../Loquacious/ConfigurationFixture.cs | 4 +-
.../Loquacious/LambdaConfigurationFixture.cs | 6 +-
.../DriverTest/FirebirdClientDriverFixture.cs | 6 +-
.../DriverTest/ObsoleteDriverFixture.cs | 102 ++++++++++++++++++
.../OracleDataClientDriverFixture.cs | 4 +-
...erFixture.cs => SqlServerDriverFixture.cs} | 4 +-
.../SQLExceptionConversionTest.cs | 2 +-
.../Futures/FallbackFixture.cs | 6 +-
.../Insertordering/InsertOrderingFixture.cs | 2 +-
.../NHSpecificTest/NH1507/Fixture.cs | 2 +-
.../SnapshotIsolationUpdateConflictTest.cs | 2 +-
.../NHSpecificTest/NH2020/Fixture.cs | 2 +-
.../NHSpecificTest/NH2207/SampleTest.cs | 2 +-
.../NHSpecificTest/NH2296/Fixture.cs | 2 +-
.../NHSpecificTest/NH2660And2661/Test.cs | 2 +-
.../NHSpecificTest/NH2846/Fixture.cs | 2 +-
.../NHSpecificTest/NH2852/Fixture.cs | 2 +-
.../NHSpecificTest/NH3004/Fixture.cs | 6 +-
...ClientDriver.cs => TestSqlServerDriver.cs} | 14 +--
.../NH3023/DeadlockConnectionPoolIssueTest.cs | 2 +-
.../NHSpecificTest/NH3121/Fixture.cs | 4 +-
.../NHSpecificTest/NH3142/ChildrenTest.cs | 2 +-
.../NHSpecificTest/NH3202/Fixture.cs | 4 +-
.../NHSpecificTest/NH3252/Fixture.cs | 2 +-
.../NHSpecificTest/NH3405/Fixture.cs | 2 +-
.../NHSpecificTest/NH3518/XmlColumnTest.cs | 2 +-
.../NHSpecificTest/NH3620/Fixture.cs | 2 +-
.../NH3912/ReusableBatcherFixture.cs | 2 +-
.../SqlConverterAndMultiQuery/Fixture.cs | 2 +-
src/NHibernate.Test/NHibernate.Test.csproj | 27 ++---
.../Pagination/CustomDialectFixture.cs | 2 +-
.../Pagination/CustomMsSqlDriver.cs | 6 +-
.../MSSQLIdentityInsertWithStoredProcsTest.cs | 2 +-
.../SystemTransactionFixtureBase.cs | 2 +-
src/NHibernate.Test/TestCase.cs | 2 +-
.../TestEmbeddedConfig.cfg.xml | 4 +-
src/NHibernate.Test/TestingExtensions.cs | 88 +++++++++++----
.../TypesTest/AbstractDateTimeTypeFixture.cs | 2 +-
.../TypesTest/StringTypeWithLengthFixture.cs | 2 +-
.../TypesTest/XDocTypeFixture.cs | 2 +-
.../TypesTest/XmlDocTypeFixture.cs | 2 +-
src/NHibernate.TestDatabaseSetup/App.config | 4 +-
.../TestDatabaseSetup.cs | 16 +--
src/NHibernate/Async/Dialect/Dialect.cs | 1 +
.../Connection/ConnectionProvider.cs | 2 +-
src/NHibernate/Dialect/DB2400Dialect.cs | 4 +-
src/NHibernate/Dialect/DB2Dialect.cs | 2 +-
src/NHibernate/Dialect/Dialect.cs | 10 ++
src/NHibernate/Dialect/FirebirdDialect.cs | 9 +-
src/NHibernate/Dialect/InformixDialect.cs | 2 +-
src/NHibernate/Dialect/InformixDialect0940.cs | 2 +-
src/NHibernate/Dialect/InformixDialect1000.cs | 2 +-
src/NHibernate/Dialect/IngresDialect.cs | 2 +-
src/NHibernate/Dialect/MsSql2000Dialect.cs | 8 +-
src/NHibernate/Dialect/MsSql2008Dialect.cs | 5 +-
src/NHibernate/Dialect/MsSqlCeDialect.cs | 6 +-
src/NHibernate/Dialect/MySQLDialect.cs | 8 +-
src/NHibernate/Dialect/OracleLiteDialect.cs | 2 +-
src/NHibernate/Dialect/PostgreSQLDialect.cs | 8 +-
src/NHibernate/Dialect/SQLiteDialect.cs | 6 +-
src/NHibernate/Dialect/SybaseASA9Dialect.cs | 2 +-
src/NHibernate/Dialect/SybaseASE15Dialect.cs | 2 +-
.../Dialect/SybaseSQLAnywhere10Dialect.cs | 2 +-
.../Dialect/SybaseSQLAnywhere11Dialect.cs | 2 +-
.../Dialect/SybaseSQLAnywhere12Dialect.cs | 4 +-
src/NHibernate/Driver/SqlClientDriver.cs | 4 +-
.../SqlCommand/Parser/MsSqlSelectParser.cs | 3 +-
teamcity.build | 22 ++--
114 files changed, 474 insertions(+), 213 deletions(-)
create mode 100644 src/NHibernate.Test/Async/DriverTest/ObsoleteDriverFixture.cs
rename src/NHibernate.Test/Async/DriverTest/{SqlClientDriverFixture.cs => SqlServerDriverFixture.cs} (97%)
create mode 100644 src/NHibernate.Test/DriverTest/ObsoleteDriverFixture.cs
rename src/NHibernate.Test/DriverTest/{SqlClientDriverFixture.cs => SqlServerDriverFixture.cs} (98%)
rename src/NHibernate.Test/NHSpecificTest/NH3004/{TestSqlClientDriver.cs => TestSqlServerDriver.cs} (66%)
diff --git a/build-common/nhibernate-properties.xml b/build-common/nhibernate-properties.xml
index 4b62e992a55..d01178e24d1 100644
--- a/build-common/nhibernate-properties.xml
+++ b/build-common/nhibernate-properties.xml
@@ -2,6 +2,6 @@
-
+
diff --git a/build-common/teamcity-hibernate.cfg.xml b/build-common/teamcity-hibernate.cfg.xml
index 0e038aa76ea..61ec5097cda 100644
--- a/build-common/teamcity-hibernate.cfg.xml
+++ b/build-common/teamcity-hibernate.cfg.xml
@@ -15,7 +15,7 @@
true
- NHibernate.Driver.Sql2008ClientDriver
+ NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer
NHibernate.Dialect.MsSql2008Dialect
Server=.\SQLExpress;initial catalog=nhibernate;Integrated Security=SSPI
false
diff --git a/src/NHibernate.Config.Templates/FireBird.cfg.xml b/src/NHibernate.Config.Templates/FireBird.cfg.xml
index d621978174f..61e5f0dcc38 100644
--- a/src/NHibernate.Config.Templates/FireBird.cfg.xml
+++ b/src/NHibernate.Config.Templates/FireBird.cfg.xml
@@ -16,7 +16,7 @@ for your own use before compile tests in VisualStudio.
-->
- NHibernate.Driver.FirebirdClientDriver
+ NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird
DataSource=localhost;
Database=nhibernate;
diff --git a/src/NHibernate.Config.Templates/MSSQL.cfg.xml b/src/NHibernate.Config.Templates/MSSQL.cfg.xml
index 8e5706a5c56..4aea9caec11 100644
--- a/src/NHibernate.Config.Templates/MSSQL.cfg.xml
+++ b/src/NHibernate.Config.Templates/MSSQL.cfg.xml
@@ -7,7 +7,7 @@ for your own use before compile tests in VisualStudio.
- NHibernate.Driver.Sql2008ClientDriver
+ NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer
Server=(local);initial catalog=nhibernate;Integrated Security=SSPI
diff --git a/src/NHibernate.Config.Templates/MySql.cfg.xml b/src/NHibernate.Config.Templates/MySql.cfg.xml
index be2366cd660..ef246809489 100644
--- a/src/NHibernate.Config.Templates/MySql.cfg.xml
+++ b/src/NHibernate.Config.Templates/MySql.cfg.xml
@@ -6,11 +6,11 @@ for your own use before compile tests in VisualStudio.
-->
- NHibernate.Driver.MySqlDataDriver
+ NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql
Database=nhibernate;Data Source=localhost;User Id=nhibernate;Password=;
Protocol=memory;Old Guids=True;
NHibernate.Dialect.MySQL5Dialect
-
\ No newline at end of file
+
diff --git a/src/NHibernate.Config.Templates/Oracle-Managed.cfg.xml b/src/NHibernate.Config.Templates/Oracle-Managed.cfg.xml
index 24b71f31b21..21fa80ea8ce 100644
--- a/src/NHibernate.Config.Templates/Oracle-Managed.cfg.xml
+++ b/src/NHibernate.Config.Templates/Oracle-Managed.cfg.xml
@@ -7,7 +7,7 @@ for your own use before compile tests in VisualStudio.
- NHibernate.Driver.OracleManagedDataClientDriver
+ NHibernate.Driver.OracleManagedDriver, NHibernate.Driver.Oracle.Managed
User ID=nhibernate;Password=nhibernate;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
diff --git a/src/NHibernate.Config.Templates/PostgreSQL.cfg.xml b/src/NHibernate.Config.Templates/PostgreSQL.cfg.xml
index 459543f2bbf..219fbbcc6be 100644
--- a/src/NHibernate.Config.Templates/PostgreSQL.cfg.xml
+++ b/src/NHibernate.Config.Templates/PostgreSQL.cfg.xml
@@ -6,7 +6,7 @@ for your own use before compile tests in VisualStudio.
-->
- NHibernate.Driver.NpgsqlDriver
+ NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql
Server=localhost;Database=nhibernate;User ID=nhibernate;Password=nhibernate;Enlist=true;
diff --git a/src/NHibernate.Config.Templates/SQLite.cfg.xml b/src/NHibernate.Config.Templates/SQLite.cfg.xml
index 50890aea597..559f9312d7e 100644
--- a/src/NHibernate.Config.Templates/SQLite.cfg.xml
+++ b/src/NHibernate.Config.Templates/SQLite.cfg.xml
@@ -6,7 +6,7 @@ for your own use before compile tests in VisualStudio.
-->
- NHibernate.Driver.SQLite20Driver
+ NHibernate.Driver.SQLiteDriver, NHibernate.Driver.SQLite
+ NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer
TestConnectionString
NHibernate.Test.DebugConnectionProvider, NHibernate.Test
ReadCommitted
diff --git a/src/NHibernate.Test/Async/CfgTest/ConfigurationFixture.cs b/src/NHibernate.Test/Async/CfgTest/ConfigurationFixture.cs
index 9855db73094..8a4e813eab4 100644
--- a/src/NHibernate.Test/Async/CfgTest/ConfigurationFixture.cs
+++ b/src/NHibernate.Test/Async/CfgTest/ConfigurationFixture.cs
@@ -44,7 +44,7 @@ public async Task ManualConfigurationAsync()
props[Environment.ConnectionProvider] = "NHibernate.Connection.DriverConnectionProvider";
props[Environment.Dialect] = "NHibernate.Dialect.MsSql2000Dialect";
- props[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
+ props[Environment.ConnectionDriver] = "NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer";
props[Environment.ConnectionString] =
"Server=localhost;initial catalog=nhibernate;Integrated Security=SSPI";
diff --git a/src/NHibernate.Test/Async/DriverTest/FirebirdClientDriverFixture.cs b/src/NHibernate.Test/Async/DriverTest/FirebirdClientDriverFixture.cs
index 734866bda0c..cb0ab53d9cc 100644
--- a/src/NHibernate.Test/Async/DriverTest/FirebirdClientDriverFixture.cs
+++ b/src/NHibernate.Test/Async/DriverTest/FirebirdClientDriverFixture.cs
@@ -21,10 +21,10 @@ namespace NHibernate.Test.DriverTest
using System.Threading.Tasks;
using System.Threading;
[TestFixture]
- public class FirebirdClientDriverFixtureAsync
+ public class FirebirdDriverFixtureAsync
{
private string _connectionString;
- private FirebirdClientDriver _driver;
+ private FirebirdDriver _driver;
[OneTimeSetUp]
public void OneTimeSetup()
@@ -35,7 +35,7 @@ public void OneTimeSetup()
if (!dlct.Contains("Firebird"))
Assert.Ignore("Applies only to Firebird");
- _driver = new FirebirdClientDriver();
+ _driver = new FirebirdDriver();
_driver.Configure(cfg.Properties);
_connectionString = cfg.GetProperty("connection.connection_string");
}
diff --git a/src/NHibernate.Test/Async/DriverTest/ObsoleteDriverFixture.cs b/src/NHibernate.Test/Async/DriverTest/ObsoleteDriverFixture.cs
new file mode 100644
index 00000000000..09fa703e1da
--- /dev/null
+++ b/src/NHibernate.Test/Async/DriverTest/ObsoleteDriverFixture.cs
@@ -0,0 +1,101 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by AsyncGenerator.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+using System;
+using System.Collections;
+using System.Linq.Dynamic.Core;
+using NHibernate.Cfg;
+using NHibernate.Connection;
+using NHibernate.Dialect;
+using NHibernate.DomainModel;
+using NHibernate.Driver;
+using NHibernate.Util;
+using NUnit.Framework;
+
+namespace NHibernate.Test.DriverTest
+{
+ using System.Threading.Tasks;
+ [TestFixture, Obsolete]
+ public class ObsoleteDriverFixtureAsync : TestCase
+ {
+ protected override IList Mappings => new [] {"Simple.hbm.xml"};
+
+ protected override bool AppliesTo(Dialect.Dialect dialect)
+ {
+ switch (dialect)
+ {
+ case FirebirdDialect _:
+ case MsSql2000Dialect _:
+ case MsSqlCeDialect _:
+ case MySQLDialect _:
+ case PostgreSQLDialect _:
+ case SQLiteDialect _:
+ System.Type driverType = ReflectHelper.ClassForName(cfg.GetProperty(Cfg.Environment.ConnectionDriver));
+ return !(driverType.IsOdbcDriver() || driverType.IsOleDbDriver());
+ default:
+ return false;
+ }
+ }
+
+ protected override void Configure(Configuration configuration)
+ {
+ base.Configure(configuration);
+
+ System.Type driverType = ReflectHelper.ClassForName(cfg.GetProperty(Cfg.Environment.ConnectionDriver));
+ if (driverType.IsOdbcDriver() || driverType.IsOleDbDriver())
+ {
+ // ODBC and OLE DB drivers are not obsoleted, do not switch it.
+ return;
+ }
+
+ var dialect = NHibernate.Dialect.Dialect.GetDialect(configuration.Properties);
+ System.Type driver;
+ switch (dialect)
+ {
+ case FirebirdDialect _:
+ driver = typeof(FirebirdClientDriver);
+ break;
+ case MsSql2008Dialect _:
+ driver = typeof(Sql2008ClientDriver);
+ break;
+ case MsSql2000Dialect _:
+ driver = typeof(SqlClientDriver);
+ break;
+ case MsSqlCeDialect _:
+ driver = typeof(SqlServerCeDriver);
+ break;
+ case MySQLDialect _:
+ driver = typeof(MySqlDataDriver);
+ break;
+ case PostgreSQLDialect _:
+ driver = typeof(NpgsqlDriver);
+ break;
+ case SQLiteDialect _:
+ driver = typeof(SQLite20Driver);
+ break;
+ default:
+ return;
+ }
+ configuration.SetProperty(Cfg.Environment.ConnectionDriver, driver.FullName);
+ }
+
+ [Test]
+ public async Task CanUseObsoleteDriverAsync()
+ {
+ using (var s = OpenSession())
+ using (var t = s.BeginTransaction())
+ {
+ var count = s.Query().Count();
+ Assert.That(count, Is.Zero);
+ await (t.CommitAsync());
+ }
+ }
+ }
+}
diff --git a/src/NHibernate.Test/Async/DriverTest/SqlClientDriverFixture.cs b/src/NHibernate.Test/Async/DriverTest/SqlServerDriverFixture.cs
similarity index 97%
rename from src/NHibernate.Test/Async/DriverTest/SqlClientDriverFixture.cs
rename to src/NHibernate.Test/Async/DriverTest/SqlServerDriverFixture.cs
index 958a6006149..53b45fef2ea 100644
--- a/src/NHibernate.Test/Async/DriverTest/SqlClientDriverFixture.cs
+++ b/src/NHibernate.Test/Async/DriverTest/SqlServerDriverFixture.cs
@@ -23,7 +23,7 @@ namespace NHibernate.Test.DriverTest
using System.Threading.Tasks;
[TestFixture]
- public class SqlClientDriverFixtureAsync : TestCase
+ public class SqlServerDriverFixtureAsync : TestCase
{
protected override string MappingsAssembly => "NHibernate.Test";
@@ -36,7 +36,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void OnTearDown()
diff --git a/src/NHibernate.Test/Async/ExceptionsTest/SQLExceptionConversionTest.cs b/src/NHibernate.Test/Async/ExceptionsTest/SQLExceptionConversionTest.cs
index 13e072c37f0..643e5aa7005 100644
--- a/src/NHibernate.Test/Async/ExceptionsTest/SQLExceptionConversionTest.cs
+++ b/src/NHibernate.Test/Async/ExceptionsTest/SQLExceptionConversionTest.cs
@@ -42,7 +42,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
var driver = factory.ConnectionProvider.Driver;
- return !(driver.IsOracleDataClientDriver()) && !(driver.IsOracleManagedDataClientDriver()) && !(driver.IsOracleLiteDataClientDriver()) && !(driver.IsOdbcDriver()) && !(driver.IsOleDbDriver());
+ return !(driver.IsOracleDataClientDriver()) && !(driver.IsOracleManagedDriver()) && !(driver.IsOracleLiteDataClientDriver()) && !(driver.IsOdbcDriver()) && !(driver.IsOleDbDriver());
}
protected override void Configure(Cfg.Configuration configuration)
diff --git a/src/NHibernate.Test/Async/Futures/FallbackFixture.cs b/src/NHibernate.Test/Async/Futures/FallbackFixture.cs
index 37710b90c00..5447431883e 100644
--- a/src/NHibernate.Test/Async/Futures/FallbackFixture.cs
+++ b/src/NHibernate.Test/Async/Futures/FallbackFixture.cs
@@ -24,7 +24,7 @@ namespace NHibernate.Test.Futures
using System.Threading;
///
- /// I'm using a Driver which derives from SqlClientDriver to
+ /// I'm using a Driver which derives from SqlServer2000Driver to
/// return false for the SupportsMultipleQueries property. This is purely to test the way NHibernate
/// will behave when the driver that's being used does not support multiple queries... so even though
/// the test is using MsSql, it's only relevant for databases that don't support multiple queries
@@ -46,7 +46,7 @@ protected override void Configure(Configuration configuration)
base.Configure(configuration);
using (var cp = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties))
{
- if (cp.Driver.IsSqlClientDriver())
+ if (cp.Driver.IsSqlServerDriver())
{
configuration.Properties[Environment.ConnectionDriver] =
typeof(TestDriverThatDoesntSupportQueryBatching).AssemblyQualifiedName;
diff --git a/src/NHibernate.Test/Async/Insertordering/InsertOrderingFixture.cs b/src/NHibernate.Test/Async/Insertordering/InsertOrderingFixture.cs
index 6528d71d1cc..3985764c576 100644
--- a/src/NHibernate.Test/Async/Insertordering/InsertOrderingFixture.cs
+++ b/src/NHibernate.Test/Async/Insertordering/InsertOrderingFixture.cs
@@ -51,7 +51,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Custom batcher does not support oledb driver.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void Configure(Configuration configuration)
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1507/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1507/Fixture.cs
index 196797ea10d..73d2eb90247 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH1507/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1507/Fixture.cs
@@ -20,7 +20,7 @@ public class FixtureAsync : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
index 7fc49880579..0c3cc4ed7a1 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
@@ -155,7 +155,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// SQLUpdateConflictToStaleStateExceptionConverter is specific to Sql client driver, and does not work
// with Odbc (and likeley Oledb).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
private void SetAllowSnapshotIsolation(bool on)
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2020/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2020/Fixture.cs
index 378cc5fba14..13ba3c2e024 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2020/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2020/Fixture.cs
@@ -36,7 +36,7 @@ protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Use a SQL Server Client exception converter, cannot work for ODBC or OleDb
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void OnTearDown()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2207/SampleTest.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2207/SampleTest.cs
index a27f4fc039f..328cab94add 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2207/SampleTest.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2207/SampleTest.cs
@@ -28,7 +28,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSql2008ClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServer2008Driver();
}
[Test]
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2296/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2296/Fixture.cs
index 8ee9d680433..792fcbe4924 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2296/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2296/Fixture.cs
@@ -19,7 +19,7 @@ public class FixtureAsync : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2660And2661/Test.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2660And2661/Test.cs
index d13589002f3..8cc9f87f061 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2660And2661/Test.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2660And2661/Test.cs
@@ -50,7 +50,7 @@ protected override void Configure(Configuration configuration)
{
// to be sure we are using the new drive
base.Configure(configuration);
- configuration.DataBaseIntegration(x=> x.Driver());
+ configuration.DataBaseIntegration(x=> x.Driver());
}
[Test]
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2846/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2846/Fixture.cs
index f09fd96c407..b81144cdfcc 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2846/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2846/Fixture.cs
@@ -20,7 +20,7 @@ public class FixtureAsync : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH2852/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH2852/Fixture.cs
index 4b92853bb40..439c59616f7 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH2852/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH2852/Fixture.cs
@@ -20,7 +20,7 @@ public class FixtureAsync : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
index 0f40ce1ff28..e30cb238b71 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
@@ -42,7 +42,7 @@ protected override void Configure(Configuration configuration)
// Uses directly SqlConnection.
protected override bool AppliesTo(ISessionFactoryImplementor factory)
- => factory.ConnectionProvider.Driver.IsSqlClientDriver() && base.AppliesTo(factory);
+ => factory.ConnectionProvider.Driver.IsSqlServerDriver() && base.AppliesTo(factory);
protected override bool AppliesTo(Dialect.Dialect dialect)
=> dialect is MsSql2000Dialect && base.AppliesTo(dialect);
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3121/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3121/Fixture.cs
index c5857d7929a..8649da6a362 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3121/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3121/Fixture.cs
@@ -35,10 +35,10 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
[Test]
public void ShouldThrowWhenByteArrayTooLongAsync()
{
- // For SQL Server only the SqlClientDriver sets parameter lengths
+ // For SQL Server only the SqlServer2000Driver sets parameter lengths
// even when there is no length specified in the mapping. The ODBC
// driver won't cause the truncation issue and hence not the exception.
- if (!(Sfi.ConnectionProvider.Driver.IsSqlClientDriver()))
+ if (!(Sfi.ConnectionProvider.Driver.IsSqlServerDriver()))
Assert.Ignore("Test limited to drivers that sets parameter length even with no length specified in the mapping.");
const int reportSize = 17158;
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3142/ChildrenTest.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3142/ChildrenTest.cs
index 52f9f3fd726..bf9b00d308a 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3142/ChildrenTest.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3142/ChildrenTest.cs
@@ -21,7 +21,7 @@ public class ChildrenTestAsync : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3202/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3202/Fixture.cs
index 8793de14f64..68d83fb35dd 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3202/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3202/Fixture.cs
@@ -27,7 +27,7 @@ protected override void Configure(Configuration configuration)
if (!(Dialect is MsSql2008Dialect))
Assert.Ignore("Test is for MS SQL Server dialect only (custom dialect).");
- if (!ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver)).IsSqlClientDriver())
+ if (!ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver)).IsSqlServerDriver())
Assert.Ignore("Test is for MS SQL Server driver only (custom driver is used).");
cfg.SetProperty(Environment.Dialect, typeof(OffsetStartsAtOneTestDialect).AssemblyQualifiedName);
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3252/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3252/Fixture.cs
index c3c0021e44c..7f14e8aff3a 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3252/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3252/Fixture.cs
@@ -22,7 +22,7 @@ public class FixtureAsync : BugTestCase
{
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3518/XmlColumnTest.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3518/XmlColumnTest.cs
index 52b1ff0bff1..556e07df1f0 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3518/XmlColumnTest.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3518/XmlColumnTest.cs
@@ -37,7 +37,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void Configure(Configuration configuration)
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3620/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3620/Fixture.cs
index 572b9668a45..f68f378605f 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3620/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3620/Fixture.cs
@@ -16,7 +16,7 @@ namespace NHibernate.Test.NHSpecificTest.NH3620 {
[TestFixture]
public class FixtureAsync : BugTestCase {
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory) {
- return (factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return (factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnTearDown() {
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH3912/ReusableBatcherFixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
index 11323f53134..5640cd7e228 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
@@ -29,7 +29,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
var driver = factory.ConnectionProvider.Driver;
return driver.IsOracleDataClientDriver() ||
driver.IsOracleLiteDataClientDriver() ||
- driver.IsOracleManagedDataClientDriver();
+ driver.IsOracleManagedDriver();
}
protected override HbmMapping GetMappings()
diff --git a/src/NHibernate.Test/Async/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
index 86c87c2eb22..9377b0b029f 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
@@ -31,7 +31,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
// tend to (validly) send InvalidOperationException during prepare phase due to the closed
// connection, which get not converted. For testing other case, maybe a failure caused by a
// schema mismatch (like done in transaction tests) would be better.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/Async/Pagination/CustomDialectFixture.cs b/src/NHibernate.Test/Async/Pagination/CustomDialectFixture.cs
index c47813308f6..e134610cda8 100644
--- a/src/NHibernate.Test/Async/Pagination/CustomDialectFixture.cs
+++ b/src/NHibernate.Test/Async/Pagination/CustomDialectFixture.cs
@@ -39,7 +39,7 @@ protected override void Configure(Configuration configuration)
if (!(Dialect is MsSql2005Dialect))
Assert.Ignore("Test is for SQL dialect only");
var driverClass = ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver));
- if (!driverClass.IsSqlClientDriver())
+ if (!driverClass.IsSqlServerDriver())
Assert.Ignore("Test is compatible only with Sql Server Client driver connection strings");
cfg.SetProperty(Environment.Dialect, typeof(CustomMsSqlDialect).AssemblyQualifiedName);
diff --git a/src/NHibernate.Test/Async/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs b/src/NHibernate.Test/Async/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
index 609f4d42242..f7abdb4e73b 100644
--- a/src/NHibernate.Test/Async/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
+++ b/src/NHibernate.Test/Async/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
@@ -27,7 +27,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Tested resulting SQL depends on driver.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override string GetExpectedInsertOrgLogStatement(string orgName)
diff --git a/src/NHibernate.Test/Async/TypesTest/StringTypeWithLengthFixture.cs b/src/NHibernate.Test/Async/TypesTest/StringTypeWithLengthFixture.cs
index c5d457bd91f..d75cb3b086c 100644
--- a/src/NHibernate.Test/Async/TypesTest/StringTypeWithLengthFixture.cs
+++ b/src/NHibernate.Test/Async/TypesTest/StringTypeWithLengthFixture.cs
@@ -80,7 +80,7 @@ public Task ShouldPreventInsertionOfVeryLongStringThatWouldBeTruncatedAsync()
try
{
// This test case is for when the current driver will use a parameter size
- // that is significantly larger than the mapped column size (e.g. SqlClientDriver currently).
+ // that is significantly larger than the mapped column size (e.g. SqlServer2000Driver currently).
// Note: This test could possible be written as
// "database must raise an error OR it must store and return the full value"
diff --git a/src/NHibernate.Test/Async/TypesTest/XDocTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/XDocTypeFixture.cs
index d2d0fb8afaf..28821d4acaa 100644
--- a/src/NHibernate.Test/Async/TypesTest/XDocTypeFixture.cs
+++ b/src/NHibernate.Test/Async/TypesTest/XDocTypeFixture.cs
@@ -34,7 +34,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// No Xml support with Odbc (and likely OleDb too).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/Async/TypesTest/XmlDocTypeFixture.cs b/src/NHibernate.Test/Async/TypesTest/XmlDocTypeFixture.cs
index 83db7e7df9e..4ae1da2a9f0 100644
--- a/src/NHibernate.Test/Async/TypesTest/XmlDocTypeFixture.cs
+++ b/src/NHibernate.Test/Async/TypesTest/XmlDocTypeFixture.cs
@@ -34,7 +34,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// No Xml support with Odbc (and likely OleDb too).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs b/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs
index 73a2b9671f4..3abf3b05cdb 100644
--- a/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs
+++ b/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs
@@ -52,7 +52,7 @@ public void ManualConfiguration()
props[Environment.ConnectionProvider] = "NHibernate.Connection.DriverConnectionProvider";
props[Environment.Dialect] = "NHibernate.Dialect.MsSql2000Dialect";
- props[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
+ props[Environment.ConnectionDriver] = "NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer";
props[Environment.ConnectionString] =
"Server=localhost;initial catalog=nhibernate;Integrated Security=SSPI";
diff --git a/src/NHibernate.Test/CfgTest/Loquacious/ConfigurationFixture.cs b/src/NHibernate.Test/CfgTest/Loquacious/ConfigurationFixture.cs
index adfc2715e08..5b06dafb2d7 100644
--- a/src/NHibernate.Test/CfgTest/Loquacious/ConfigurationFixture.cs
+++ b/src/NHibernate.Test/CfgTest/Loquacious/ConfigurationFixture.cs
@@ -51,7 +51,7 @@ public void CompleteConfiguration()
.Each(15)
.Connected
.Through()
- .By()
+ .By()
.Releasing(ConnectionReleaseMode.AfterTransaction)
.With(IsolationLevel.ReadCommitted)
.Using(connectionString)
@@ -83,7 +83,7 @@ public void CompleteConfiguration()
Assert.That(cfg.Properties[Environment.BatchStrategy], Is.EqualTo(typeof(SqlClientBatchingBatcherFactory).AssemblyQualifiedName));
Assert.That(cfg.Properties[Environment.BatchSize], Is.EqualTo("15"));
Assert.That(cfg.Properties[Environment.ConnectionProvider], Is.EqualTo(typeof(DebugConnectionProvider).AssemblyQualifiedName));
- Assert.That(cfg.Properties[Environment.ConnectionDriver], Is.EqualTo(typeof(SqlClientDriver).AssemblyQualifiedName));
+ Assert.That(cfg.Properties[Environment.ConnectionDriver], Is.EqualTo(typeof(SqlServer2000Driver).AssemblyQualifiedName));
Assert.That(cfg.Properties[Environment.ReleaseConnections], Is.EqualTo(ConnectionReleaseModeParser.ToString(ConnectionReleaseMode.AfterTransaction)));
Assert.That(cfg.Properties[Environment.Isolation], Is.EqualTo("ReadCommitted"));
Assert.That(cfg.Properties[Environment.ConnectionString], Is.EqualTo(connectionString));
diff --git a/src/NHibernate.Test/CfgTest/Loquacious/LambdaConfigurationFixture.cs b/src/NHibernate.Test/CfgTest/Loquacious/LambdaConfigurationFixture.cs
index cc464aafafa..2a2cb60fb95 100644
--- a/src/NHibernate.Test/CfgTest/Loquacious/LambdaConfigurationFixture.cs
+++ b/src/NHibernate.Test/CfgTest/Loquacious/LambdaConfigurationFixture.cs
@@ -49,7 +49,7 @@ public void FullConfiguration()
db.Batcher();
db.BatchSize = 15;
db.ConnectionProvider();
- db.Driver();
+ db.Driver();
db.ConnectionReleaseMode = ConnectionReleaseMode.AfterTransaction;
db.IsolationLevel = IsolationLevel.ReadCommitted;
db.ConnectionString = "The connection string";
@@ -88,7 +88,7 @@ public void FullConfiguration()
Assert.That(configure.Properties[Environment.ConnectionProvider],
Is.EqualTo(typeof(DebugConnectionProvider).AssemblyQualifiedName));
Assert.That(configure.Properties[Environment.ConnectionDriver],
- Is.EqualTo(typeof(SqlClientDriver).AssemblyQualifiedName));
+ Is.EqualTo(typeof(SqlServer2000Driver).AssemblyQualifiedName));
Assert.That(configure.Properties[Environment.ReleaseConnections],
Is.EqualTo(ConnectionReleaseModeParser.ToString(ConnectionReleaseMode.AfterTransaction)));
Assert.That(configure.Properties[Environment.Isolation], Is.EqualTo("ReadCommitted"));
@@ -104,4 +104,4 @@ public void FullConfiguration()
Assert.That(configure.Properties[Environment.LinqToHqlGeneratorsRegistry], Is.EqualTo(typeof(DefaultLinqToHqlGeneratorsRegistry).AssemblyQualifiedName));
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate.Test/DriverTest/FirebirdClientDriverFixture.cs b/src/NHibernate.Test/DriverTest/FirebirdClientDriverFixture.cs
index 2bd4177e8db..c7a51668cb2 100644
--- a/src/NHibernate.Test/DriverTest/FirebirdClientDriverFixture.cs
+++ b/src/NHibernate.Test/DriverTest/FirebirdClientDriverFixture.cs
@@ -9,10 +9,10 @@
namespace NHibernate.Test.DriverTest
{
[TestFixture]
- public class FirebirdClientDriverFixture
+ public class FirebirdDriverFixture
{
private string _connectionString;
- private FirebirdClientDriver _driver;
+ private FirebirdDriver _driver;
[OneTimeSetUp]
public void OneTimeSetup()
@@ -23,7 +23,7 @@ public void OneTimeSetup()
if (!dlct.Contains("Firebird"))
Assert.Ignore("Applies only to Firebird");
- _driver = new FirebirdClientDriver();
+ _driver = new FirebirdDriver();
_driver.Configure(cfg.Properties);
_connectionString = cfg.GetProperty("connection.connection_string");
}
diff --git a/src/NHibernate.Test/DriverTest/ObsoleteDriverFixture.cs b/src/NHibernate.Test/DriverTest/ObsoleteDriverFixture.cs
new file mode 100644
index 00000000000..5ef6726ac64
--- /dev/null
+++ b/src/NHibernate.Test/DriverTest/ObsoleteDriverFixture.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections;
+using System.Linq.Dynamic.Core;
+using NHibernate.Cfg;
+using NHibernate.Connection;
+using NHibernate.Dialect;
+using NHibernate.DomainModel;
+using NHibernate.Driver;
+using NHibernate.Util;
+using NUnit.Framework;
+
+namespace NHibernate.Test.DriverTest
+{
+ [TestFixture, Obsolete]
+ public class ObsoleteDriverFixture : TestCase
+ {
+ protected override IList Mappings => new [] {"Simple.hbm.xml"};
+
+ protected override bool AppliesTo(Dialect.Dialect dialect)
+ {
+ switch (dialect)
+ {
+ case FirebirdDialect _:
+ case MsSql2000Dialect _:
+ case MsSqlCeDialect _:
+ case MySQLDialect _:
+ case PostgreSQLDialect _:
+ case SQLiteDialect _:
+ System.Type driverType = ReflectHelper.ClassForName(cfg.GetProperty(Cfg.Environment.ConnectionDriver));
+ return !(driverType.IsOdbcDriver() || driverType.IsOleDbDriver());
+ default:
+ return false;
+ }
+ }
+
+ protected override void Configure(Configuration configuration)
+ {
+ base.Configure(configuration);
+
+ System.Type driverType = ReflectHelper.ClassForName(cfg.GetProperty(Cfg.Environment.ConnectionDriver));
+ if (driverType.IsOdbcDriver() || driverType.IsOleDbDriver())
+ {
+ // ODBC and OLE DB drivers are not obsoleted, do not switch it.
+ return;
+ }
+
+ var dialect = NHibernate.Dialect.Dialect.GetDialect(configuration.Properties);
+ System.Type driver;
+ switch (dialect)
+ {
+ case FirebirdDialect _:
+ driver = typeof(FirebirdClientDriver);
+ break;
+ case MsSql2008Dialect _:
+ driver = typeof(Sql2008ClientDriver);
+ break;
+ case MsSql2000Dialect _:
+ driver = typeof(SqlClientDriver);
+ break;
+ case MsSqlCeDialect _:
+ driver = typeof(SqlServerCeDriver);
+ break;
+ case MySQLDialect _:
+ driver = typeof(MySqlDataDriver);
+ break;
+ case PostgreSQLDialect _:
+ driver = typeof(NpgsqlDriver);
+ break;
+ case SQLiteDialect _:
+ driver = typeof(SQLite20Driver);
+ break;
+ default:
+ return;
+ }
+ configuration.SetProperty(Cfg.Environment.ConnectionDriver, driver.FullName);
+ }
+
+ [Test]
+ public void GenerateObsoleteWarning()
+ {
+ using (var spy = new LogSpy(typeof(ConnectionProvider)))
+ {
+ using (BuildSessionFactory())
+ {
+ Assert.That(spy.GetWholeLog(), Does.Contain("Install the NHibernate.Driver."));
+ }
+ }
+ }
+
+ [Test]
+ public void CanUseObsoleteDriver()
+ {
+ using (var s = OpenSession())
+ using (var t = s.BeginTransaction())
+ {
+ var count = s.Query().Count();
+ Assert.That(count, Is.Zero);
+ t.Commit();
+ }
+ }
+ }
+}
diff --git a/src/NHibernate.Test/DriverTest/OracleDataClientDriverFixture.cs b/src/NHibernate.Test/DriverTest/OracleDataClientDriverFixture.cs
index 808a1b68dea..819bbf8e54f 100644
--- a/src/NHibernate.Test/DriverTest/OracleDataClientDriverFixture.cs
+++ b/src/NHibernate.Test/DriverTest/OracleDataClientDriverFixture.cs
@@ -117,7 +117,7 @@ private static OracleDataClientDriverBase GetDriver(bool managed, IDictionary "NHibernate.Test";
@@ -40,7 +40,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void OnTearDown()
diff --git a/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs b/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs
index 5d7932a93d5..e5be6ca6cc0 100644
--- a/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs
+++ b/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs
@@ -31,7 +31,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
var driver = factory.ConnectionProvider.Driver;
- return !(driver.IsOracleDataClientDriver()) && !(driver.IsOracleManagedDataClientDriver()) && !(driver.IsOracleLiteDataClientDriver()) && !(driver.IsOdbcDriver()) && !(driver.IsOleDbDriver());
+ return !(driver.IsOracleDataClientDriver()) && !(driver.IsOracleManagedDriver()) && !(driver.IsOracleLiteDataClientDriver()) && !(driver.IsOdbcDriver()) && !(driver.IsOleDbDriver());
}
protected override void Configure(Cfg.Configuration configuration)
diff --git a/src/NHibernate.Test/Futures/FallbackFixture.cs b/src/NHibernate.Test/Futures/FallbackFixture.cs
index 7593d65f0ac..8e936b09bf0 100644
--- a/src/NHibernate.Test/Futures/FallbackFixture.cs
+++ b/src/NHibernate.Test/Futures/FallbackFixture.cs
@@ -10,13 +10,13 @@
namespace NHibernate.Test.Futures
{
- public class TestDriverThatDoesntSupportQueryBatching : SqlClientDriver
+ public class TestDriverThatDoesntSupportQueryBatching : SqlServer2000Driver
{
public override bool SupportsMultipleQueries => false;
}
///
- /// I'm using a Driver which derives from SqlClientDriver to
+ /// I'm using a Driver which derives from SqlServer2000Driver to
/// return false for the SupportsMultipleQueries property. This is purely to test the way NHibernate
/// will behave when the driver that's being used does not support multiple queries... so even though
/// the test is using MsSql, it's only relevant for databases that don't support multiple queries
@@ -38,7 +38,7 @@ protected override void Configure(Configuration configuration)
base.Configure(configuration);
using (var cp = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties))
{
- if (cp.Driver.IsSqlClientDriver())
+ if (cp.Driver.IsSqlServerDriver())
{
configuration.Properties[Environment.ConnectionDriver] =
typeof(TestDriverThatDoesntSupportQueryBatching).AssemblyQualifiedName;
diff --git a/src/NHibernate.Test/Insertordering/InsertOrderingFixture.cs b/src/NHibernate.Test/Insertordering/InsertOrderingFixture.cs
index c9647148b74..3286036b7a8 100644
--- a/src/NHibernate.Test/Insertordering/InsertOrderingFixture.cs
+++ b/src/NHibernate.Test/Insertordering/InsertOrderingFixture.cs
@@ -41,7 +41,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Custom batcher does not support oledb driver.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void Configure(Configuration configuration)
diff --git a/src/NHibernate.Test/NHSpecificTest/NH1507/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH1507/Fixture.cs
index b54bdf9dcac..e46f0c3c58b 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH1507/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH1507/Fixture.cs
@@ -9,7 +9,7 @@ public class Fixture : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs b/src/NHibernate.Test/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
index 16221e85704..96ca8ac199d 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH1553/MsSQL/SnapshotIsolationUpdateConflictTest.cs
@@ -130,7 +130,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// SQLUpdateConflictToStaleStateExceptionConverter is specific to Sql client driver, and does not work
// with Odbc (and likeley Oledb).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
private void SetAllowSnapshotIsolation(bool on)
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2020/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2020/Fixture.cs
index ab96c5ab2bd..289d7cc8e23 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2020/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2020/Fixture.cs
@@ -25,7 +25,7 @@ protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Use a SQL Server Client exception converter, cannot work for ODBC or OleDb
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void OnTearDown()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs b/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs
index 40d332899c7..19b7cac1d5f 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs
@@ -16,7 +16,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSql2008ClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServer2008Driver();
}
[Test]
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2296/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2296/Fixture.cs
index c56a9ad5ef4..c9b6a17abcc 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2296/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2296/Fixture.cs
@@ -8,7 +8,7 @@ public class Fixture : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs b/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs
index 19e7ae2a6d1..82cb3f662b2 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs
@@ -39,7 +39,7 @@ protected override void Configure(Configuration configuration)
{
// to be sure we are using the new drive
base.Configure(configuration);
- configuration.DataBaseIntegration(x=> x.Driver());
+ configuration.DataBaseIntegration(x=> x.Driver());
}
[Test]
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2846/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2846/Fixture.cs
index 370e06fce5b..e3f8ae9de60 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2846/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2846/Fixture.cs
@@ -9,7 +9,7 @@ public class Fixture : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH2852/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2852/Fixture.cs
index 0646e67d5e9..a7074c919a5 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH2852/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH2852/Fixture.cs
@@ -9,7 +9,7 @@ public class Fixture : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3004/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3004/Fixture.cs
index 706eb379177..8ea465009c0 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3004/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3004/Fixture.cs
@@ -13,7 +13,7 @@ public void RemoveUnusedCommandParametersBug_1()
/* UseNamedPrefixInSql is true
* UseNamedPrefixInParameter is false
* */
- var driver = new TestSqlClientDriver(true, false);
+ var driver = new TestSqlServerDriver(true, false);
RunTest(driver);
}
@@ -24,12 +24,12 @@ public void RemoveUnusedCommandParametersBug_2()
/* UseNamedPrefixInSql is true
* UseNamedPrefixInParameter is true
* */
- var driver = new TestSqlClientDriver(true, true);
+ var driver = new TestSqlServerDriver(true, true);
RunTest(driver);
}
- private static void RunTest(TestSqlClientDriver driver)
+ private static void RunTest(TestSqlServerDriver driver)
{
var command = driver.CreateCommand();
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlClientDriver.cs b/src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlServerDriver.cs
similarity index 66%
rename from src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlClientDriver.cs
rename to src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlServerDriver.cs
index 24297856ff0..961e1a30a79 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlClientDriver.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3004/TestSqlServerDriver.cs
@@ -1,9 +1,3 @@
-using System.Data.SqlClient;
-using NHibernate.AdoNet;
-using NHibernate.Dialect;
-using NHibernate.Engine;
-using NHibernate.SqlCommand;
-using NHibernate.SqlTypes;
using NHibernate.Driver;
namespace NHibernate.Test.NHSpecificTest.NH3004
@@ -11,17 +5,17 @@ namespace NHibernate.Test.NHSpecificTest.NH3004
///
/// A NHibernate Driver for using the SqlClient DataProvider
///
- public class TestSqlClientDriver : SqlClientDriver
+ public class TestSqlServerDriver : SqlServer2000Driver
{
bool _UseNamedPrefixInSql = true;
bool _UseNamedPrefixInParameter = false;
- public TestSqlClientDriver()
+ public TestSqlServerDriver()
{
}
- public TestSqlClientDriver(bool UseNamedPrefixInSql, bool UseNamedPrefixInParameter)
+ public TestSqlServerDriver(bool UseNamedPrefixInSql, bool UseNamedPrefixInParameter)
{
_UseNamedPrefixInSql = UseNamedPrefixInSql;
_UseNamedPrefixInParameter = UseNamedPrefixInParameter;
@@ -38,4 +32,4 @@ public override bool UseNamedPrefixInParameter
get { return _UseNamedPrefixInParameter; }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs b/src/NHibernate.Test/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
index e2fa299356b..816f0235ea7 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3023/DeadlockConnectionPoolIssueTest.cs
@@ -31,7 +31,7 @@ protected override void Configure(Configuration configuration)
// Uses directly SqlConnection.
protected override bool AppliesTo(ISessionFactoryImplementor factory)
- => factory.ConnectionProvider.Driver.IsSqlClientDriver() && base.AppliesTo(factory);
+ => factory.ConnectionProvider.Driver.IsSqlServerDriver() && base.AppliesTo(factory);
protected override bool AppliesTo(Dialect.Dialect dialect)
=> dialect is MsSql2000Dialect && base.AppliesTo(dialect);
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3121/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3121/Fixture.cs
index 28365e2c4da..f7b62a7d4ec 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3121/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3121/Fixture.cs
@@ -23,10 +23,10 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
[Test]
public void ShouldThrowWhenByteArrayTooLong()
{
- // For SQL Server only the SqlClientDriver sets parameter lengths
+ // For SQL Server only the SqlServer2000Driver sets parameter lengths
// even when there is no length specified in the mapping. The ODBC
// driver won't cause the truncation issue and hence not the exception.
- if (!(Sfi.ConnectionProvider.Driver.IsSqlClientDriver()))
+ if (!(Sfi.ConnectionProvider.Driver.IsSqlServerDriver()))
Assert.Ignore("Test limited to drivers that sets parameter length even with no length specified in the mapping.");
const int reportSize = 17158;
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3142/ChildrenTest.cs b/src/NHibernate.Test/NHSpecificTest/NH3142/ChildrenTest.cs
index b3ed2a39e57..d194624c387 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3142/ChildrenTest.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3142/ChildrenTest.cs
@@ -10,7 +10,7 @@ public class ChildrenTest : BugTestCase
{
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return !(factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return !(factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnSetUp()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3202/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3202/Fixture.cs
index 50646322646..dd401f9316d 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3202/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3202/Fixture.cs
@@ -16,7 +16,7 @@ protected override void Configure(Configuration configuration)
if (!(Dialect is MsSql2008Dialect))
Assert.Ignore("Test is for MS SQL Server dialect only (custom dialect).");
- if (!ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver)).IsSqlClientDriver())
+ if (!ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver)).IsSqlServerDriver())
Assert.Ignore("Test is for MS SQL Server driver only (custom driver is used).");
cfg.SetProperty(Environment.Dialect, typeof(OffsetStartsAtOneTestDialect).AssemblyQualifiedName);
@@ -105,7 +105,7 @@ public class OffsetStartsAtOneTestDialect : MsSql2008Dialect
}
- public class OffsetTestDriver : SqlClientDriver
+ public class OffsetTestDriver : SqlServer2000Driver
{
public OffsetStartsAtOneTestDialect OffsetStartsAtOneTestDialect;
private int _offsetParameterIndex = 1;
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3252/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3252/Fixture.cs
index 1483a4db734..7287a6efc97 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3252/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3252/Fixture.cs
@@ -11,7 +11,7 @@ public class Fixture : BugTestCase
{
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3405/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3405/Fixture.cs
index 9ae781a5fc0..e6bed827bac 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3405/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3405/Fixture.cs
@@ -33,7 +33,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// No Xml support with Odbc (and likely OleDb too).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override HbmMapping GetMappings()
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3518/XmlColumnTest.cs b/src/NHibernate.Test/NHSpecificTest/NH3518/XmlColumnTest.cs
index 114bc3debee..636411ffa90 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3518/XmlColumnTest.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3518/XmlColumnTest.cs
@@ -26,7 +26,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override void Configure(Configuration configuration)
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3620/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3620/Fixture.cs
index f9b53041236..69e0a4e7098 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3620/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3620/Fixture.cs
@@ -5,7 +5,7 @@ namespace NHibernate.Test.NHSpecificTest.NH3620 {
[TestFixture]
public class Fixture : BugTestCase {
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory) {
- return (factory.ConnectionProvider.Driver.IsOracleManagedDataClientDriver());
+ return (factory.ConnectionProvider.Driver.IsOracleManagedDriver());
}
protected override void OnTearDown() {
diff --git a/src/NHibernate.Test/NHSpecificTest/NH3912/ReusableBatcherFixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
index d803ea9de98..76570c9b09a 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH3912/ReusableBatcherFixture.cs
@@ -18,7 +18,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
var driver = factory.ConnectionProvider.Driver;
return driver.IsOracleDataClientDriver() ||
driver.IsOracleLiteDataClientDriver() ||
- driver.IsOracleManagedDataClientDriver();
+ driver.IsOracleManagedDriver();
}
protected override HbmMapping GetMappings()
diff --git a/src/NHibernate.Test/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
index 312495477ff..b264cdfc1ad 100644
--- a/src/NHibernate.Test/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/SqlConverterAndMultiQuery/Fixture.cs
@@ -20,7 +20,7 @@ protected override bool AppliesTo(ISessionFactoryImplementor factory)
// tend to (validly) send InvalidOperationException during prepare phase due to the closed
// connection, which get not converted. For testing other case, maybe a failure caused by a
// schema mismatch (like done in transaction tests) would be better.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj
index 9d04242a1d2..bbeed4e04fc 100644
--- a/src/NHibernate.Test/NHibernate.Test.csproj
+++ b/src/NHibernate.Test/NHibernate.Test.csproj
@@ -31,35 +31,22 @@
-
-
-
-
-
-
-
-
-
- %(RecursiveDir)%(Filename)%(Extension)
- PreserveNewest
-
-
-
-
-
- %(RecursiveDir)%(Filename)%(Extension)
- PreserveNewest
-
-
+
+
+
+
+
+
+
diff --git a/src/NHibernate.Test/Pagination/CustomDialectFixture.cs b/src/NHibernate.Test/Pagination/CustomDialectFixture.cs
index 05cc45e0bdc..c0182a827bd 100644
--- a/src/NHibernate.Test/Pagination/CustomDialectFixture.cs
+++ b/src/NHibernate.Test/Pagination/CustomDialectFixture.cs
@@ -28,7 +28,7 @@ protected override void Configure(Configuration configuration)
if (!(Dialect is MsSql2005Dialect))
Assert.Ignore("Test is for SQL dialect only");
var driverClass = ReflectHelper.ClassForName(cfg.GetProperty(Environment.ConnectionDriver));
- if (!driverClass.IsSqlClientDriver())
+ if (!driverClass.IsSqlServerDriver())
Assert.Ignore("Test is compatible only with Sql Server Client driver connection strings");
cfg.SetProperty(Environment.Dialect, typeof(CustomMsSqlDialect).AssemblyQualifiedName);
diff --git a/src/NHibernate.Test/Pagination/CustomMsSqlDriver.cs b/src/NHibernate.Test/Pagination/CustomMsSqlDriver.cs
index 3ba118a3d7f..5c1319be06f 100644
--- a/src/NHibernate.Test/Pagination/CustomMsSqlDriver.cs
+++ b/src/NHibernate.Test/Pagination/CustomMsSqlDriver.cs
@@ -1,7 +1,5 @@
using System.Data.Common;
-using System.Text.RegularExpressions;
using NHibernate.Driver;
-using NUnit.Framework;
namespace NHibernate.Test.Pagination
{
@@ -9,7 +7,7 @@ namespace NHibernate.Test.Pagination
/// Class to work with CustomMsSqlDialect to allow
/// verification of simulated limit parameters
///
- public class CustomMsSqlDriver : SqlClientDriver
+ public class CustomMsSqlDriver : SqlServer2000Driver
{
public CustomMsSqlDialect CustomMsSqlDialect;
@@ -33,4 +31,4 @@ protected override void OnBeforePrepare(DbCommand command)
base.OnBeforePrepare(command);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate.Test/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs b/src/NHibernate.Test/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
index 031f69dd0f2..12eb892d91b 100644
--- a/src/NHibernate.Test/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
+++ b/src/NHibernate.Test/SqlTest/Identity/MsSQL/MSSQLIdentityInsertWithStoredProcsTest.cs
@@ -16,7 +16,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// Tested resulting SQL depends on driver.
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
protected override string GetExpectedInsertOrgLogStatement(string orgName)
diff --git a/src/NHibernate.Test/SystemTransactions/SystemTransactionFixtureBase.cs b/src/NHibernate.Test/SystemTransactions/SystemTransactionFixtureBase.cs
index eb31c95f8c3..6b604b8cd7d 100644
--- a/src/NHibernate.Test/SystemTransactions/SystemTransactionFixtureBase.cs
+++ b/src/NHibernate.Test/SystemTransactions/SystemTransactionFixtureBase.cs
@@ -31,7 +31,7 @@ protected void DisableConnectionAutoEnlist(Configuration configuration)
var autoEnlistmentKeyword = "Enlist";
var autoEnlistmentKeywordPattern = autoEnlistmentKeyword;
if (configuration.GetDerivedProperties().TryGetValue(Cfg.Environment.ConnectionDriver, out var driver) &&
- ReflectHelper.ClassForName(driver).IsMySqlDataDriver())
+ ReflectHelper.ClassForName(driver).IsMySqlDriver())
{
autoEnlistmentKeyword = "AutoEnlist";
autoEnlistmentKeywordPattern = "Auto ?Enlist";
diff --git a/src/NHibernate.Test/TestCase.cs b/src/NHibernate.Test/TestCase.cs
index 6cdc58ae4f4..b715b7e3f06 100644
--- a/src/NHibernate.Test/TestCase.cs
+++ b/src/NHibernate.Test/TestCase.cs
@@ -301,7 +301,7 @@ public static void DropSchema(bool useStdOut, SchemaExport export, ISessionFacto
// This results in other tests failing when they try to create tables with same name.
// By clearing the connection pool the tables will get dropped. This is done by the following code.
// Moved from NH1908 test case, contributed by Amro El-Fakharany.
- sfi?.ConnectionProvider.Driver.ClearPoolForFirebirdClientDriver();
+ sfi?.ConnectionProvider.Driver.ClearPoolForFirebirdDriver();
export.Drop(useStdOut, true);
}
diff --git a/src/NHibernate.Test/TestEmbeddedConfig.cfg.xml b/src/NHibernate.Test/TestEmbeddedConfig.cfg.xml
index 25058dae03a..6ba543f0cb3 100644
--- a/src/NHibernate.Test/TestEmbeddedConfig.cfg.xml
+++ b/src/NHibernate.Test/TestEmbeddedConfig.cfg.xml
@@ -3,10 +3,10 @@
NHibernate.Test.DebugConnectionProvider, NHibernate.Test
NHibernate.Cache.HashtableCacheProvider, NHibernate
- NHibernate.Driver.SqlClientDriver
+ NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer
Server=localhost;initial catalog=nhibernate;User Id=;Password=
true 1, false 0, yes 1, no 0
NHibernate.Dialect.MsSql2000Dialect
NHibernate.Test.CfgTest.ConfigurationFixture+SampleQueryProvider, NHibernate.Test
-
\ No newline at end of file
+
diff --git a/src/NHibernate.Test/TestingExtensions.cs b/src/NHibernate.Test/TestingExtensions.cs
index 3b656a8bae0..dbf244c7821 100644
--- a/src/NHibernate.Test/TestingExtensions.cs
+++ b/src/NHibernate.Test/TestingExtensions.cs
@@ -6,48 +6,78 @@ public static class TestingExtensions
{
public static bool IsOdbcDriver(this IDriver driver)
{
- return (driver is OdbcDriver);
+ if (driver is OdbcDriver) return true;
+ return false;
}
public static bool IsOdbcDriver(this System.Type driverClass)
{
- return typeof(OdbcDriver).IsAssignableFrom(driverClass);
+ if (typeof(OdbcDriver).IsAssignableFrom(driverClass)) return true;
+ return false;
}
public static bool IsOleDbDriver(this IDriver driver)
{
- return (driver is OleDbDriver);
+ if (driver is OleDbDriver) return true;
+ return false;
}
public static bool IsOleDbDriver(this System.Type driverClass)
{
- return typeof(OleDbDriver).IsAssignableFrom(driverClass);
+ if (typeof(OleDbDriver).IsAssignableFrom(driverClass)) return true;
+ return false;
}
- public static bool IsSqlClientDriver(this IDriver driver)
+ ///
+ /// Matches both SQL Server 2000 and 2008 drivers
+ ///
+ public static bool IsSqlServerDriver(this IDriver driver)
{
- return (driver is SqlClientDriver);
+#pragma warning disable 618
+ if (driver is SqlClientDriver) return true;
+#pragma warning restore 618
+ if (driver is SqlServer2000Driver) return true;
+ return false;
}
- public static bool IsSqlClientDriver(this System.Type driverClass)
+ ///
+ /// Matches both SQL Server 2000 and 2008 drivers
+ ///
+ public static bool IsSqlServerDriver(this System.Type driverClass)
{
- return typeof(SqlClientDriver).IsAssignableFrom(driverClass);
+#pragma warning disable 618
+ if (typeof(SqlClientDriver).IsAssignableFrom(driverClass)) return true;
+#pragma warning restore 618
+ if (typeof(SqlServer2000Driver).IsAssignableFrom(driverClass)) return true;
+ return false;
}
- public static bool IsSql2008ClientDriver(this IDriver driver)
+ public static bool IsSqlServer2008Driver(this IDriver driver)
{
- return (driver is Sql2008ClientDriver);
+#pragma warning disable 618
+ if (driver is Sql2008ClientDriver) return true;
+#pragma warning restore 618
+ if (driver is SqlServer2008Driver) return true;
+ return false;
}
- public static bool IsMySqlDataDriver(this System.Type driverClass)
+ public static bool IsMySqlDriver(this System.Type driverClass)
{
- return typeof(MySqlDataDriver).IsAssignableFrom(driverClass);
+#pragma warning disable 618
+ if (typeof(MySqlDataDriver).IsAssignableFrom(driverClass)) return true;
+#pragma warning restore 618
+ if (typeof(MySqlDriver).IsAssignableFrom(driverClass)) return true;
+ return false;
}
- public static bool IsFirebirdClientDriver(this IDriver driver)
+ public static bool IsFirebirdDriver(this IDriver driver)
{
- return (driver is FirebirdClientDriver);
+#pragma warning disable 618
+ if (driver is FirebirdClientDriver) return true;
+#pragma warning restore 618
+ if (driver is FirebirdDriver) return true;
+ return false;
}
///
@@ -59,32 +89,46 @@ public static bool IsFirebirdClientDriver(this IDriver driver)
/// By clearing the connection pool the tables will get dropped. This is done by the following code.
/// Moved from NH1908 test case, contributed by Amro El-Fakharany.
///
- public static void ClearPoolForFirebirdClientDriver(this IDriver driver)
+ public static void ClearPoolForFirebirdDriver(this IDriver driver)
{
- if (driver is FirebirdClientDriver fbDriver)
+ switch (driver)
{
- fbDriver.ClearPool(null);
+#pragma warning disable 618
+ case FirebirdClientDriver fbDriver:
+ fbDriver.ClearPool(null);
+ break;
+#pragma warning restore 618
+ case FirebirdDriver fbDriver2:
+ fbDriver2.ClearPool(null);
+ break;
}
}
public static bool IsOracleDataClientDriver(this IDriver driver)
{
- return (driver is OracleDataClientDriver);
+ if (driver is OracleDataClientDriver) return true;
+ return false;
}
public static bool IsOracleDataClientDriver(this System.Type driverClass)
{
- return typeof(OracleDataClientDriver).IsAssignableFrom(driverClass);
+ if (typeof(OracleDataClientDriver).IsAssignableFrom(driverClass)) return true;
+ return false;
}
public static bool IsOracleLiteDataClientDriver(this IDriver driver)
{
- return (driver is OracleLiteDataClientDriver);
+ if (driver is OracleLiteDataClientDriver) return true;
+ return false;
}
- public static bool IsOracleManagedDataClientDriver(this IDriver driver)
+ public static bool IsOracleManagedDriver(this IDriver driver)
{
- return (driver is OracleManagedDataClientDriver);
+#pragma warning disable 618
+ if (driver is OracleManagedDataClientDriver) return true;
+#pragma warning restore 618
+ if (driver is OracleManagedDriver) return true;
+ return false;
}
}
}
diff --git a/src/NHibernate.Test/TypesTest/AbstractDateTimeTypeFixture.cs b/src/NHibernate.Test/TypesTest/AbstractDateTimeTypeFixture.cs
index 411e79b9457..2ed4774022e 100644
--- a/src/NHibernate.Test/TypesTest/AbstractDateTimeTypeFixture.cs
+++ b/src/NHibernate.Test/TypesTest/AbstractDateTimeTypeFixture.cs
@@ -581,7 +581,7 @@ public void CleanUp()
// This results in other tests failing when they try to create tables with same name.
// By clearing the connection pool the tables will get dropped. This is done by the following code.
// Moved from NH1908 test case, contributed by Amro El-Fakharany.
- _driverImplementation.ClearPoolForFirebirdClientDriver();
+ _driverImplementation.ClearPoolForFirebirdDriver();
}
#endregion
diff --git a/src/NHibernate.Test/TypesTest/StringTypeWithLengthFixture.cs b/src/NHibernate.Test/TypesTest/StringTypeWithLengthFixture.cs
index cba7160401a..688cfcc0a73 100644
--- a/src/NHibernate.Test/TypesTest/StringTypeWithLengthFixture.cs
+++ b/src/NHibernate.Test/TypesTest/StringTypeWithLengthFixture.cs
@@ -65,7 +65,7 @@ protected override void OnTearDown()
public void ShouldPreventInsertionOfVeryLongStringThatWouldBeTruncated()
{
// This test case is for when the current driver will use a parameter size
- // that is significantly larger than the mapped column size (e.g. SqlClientDriver currently).
+ // that is significantly larger than the mapped column size (e.g. SqlServer2000Driver currently).
// Note: This test could possible be written as
// "database must raise an error OR it must store and return the full value"
diff --git a/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs b/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs
index 1391c472adc..0810d69e930 100644
--- a/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs
+++ b/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs
@@ -23,7 +23,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// No Xml support with Odbc (and likely OleDb too).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs b/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs
index ee821c56144..761baca9fe4 100644
--- a/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs
+++ b/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs
@@ -23,7 +23,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect)
protected override bool AppliesTo(ISessionFactoryImplementor factory)
{
// No Xml support with Odbc (and likely OleDb too).
- return factory.ConnectionProvider.Driver.IsSqlClientDriver();
+ return factory.ConnectionProvider.Driver.IsSqlServerDriver();
}
[Test]
diff --git a/src/NHibernate.TestDatabaseSetup/App.config b/src/NHibernate.TestDatabaseSetup/App.config
index 1fa471187b0..4ae2d69e5c4 100644
--- a/src/NHibernate.TestDatabaseSetup/App.config
+++ b/src/NHibernate.TestDatabaseSetup/App.config
@@ -1,4 +1,4 @@
-
+
- NHibernate.Driver.Sql2008ClientDriver
+ NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer
Server=.\SQLExpress;initial catalog=master;Integrated Security=SSPI
diff --git a/src/NHibernate.TestDatabaseSetup/TestDatabaseSetup.cs b/src/NHibernate.TestDatabaseSetup/TestDatabaseSetup.cs
index bc9c9a417fa..2ac54ee11ee 100644
--- a/src/NHibernate.TestDatabaseSetup/TestDatabaseSetup.cs
+++ b/src/NHibernate.TestDatabaseSetup/TestDatabaseSetup.cs
@@ -17,17 +17,17 @@ public class DatabaseSetup
{
private static readonly IDictionary> SetupMethods = new Dictionary>
{
- {"NHibernate.Driver.SqlClientDriver", SetupSqlServer},
- {"NHibernate.Driver.Sql2008ClientDriver", SetupSqlServer},
+ {"NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer", SetupSqlServer},
+ {"NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer", SetupSqlServer},
{"NHibernate.Driver.OdbcDriver", SetupSqlServerOdbc},
- {"NHibernate.Driver.FirebirdClientDriver", SetupFirebird},
- {"NHibernate.Driver.SQLite20Driver", SetupSQLite},
- {"NHibernate.Driver.NpgsqlDriver", SetupNpgsql},
+ {"NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird", SetupFirebird},
+ {"NHibernate.Driver.SQLiteDriver, NHibernate.Driver.SQLite", SetupSQLite},
+ {"NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql", SetupNpgsql},
{"NHibernate.Driver.OracleDataClientDriver", SetupOracle},
- {"NHibernate.Driver.MySqlDataDriver", SetupMySql},
+ {"NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql", SetupMySql},
{"NHibernate.Driver.OracleClientDriver", SetupOracle},
- {"NHibernate.Driver.OracleManagedDataClientDriver", SetupOracle},
- {"NHibernate.Driver.SqlServerCeDriver", SetupSqlServerCe}
+ {"NHibernate.Driver.OracleManagedDriver, NHibernate.Driver.Oracle.Managed", SetupOracle},
+ {"NHibernate.Driver.SqlServerCompactDriver, NHibernate.Driver.SqlServer.Compact", SetupSqlServerCe}
};
private static void SetupMySql(Cfg.Configuration obj)
diff --git a/src/NHibernate/Async/Dialect/Dialect.cs b/src/NHibernate/Async/Dialect/Dialect.cs
index fd92f72de29..f51726c807e 100644
--- a/src/NHibernate/Async/Dialect/Dialect.cs
+++ b/src/NHibernate/Async/Dialect/Dialect.cs
@@ -18,6 +18,7 @@
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Lock;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.Exceptions;
using NHibernate.Id;
using NHibernate.Mapping;
diff --git a/src/NHibernate/Connection/ConnectionProvider.cs b/src/NHibernate/Connection/ConnectionProvider.cs
index 04ff2c560dc..5be968a63bf 100644
--- a/src/NHibernate/Connection/ConnectionProvider.cs
+++ b/src/NHibernate/Connection/ConnectionProvider.cs
@@ -147,7 +147,7 @@ protected virtual void ConfigureDriver(IDictionary settings)
private static void LogObsoleteDriver(string obsoleteDriverName, string nugetName, string newDriverName)
{
- log.Error(
+ log.Warn(
"Using \"{0}\" from main NHibernate package is obsolete."
+ " Install the NHibernate.Driver.{1} NuGet package and change " + Environment.ConnectionDriver + " setting to \"NHibernate.Driver.{2}, NHibernate.Driver.{1}\".",
obsoleteDriverName,
diff --git a/src/NHibernate/Dialect/DB2400Dialect.cs b/src/NHibernate/Dialect/DB2400Dialect.cs
index aa306a0d05a..775864621b1 100644
--- a/src/NHibernate/Dialect/DB2400Dialect.cs
+++ b/src/NHibernate/Dialect/DB2400Dialect.cs
@@ -15,7 +15,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.DB2400Driver
///
///
///
@@ -61,4 +61,4 @@ public override bool SupportsVariableLimit
get { return false; }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate/Dialect/DB2Dialect.cs b/src/NHibernate/Dialect/DB2Dialect.cs
index 3bcd3f01da2..03aa5f59475 100644
--- a/src/NHibernate/Dialect/DB2Dialect.cs
+++ b/src/NHibernate/Dialect/DB2Dialect.cs
@@ -18,7 +18,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.DB2Driver
///
///
///
diff --git a/src/NHibernate/Dialect/Dialect.cs b/src/NHibernate/Dialect/Dialect.cs
index 53a31c43e15..0d8e72896e9 100644
--- a/src/NHibernate/Dialect/Dialect.cs
+++ b/src/NHibernate/Dialect/Dialect.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections;
+using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
@@ -8,6 +9,7 @@
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Lock;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.Exceptions;
using NHibernate.Id;
using NHibernate.Mapping;
@@ -47,6 +49,7 @@ public abstract partial class Dialect
private readonly IDictionary _sqlFunctions;
private static readonly IDictionary StandardAggregateFunctions = CollectionHelper.CreateCaseInsensitiveHashtable();
+ private static readonly ConcurrentDictionary ExternalDriverExistsCache = new ConcurrentDictionary();
private static readonly IViolatedConstraintNameExtracter Extracter;
@@ -2550,5 +2553,12 @@ public virtual ISQLExceptionConverter BuildSQLExceptionConverter()
// may override to return whatever is most appropriate for that vendor.
return new SQLStateConverter(ViolatedConstraintNameExtracter);
}
+
+ internal static string GetDriverName(string preferredName) where TFallback : IDriver
+ {
+ return ExternalDriverExistsCache.GetOrAdd(preferredName, s => ReflectHelper.ClassForFullNameOrNull(s) == null)
+ ? typeof(TFallback).FullName
+ : preferredName;
+ }
}
}
diff --git a/src/NHibernate/Dialect/FirebirdDialect.cs b/src/NHibernate/Dialect/FirebirdDialect.cs
index 5fa709e15c9..e0c083e70aa 100644
--- a/src/NHibernate/Dialect/FirebirdDialect.cs
+++ b/src/NHibernate/Dialect/FirebirdDialect.cs
@@ -4,9 +4,11 @@
using System.Data.Common;
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.Engine;
using NHibernate.SqlCommand;
using NHibernate.Type;
+using NHibernate.Util;
using Environment = NHibernate.Cfg.Environment;
namespace NHibernate.Dialect
@@ -23,7 +25,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird
///
///
///
@@ -34,7 +36,10 @@ public FirebirdDialect()
RegisterKeywords();
RegisterColumnTypes();
RegisterFunctions();
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.FirebirdClientDriver";
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird");
+#pragma warning restore 618
}
public override string AddColumnString
diff --git a/src/NHibernate/Dialect/InformixDialect.cs b/src/NHibernate/Dialect/InformixDialect.cs
index 4bedf931856..05c8608f92d 100644
--- a/src/NHibernate/Dialect/InformixDialect.cs
+++ b/src/NHibernate/Dialect/InformixDialect.cs
@@ -27,7 +27,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.OdbcDriver
///
///
///
diff --git a/src/NHibernate/Dialect/InformixDialect0940.cs b/src/NHibernate/Dialect/InformixDialect0940.cs
index 59ef5b7a6e6..7c22a4ac9b5 100644
--- a/src/NHibernate/Dialect/InformixDialect0940.cs
+++ b/src/NHibernate/Dialect/InformixDialect0940.cs
@@ -26,7 +26,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.OdbcDriver
///
///
///
diff --git a/src/NHibernate/Dialect/InformixDialect1000.cs b/src/NHibernate/Dialect/InformixDialect1000.cs
index db4c9781591..1b7d7cf503e 100644
--- a/src/NHibernate/Dialect/InformixDialect1000.cs
+++ b/src/NHibernate/Dialect/InformixDialect1000.cs
@@ -25,7 +25,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.OdbcDriver
///
///
///
diff --git a/src/NHibernate/Dialect/IngresDialect.cs b/src/NHibernate/Dialect/IngresDialect.cs
index 9741642ccde..108e1e759dc 100644
--- a/src/NHibernate/Dialect/IngresDialect.cs
+++ b/src/NHibernate/Dialect/IngresDialect.cs
@@ -15,7 +15,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.IngresDriver
///
///
///
diff --git a/src/NHibernate/Dialect/MsSql2000Dialect.cs b/src/NHibernate/Dialect/MsSql2000Dialect.cs
index dd286e07617..647d5fe14c7 100644
--- a/src/NHibernate/Dialect/MsSql2000Dialect.cs
+++ b/src/NHibernate/Dialect/MsSql2000Dialect.cs
@@ -5,6 +5,7 @@
using System.Text.RegularExpressions;
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.Engine;
using NHibernate.Mapping;
using NHibernate.SqlCommand;
@@ -27,7 +28,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer
///
/// -
/// adonet.batch_size
@@ -68,7 +69,10 @@ public MsSql2000Dialect()
protected virtual void RegisterDefaultProperties()
{
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer");
+#pragma warning restore 618
DefaultProperties[Environment.BatchSize] = "20";
DefaultProperties[Environment.QuerySubstitutions] = "true 1, false 0, yes 'Y', no 'N'";
}
diff --git a/src/NHibernate/Dialect/MsSql2008Dialect.cs b/src/NHibernate/Dialect/MsSql2008Dialect.cs
index d19bfc7b19c..9b0f338bf56 100644
--- a/src/NHibernate/Dialect/MsSql2008Dialect.cs
+++ b/src/NHibernate/Dialect/MsSql2008Dialect.cs
@@ -69,7 +69,10 @@ protected override void RegisterKeywords()
protected override void RegisterDefaultProperties()
{
base.RegisterDefaultProperties();
- DefaultProperties[Environment.ConnectionDriver] = typeof(Sql2008ClientDriver).AssemblyQualifiedName;
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer");
+#pragma warning restore 618
}
public override string CurrentTimestampSQLFunctionName =>
diff --git a/src/NHibernate/Dialect/MsSqlCeDialect.cs b/src/NHibernate/Dialect/MsSqlCeDialect.cs
index 4b4f4bb9e1b..2f6946fa108 100644
--- a/src/NHibernate/Dialect/MsSqlCeDialect.cs
+++ b/src/NHibernate/Dialect/MsSqlCeDialect.cs
@@ -4,6 +4,7 @@
using System.Text;
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.Id;
using NHibernate.SqlCommand;
using NHibernate.Util;
@@ -202,7 +203,10 @@ protected virtual void RegisterFunctions()
protected virtual void RegisterDefaultProperties()
{
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlServerCeDriver";
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.SqlServerCompactDriver, NHibernate.Driver.SqlServer.Compact");
+#pragma warning restore 618
DefaultProperties[Environment.PrepareSql] = "false";
}
diff --git a/src/NHibernate/Dialect/MySQLDialect.cs b/src/NHibernate/Dialect/MySQLDialect.cs
index f38759e7964..9ba97c2aac5 100644
--- a/src/NHibernate/Dialect/MySQLDialect.cs
+++ b/src/NHibernate/Dialect/MySQLDialect.cs
@@ -4,6 +4,7 @@
using System.Text;
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.SqlCommand;
using NHibernate.SqlTypes;
using NHibernate.Util;
@@ -23,7 +24,7 @@ namespace NHibernate.Dialect
///
///
-
/// connection.driver_class
- ///
+ /// NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql
///
///
///
@@ -112,7 +113,10 @@ public MySQLDialect()
//functions:
RegisterFunctions();
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.MySqlDataDriver";
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql");
+#pragma warning restore 618
}
#region private static readonly string[] DialectKeywords = { ... }
diff --git a/src/NHibernate/Dialect/OracleLiteDialect.cs b/src/NHibernate/Dialect/OracleLiteDialect.cs
index 9b6259f36dc..0e35da13fa9 100644
--- a/src/NHibernate/Dialect/OracleLiteDialect.cs
+++ b/src/NHibernate/Dialect/OracleLiteDialect.cs
@@ -17,7 +17,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.OracleLiteDataClientDriver
///
///
///
diff --git a/src/NHibernate/Dialect/PostgreSQLDialect.cs b/src/NHibernate/Dialect/PostgreSQLDialect.cs
index 3ddc692c767..04e83b38f94 100644
--- a/src/NHibernate/Dialect/PostgreSQLDialect.cs
+++ b/src/NHibernate/Dialect/PostgreSQLDialect.cs
@@ -3,6 +3,7 @@
using NHibernate.Cfg;
using NHibernate.Dialect.Function;
using NHibernate.Dialect.Schema;
+using NHibernate.Driver;
using NHibernate.SqlCommand;
using NHibernate.SqlTypes;
@@ -20,7 +21,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql
///
///
///
@@ -28,7 +29,10 @@ public class PostgreSQLDialect : Dialect
{
public PostgreSQLDialect()
{
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.NpgsqlDriver";
+ DefaultProperties[Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql");
+#pragma warning restore 618
RegisterDateTimeTypeMappings();
RegisterColumnType(DbType.AnsiStringFixedLength, "char(255)");
diff --git a/src/NHibernate/Dialect/SQLiteDialect.cs b/src/NHibernate/Dialect/SQLiteDialect.cs
index 87904958221..f2ffaa0f5d9 100644
--- a/src/NHibernate/Dialect/SQLiteDialect.cs
+++ b/src/NHibernate/Dialect/SQLiteDialect.cs
@@ -3,6 +3,7 @@
using System.Data.Common;
using System.Text;
using NHibernate.Dialect.Function;
+using NHibernate.Driver;
using NHibernate.SqlCommand;
using NHibernate.Util;
@@ -180,7 +181,10 @@ protected virtual void RegisterKeywords()
protected virtual void RegisterDefaultProperties()
{
- DefaultProperties[Cfg.Environment.ConnectionDriver] = "NHibernate.Driver.SQLite20Driver";
+ DefaultProperties[Cfg.Environment.ConnectionDriver] =
+#pragma warning disable 618
+ GetDriverName("NHibernate.Driver.SQLiteDriver, NHibernate.Driver.SQLite");
+#pragma warning restore 618
DefaultProperties[Cfg.Environment.QuerySubstitutions] = "true 1, false 0, yes 'Y', no 'N'";
}
diff --git a/src/NHibernate/Dialect/SybaseASA9Dialect.cs b/src/NHibernate/Dialect/SybaseASA9Dialect.cs
index 699a5430433..4c2f5ec82d2 100644
--- a/src/NHibernate/Dialect/SybaseASA9Dialect.cs
+++ b/src/NHibernate/Dialect/SybaseASA9Dialect.cs
@@ -24,7 +24,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SybaseAsaClientDriver
///
/// -
/// prepare_sql
diff --git a/src/NHibernate/Dialect/SybaseASE15Dialect.cs b/src/NHibernate/Dialect/SybaseASE15Dialect.cs
index a1b1be5e49d..731194a3d87 100644
--- a/src/NHibernate/Dialect/SybaseASE15Dialect.cs
+++ b/src/NHibernate/Dialect/SybaseASE15Dialect.cs
@@ -21,7 +21,7 @@ namespace NHibernate.Dialect
///
///
-
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SybaseAseClientDriver
///
///
///
diff --git a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs
index 5758cd5da31..1924568e08e 100644
--- a/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs
+++ b/src/NHibernate/Dialect/SybaseSQLAnywhere10Dialect.cs
@@ -38,7 +38,7 @@ namespace NHibernate.Dialect
///
/// -
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SybaseSQLAnywhereDriver
///
/// -
/// prepare_sql
diff --git a/src/NHibernate/Dialect/SybaseSQLAnywhere11Dialect.cs b/src/NHibernate/Dialect/SybaseSQLAnywhere11Dialect.cs
index d28f67cdffe..b05d89a29b2 100644
--- a/src/NHibernate/Dialect/SybaseSQLAnywhere11Dialect.cs
+++ b/src/NHibernate/Dialect/SybaseSQLAnywhere11Dialect.cs
@@ -32,7 +32,7 @@ namespace NHibernate.Dialect
///
///
-
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SybaseSQLAnywhereDriver
///
/// -
/// prepare_sql
diff --git a/src/NHibernate/Dialect/SybaseSQLAnywhere12Dialect.cs b/src/NHibernate/Dialect/SybaseSQLAnywhere12Dialect.cs
index e99a40a3b26..adf55c5c395 100644
--- a/src/NHibernate/Dialect/SybaseSQLAnywhere12Dialect.cs
+++ b/src/NHibernate/Dialect/SybaseSQLAnywhere12Dialect.cs
@@ -43,7 +43,7 @@ namespace NHibernate.Dialect
///
///
-
/// connection.driver_class
- ///
+ /// NHibernate.Driver.SybaseSQLAnywhereDotNet4Driver
///
/// -
/// prepare_sql
@@ -127,4 +127,4 @@ public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
return new SybaseAnywhereDataBaseMetaData(connection);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate/Driver/SqlClientDriver.cs b/src/NHibernate/Driver/SqlClientDriver.cs
index 91f58f93b10..aa4b3b992a2 100644
--- a/src/NHibernate/Driver/SqlClientDriver.cs
+++ b/src/NHibernate/Driver/SqlClientDriver.cs
@@ -69,7 +69,7 @@ public override void Configure(IDictionary settings)
///
/// Creates an uninitialized object for
- /// the SqlClientDriver.
+ /// the SQL-Server driver.
///
/// An unitialized object.
public override DbConnection CreateConnection()
@@ -79,7 +79,7 @@ public override DbConnection CreateConnection()
///
/// Creates an uninitialized object for
- /// the SqlClientDriver.
+ /// the SQL-Server driver.
///
/// An unitialized object.
public override DbCommand CreateCommand()
diff --git a/src/NHibernate/SqlCommand/Parser/MsSqlSelectParser.cs b/src/NHibernate/SqlCommand/Parser/MsSqlSelectParser.cs
index 1321b7faa68..0c86169ca29 100644
--- a/src/NHibernate/SqlCommand/Parser/MsSqlSelectParser.cs
+++ b/src/NHibernate/SqlCommand/Parser/MsSqlSelectParser.cs
@@ -1,10 +1,9 @@
using System;
using System.Collections.Generic;
+using System.Linq;
namespace NHibernate.SqlCommand.Parser
{
- using System.Linq;
-
///
/// Represents SQL Server SELECT query parser, primarily intended to support generation of
/// limit queries by SQL Server dialects.
diff --git a/teamcity.build b/teamcity.build
index 9a5d35b3815..5190605d233 100644
--- a/teamcity.build
+++ b/teamcity.build
@@ -51,7 +51,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
@@ -67,27 +67,27 @@
-
+
-
+
-
+
-
+
@@ -162,7 +162,7 @@
-
+
@@ -170,7 +170,7 @@
-
+
From e4a332fa839a1f02be1ab807816b356f43bcb26a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?=
Date: Sun, 10 Dec 2017 15:29:34 +0100
Subject: [PATCH 11/23] NH-4008 - document driver changes.
---
doc/reference/modules/configuration.xml | 100 ++++++++++++++++++------
1 file changed, 77 insertions(+), 23 deletions(-)
diff --git a/doc/reference/modules/configuration.xml b/doc/reference/modules/configuration.xml
index 5c2e4024d74..c0e6d9a932d 100644
--- a/doc/reference/modules/configuration.xml
+++ b/doc/reference/modules/configuration.xml
@@ -227,6 +227,13 @@ var session = sessions.OpenSession(conn);
take care of setting the IDriver using a sensible default. See the API
documentation of the specific dialect for the defaults.
+
+ Since NHibernate v5.1, drivers having a NuGet package for their data provider have a
+ NHibernate.Driver dedicated assembly, which have to be referenced by your project.
+ Those assemblies are also available as NuGet packages.
+ If an obsolete driver is configured, NHibernate will issue a warning log when building the session
+ factory.
+
@@ -1186,9 +1193,13 @@ in the parameter binding.
Firebird
NHibernate.Dialect.FirebirdDialect
- Set driver_class to
- NHibernate.Driver.FirebirdClientDriver
- for Firebird ADO.NET provider 2.0.
+ Install NuGet package
+ NHibernate.Driver.Firebird
+ and set driver_class to
+ NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.FirebirdClientDriver.
+ Both use Firebird ADO.NET provider.
@@ -1219,65 +1230,99 @@ in the parameter binding.
Microsoft SQL Server 7
NHibernate.Dialect.MsSql7Dialect
-
+ Use the same default driver as NHibernate.Dialect.MsSql2000Dialect.
Microsoft SQL Server 2000
NHibernate.Dialect.MsSql2000Dialect
-
+
+ Install NuGet package
+ NHibernate.Driver.SqlServer
+ and set driver_class to
+ NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.SqlClientDriver.
+ Both use System.Data.SqlClient.
+
Microsoft SQL Server 2005
NHibernate.Dialect.MsSql2005Dialect
-
+ Use the same default driver as NHibernate.Dialect.MsSql2000Dialect.
Microsoft SQL Server 2008
NHibernate.Dialect.MsSql2008Dialect
-
+
+ Install NuGet package
+ NHibernate.Driver.SqlServer
+ and set driver_class to
+ NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.Sql2008ClientDriver.
+ Both use System.Data.SqlClient.
+
Microsoft SQL Azure Server 2008
NHibernate.Dialect.MsSqlAzure2008Dialect
-
+ Use the same default driver as NHibernate.Dialect.MsSql2008Dialect.
Microsoft SQL Server 2012
NHibernate.Dialect.MsSql2012Dialect
-
+ Use the same default driver as NHibernate.Dialect.MsSql2008Dialect.
Microsoft SQL Server Compact Edition
NHibernate.Dialect.MsSqlCeDialect
+
+ Install NuGet package
+ NHibernate.Driver.SqlServer.Compact
+ and set driver_class to
+ NHibernate.Driver.SqlServerCompactDriver, NHibernate.Driver.SqlServer.Compact
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.SqlServerCeDriver.
+ Both use System.Data.SqlServerCe.
+
Microsoft SQL Server Compact Edition 4.0
NHibernate.Dialect.MsSqlCe40Dialect
+ Use the same default driver as NHibernate.Dialect.MsSqlCeDialect.
- MySQL 3 or 4
+ MySQL 3 or 4
NHibernate.Dialect.MySQLDialect
-
+
+ Install NuGet package
+ NHibernate.Driver.MySql
+ and set driver_class to
+ NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.MySqlDataDriver.
+ Both use MySql.Data.
+
MySQL 5
NHibernate.Dialect.MySQL5Dialect
-
+ Use the same default driver as NHibernate.Dialect.MySQLDialect.
MySQL 5 Inno DB
NHibernate.Dialect.MySQL5InnoDBDialect
-
+ Use the same default driver as NHibernate.Dialect.MySQLDialect.
MySQL 5.5
NHibernate.Dialect.MySQL55Dialect
-
+ Use the same default driver as NHibernate.Dialect.MySQLDialect.
MySQL 5.5 Inno DB
NHibernate.Dialect.MySQL55InnoDBDialect
-
+ Use the same default driver as NHibernate.Dialect.MySQLDialect.
Oracle
@@ -1299,15 +1344,17 @@ in the parameter binding.
NHibernate.Dialect.Oracle12cDialect
-
- PostgreSQL
- NHibernate.Dialect.PostgreSQLDialect
-
-
PostgreSQL
NHibernate.Dialect.PostgreSQLDialect
+ Install NuGet package
+ NHibernate.Driver.PostgreSql
+ and set driver_class to
+ NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.NpgsqlDriver.
+ Both use Npgsql.
@@ -1316,6 +1363,7 @@ in the parameter binding.
This dialect supports FOR UPDATE NOWAIT
available in PostgreSQL 8.1.
+ Use the same default driver as NHibernate.Dialect.PostgreSQLDialect.
@@ -1325,6 +1373,7 @@ in the parameter binding.
This dialect supports IF EXISTS keyword in
DROP TABLE and DROP SEQUENCE
available in PostgreSQL 8.2.
+ Use the same default driver as NHibernate.Dialect.PostgreSQLDialect.
@@ -1332,15 +1381,20 @@ in the parameter binding.
NHibernate.Dialect.PostgreSQL83Dialect
This dialect supports XML type.
+ Use the same default driver as NHibernate.Dialect.PostgreSQLDialect.
SQLite
NHibernate.Dialect.SQLiteDialect
- Set driver_class to
- NHibernate.Driver.SQLite20Driver
- for System.Data.SQLite provider for .NET 2.0.
+ Install NuGet package
+ NHibernate.Driver.SQLite
+ and set driver_class to
+ NHibernate.Driver.SQLiteDriver, NHibernate.Driver.SQLite
+ with a fallback on the built-in reflection based
+ NHibernate.Driver.SQLite20Driver.
+ Both use System.Data.SQLite.
Due to
the
From 18988aacb705c4062ed34c5bc9a892904a2c0641 Mon Sep 17 00:00:00 2001
From: Nathan Brown
Date: Thu, 28 Dec 2017 18:55:09 -0700
Subject: [PATCH 12/23] NH-3807 - Replace Is.BinarySerializable usage.
Is.BinarySerializable is not available in .netstandard version of NUnit, so perform serialization check manually.
---
.../LazyFieldInterceptorTests.cs | 2 +-
src/NHibernate.Test/NHAssert.cs | 20 +++++++++++++++++--
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorTests.cs b/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorTests.cs
index 70d020796af..c2ab59acac0 100644
--- a/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorTests.cs
+++ b/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorTests.cs
@@ -35,7 +35,7 @@ public void LazyFieldInterceptorIsBinarySerializable()
var fieldInterceptionProxy = (IFieldInterceptorAccessor)pf.GetFieldInterceptionProxy(new MyClass());
fieldInterceptionProxy.FieldInterceptor = new DefaultFieldInterceptor(null, null, null, "MyClass", typeof(MyClass));
- Assert.That(fieldInterceptionProxy, Is.BinarySerializable);
+ NHAssert.IsSerializable(fieldInterceptionProxy);
}
diff --git a/src/NHibernate.Test/NHAssert.cs b/src/NHibernate.Test/NHAssert.cs
index 79667df1086..434e9df7704 100644
--- a/src/NHibernate.Test/NHAssert.cs
+++ b/src/NHibernate.Test/NHAssert.cs
@@ -53,7 +53,23 @@ public static void IsSerializable(object obj)
public static void IsSerializable(object obj, string message, params object[] args)
{
- Assert.That(obj, Is.BinarySerializable, message, args);
+ bool succeeded = false;
+ var serializer = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
+ var stream = new System.IO.MemoryStream();
+ try
+ {
+ serializer.Serialize(stream, obj);
+
+ stream.Seek(0, System.IO.SeekOrigin.Begin);
+
+ succeeded = serializer.Deserialize(stream) != null;
+ }
+ catch (System.Runtime.Serialization.SerializationException)
+ {
+ // Ignore and return failure
+ succeeded = false;
+ }
+ Assert.That(succeeded, message ?? $"Supplied Type {obj.GetType()} is not serializable", args);
}
#endregion
@@ -72,4 +88,4 @@ public static void IsSerializable(object obj, string message, params object[] ar
return result;
}
}
-}
\ No newline at end of file
+}
From d83ab6a49ca5e097bc28e3626e57f0b35467817c Mon Sep 17 00:00:00 2001
From: Nathan Brown
Date: Thu, 28 Dec 2017 19:42:18 -0700
Subject: [PATCH 13/23] NH-3807 - Replace Is.IsXmlSerializable usage.
Is.IsXmlSerializable is not available in .netstandard version of NUnit, so perform serialization check manually.
---
.../MappingTest/NonReflectiveBinderFixture.cs | 2 +-
src/NHibernate.Test/NHAssert.cs | 28 +++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/NHibernate.Test/MappingTest/NonReflectiveBinderFixture.cs b/src/NHibernate.Test/MappingTest/NonReflectiveBinderFixture.cs
index fbe047c53c5..98b3ac55f28 100644
--- a/src/NHibernate.Test/MappingTest/NonReflectiveBinderFixture.cs
+++ b/src/NHibernate.Test/MappingTest/NonReflectiveBinderFixture.cs
@@ -191,7 +191,7 @@ public void XmlSerialization()
using (Stream stream = GetType().Assembly.GetManifestResourceStream("NHibernate.Test.MappingTest.Wicked.hbm.xml"))
{
HbmMapping mapping = mdp.Parse(stream);
- Assert.That(mapping, Is.XmlSerializable);
+ NHAssert.IsXmlSerializable(mapping);
}
}
}
diff --git a/src/NHibernate.Test/NHAssert.cs b/src/NHibernate.Test/NHAssert.cs
index 434e9df7704..5bb10eaac6c 100644
--- a/src/NHibernate.Test/NHAssert.cs
+++ b/src/NHibernate.Test/NHAssert.cs
@@ -72,6 +72,34 @@ public static void IsSerializable(object obj, string message, params object[] ar
Assert.That(succeeded, message ?? $"Supplied Type {obj.GetType()} is not serializable", args);
}
+ public static void IsXmlSerializable(object obj)
+ {
+ IsXmlSerializable(obj, null, null);
+ }
+
+ public static void IsXmlSerializable(object obj, string message, params object[] args)
+ {
+ if (obj == null) throw new ArgumentNullException(nameof(obj));
+
+ bool succeeded = false;
+ var serializer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
+ var stream = new System.IO.MemoryStream();
+ try
+ {
+ serializer.Serialize(stream, obj);
+
+ stream.Seek(0, System.IO.SeekOrigin.Begin);
+
+ succeeded = serializer.Deserialize(stream) != null;
+ }
+ catch (System.Runtime.Serialization.SerializationException)
+ {
+ // Ignore and return failure
+ succeeded = false;
+ }
+ Assert.That(succeeded, message ?? $"Supplied Type {obj.GetType()} is not serializable", args);
+ }
+
#endregion
private static IEnumerable ClassList(Assembly assembly, System.Type type)
{
From 7223accc61c751d32327aeea63b0de32d12c2234 Mon Sep 17 00:00:00 2001
From: Nathan Brown
Date: Thu, 28 Dec 2017 21:07:23 -0700
Subject: [PATCH 14/23] NH-3807 - Report RuntimeFramework in Example web
project.
---
src/NHibernate.Example.Web/NHibernate.Example.Web.csproj | 1 +
src/NHibernate.Example.Web/Pages/_Layout.cshtml | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/NHibernate.Example.Web/NHibernate.Example.Web.csproj b/src/NHibernate.Example.Web/NHibernate.Example.Web.csproj
index 4a46f66eb6d..2451b016575 100644
--- a/src/NHibernate.Example.Web/NHibernate.Example.Web.csproj
+++ b/src/NHibernate.Example.Web/NHibernate.Example.Web.csproj
@@ -14,6 +14,7 @@
+
diff --git a/src/NHibernate.Example.Web/Pages/_Layout.cshtml b/src/NHibernate.Example.Web/Pages/_Layout.cshtml
index 55a0c2f1ba1..7db516fb7d5 100644
--- a/src/NHibernate.Example.Web/Pages/_Layout.cshtml
+++ b/src/NHibernate.Example.Web/Pages/_Layout.cshtml
@@ -32,6 +32,10 @@
@RenderBody()
- @RenderSection("Scripts", required: false)
+
+ @Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.RuntimeFramework
+
+
+@RenderSection("Scripts", required: false)