You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(248) |
May
(82) |
Jun
(90) |
Jul
(177) |
Aug
(253) |
Sep
(157) |
Oct
(151) |
Nov
(143) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(152) |
Feb
(107) |
Mar
(177) |
Apr
(133) |
May
(259) |
Jun
(81) |
Jul
(119) |
Aug
(306) |
Sep
(416) |
Oct
(240) |
Nov
(329) |
Dec
(206) |
2006 |
Jan
(466) |
Feb
(382) |
Mar
(153) |
Apr
(162) |
May
(133) |
Jun
(21) |
Jul
(18) |
Aug
(37) |
Sep
(97) |
Oct
(114) |
Nov
(110) |
Dec
(28) |
2007 |
Jan
(74) |
Feb
(65) |
Mar
(49) |
Apr
(76) |
May
(43) |
Jun
(15) |
Jul
(68) |
Aug
(55) |
Sep
(63) |
Oct
(59) |
Nov
(70) |
Dec
(66) |
2008 |
Jan
(71) |
Feb
(60) |
Mar
(120) |
Apr
(31) |
May
(48) |
Jun
(81) |
Jul
(107) |
Aug
(51) |
Sep
(80) |
Oct
(83) |
Nov
(83) |
Dec
(79) |
2009 |
Jan
(83) |
Feb
(110) |
Mar
(97) |
Apr
(91) |
May
(291) |
Jun
(250) |
Jul
(197) |
Aug
(58) |
Sep
(54) |
Oct
(122) |
Nov
(68) |
Dec
(34) |
2010 |
Jan
(50) |
Feb
(17) |
Mar
(63) |
Apr
(61) |
May
(84) |
Jun
(81) |
Jul
(138) |
Aug
(144) |
Sep
(78) |
Oct
(26) |
Nov
(30) |
Dec
(61) |
2011 |
Jan
(33) |
Feb
(35) |
Mar
(166) |
Apr
(221) |
May
(109) |
Jun
(76) |
Jul
(27) |
Aug
(37) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <aye...@us...> - 2009-05-22 22:51:48
|
Revision: 4363 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4363&view=rev Author: ayenderahien Date: 2009-05-22 22:51:28 +0000 (Fri, 22 May 2009) Log Message: ----------- NH-1974 - tests to show that noop strategy works. Adding an alias to noop access strategy - none Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Person.cs Modified: trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs 2009-05-22 22:31:51 UTC (rev 4362) +++ trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs 2009-05-22 22:51:28 UTC (rev 4363) @@ -40,6 +40,7 @@ accessors["nosetter.pascalcase-m"] = new NoSetterAccessor(new PascalCaseMStrategy()); accessors["embedded"] = new EmbeddedPropertyAccessor(); accessors["noop"] = new NoopAccessor(); + accessors["none"] = new NoopAccessor(); } private PropertyAccessorFactory() Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794 ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Fixture.cs 2009-05-22 22:51:28 UTC (rev 4363) @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1794 +{ + [TestFixture] + public class Fixture : BugTestCase + { + [Test] + public void CanQueryOnCollectionThatAppearsOnlyInTheMapping() + { + using (ISession session = OpenSession()) + { + session + .CreateQuery("select p.Name, c.Name from Person p join p.Children c") + .List(); + } + } + + [Test] + public void CanQueryOnPropertyThatOnlyShowsUpInMapping_AsAccessNone() + { + using (ISession session = OpenSession()) + { + session + .CreateQuery("from Person p where p.UpdatedAt is null") + .List(); + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Mappings.hbm.xml 2009-05-22 22:51:28 UTC (rev 4363) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1794" + assembly="NHibernate.Test"> + + <class name="Person"> + <id name="Id"> + <generator class="native"/> + </id> + <property name="Name"/> + <many-to-one name="Parent"/> + <set name="Children" access="noop"> + <key column="Parent"/> + <one-to-many class="Person"/> + </set> + <property name="UpdatedAt" access="none" type="System.DateTime" /> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Person.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Person.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1794/Person.cs 2009-05-22 22:51:28 UTC (rev 4363) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.NHSpecificTest.NH1794 +{ + public class Person + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual Person Parent { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 22:31:51 UTC (rev 4362) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 22:51:28 UTC (rev 4363) @@ -434,6 +434,8 @@ <Compile Include="NHSpecificTest\NH1783\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH1792\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1792\Product.cs" /> + <Compile Include="NHSpecificTest\NH1794\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1794\Person.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> <Compile Include="HQL\HQLFunctions.cs" /> <Compile Include="HQL\Human.cs" /> @@ -1827,6 +1829,7 @@ <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> <EmbeddedResource Include="Ado\AlmostSimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1794\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1792\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1756\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyProperty\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 22:32:00
|
Revision: 4362 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4362&view=rev Author: ayenderahien Date: 2009-05-22 22:31:51 +0000 (Fri, 22 May 2009) Log Message: ----------- NH-1744 - Fixing the documentations so Dispose vs. Close roles are clearer. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-22 22:17:15 UTC (rev 4361) +++ trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-22 22:31:51 UTC (rev 4362) @@ -323,7 +323,13 @@ get { return IsAutoCloseSessionEnabled && !IsClosed; } } - /// <summary></summary> + /// <summary> + /// Close the session and release all resources + /// <remarks> + /// Do not call this method inside a transaction scope, use <c>Dispose</c> instead, since + /// Close() is not aware of distributed transactions + /// </remarks> + /// </summary> public IDbConnection Close() { using (new SessionIdLoggingContext(SessionId)) @@ -1653,7 +1659,7 @@ } /// <summary> - /// Just in case the user forgot to Commit() or Close() + /// Perform a soft (distributed transaction aware) close of the session /// </summary> public void Dispose() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 22:17:25
|
Revision: 4361 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4361&view=rev Author: ayenderahien Date: 2009-05-22 22:17:15 +0000 (Fri, 22 May 2009) Log Message: ----------- Second part of transaction factory work, all DTC work is now isolated to the transaction factories. Isolation is now properly handled using the Isolater which delegates to the TransactionFactory to ensure running in a different transaction. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Engine/Transaction/IIsolatedWork.cs trunk/nhibernate/src/NHibernate/Engine/Transaction/Isolater.cs trunk/nhibernate/src/NHibernate/Engine/TransactionHelper.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs trunk/nhibernate/src/NHibernate/Id/Enhanced/TableStructure.cs trunk/nhibernate/src/NHibernate/Id/TableGenerator.cs trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs Modified: trunk/nhibernate/src/NHibernate/Engine/Transaction/IIsolatedWork.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Engine/Transaction/IIsolatedWork.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Engine/Transaction/IIsolatedWork.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -13,7 +13,7 @@ /// Perform the actual work to be done. /// </summary> /// <param name="connection">The ADP connection to use.</param> - void DoWork(IDbConnection connection); + void DoWork(IDbConnection connection, IDbTransaction transaction); // 2009-05-04 Another time we need a TransactionManager to manage isolated // work for a given connection. Modified: trunk/nhibernate/src/NHibernate/Engine/Transaction/Isolater.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Engine/Transaction/Isolater.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Engine/Transaction/Isolater.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -2,6 +2,7 @@ using System.Data; using System.Data.Common; using log4net; +using NHibernate.Dialect; using NHibernate.Exceptions; namespace NHibernate.Engine.Transaction @@ -29,18 +30,6 @@ { private static readonly ILog log = LogManager.GetLogger(typeof(Isolater)); - private static DoWork GetApropieateDelegate() - { - bool isAmbientTransation = System.Transactions.Transaction.Current != null; - if (isAmbientTransation) - { - return AmbientDelegateWork; - } - else - { - return AdoDelegateWork; - } - } /// <summary> /// Ensures that all processing actually performed by the given work will /// occur on a seperate transaction. @@ -49,8 +38,7 @@ /// <param name="session">The session from which this request is originating. </param> public static void DoIsolatedWork(IIsolatedWork work, ISessionImplementor session) { - DoWork worker = GetApropieateDelegate(); - worker(session, work, true); + session.Factory.TransactionFactory.ExecuteWorkInIsolation(session, work, true); } /// <summary> @@ -61,90 +49,7 @@ /// <param name="session">The session from which this request is originating. </param> public static void DoNonTransactedWork(IIsolatedWork work, ISessionImplementor session) { - DoWork worker = GetApropieateDelegate(); - worker(session, work, false); + session.Factory.TransactionFactory.ExecuteWorkInIsolation(session, work, false); } - - private delegate void DoWork(ISessionImplementor session, IIsolatedWork work, bool transacted); - - private static void AdoDelegateWork(ISessionImplementor session, IIsolatedWork work, bool transacted) - { - IDbConnection connection = null; - IDbTransaction trans = null; - // bool wasAutoCommit = false; - try - { - connection = session.Factory.ConnectionProvider.GetConnection(); - - if (transacted) - { - trans = connection.BeginTransaction(); - // TODO NH: a way to read the autocommit state is needed - //if (TransactionManager.GetAutoCommit(connection)) - //{ - // wasAutoCommit = true; - // TransactionManager.SetAutoCommit(connection, false); - //} - } - - work.DoWork(connection); - - if (transacted) - { - trans.Commit(); - //TransactionManager.Commit(connection); - } - } - catch (Exception t) - { - try - { - if (transacted && connection != null && !(connection.State == ConnectionState.Closed)) - { - trans.Rollback(); - // TransactionManager.RollBack(connection); - } - } - catch (Exception ignore) - { - log.Debug("unable to release connection on exception [" + ignore + "]"); - } - - if (t is HibernateException) - { - throw; - } - else if (t is DbException) - { - throw ADOExceptionHelper.Convert(session.Factory.SQLExceptionConverter, t, "error performing isolated work"); - } - else - { - throw new HibernateException("error performing isolated work", t); - } - } - finally - { - //if (transacted && wasAutoCommit) - //{ - // try - // { - // // TODO NH: reset autocommit - // // TransactionManager.SetAutoCommit(connection, true); - // } - // catch (Exception) - // { - // log.Debug("was unable to reset connection back to auto-commit"); - // } - //} - session.Factory.ConnectionProvider.CloseConnection(connection); - } - } - - private static void AmbientDelegateWork(ISessionImplementor session, IIsolatedWork work, bool transacted) - { - throw new NotSupportedException("Not supported yet."); - } - } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Engine/TransactionHelper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Engine/TransactionHelper.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Engine/TransactionHelper.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -25,11 +25,11 @@ #region Implementation of IIsolatedWork - public void DoWork(IDbConnection connection) + public void DoWork(IDbConnection connection, IDbTransaction transaction) { try { - generatedValue = owner.DoWorkInCurrentTransaction(connection, null); + generatedValue = owner.DoWorkInCurrentTransaction(session, connection, transaction); } catch (DbException sqle) { @@ -41,7 +41,7 @@ } /// <summary> The work to be done</summary> - public abstract object DoWorkInCurrentTransaction(IDbConnection conn, string sql); + public abstract object DoWorkInCurrentTransaction(ISessionImplementor session, IDbConnection conn, IDbTransaction transaction); /// <summary> Suspend the current transaction and perform work in a new transaction</summary> public virtual object DoWorkInNewTransaction(ISessionImplementor session) Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -137,7 +137,7 @@ } else { - work.DoWork(session.ConnectionManager.GetConnection()); + work.DoWork(session.ConnectionManager.GetConnection(), null); session.ConnectionManager.AfterStatement(); } } @@ -149,10 +149,7 @@ { return dialectVote.Value; } - else - { - return Factory.Settings.IsDataDefinitionImplicitCommit; - } + return Factory.Settings.IsDataDefinitionImplicitCommit; } protected virtual void DropTemporaryTableIfNecessary(IQueryable persister, ISessionImplementor session) @@ -174,7 +171,7 @@ } else { - work.DoWork(session.ConnectionManager.GetConnection()); + work.DoWork(session.ConnectionManager.GetConnection(), null); session.ConnectionManager.AfterStatement(); } } @@ -222,7 +219,7 @@ this.session = session; } - public void DoWork(IDbConnection connection) + public void DoWork(IDbConnection connection, IDbTransaction transaction) { IDbCommand stmnt = null; try @@ -266,7 +263,7 @@ private readonly ILog log; private readonly ISessionImplementor session; - public void DoWork(IDbConnection connection) + public void DoWork(IDbConnection connection, IDbTransaction transaction) { IDbCommand stmnt = null; try Modified: trunk/nhibernate/src/NHibernate/Id/Enhanced/TableStructure.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Enhanced/TableStructure.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Id/Enhanced/TableStructure.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -99,7 +99,7 @@ #region Overrides of TransactionHelper - public override object DoWorkInCurrentTransaction(IDbConnection conn, string sql) + public override object DoWorkInCurrentTransaction(ISessionImplementor session, IDbConnection conn, IDbTransaction transaction) { long result; int rows; @@ -136,7 +136,7 @@ } query = update.ToString(); - SqlLog.Debug(sql); + IDbCommand ups = conn.CreateCommand(); ups.CommandType = CommandType.Text; ups.CommandText = query; Modified: trunk/nhibernate/src/NHibernate/Id/TableGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/TableGenerator.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Id/TableGenerator.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -6,6 +6,7 @@ using log4net; using NHibernate.Dialect; using NHibernate.Engine; +using NHibernate.Engine.Transaction; using NHibernate.SqlCommand; using NHibernate.SqlTypes; using NHibernate.Type; @@ -35,7 +36,7 @@ /// The mapping parameters <c>table</c> and <c>column</c> are required. /// </p> /// </remarks> - public class TableGenerator : IPersistentIdentifierGenerator, IConfigurable + public class TableGenerator : TransactionHelper, IPersistentIdentifierGenerator, IConfigurable { private static readonly ILog log = LogManager.GetLogger(typeof(TableGenerator)); /// <summary> @@ -155,117 +156,7 @@ // This has to be done using a different connection to the containing // transaction becase the new hi value must remain valid even if the // containing transaction rolls back. - // - // We make an exception for SQLite and use the session's connection, - // since SQLite only allows one connection to the database. - - bool isSQLite = session.Factory.Dialect is SQLiteDialect; - IDbConnection conn; - TransactionScope dtcTrans = null; - if (isSQLite) - { - conn = session.Connection; - } - else - { - // existing dtc transaction, creating a new one - // to override the ambient one - if (Transaction.Current != null) - dtcTrans = new TransactionScope(TransactionScopeOption.RequiresNew); - conn = session.Factory.ConnectionProvider.GetConnection(); - } - - IDbTransaction trans = null; - try - { - if (!isSQLite) - { - if(dtcTrans==null) - trans = conn.BeginTransaction(); - } - - long result; - int rows; - do - { - //the loop ensure atomicitiy of the - //select + uspdate even for no transaction - //or read committed isolation level (needed for .net?) - - IDbCommand qps = conn.CreateCommand(); - IDataReader rs = null; - qps.CommandText = query; - qps.CommandType = CommandType.Text; - qps.Transaction = trans; - PersistentIdGeneratorParmsNames.SqlStatementLogger.LogCommand("Reading high value:", qps, FormatStyle.Basic); - try - { - rs = qps.ExecuteReader(); - if (!rs.Read()) - { - string err = "could not read a hi value - you need to populate the table: " + tableName; - log.Error(err); - throw new IdentifierGenerationException(err); - } - result = Convert.ToInt64(columnType.Get(rs, 0)); - } - // TODO: change to SqlException - catch (Exception e) - { - log.Error("could not read a hi value", e); - throw; - } - finally - { - if (rs != null) rs.Close(); - qps.Dispose(); - } - - IDbCommand ups = - session.Factory.ConnectionProvider.Driver.GenerateCommand(CommandType.Text, updateSql, parameterTypes); - ups.Connection = conn; - ups.Transaction = trans; - PersistentIdGeneratorParmsNames.SqlStatementLogger.LogCommand("Updating high value:", ups, FormatStyle.Basic); - - try - { - columnType.Set(ups, result + 1, 0); - columnType.Set(ups, result, 1); - - rows = ups.ExecuteNonQuery(); - } - // TODO: change to SqlException - catch (Exception e) - { - log.Error("could not update hi value in: " + tableName, e); - throw; - } - finally - { - ups.Dispose(); - } - } while (rows == 0); - - if (!isSQLite) - { - if (dtcTrans != null) - dtcTrans.Complete(); - else - trans.Commit(); - } - - return result; - } - // TODO: Shouldn't we have a Catch with a rollback here? - finally - { - if (!isSQLite) - { - if(dtcTrans!=null) - dtcTrans.Dispose(); - session.Factory.ConnectionProvider.CloseConnection(conn); - } - } + return DoWorkInNewTransaction(session); } #endregion @@ -317,5 +208,70 @@ } #endregion + + public override object DoWorkInCurrentTransaction(ISessionImplementor session, IDbConnection conn, IDbTransaction transaction) + { + long result; + int rows; + do + { + //the loop ensure atomicitiy of the + //select + uspdate even for no transaction + //or read committed isolation level (needed for .net?) + + IDbCommand qps = conn.CreateCommand(); + IDataReader rs = null; + qps.CommandText = query; + qps.CommandType = CommandType.Text; + qps.Transaction = transaction; + PersistentIdGeneratorParmsNames.SqlStatementLogger.LogCommand("Reading high value:", qps, FormatStyle.Basic); + try + { + rs = qps.ExecuteReader(); + if (!rs.Read()) + { + string err = "could not read a hi value - you need to populate the table: " + tableName; + log.Error(err); + throw new IdentifierGenerationException(err); + } + result = Convert.ToInt64(columnType.Get(rs, 0)); + } + catch (Exception e) + { + log.Error("could not read a hi value", e); + throw; + } + finally + { + if (rs != null) rs.Close(); + qps.Dispose(); + } + + IDbCommand ups = + session.Factory.ConnectionProvider.Driver.GenerateCommand(CommandType.Text, updateSql, parameterTypes); + ups.Connection = conn; + ups.Transaction = transaction; + PersistentIdGeneratorParmsNames.SqlStatementLogger.LogCommand("Updating high value:", ups, FormatStyle.Basic); + + try + { + columnType.Set(ups, result + 1, 0); + columnType.Set(ups, result, 1); + + rows = ups.ExecuteNonQuery(); + } + catch (Exception e) + { + log.Error("could not update hi value in: " + tableName, e); + throw; + } + finally + { + ups.Dispose(); + } + } while (rows == 0); + + return result; + } } } Modified: trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -1,10 +1,19 @@ +using System; using System.Collections; +using System.Data; +using System.Data.Common; +using log4net; +using NHibernate.Dialect; using NHibernate.Engine; +using NHibernate.Engine.Transaction; +using NHibernate.Exceptions; namespace NHibernate.Transaction { public class AdoNetTransactionFactory : ITransactionFactory { + private readonly ILog isolaterLog = LogManager.GetLogger(typeof(Isolater)); + public ITransaction CreateTransaction(ISessionImplementor session) { return new AdoTransaction(session); @@ -20,6 +29,85 @@ return false; } + public void ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, bool transacted) + { + IDbConnection connection = null; + IDbTransaction trans = null; + // bool wasAutoCommit = false; + try + { + // We make an exception for SQLite and use the session's connection, + // since SQLite only allows one connection to the database. + if (session.Factory.Dialect is SQLiteDialect) + connection = session.Connection; + else + connection = session.Factory.ConnectionProvider.GetConnection(); + + if (transacted) + { + trans = connection.BeginTransaction(); + // TODO NH: a way to read the autocommit state is needed + //if (TransactionManager.GetAutoCommit(connection)) + //{ + // wasAutoCommit = true; + // TransactionManager.SetAutoCommit(connection, false); + //} + } + + work.DoWork(connection, trans); + + if (transacted) + { + trans.Commit(); + //TransactionManager.Commit(connection); + } + } + catch (Exception t) + { + try + { + if (trans != null && connection.State != ConnectionState.Closed) + { + trans.Rollback(); + } + } + catch (Exception ignore) + { + isolaterLog.Debug("unable to release connection on exception [" + ignore + "]"); + } + + if (t is HibernateException) + { + throw; + } + else if (t is DbException) + { + throw ADOExceptionHelper.Convert(session.Factory.SQLExceptionConverter, t, "error performing isolated work"); + } + else + { + throw new HibernateException("error performing isolated work", t); + } + } + finally + { + //if (transacted && wasAutoCommit) + //{ + // try + // { + // // TODO NH: reset autocommit + // // TransactionManager.SetAutoCommit(connection, true); + // } + // catch (Exception) + // { + // log.Debug("was unable to reset connection back to auto-commit"); + // } + //} + if (session.Factory.Dialect is SQLiteDialect == false) + session.Factory.ConnectionProvider.CloseConnection(connection); + } + } + public void Configure(IDictionary props) { } Modified: trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -3,6 +3,7 @@ using System.Transactions; using log4net; using NHibernate.Engine; +using NHibernate.Engine.Transaction; using NHibernate.Impl; namespace NHibernate.Transaction @@ -10,6 +11,8 @@ public class AdoNetWithDistrubtedTransactionFactory : ITransactionFactory { private static readonly ILog logger = LogManager.GetLogger(typeof (AbstractSessionImpl)); + private readonly AdoNetTransactionFactory adoNetTransactionFactory = new AdoNetTransactionFactory(); + public void Configure(IDictionary props) { @@ -60,6 +63,17 @@ distributedTransactionContext.IsInActiveTransaction; } + public void ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, bool transacted) + { + using(var tx = new TransactionScope(TransactionScopeOption.Suppress)) + { + // instead of duplicating the logic, we suppress the DTC transaction and create + // our own transaction instead + adoNetTransactionFactory.ExecuteWorkInIsolation(session, work, transacted); + tx.Complete(); + } + } + public class DistributedTransactionContext : ITransactionContext, IEnlistmentNotification { public System.Transactions.Transaction AmbientTransation { get; set; } Modified: trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -3,6 +3,7 @@ using NHibernate; using NHibernate.AdoNet; using NHibernate.Engine; +using NHibernate.Engine.Transaction; namespace NHibernate.Transaction { @@ -30,5 +31,7 @@ void EnlistInDistributedTransactionIfNeeded(ISessionImplementor session); bool IsInDistributedActiveTransaction(ISessionImplementor session); + + void ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, bool transacted); } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs 2009-05-22 22:17:15 UTC (rev 4361) @@ -2,6 +2,7 @@ using System.Collections; using NHibernate.AdoNet; using NHibernate.Engine; +using NHibernate.Engine.Transaction; using NHibernate.Transaction; namespace NHibernate.Test.NHSpecificTest.NH1054 @@ -26,5 +27,10 @@ { return false; } + + public void ExecuteWorkInIsolation(ISessionImplementor session, IIsolatedWork work, bool transacted) + { + throw new NotImplementedException(); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 20:42:36
|
Revision: 4360 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4360&view=rev Author: ayenderahien Date: 2009-05-22 20:42:29 +0000 (Fri, 22 May 2009) Log Message: ----------- First part of the Transaction Factory work, created an AdoNetWithDistrubtedTransactionFactory factory that now encapsulate all the interaction with the DTC AdoNetWithDistrubtedTransactionFactory is now the default transaction factory If a user wants to avoid paying the price of DTC checks, it can be done by specifying AdoNetTransactionFactory in the configuration Modified Paths: -------------- trunk/nhibernate/src/NHibernate/AdoNet/ConnectionManager.cs trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs trunk/nhibernate/src/NHibernate/Engine/ISessionImplementor.cs trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs trunk/nhibernate/src/NHibernate/Transaction/ITransactionContext.cs trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/NH1054Fixture.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate/AdoNet/AdoNetContext.cs Deleted: trunk/nhibernate/src/NHibernate/AdoNet/AdoNetContext.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/AdoNetContext.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/AdoNet/AdoNetContext.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -1,59 +0,0 @@ -using System; -using log4net; -using NHibernate.Transaction; - -namespace NHibernate.AdoNet -{ - [Serializable] - public class AdoNetContext : ConnectionManager.Callback - { - // TODO : make this the factory for "entity mode related" sessions; - // also means making this the target of transaction-synch and the - // thing that knows how to cascade things between related sessions - // - // At that point, perhaps this thing is a "SessionContext", and - // ConnectionManager is a "JDBCContext"? A "SessionContext" should - // live in the impl package... - - //private IContext owner; - //private ConnectionManager connectionManager; - //[NonSerialized] - //private bool isTransactionCallbackRegistered; - //[NonSerialized] - //private ITransaction hibernateTransaction; - - private static readonly ILog log = LogManager.GetLogger(typeof (AdoNetContext)); - - public interface IContext : ITransactionContext - { - /** - * We cannot rely upon this method being called! It is only - * called if we are using Hibernate Transaction API. - */ - ConnectionReleaseMode ConnectionReleaseMode { get; } - bool IsAutoCloseSessionEnabled { get; } - void AfterTransactionBegin(ITransaction tx); - void BeforeTransactionCompletion(ITransaction tx); - void AfterTransactionCompletion(bool success, ITransaction tx); - } - - #region Callback Members - - public void ConnectionOpened() - { - throw new NotImplementedException(); - } - - public void ConnectionCleanedUp() - { - throw new NotImplementedException(); - } - - public bool IsTransactionInProgress - { - get { throw new NotImplementedException(); } - } - - #endregion - } -} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/AdoNet/ConnectionManager.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/ConnectionManager.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/AdoNet/ConnectionManager.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -66,9 +66,9 @@ { get { - if (System.Transactions.Transaction.Current != null) + if (transaction != null && transaction.IsActive) return true; - return transaction != null && transaction.IsActive; + return session.Factory.TransactionFactory.IsInDistributedActiveTransaction(session); } } Modified: trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -346,7 +346,7 @@ private static ITransactionFactory CreateTransactionFactory(IDictionary<string, string> properties) { string className = PropertiesHelper.GetString( - Environment.TransactionStrategy, properties, typeof(AdoNetTransactionFactory).FullName); + Environment.TransactionStrategy, properties, typeof(AdoNetWithDistrubtedTransactionFactory).FullName); log.Info("Transaction factory: " + className); try Modified: trunk/nhibernate/src/NHibernate/Engine/ISessionImplementor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Engine/ISessionImplementor.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Engine/ISessionImplementor.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -10,6 +10,7 @@ using NHibernate.Impl; using NHibernate.Loader.Custom; using NHibernate.Persister.Entity; +using NHibernate.Transaction; using NHibernate.Type; namespace NHibernate.Engine @@ -290,5 +291,9 @@ FutureQueryBatch FutureQueryBatch { get; } Guid SessionId { get; } + + ITransactionContext TransactionContext { get; set; } + + void CloseSessionFromDistributedTransaction(); } } Modified: trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -13,6 +13,7 @@ using NHibernate.Hql; using NHibernate.Loader.Custom; using NHibernate.Persister.Entity; +using NHibernate.Transaction; using NHibernate.Type; namespace NHibernate.Impl @@ -21,16 +22,20 @@ /// <summary> Functionality common to stateless and stateful sessions </summary> [Serializable] - public abstract class AbstractSessionImpl : ISessionImplementor, IEnlistmentNotification + public abstract class AbstractSessionImpl : ISessionImplementor { [NonSerialized] private ISessionFactoryImplementor factory; private readonly Guid sessionId = Guid.NewGuid(); private bool closed; - private System.Transactions.Transaction ambientTransation; + + public ITransactionContext TransactionContext + { + get; set; + } + private bool isAlreadyDisposed; - protected bool shouldCloseSessionOnDtcTransactionCompleted; private static readonly ILog logger = LogManager.GetLogger(typeof(AbstractSessionImpl)); @@ -39,14 +44,6 @@ get { return sessionId; } } - protected bool TakingPartInDtcTransaction - { - get - { - return ambientTransation != null; - } - } - internal AbstractSessionImpl() { } protected internal AbstractSessionImpl(ISessionFactoryImplementor factory) @@ -77,7 +74,7 @@ public abstract EntityMode EntityMode { get; } public abstract IBatcher Batcher { get; } - + public abstract void CloseSessionFromDistributedTransaction(); public abstract IList List(string query, QueryParameters parameters); public abstract void List(string query, QueryParameters parameters, IList results); public abstract IList<T> List<T>(string query, QueryParameters queryParameters); @@ -214,8 +211,8 @@ { try { - if (ambientTransation != null) - ambientTransation.Dispose(); + if (TransactionContext != null) + TransactionContext.Dispose(); } catch (Exception) { @@ -307,106 +304,12 @@ } } - #region IEnlistmentNotification Members - - void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment) - { - using (new SessionIdLoggingContext(SessionId)) - { - try - { - using (var tx = new TransactionScope(ambientTransation)) - { - BeforeTransactionCompletion(null); - if (FlushMode != FlushMode.Never && ConnectionManager.IsConnected) - { - using (ConnectionManager.FlushingFromDtcTransaction) - { - logger.Debug(string.Format("[session-id={0}] Flushing from Dtc Transaction", sessionId)); - Flush(); - } - } - logger.Debug("prepared for DTC transaction"); - - tx.Complete(); - } - preparingEnlistment.Prepared(); - } - catch (Exception exception) - { - logger.Error("DTC transaction prepre phase failed", exception); - preparingEnlistment.ForceRollback(exception); - } - } - } - - void IEnlistmentNotification.Commit(Enlistment enlistment) - { - using (new SessionIdLoggingContext(SessionId)) - { - logger.Debug("committing DTC transaction"); - // we have nothing to do here, since it is the actual - // DB connection that will commit the transaction - enlistment.Done(); - } - } - - void IEnlistmentNotification.Rollback(Enlistment enlistment) - { - using (new SessionIdLoggingContext(SessionId)) - { - AfterTransactionCompletion(false, null); - logger.Debug("rolled back DTC transaction"); - enlistment.Done(); - } - } - - void IEnlistmentNotification.InDoubt(Enlistment enlistment) - { - using (new SessionIdLoggingContext(SessionId)) - { - AfterTransactionCompletion(false, null); - logger.Debug("DTC transaction is in doubt"); - enlistment.Done(); - } - } - protected void EnlistInAmbientTransactionIfNeeded() { using (new SessionIdLoggingContext(SessionId)) { - if (ambientTransation != null) - return; - if (System.Transactions.Transaction.Current == null) - return; - ambientTransation = System.Transactions.Transaction.Current.Clone(); - logger.DebugFormat("enlisted into DTC transaction: {0}", ambientTransation.IsolationLevel); - AfterTransactionBegin(null); - ambientTransation.TransactionCompleted += delegate(object sender, TransactionEventArgs e) - { - bool wasSuccessful = false; - try - { - wasSuccessful = e.Transaction.TransactionInformation.Status - == TransactionStatus.Committed; - } - catch (ObjectDisposedException ode) - { - logger.Warn("Completed transaction was disposed.", ode); - } - AfterTransactionCompletion(wasSuccessful, null); - if (shouldCloseSessionOnDtcTransactionCompleted) - { - Dispose(true); - } - ambientTransation = null; - }; - ambientTransation.EnlistVolatile(this, EnlistmentOptions.EnlistDuringPrepareRequired); + factory.TransactionFactory.EnlistInDistributedTransactionIfNeeded(this); } } - - protected abstract void Dispose(bool disposing); - - #endregion } } Modified: trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -579,6 +579,11 @@ } } + public override void CloseSessionFromDistributedTransaction() + { + Dispose(true); + } + public override IList List(string query, QueryParameters parameters) { using (new SessionIdLoggingContext(SessionId)) @@ -1655,9 +1660,9 @@ using (new SessionIdLoggingContext(SessionId)) { log.Debug(string.Format("[session-id={0}] running ISession.Dispose()", SessionId)); - if (TakingPartInDtcTransaction) + if (TransactionContext!=null) { - shouldCloseSessionOnDtcTransactionCompleted = true; + TransactionContext.ShouldCloseSessionOnDistributedTransactionCompleted = true; return; } Dispose(true); @@ -1673,7 +1678,7 @@ /// If this Session is being Finalized (<c>isDisposing==false</c>) then make sure not /// to call any methods that could potentially bring this Session back to life. /// </remarks> - protected override void Dispose(bool isDisposing) + protected void Dispose(bool isDisposing) { using (new SessionIdLoggingContext(SessionId)) { @@ -1689,7 +1694,7 @@ // know this call came through Dispose() if (isDisposing && !IsClosed) { - Close(); + Close(); } // free unmanaged resources here Modified: trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -87,6 +87,11 @@ } } + public override void CloseSessionFromDistributedTransaction() + { + Dispose(true); + } + public override IList List(string query, QueryParameters parameters) { using (new SessionIdLoggingContext(SessionId)) @@ -883,16 +888,16 @@ using (new SessionIdLoggingContext(SessionId)) { log.Debug("running IStatelessSession.Dispose()"); - if (TakingPartInDtcTransaction) + if (TransactionContext != null) { - shouldCloseSessionOnDtcTransactionCompleted = true; + TransactionContext .ShouldCloseSessionOnDistributedTransactionCompleted = true; return; } Dispose(true); } } - protected override void Dispose(bool isDisposing) + protected void Dispose(bool isDisposing) { using (new SessionIdLoggingContext(SessionId)) { Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-22 20:42:29 UTC (rev 4360) @@ -435,7 +435,6 @@ <Compile Include="Action\EntityInsertAction.cs" /> <Compile Include="Action\EntityUpdateAction.cs" /> <Compile Include="Action\IExecutable.cs" /> - <Compile Include="AdoNet\AdoNetContext.cs" /> <Compile Include="AdoNet\ColumnNameCache.cs" /> <Compile Include="AdoNet\Expectations.cs" /> <Compile Include="AdoNet\IBatcherFactory.cs" /> @@ -599,6 +598,7 @@ <Compile Include="Hql\Ast\ANTLR\Util\NodeTraverser.cs" /> <Compile Include="Param\VersionTypeSeedParameterSpecification.cs" /> <Compile Include="SqlCommand\InsertSelect.cs" /> + <Compile Include="Transaction\AdoNetWithDistrubtedTransactionFactory.cs" /> <Compile Include="Transform\ToListResultTransformer.cs" /> <Compile Include="Util\NullableDictionary.cs" /> <Compile Include="Hql\Ast\ANTLR\Util\PathHelper.cs" /> Modified: trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Transaction/AdoNetTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -1,5 +1,4 @@ using System.Collections; -using NHibernate.AdoNet; using NHibernate.Engine; namespace NHibernate.Transaction @@ -11,19 +10,18 @@ return new AdoTransaction(session); } - public void Configure(IDictionary props) + public void EnlistInDistributedTransactionIfNeeded(ISessionImplementor session) { + // nothing need to do here, we only support local transactions with this factory } - public ConnectionReleaseMode DefaultReleaseMode + public bool IsInDistributedActiveTransaction(ISessionImplementor session) { - get { throw new System.NotImplementedException(); } + return false; } - public bool IsTransactionInProgress(AdoNetContext adoNetContext, ITransactionContext transactionContext, - ITransaction transaction) + public void Configure(IDictionary props) { - throw new System.NotImplementedException(); } } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Transaction/AdoNetWithDistrubtedTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -0,0 +1,153 @@ +using System; +using System.Collections; +using System.Transactions; +using log4net; +using NHibernate.Engine; +using NHibernate.Impl; + +namespace NHibernate.Transaction +{ + public class AdoNetWithDistrubtedTransactionFactory : ITransactionFactory + { + private static readonly ILog logger = LogManager.GetLogger(typeof (AbstractSessionImpl)); + + public void Configure(IDictionary props) + { + + } + + public ITransaction CreateTransaction(ISessionImplementor session) + { + return new AdoTransaction(session); + } + + public void EnlistInDistributedTransactionIfNeeded(ISessionImplementor session) + { + if (session.TransactionContext != null) + return; + if (System.Transactions.Transaction.Current == null) + return; + var transactionContext = new DistributedTransactionContext(session, System.Transactions.Transaction.Current); + session.TransactionContext = transactionContext; + logger.DebugFormat("enlisted into DTC transaction: {0}", transactionContext.AmbientTransation.IsolationLevel); + session.AfterTransactionBegin(null); + transactionContext.AmbientTransation.TransactionCompleted += delegate(object sender, TransactionEventArgs e) + { + bool wasSuccessful = false; + try + { + wasSuccessful = e.Transaction.TransactionInformation.Status + == TransactionStatus.Committed; + } + catch (ObjectDisposedException ode) + { + logger.Warn("Completed transaction was disposed, assuming transaction rollback", ode); + } + session.AfterTransactionCompletion(wasSuccessful, null); + if (transactionContext.ShouldCloseSessionOnDistributedTransactionCompleted) + { + session.CloseSessionFromDistributedTransaction(); + } + session.TransactionContext = null; + }; + transactionContext.AmbientTransation.EnlistVolatile(transactionContext, EnlistmentOptions.EnlistDuringPrepareRequired); + } + + public bool IsInDistributedActiveTransaction(ISessionImplementor session) + { + var distributedTransactionContext = ((DistributedTransactionContext) session.TransactionContext); + return distributedTransactionContext != null && + distributedTransactionContext.IsInActiveTransaction; + } + + public class DistributedTransactionContext : ITransactionContext, IEnlistmentNotification + { + public System.Transactions.Transaction AmbientTransation { get; set; } + public bool ShouldCloseSessionOnDistributedTransactionCompleted { get; set; } + private readonly ISessionImplementor sessionImplementor; + public bool IsInActiveTransaction; + + public DistributedTransactionContext(ISessionImplementor sessionImplementor, System.Transactions.Transaction transaction) + { + this.sessionImplementor = sessionImplementor; + AmbientTransation = transaction.Clone(); + IsInActiveTransaction = true; + } + + #region IEnlistmentNotification Members + + void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment) + { + using (new SessionIdLoggingContext(sessionImplementor.SessionId)) + { + try + { + using (var tx = new TransactionScope(AmbientTransation)) + { + sessionImplementor.BeforeTransactionCompletion(null); + if (sessionImplementor.FlushMode != FlushMode.Never && sessionImplementor.ConnectionManager.IsConnected) + { + using (sessionImplementor.ConnectionManager.FlushingFromDtcTransaction) + { + logger.Debug(string.Format("[session-id={0}] Flushing from Dtc Transaction", sessionImplementor.SessionId)); + sessionImplementor.Flush(); + } + } + logger.Debug("prepared for DTC transaction"); + + tx.Complete(); + } + preparingEnlistment.Prepared(); + } + catch (Exception exception) + { + logger.Error("DTC transaction prepre phase failed", exception); + preparingEnlistment.ForceRollback(exception); + } + } + } + + void IEnlistmentNotification.Commit(Enlistment enlistment) + { + using (new SessionIdLoggingContext(sessionImplementor.SessionId)) + { + logger.Debug("committing DTC transaction"); + // we have nothing to do here, since it is the actual + // DB connection that will commit the transaction + enlistment.Done(); + IsInActiveTransaction = false; + } + } + + void IEnlistmentNotification.Rollback(Enlistment enlistment) + { + using (new SessionIdLoggingContext(sessionImplementor.SessionId)) + { + sessionImplementor.AfterTransactionCompletion(false, null); + logger.Debug("rolled back DTC transaction"); + enlistment.Done(); + IsInActiveTransaction = false; + } + } + + void IEnlistmentNotification.InDoubt(Enlistment enlistment) + { + using (new SessionIdLoggingContext(sessionImplementor.SessionId)) + { + sessionImplementor.AfterTransactionCompletion(false, null); + logger.Debug("DTC transaction is in doubt"); + enlistment.Done(); + IsInActiveTransaction = false; + } + } + + #endregion + + public void Dispose() + { + if (AmbientTransation != null) + AmbientTransation.Dispose(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Transaction/ITransactionContext.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/ITransactionContext.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Transaction/ITransactionContext.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -1,3 +1,4 @@ +using System; using NHibernate.Engine; namespace NHibernate.Transaction @@ -2,18 +3,9 @@ { - public interface ITransactionContext + /// <summary> + /// This is used as a marker interface for the different + /// transaction context required for each session + /// </summary> + public interface ITransactionContext : IDisposable { - /// Since C# doesn't support interfaces into interfaces ITransactionContext - /// represent the inner interface at - /// org.hibernate.transaction.TransactionFactory.Context - - ISessionFactoryImplementor Factory { get; } - //bool IsOpen { get; } - bool IsClosed { get; } - - bool IsFlushModeNever { get; } - bool IsFlushBeforeCompletionEnabled { get; } - void ManagedFlush(); - - bool ShouldAutoClose { get; } - void ManagedClose(); + bool ShouldCloseSessionOnDistributedTransactionCompleted { get; set; } } Modified: trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate/Transaction/ITransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -1,4 +1,5 @@ using System.Collections; +using System.Transactions; using NHibernate; using NHibernate.AdoNet; using NHibernate.Engine; @@ -26,25 +27,8 @@ /// </summary> ITransaction CreateTransaction(ISessionImplementor session); - /// <summary> - /// Get the default connection release mode - /// </summary> - ConnectionReleaseMode DefaultReleaseMode { get; } + void EnlistInDistributedTransactionIfNeeded(ISessionImplementor session); - //TODO: do we need this? - //bool IsTransactionManagerRequired { get; } - - //TODO: do we need this? - //bool AreCallbacksLocalToHibernateTransactions { get; } - - /// <summary> - /// Determine whether an underlying transaction is in progress. - /// - /// Mainly this is used in determining whether to register a - /// synchronization as well as whether or not to circumvent - /// auto flushing outside transactions. - /// </summary> - /// <returns>true if an underlying transaction is know to be in effect.</returns> - bool IsTransactionInProgress(AdoNetContext adoNetContext, ITransactionContext transactionContext, ITransaction transaction); + bool IsInDistributedActiveTransaction(ISessionImplementor session); } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/DummyTransactionFactory.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -1,30 +1,30 @@ using System; +using System.Collections; using NHibernate.AdoNet; +using NHibernate.Engine; using NHibernate.Transaction; namespace NHibernate.Test.NHSpecificTest.NH1054 { - public class DummyTransactionFactory : NHibernate.Transaction.ITransactionFactory + public class DummyTransactionFactory : ITransactionFactory { - void NHibernate.Transaction.ITransactionFactory.Configure(System.Collections.IDictionary props) + public void Configure(IDictionary props) { - } - ITransaction NHibernate.Transaction.ITransactionFactory.CreateTransaction(NHibernate.Engine.ISessionImplementor session) + public ITransaction CreateTransaction(ISessionImplementor session) { - return null; + throw new NotImplementedException(); } - public ConnectionReleaseMode DefaultReleaseMode + public void EnlistInDistributedTransactionIfNeeded(ISessionImplementor session) { - get { throw new NotImplementedException(); } + throw new NotImplementedException(); } - public bool IsTransactionInProgress(AdoNetContext adoNetContext, ITransactionContext transactionContext, - ITransaction transaction) + public bool IsInDistributedActiveTransaction(ISessionImplementor session) { - throw new NotImplementedException(); + return false; } } } Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/NH1054Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/NH1054Fixture.cs 2009-05-22 18:35:26 UTC (rev 4359) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1054/NH1054Fixture.cs 2009-05-22 20:42:29 UTC (rev 4360) @@ -22,12 +22,12 @@ } [Test] - public void AdoNetTransactionFactoryIsDefaultTransactionFactory() + public void AdoNetWithDistributedTransactionFactoryIsDefaultTransactionFactory() { Configuration configuration = new Configuration(); ISessionFactoryImplementor sessionFactory = (ISessionFactoryImplementor)configuration.BuildSessionFactory(); - Assert.IsInstanceOfType(typeof(NHibernate.Transaction.AdoNetTransactionFactory), + Assert.IsInstanceOfType(typeof(NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory), sessionFactory.Settings.TransactionFactory); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 18:35:40
|
Revision: 4359 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4359&view=rev Author: ayenderahien Date: 2009-05-22 18:35:26 +0000 (Fri, 22 May 2009) Log Message: ----------- Making sure that the batcher output from batcher is formatted for human reading Modified Paths: -------------- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs trunk/nhibernate/src/NHibernate/AdoNet/Util/SqlStatementLogger.cs trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs Modified: trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 18:28:52 UTC (rev 4358) +++ trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 18:35:26 UTC (rev 4359) @@ -23,7 +23,7 @@ //the user change the logging configuration at runtime. Trying to put this //behind an if(log.IsDebugEnabled) will cause a null reference exception //at that point. - currentBatchCommandsLog = new StringBuilder(); + currentBatchCommandsLog = new StringBuilder().AppendLine("Batch commands:"); } public override int BatchSize @@ -38,10 +38,16 @@ IDbCommand batchUpdate = CurrentCommand; string lineWithParameters = null; - if (Factory.Settings.SqlStatementLogger.IsDebugEnabled) + var sqlStatementLogger = Factory.Settings.SqlStatementLogger; + if (sqlStatementLogger.IsDebugEnabled) { - lineWithParameters = Factory.Settings.SqlStatementLogger.GetCommandLineWithParameters(batchUpdate); - currentBatchCommandsLog.Append("Batch command: ").AppendLine(lineWithParameters); + lineWithParameters = sqlStatementLogger.GetCommandLineWithParameters(batchUpdate); + var formatStyle = sqlStatementLogger.DetermineActualStyle(FormatStyle.Basic); + lineWithParameters = formatStyle.Formatter.Format(lineWithParameters); + currentBatchCommandsLog.Append("command ") + .Append(currentBatch.CountOfCommands) + .Append(":") + .AppendLine(lineWithParameters); } if (log.IsDebugEnabled) { @@ -63,7 +69,7 @@ if (Factory.Settings.SqlStatementLogger.IsDebugEnabled) { Factory.Settings.SqlStatementLogger.LogBatchCommand(currentBatchCommandsLog.ToString()); - currentBatchCommandsLog = new StringBuilder(); + currentBatchCommandsLog = new StringBuilder().AppendLine("Batch commands:"); } int rowsAffected = currentBatch.ExecuteNonQuery(); Modified: trunk/nhibernate/src/NHibernate/AdoNet/Util/SqlStatementLogger.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/Util/SqlStatementLogger.cs 2009-05-22 18:28:52 UTC (rev 4358) +++ trunk/nhibernate/src/NHibernate/AdoNet/Util/SqlStatementLogger.cs 2009-05-22 18:35:26 UTC (rev 4359) @@ -135,7 +135,7 @@ || DbType.AnsiStringFixedLength.Equals(dbType) || DbType.StringFixedLength.Equals(dbType); } - private FormatStyle DetermineActualStyle(FormatStyle style) + public FormatStyle DetermineActualStyle(FormatStyle style) { return FormatSql ? style : FormatStyle.None; } Modified: trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 18:28:52 UTC (rev 4358) +++ trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 18:35:26 UTC (rev 4359) @@ -1,7 +1,6 @@ using System.Collections; using NHibernate.AdoNet; using NHibernate.Cfg; -using NHibernate.Dialect; using NUnit.Framework; namespace NHibernate.Test.Ado @@ -125,7 +124,41 @@ Cleanup(); } + [Test] + [Description("SqlClient: The batcher log output should be formatted")] + public void BatchedoutputShouldBeFormatted() + { + if (sessions.Settings.BatcherFactory is SqlClientBatchingBatcherFactory == false) + Assert.Ignore("This test is for SqlClientBatchingBatcher only"); + FillDb(); + + using (var sqlLog = new SqlLogSpy()) + using (ISession s = sessions.OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(new VerySimple + { + Name = "test441", + Weight = 894 + }); + + s.Save(new AlmostSimple + { + Name = "test441", + Weight = 894 + }); + + tx.Commit(); + + var log = sqlLog.GetWholeLog(); + Assert.IsTrue(log.Contains("INSERT \n INTO")); + } + + Cleanup(); + } + + [Test] [Description("The batcher should run all DELETE queries in only one roundtrip.")] public void OneRoundTripDelete() @@ -211,7 +244,7 @@ sessions.Statistics.Clear(); FillDb(); string logs = sl.GetWholeLog(); - Assert.That(logs, Text.Contains("Batch command:").IgnoreCase); + Assert.That(logs, Text.Contains("Batch commands:").IgnoreCase); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 18:29:02
|
Revision: 4358 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4358&view=rev Author: ayenderahien Date: 2009-05-22 18:28:52 +0000 (Fri, 22 May 2009) Log Message: ----------- NH-1791 - Allow more natural syntax for passing multiple projections on a criteria query BREAKNING CHANGE - If you are inheriting from ICriteria, you would need to change the method signature. This is very rare, so I don't expect this to be a real problem This change is source code compatible for users of ICriteria.SetProjection, however. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/ICriteria.cs trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs Modified: trunk/nhibernate/src/NHibernate/ICriteria.cs =================================================================== --- trunk/nhibernate/src/NHibernate/ICriteria.cs 2009-05-22 16:29:11 UTC (rev 4357) +++ trunk/nhibernate/src/NHibernate/ICriteria.cs 2009-05-22 18:28:52 UTC (rev 4358) @@ -72,7 +72,7 @@ /// determines the overall "shape" of the query result. /// </para> /// </remarks> - ICriteria SetProjection(IProjection projection); + ICriteria SetProjection(params IProjection[] projection); /// <summary> /// Add an Expression to constrain the results to be retrieved. Modified: trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2009-05-22 16:29:11 UTC (rev 4357) +++ trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2009-05-22 18:28:52 UTC (rev 4358) @@ -439,9 +439,27 @@ return this; } - public ICriteria SetProjection(IProjection projection) + public ICriteria SetProjection(params IProjection[] projections) { - this.projection = projection; + if(projections==null) + throw new ArgumentNullException("projections"); + if(projections.Length ==0) + throw new ArgumentException("projections must contain a least one projection"); + + if(projections.Length==1) + { + projection = projections[0]; + } + else + { + var projectionList = new ProjectionList(); + foreach (var childProjection in projections) + { + projectionList.Add(childProjection); + } + projection = projectionList; + } + projectionCriteria = this; SetResultTransformer(CriteriaSpecification.Projection); return this; @@ -810,9 +828,9 @@ return this; } - public ICriteria SetProjection(IProjection projection) + public ICriteria SetProjection(params IProjection[] projections) { - root.SetProjection(projection); + root.SetProjection(projections); return this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-22 16:29:21
|
Revision: 4357 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4357&view=rev Author: fabiomaulo Date: 2009-05-22 16:29:11 +0000 (Fri, 22 May 2009) Log Message: ----------- Minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Example.Web/App_Code/ExampleApplication.cs trunk/nhibernate/src/NHibernate.Example.Web/Web.Config Property Changed: ---------------- trunk/nhibernate/src/NHibernate.Example.Web/App_Data/ Modified: trunk/nhibernate/src/NHibernate.Example.Web/App_Code/ExampleApplication.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Example.Web/App_Code/ExampleApplication.cs 2009-05-22 12:55:51 UTC (rev 4356) +++ trunk/nhibernate/src/NHibernate.Example.Web/App_Code/ExampleApplication.cs 2009-05-22 16:29:11 UTC (rev 4357) @@ -1,22 +1,26 @@ -using System; using System.IO; using System.Web; using System.Web.Hosting; -using NHibernate; +using NHibernate.Cfg; using NHibernate.Example.Web.Domain; namespace NHibernate.Example.Web { public class ExampleApplication : HttpApplication { - public static readonly Cfg.Configuration Configuration; + public static readonly Configuration Configuration; public static readonly ISessionFactory SessionFactory; static ExampleApplication() { log4net.Config.XmlConfigurator.Configure(); - Configuration = new NHibernate.Cfg.Configuration() - .SetDefaultAssembly(typeof(Item).Assembly.FullName) + Configuration = new Configuration(); + string nhConfigPath = HostingEnvironment.MapPath("~/App_Data/hibernate.cfg.xml"); + if (File.Exists(nhConfigPath)) + { + Configuration.Configure(nhConfigPath); + } + Configuration.SetDefaultAssembly(typeof(Item).Assembly.FullName) .SetDefaultNamespace(typeof(Item).Namespace) .AddDirectory(new DirectoryInfo(HostingEnvironment.MapPath("~/App_Data/"))); Property changes on: trunk/nhibernate/src/NHibernate.Example.Web/App_Data ___________________________________________________________________ Added: svn:ignore + hibernate.cfg.xml Modified: trunk/nhibernate/src/NHibernate.Example.Web/Web.Config =================================================================== --- trunk/nhibernate/src/NHibernate.Example.Web/Web.Config 2009-05-22 12:55:51 UTC (rev 4356) +++ trunk/nhibernate/src/NHibernate.Example.Web/Web.Config 2009-05-22 16:29:11 UTC (rev 4357) @@ -46,7 +46,8 @@ </customErrors> --> <pages enableViewState="false" enableViewStateMac="false" /> - <trust level="Medium" /> + <!-- <trust level="Medium" /> --> + <httpModules> <add name="CurrentSessionModule" type="NHibernate.Example.Web.CurrentSessionModule" /> </httpModules> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-22 12:55:57
|
Revision: 4356 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4356&view=rev Author: fabiomaulo Date: 2009-05-22 12:55:51 +0000 (Fri, 22 May 2009) Log Message: ----------- Minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-05-22 08:14:55 UTC (rev 4355) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-05-22 12:55:51 UTC (rev 4356) @@ -22,7 +22,10 @@ private static readonly ILog log = LogManager.GetLogger(typeof(MultiQueryImpl)); private readonly List<IQuery> queries = new List<IQuery>(); - private readonly List<IQueryTranslator> translators = new List<IQueryTranslator>(); private readonly IList<System.Type> resultCollectionGenericType = new List<System.Type>(); private readonly List<QueryParameters> parameters = new List<QueryParameters>(); private IList queryResults; + private readonly List<IQueryTranslator> translators = new List<IQueryTranslator>(); + private readonly IList<System.Type> resultCollectionGenericType = new List<System.Type>(); + private readonly List<QueryParameters> parameters = new List<QueryParameters>(); + private IList queryResults; private readonly Dictionary<string, int> criteriaResultPositions = new Dictionary<string, int>(); private string cacheRegion; private int commandTimeout = RowSelection.NoValue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sz...@us...> - 2009-05-22 08:15:01
|
Revision: 4355 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4355&view=rev Author: szoke Date: 2009-05-22 08:14:55 +0000 (Fri, 22 May 2009) Log Message: ----------- fixing typo in "addin to batch" Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 05:52:57 UTC (rev 4354) +++ trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 08:14:55 UTC (rev 4355) @@ -161,7 +161,7 @@ sessions.Statistics.Clear(); FillDb(); string logs = sl.GetWholeLog(); - Assert.That(logs, Text.DoesNotContain("Addin to batch").IgnoreCase); + Assert.That(logs, Text.DoesNotContain("Adding to batch").IgnoreCase); Assert.That(logs, Text.Contains("Batch command").IgnoreCase); Assert.That(logs, Text.Contains("INSERT").IgnoreCase); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-22 05:53:01
|
Revision: 4354 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4354&view=rev Author: fabiomaulo Date: 2009-05-22 05:52:57 +0000 (Fri, 22 May 2009) Log Message: ----------- Fix NH-1792 (by Jesse) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Product.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2009-05-22 05:38:20 UTC (rev 4353) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2009-05-22 05:52:57 UTC (rev 4354) @@ -67,7 +67,10 @@ int orderIndex = querySqlString.LastIndexOfCaseInsensitive(" order by "); SqlString from; SqlString[] sortExpressions; - if (orderIndex > 0) + + //don't use the order index if it is contained within a larger statement(assuming + //a statement with non matching parenthesis is part of a larger block) + if (orderIndex > 0 && HasMatchingParens(querySqlString.Substring(orderIndex).ToString())) { from = querySqlString.Substring(fromIndex, orderIndex - fromIndex).Trim(); SqlString orderBy = querySqlString.Substring(orderIndex).Trim(); @@ -214,6 +217,34 @@ } /// <summary> + /// Indicates whether the string fragment contains matching parenthesis + /// </summary> + /// <param name="statement"> the statement to evaluate</param> + /// <returns>true if the statment contains no parenthesis or an equal number of + /// opening and closing parenthesis;otherwise false </returns> + private static bool HasMatchingParens(IEnumerable<char> statement) + { + //unmatched paren count + int unmatchedParen = 0; + + //increment the counts based in the opening and closing parens in the statement + foreach (char item in statement) + { + switch (item) + { + case '(': + unmatchedParen++; + break; + case ')': + unmatchedParen--; + break; + } + } + + return unmatchedParen == 0; + } + + /// <summary> /// Sql Server 2005 supports a query statement that provides <c>LIMIT</c> /// functionality. /// </summary> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs 2009-05-22 05:52:57 UTC (rev 4354) @@ -0,0 +1,91 @@ +using System.Collections.Generic; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1792 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override void OnTearDown() + { + DeleteAll(); + } + + /// <summary> + /// Deletes all the product entities from the persistence medium + /// </summary> + private void DeleteAll() + { + using (ISession session = OpenSession()) + { + using (ITransaction trans = session.BeginTransaction()) + { + session.Delete("from Product"); + trans.Commit(); + } + } + } + + /// <summary> + /// Creates some product enties to work with + /// </summary> + protected override void OnSetUp() + { + base.OnSetUp(); + + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + for (int i = 0; i < 10; i++) + { + var prod = new Product {Name = "Product" + i}; + + session.Save(prod); + } + tx.Commit(); + } + } + } + + /// <summary> + /// Verifies that a subquery created as a detachedcriteria with an order by + /// will produce valid sql when the main query does not contain an order by clause + /// </summary> + [Test] + public void PageWithDetachedCriteriaSubqueryWithOrderBy() + { + //create the subquery + DetachedCriteria subQuery = + DetachedCriteria.For<Product>().SetProjection(Projections.Id()).AddOrder(Order.Desc("Name")).SetMaxResults(5); + + using (ISession session = OpenSession()) + { + IList<Product> results = + session.CreateCriteria<Product>().Add(Subqueries.PropertyIn("Id", subQuery)).Add(Restrictions.Gt("Id", 0)). + SetMaxResults(3).List<Product>(); + + Assert.AreEqual(3, results.Count); + } + } + + /// <summary> + /// Verifies that a subquery created as a raw sql statement with an order by + /// will produce valid sql when the main query does not contain an order by clause + /// </summary> + [Test] + public void PageWithRawSqlSubqueryWithOrderBy() + { + using (ISession session = OpenSession()) + { + IList<Product> results = + session.CreateCriteria<Product>().Add( + Expression.Sql("{alias}.Id in (Select top 5 p.Id from Product p order by Name)")).Add(Restrictions.Gt("Id", 0)). + SetMaxResults(3).List<Product>(); + + Assert.AreEqual(3, results.Count); + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Mappings.hbm.xml 2009-05-22 05:52:57 UTC (rev 4354) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1792" + assembly="NHibernate.Test"> + + <class name="Product"> + <id name="Id"> + <generator class="native"/> + </id> + <property name="Name"/> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Product.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Product.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Product.cs 2009-05-22 05:52:57 UTC (rev 4354) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH1792 +{ + public class Product + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 05:38:20 UTC (rev 4353) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 05:52:57 UTC (rev 4354) @@ -432,6 +432,8 @@ <Compile Include="NHSpecificTest\NH1776\FilterQueryTwiceFixture.cs" /> <Compile Include="NHSpecificTest\NH1783\DomainClass.cs" /> <Compile Include="NHSpecificTest\NH1783\SampleTest.cs" /> + <Compile Include="NHSpecificTest\NH1792\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1792\Product.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> <Compile Include="HQL\HQLFunctions.cs" /> <Compile Include="HQL\Human.cs" /> @@ -1825,6 +1827,7 @@ <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> <EmbeddedResource Include="Ado\AlmostSimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1792\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1756\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyProperty\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1783\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 05:38:22
|
Revision: 4353 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4353&view=rev Author: ayenderahien Date: 2009-05-22 05:38:20 +0000 (Fri, 22 May 2009) Log Message: ----------- NH-1790 - allowing SqlClientBatchingBatcher to batch non identical statements. This means a nice perf improvement because we can put more stuff into a batch, but it should be noted that we aren't batching across different statement types. That is, we will batch all inserts, but we will not batch inserts & updates. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/AdoNet/AbstractBatcher.cs trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcherFactory.cs trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.cs trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.hbm.xml Modified: trunk/nhibernate/src/NHibernate/AdoNet/AbstractBatcher.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/AbstractBatcher.cs 2009-05-22 00:52:05 UTC (rev 4352) +++ trunk/nhibernate/src/NHibernate/AdoNet/AbstractBatcher.cs 2009-05-22 05:38:20 UTC (rev 4353) @@ -148,9 +148,7 @@ public IDbCommand PrepareCommand(CommandType type, SqlString sql, SqlType[] parameterTypes) { - // a new IDbCommand is being prepared and a new (potential) batch - // started - so execute the current batch of commands. - ExecuteBatch(); + OnPreparedCommand(); // do not actually prepare the Command here - instead just generate it because // if the command is associated with an ADO.NET Transaction/Connection while @@ -159,6 +157,13 @@ return Generate(type, sql, parameterTypes); } + protected virtual void OnPreparedCommand() + { + // a new IDbCommand is being prepared and a new (potential) batch + // started - so execute the current batch of commands. + ExecuteBatch(); + } + public IDbCommand PrepareQueryCommand(CommandType type, SqlString sql, SqlType[] parameterTypes) { // do not actually prepare the Command here - instead just generate it because Modified: trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 00:52:05 UTC (rev 4352) +++ trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 05:38:20 UTC (rev 4353) @@ -74,5 +74,12 @@ totalExpectedRowsAffected = 0; currentBatch = new SqlClientSqlCommandSet(); } + + protected override void OnPreparedCommand() + { + // SQL Server batching can handle several different commands, and + // that gives us a nice perf boost when mixing different queries for + // batching + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcherFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcherFactory.cs 2009-05-22 00:52:05 UTC (rev 4352) +++ trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcherFactory.cs 2009-05-22 05:38:20 UTC (rev 4353) @@ -2,7 +2,7 @@ namespace NHibernate.AdoNet { - internal class SqlClientBatchingBatcherFactory : IBatcherFactory + public class SqlClientBatchingBatcherFactory : IBatcherFactory { public virtual IBatcher CreateBatcher(ConnectionManager connectionManager, IInterceptor interceptor) { Added: trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.cs 2009-05-22 05:38:20 UTC (rev 4353) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.Ado +{ + public class AlmostSimple + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual double Weight { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Ado/AlmostSimple.hbm.xml 2009-05-22 05:38:20 UTC (rev 4353) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.Ado"> + + <class name="AlmostSimple"> + <id name="Id"/> + <property name="Name"/> + <property name="Weight"/> + </class> + +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 00:52:05 UTC (rev 4352) +++ trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 05:38:20 UTC (rev 4353) @@ -1,6 +1,7 @@ using System.Collections; using NHibernate.AdoNet; using NHibernate.Cfg; +using NHibernate.Dialect; using NUnit.Framework; namespace NHibernate.Test.Ado @@ -15,7 +16,7 @@ protected override IList Mappings { - get { return new[] { "Ado.VerySimple.hbm.xml" }; } + get { return new[] { "Ado.VerySimple.hbm.xml", "Ado.AlmostSimple.hbm.xml" }; } } protected override void Configure(Configuration configuration) @@ -47,6 +48,7 @@ using (s.BeginTransaction()) { s.CreateQuery("delete from VerySimple").ExecuteUpdate(); + s.CreateQuery("delete from AlmostSimple").ExecuteUpdate(); s.Transaction.Commit(); } } @@ -74,7 +76,7 @@ var vs1 = s.Get<VerySimple>(1); var vs2 = s.Get<VerySimple>(2); vs1.Weight -= 10; - vs1.Weight -= 1; + vs2.Weight -= 1; sessions.Statistics.Clear(); s.Update(vs1); s.Update(vs2); @@ -86,6 +88,45 @@ } [Test] + [Description("SqlClient: The batcher should run all different INSERT queries in only one roundtrip.")] + public void SqlClientOneRoundTripForUpdateAndInsert() + { + if (sessions.Settings.BatcherFactory is SqlClientBatchingBatcherFactory == false) + Assert.Ignore("This test is for SqlClientBatchingBatcher only"); + + FillDb(); + + using(var sqlLog = new SqlLogSpy()) + using (ISession s = sessions.OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(new VerySimple + { + Name = "test441", + Weight = 894 + }); + + s.Save(new AlmostSimple + { + Name = "test441", + Weight = 894 + }); + + tx.Commit(); + + var log = sqlLog.GetWholeLog(); + //log should only contain NHibernate.SQL once, because that means + //that we ony generated a single batch (NHibernate.SQL log will output + //once per batch) + Assert.AreEqual(0, log.IndexOf("NHibernate.SQL"), "log should start with NHibernate.SQL"); + Assert.AreEqual(-1, log.IndexOf("NHibernate.SQL", "NHibernate.SQL".Length), "NHibernate.SQL should only appear once in the log"); + } + + Cleanup(); + } + + + [Test] [Description("The batcher should run all DELETE queries in only one roundtrip.")] public void OneRoundTripDelete() { Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 00:52:05 UTC (rev 4352) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-22 05:38:20 UTC (rev 4353) @@ -74,6 +74,7 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> + <Compile Include="Ado\AlmostSimple.cs" /> <Compile Include="Ado\BatcherFixture.cs" /> <Compile Include="Ado\VerySimple.cs" /> <Compile Include="Any\Address.cs" /> @@ -1822,6 +1823,7 @@ <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" /> <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> + <EmbeddedResource Include="Ado\AlmostSimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> <EmbeddedResource Include="NHSpecificTest\NH1756\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyProperty\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 00:52:10
|
Revision: 4352 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4352&view=rev Author: ayenderahien Date: 2009-05-22 00:52:05 +0000 (Fri, 22 May 2009) Log Message: ----------- Committing the logging changes for sql batcher discussed on mailing list Modified Paths: -------------- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs Modified: trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs =================================================================== --- trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 00:51:01 UTC (rev 4351) +++ trunk/nhibernate/src/NHibernate/AdoNet/SqlClientBatchingBatcher.cs 2009-05-22 00:52:05 UTC (rev 4352) @@ -36,24 +36,19 @@ { totalExpectedRowsAffected += expectation.ExpectedRowCount; IDbCommand batchUpdate = CurrentCommand; - if (log.IsDebugEnabled) + + string lineWithParameters = null; + if (Factory.Settings.SqlStatementLogger.IsDebugEnabled) { - string lineWithParameters = Factory.Settings.SqlStatementLogger.GetCommandLineWithParameters(batchUpdate); - if (Factory.Settings.SqlStatementLogger.IsDebugEnabled) - { - Factory.Settings.SqlStatementLogger.LogCommand("Adding to batch:", batchUpdate, FormatStyle.Basic); - } - else - { - log.Debug("Adding to batch:" + lineWithParameters); - } + lineWithParameters = Factory.Settings.SqlStatementLogger.GetCommandLineWithParameters(batchUpdate); currentBatchCommandsLog.Append("Batch command: ").AppendLine(lineWithParameters); } - else + if (log.IsDebugEnabled) { - Factory.Settings.SqlStatementLogger.LogCommand("Adding to batch:", batchUpdate, FormatStyle.Basic); + log.Debug("Adding to batch:" + lineWithParameters); } - currentBatch.Append((System.Data.SqlClient.SqlCommand)batchUpdate); + currentBatch.Append((System.Data.SqlClient.SqlCommand) batchUpdate); + if (currentBatch.CountOfCommands >= batchSize) { DoExecuteBatch(batchUpdate); @@ -70,11 +65,7 @@ Factory.Settings.SqlStatementLogger.LogBatchCommand(currentBatchCommandsLog.ToString()); currentBatchCommandsLog = new StringBuilder(); } - else if (log.IsDebugEnabled) - { - log.Debug(currentBatchCommandsLog.ToString()); - currentBatchCommandsLog = new StringBuilder(); - } + int rowsAffected = currentBatch.ExecuteNonQuery(); Expectations.VerifyOutcomeBatched(totalExpectedRowsAffected, rowsAffected); Modified: trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 00:51:01 UTC (rev 4351) +++ trunk/nhibernate/src/NHibernate.Test/Ado/BatcherFixture.cs 2009-05-22 00:52:05 UTC (rev 4352) @@ -108,8 +108,8 @@ [Test] [Description(@"Activating the SQL and turning off the batcher's log the log stream: --should not contains any batch info --should contain SQL's log info +-should not contains adding to batch +-should contain batch command -the batcher should work.")] public void SqlLog() { @@ -120,7 +120,8 @@ sessions.Statistics.Clear(); FillDb(); string logs = sl.GetWholeLog(); - Assert.That(logs, Text.DoesNotContain("Batch command").IgnoreCase); + Assert.That(logs, Text.DoesNotContain("Addin to batch").IgnoreCase); + Assert.That(logs, Text.Contains("Batch command").IgnoreCase); Assert.That(logs, Text.Contains("INSERT").IgnoreCase); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2009-05-22 00:51:08
|
Revision: 4351 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4351&view=rev Author: ayenderahien Date: 2009-05-22 00:51:01 +0000 (Fri, 22 May 2009) Log Message: ----------- Will log collection hit / miss even if generated_stats = false Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Event/Default/DefaultInitializeCollectionEventListener.cs Modified: trunk/nhibernate/src/NHibernate/Event/Default/DefaultInitializeCollectionEventListener.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Event/Default/DefaultInitializeCollectionEventListener.cs 2009-05-20 15:50:11 UTC (rev 4350) +++ trunk/nhibernate/src/NHibernate/Event/Default/DefaultInitializeCollectionEventListener.cs 2009-05-22 00:51:01 UTC (rev 4351) @@ -88,17 +88,24 @@ if (ce == null) { factory.StatisticsImplementor.SecondLevelCacheMiss(persister.Cache.RegionName); - log.DebugFormat("Collection cache miss: {0}", ck); } else { factory.StatisticsImplementor.SecondLevelCacheHit(persister.Cache.RegionName); - log.DebugFormat("Collection cache hit: {0}", ck); } } if (ce == null) { + log.DebugFormat("Collection cache miss: {0}", ck); + } + else + { + log.DebugFormat("Collection cache hit: {0}", ck); + } + + if (ce == null) + { return false; } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-20 15:50:21
|
Revision: 4350 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4350&view=rev Author: fabiomaulo Date: 2009-05-20 15:50:11 +0000 (Wed, 20 May 2009) Log Message: ----------- Fix NH-1756 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs 2009-05-19 12:59:37 UTC (rev 4349) +++ trunk/nhibernate/src/NHibernate/Event/Default/DefaultFlushEntityEventListener.cs 2009-05-20 15:50:11 UTC (rev 4350) @@ -345,8 +345,12 @@ private bool IsVersionIncrementRequired(FlushEntityEvent @event, EntityEntry entry, IEntityPersister persister, int[] dirtyProperties) { - bool isVersionIncrementRequired = - entry.Status != Status.Deleted && + // NH different behavior: because NH-1756 when PostInsertId is used with a generated version + // the version is read inmediately after save and does not need to be incremented. + // BTW, in general, a generated version does not need to be incremented by NH. + + bool isVersionIncrementRequired = + entry.Status != Status.Deleted && !persister.IsVersionPropertyGenerated && (dirtyProperties == null || Versioning.IsVersionIncrementRequired(dirtyProperties, @event.HasDirtyCollection, persister.PropertyVersionability)); return isVersionIncrementRequired; Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Domain.cs 2009-05-20 15:50:11 UTC (rev 4350) @@ -0,0 +1,43 @@ + +using System; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1756 +{ + + public class Book + { + private DateTime _version; + + public virtual DateTime Version + { + get { return _version; } + set { _version = value; } + } + + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual IList<Page> Pages { get; set; } + } + + public class Page + { + public virtual int Id { get; set; } + } + + public class BookNotGenerated + { + private DateTime _version; + + public virtual DateTime Version + { + get { return _version; } + set { _version = value; } + } + + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual IList<Page> Pages { get; set; } + } + +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Fixture.cs 2009-05-20 15:50:11 UTC (rev 4350) @@ -0,0 +1,86 @@ +using System.Collections.Generic; +using NHibernate.Dialect; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1756 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2000Dialect; + } + + [Test] + public void SaveTransient_Then_Update_Ok() + { + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + var book = new BookNotGenerated {Name = "test book", Pages = new List<Page>(),}; + session.Save(book); + book.Name = "modified test book"; + transaction.Commit(); + } + } + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + session.CreateQuery("delete from BookNotGenerated").ExecuteUpdate(); + transaction.Commit(); + } + } + } + + [Test] + [Description("Work with AutoFlush on commit")] + public void SaveTransient_Then_Update() + { + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + var book = new Book { Name = "test book", Pages = new List<Page>(), }; + session.Save(book); + book.Name = "modified test book"; + transaction.Commit(); + } + } + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + session.CreateQuery("delete from Book").ExecuteUpdate(); + transaction.Commit(); + } + } + } + + [Test] + public void SaveTransient_Then_Update_Bug() + { + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + var book = new Book {Name = "test book", Pages = new List<Page>(),}; + session.Save(book); + book.Name = "modified test book"; + session.Flush(); + transaction.Commit(); + } + } + using (ISession session = OpenSession()) + { + using (ITransaction transaction = session.BeginTransaction()) + { + session.CreateQuery("delete from Book").ExecuteUpdate(); + transaction.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1756/Mappings.hbm.xml 2009-05-20 15:50:11 UTC (rev 4350) @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1756" + assembly="NHibernate.Test"> + + <class name="Book" table="book"> + + <id name="Id" column="id"> + <generator class="identity"/> + </id> + + <discriminator column="subclass" /> + + <version name="Version" column="version_column" type="Timestamp" generated="always" /> + <property name="Name" column="name_column" /> + + <bag name="Pages"> + <key column="book_id" /> + <one-to-many class="Page"/> + </bag> + + </class> + + <class name="Page"> + + <id name="Id"> + <generator class="identity"/> + </id> + + </class> + + <class name="BookNotGenerated"> + + <id name="Id" column="id"> + <generator class="identity"/> + </id> + + <discriminator column="subclass" /> + + <version name="Version" column="version_column" type="Timestamp" generated="never" /> + <property name="Name" column="name_column" /> + + <bag name="Pages"> + <key column="book_id" /> + <one-to-many class="Page"/> + </bag> + + </class> + + <database-object> + <create> + <![CDATA[ +CREATE TRIGGER t_book ON book +INSTEAD OF INSERT +AS +BEGIN + SET NOCOUNT ON + + INSERT INTO book ( + [subclass], + [version_column], + [name_column]) + SELECT + [subclass], + GetDate(), + [name_column] + FROM inserted + + SELECT scope_identity(); +END +]]> + </create> + <drop> + <![CDATA[ +IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[t_sack]')) +DROP TRIGGER [dbo].[t_sack] +]]> + </drop> + <dialect-scope name="NHibernate.Dialect.MsSql2005Dialect"/> + <dialect-scope name="NHibernate.Dialect.MsSql2008Dialect"/> + </database-object> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-19 12:59:37 UTC (rev 4349) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-20 15:50:11 UTC (rev 4350) @@ -416,6 +416,8 @@ <Compile Include="NHSpecificTest\NH1742\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1747\Classes.cs" /> <Compile Include="NHSpecificTest\NH1747\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1756\Domain.cs" /> + <Compile Include="NHSpecificTest\NH1756\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1760\DomainClass.cs" /> <Compile Include="NHSpecificTest\NH1760\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH1763\DomainClass.cs" /> @@ -1821,6 +1823,7 @@ <EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" /> <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1756\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyProperty\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1783\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyOneToOne\Person.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-05-19 13:00:06
|
Revision: 4349 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4349&view=rev Author: darioquintana Date: 2009-05-19 12:59:37 +0000 (Tue, 19 May 2009) Log Message: ----------- Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/LazyProperty/ trunk/nhibernate/src/NHibernate.Test/LazyProperty/Book.cs trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs trunk/nhibernate/src/NHibernate.Test/LazyProperty/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/LazyProperty/Book.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/LazyProperty/Book.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/LazyProperty/Book.cs 2009-05-19 12:59:37 UTC (rev 4349) @@ -0,0 +1,16 @@ +namespace NHibernate.Test.LazyProperty +{ + public class Book + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + + private string _aLotOfText; + + public virtual string ALotOfText + { + get { return _aLotOfText; } + set { _aLotOfText = value; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs 2009-05-19 12:59:37 UTC (rev 4349) @@ -0,0 +1,67 @@ +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.LazyProperty +{ + [TestFixture] + public class LazyPropertyFixture : TestCase + { + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override IList Mappings + { + get { return new[] {"LazyProperty.Mappings.hbm.xml"}; } + } + + public void LoadData() + { + Book b = new Book + { + Name = "some name", + ALotOfText = "a lot of text ..." + }; + + using(var s = OpenSession()) + using(var tx = s.BeginTransaction()) + { + s.Persist(b); + tx.Commit(); + } + + } + + public void CleanUp() + { + using (var s = OpenSession()) + using (var tx = s.BeginTransaction()) + { + Assert.That(s.CreateSQLQuery("delete from Book").ExecuteUpdate(), Is.EqualTo(1)); + tx.Commit(); + } + } + + [Test,Ignore("Not supported yet, waiting for a field-interceptor provider, probably Linfu.")] + public void PropertyLoadedNotInitialized() + { + LoadData(); + + using(ISession s = OpenSession()) + { + var book = s.Load<Book>(1); + + Assert.False(NHibernateUtil.IsPropertyInitialized(book, "Id")); + Assert.False(NHibernateUtil.IsPropertyInitialized(book, "Name")); + Assert.False(NHibernateUtil.IsPropertyInitialized(book, "ALotOfText")); + var name = book.Name; + Assert.True(NHibernateUtil.IsPropertyInitialized(book, "Id")); + Assert.True(NHibernateUtil.IsPropertyInitialized(book, "Name")); + Assert.False(NHibernateUtil.IsPropertyInitialized(book, "ALotOfText")); + } + + CleanUp(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/LazyProperty/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/LazyProperty/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/LazyProperty/Mappings.hbm.xml 2009-05-19 12:59:37 UTC (rev 4349) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.LazyProperty"> + + <class name="Book"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Name" /> + <property name="ALotOfText" lazy="true" /> + </class> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-19 12:04:26 UTC (rev 4348) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-19 12:59:37 UTC (rev 4349) @@ -332,6 +332,8 @@ <Compile Include="LazyOneToOne\Employment.cs" /> <Compile Include="LazyOneToOne\LazyOneToOneTest.cs" /> <Compile Include="LazyOneToOne\Person.cs" /> + <Compile Include="LazyProperty\Book.cs" /> + <Compile Include="LazyProperty\LazyPropertyFixture.cs" /> <Compile Include="MappingTest\NonReflectiveBinderFixture.cs" /> <Compile Include="MappingTest\Wicked.cs" /> <Compile Include="NHSpecificTest\ElementsEnums\AbstractIntEnumsBagFixture.cs" /> @@ -1819,6 +1821,7 @@ <EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" /> <EmbeddedResource Include="Ado\VerySimple.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="LazyProperty\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1783\Mappings.hbm.xml" /> <EmbeddedResource Include="LazyOneToOne\Person.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1747\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2009-05-19 12:04:32
|
Revision: 4348 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4348&view=rev Author: steverstrong Date: 2009-05-19 12:04:26 +0000 (Tue, 19 May 2009) Log Message: ----------- Removed unused file from AST Modified Paths: -------------- trunk/nhibernate/src/NHibernate/NHibernate.csproj Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlTreeAdapter.cs Deleted: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlTreeAdapter.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlTreeAdapter.cs 2009-05-19 11:57:25 UTC (rev 4347) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlTreeAdapter.cs 2009-05-19 12:04:26 UTC (rev 4348) @@ -1,206 +0,0 @@ -using System; -using Antlr.Runtime; -using Antlr.Runtime.Tree; - -namespace NHibernate.Hql.Ast.ANTLR.Tree -{ - [CLSCompliant(false)] - public class HqlTreeAdaptor : CommonTreeAdaptor - { - private readonly HqlSqlWalker _walker; - - public HqlTreeAdaptor(HqlSqlWalker walker) - { - _walker = walker; - } - - public override object Create(IToken payload) - { - if (payload == null) - { - return base.Create(payload); - } - - object ret; - - switch (payload.Type) - { - case HqlSqlWalker.SELECT: - case HqlSqlWalker.QUERY: - ret = new QueryNode(payload); - break; - case HqlSqlWalker.UPDATE: - //return UpdateStatement.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.DELETE: - //return DeleteStatement.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.INSERT: - //return InsertStatement.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.INTO: - //return IntoClause.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.FROM: - ret = new FromClause(payload); - break; - case HqlSqlWalker.FROM_FRAGMENT: - ret = new FromElement(payload); - break; - case HqlSqlWalker.IMPLIED_FROM: - ret = new ImpliedFromElement(payload); - break; - case HqlSqlWalker.DOT: - ret = new DotNode(payload); - break; - case HqlSqlWalker.INDEX_OP: - ret = new IndexNode(payload); - break; - // Alias references and identifiers use the same node class. - case HqlSqlWalker.ALIAS_REF: - case HqlSqlWalker.IDENT: - ret = new IdentNode(payload); - break; - case HqlSqlWalker.SQL_TOKEN: - ret = new SqlFragment(payload); - break; - case HqlSqlWalker.METHOD_CALL: - ret = new MethodNode(payload); - break; - case HqlSqlWalker.ELEMENTS: - case HqlSqlWalker.INDICES: - ret = new CollectionFunction(payload); - break; - case HqlSqlWalker.SELECT_CLAUSE: - ret = new SelectClause(payload); - break; - case HqlSqlWalker.SELECT_EXPR: - ret = new SelectExpressionImpl(payload); - break; - case HqlSqlWalker.AGGREGATE: - //return AggregateNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.COUNT: - //return CountNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.CONSTRUCTOR: - ret = new ConstructorNode(payload); - break; - case HqlSqlWalker.NUM_INT: - case HqlSqlWalker.NUM_FLOAT: - case HqlSqlWalker.NUM_LONG: - case HqlSqlWalker.NUM_DOUBLE: - case HqlSqlWalker.QUOTED_String: - //return LiteralNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.TRUE: - case HqlSqlWalker.FALSE: - //return BooleanLiteralNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.JAVA_CONSTANT: - //return JavaConstantNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.ORDER: - ret = new OrderByClause(payload); - break; - case HqlSqlWalker.PLUS: - case HqlSqlWalker.MINUS: - case HqlSqlWalker.STAR: - case HqlSqlWalker.DIV: - //return BinaryArithmeticOperatorNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.UNARY_MINUS: - case HqlSqlWalker.UNARY_PLUS: - //return UnaryArithmeticNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.CASE2: - //return Case2Node.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.CASE: - //return CaseNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.PARAM: - case HqlSqlWalker.NAMED_PARAM: - ret = new ParameterNode(payload); - break; - case HqlSqlWalker.EQ: - case HqlSqlWalker.NE: - case HqlSqlWalker.LT: - case HqlSqlWalker.GT: - case HqlSqlWalker.LE: - case HqlSqlWalker.GE: - case HqlSqlWalker.LIKE: - case HqlSqlWalker.NOT_LIKE: - return new BinaryLogicOperatorNode(payload); - case HqlSqlWalker.IN: - case HqlSqlWalker.NOT_IN: - //return InLogicOperatorNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.BETWEEN: - case HqlSqlWalker.NOT_BETWEEN: - //return BetweenOperatorNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.IS_NULL: - //return IsNullLogicOperatorNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.IS_NOT_NULL: - //return IsNotNullLogicOperatorNode.class; - ret = new SqlNode(payload); - break; - case HqlSqlWalker.EXISTS: - //return UnaryLogicOperatorNode.class; - ret = new SqlNode(payload); - break; - default: - ret = new SqlNode(payload); - break; - - } - - Initialise(ret); - return ret; - } - - public override object DupNode(object t) - { - CommonTree node = t as CommonTree; - - if (node != null) - { - CommonTree dupped = (CommonTree)Create(node.Token); - - dupped.Parent = node.Parent; - - return dupped; - } - - return base.DupNode(t); - } - - void Initialise(object node) - { - IInitializableNode initableNode = node as IInitializableNode; - - if (initableNode != null) - { - initableNode.Initialize(_walker); - } - } - } -} Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-19 11:57:25 UTC (rev 4347) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-19 12:04:26 UTC (rev 4348) @@ -551,7 +551,6 @@ <Compile Include="Hql\Ast\ANTLR\Tree\HqlSqlWalkerNode.cs" /> <Compile Include="Hql\Ast\ANTLR\Tree\HqlSqlWalkerTreeAdapter.cs" /> <Compile Include="Hql\Ast\ANTLR\Tree\HqlSqlWalkerTreeNodeStream.cs" /> - <Compile Include="Hql\Ast\ANTLR\Tree\HqlTreeAdapter.cs" /> <Compile Include="Hql\Ast\ANTLR\Tree\IASTFactory.cs" /> <Compile Include="Hql\Ast\ANTLR\Tree\IASTNode.cs" /> <Compile Include="Hql\Ast\ANTLR\Tree\IBinaryOperatorNode.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2009-05-19 11:57:31
|
Revision: 4347 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4347&view=rev Author: steverstrong Date: 2009-05-19 11:57:25 +0000 (Tue, 19 May 2009) Log Message: ----------- Some more AST cleanup Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CaseInsensitiveStringStream.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CollectionProperties.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/ErrorCounter.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlParser.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlToken.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SessionFactoryHelperExtensions.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/BetweenOperatorNode.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/DotNode.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerNode.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/InLogicOperatorNode.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IntoClause.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/CollectingNodeVisitor.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/LiteralProcessor.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CaseInsensitiveStringStream.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CaseInsensitiveStringStream.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CaseInsensitiveStringStream.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -8,12 +8,8 @@ /// Copied from http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782 ///</summary> [CLSCompliant(false)] - public class CaseInsensitiveStringStream : ANTLRStringStream + internal class CaseInsensitiveStringStream : ANTLRStringStream { - public CaseInsensitiveStringStream(char[] data, int numberOfActualCharsInArray) : base(data, numberOfActualCharsInArray) { } - - public CaseInsensitiveStringStream() { } - public CaseInsensitiveStringStream(string input) : base(input) { } // Only the lookahead is converted to lowercase. The original case is preserved in the stream. Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CollectionProperties.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CollectionProperties.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/CollectionProperties.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -8,7 +8,7 @@ /// Authoer: josh /// Ported by: Steve Strong /// </summary> - public static class CollectionProperties + internal static class CollectionProperties { public static Dictionary<string, string> HQL_COLLECTION_PROPERTIES; Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/ErrorCounter.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/ErrorCounter.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/ErrorCounter.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -10,7 +10,7 @@ /// An error handler that counts parsing errors and warnings. /// </summary> [CLSCompliant(false)] - public class ErrorCounter : IParseErrorHandler + internal class ErrorCounter : IParseErrorHandler { private static readonly ILog log = LogManager.GetLogger(typeof(ErrorCounter)); private static readonly ILog hqlLog = LogManager.GetLogger("NHibernate.Hql.Parser"); Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -40,7 +40,7 @@ } } - protected IList<IParameterSpecification> Parameters{get;private set;} + private IList<IParameterSpecification> Parameters { get; set; } public override SqlString[] SqlStatements { Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -1,4 +1,4 @@ -// $ANTLR 3.1.2 /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g 2009-05-14 21:14:48 +// $ANTLR 3.1.2 /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g 2009-05-15 10:57:48 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -1759,8 +1759,8 @@ { int _type = EQ; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:760:3: ( '=' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:760:5: '=' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:757:3: ( '=' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:757:5: '=' { Match('='); if (state.failed) return ; @@ -1782,8 +1782,8 @@ { int _type = LT; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:761:3: ( '<' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:761:5: '<' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:758:3: ( '<' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:758:5: '<' { Match('<'); if (state.failed) return ; @@ -1805,8 +1805,8 @@ { int _type = GT; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:762:3: ( '>' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:762:5: '>' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:759:3: ( '>' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:759:5: '>' { Match('>'); if (state.failed) return ; @@ -1828,8 +1828,8 @@ { int _type = SQL_NE; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:763:7: ( '<>' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:763:9: '<>' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:760:7: ( '<>' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:760:9: '<>' { Match("<>"); if (state.failed) return ; @@ -1852,7 +1852,7 @@ { int _type = NE; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:764:3: ( '!=' | '^=' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:761:3: ( '!=' | '^=' ) int alt1 = 2; int LA1_0 = input.LA(1); @@ -1875,7 +1875,7 @@ switch (alt1) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:764:5: '!=' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:761:5: '!=' { Match("!="); if (state.failed) return ; @@ -1883,7 +1883,7 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:764:12: '^=' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:761:12: '^=' { Match("^="); if (state.failed) return ; @@ -1908,8 +1908,8 @@ { int _type = LE; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:765:3: ( '<=' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:765:5: '<=' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:762:3: ( '<=' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:762:5: '<=' { Match("<="); if (state.failed) return ; @@ -1932,8 +1932,8 @@ { int _type = GE; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:766:3: ( '>=' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:766:5: '>=' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:763:3: ( '>=' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:763:5: '>=' { Match(">="); if (state.failed) return ; @@ -1956,8 +1956,8 @@ { int _type = BOR; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:768:5: ( '|' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:768:8: '|' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:765:5: ( '|' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:765:8: '|' { Match('|'); if (state.failed) return ; @@ -1979,8 +1979,8 @@ { int _type = BXOR; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:769:6: ( '^' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:769:8: '^' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:766:6: ( '^' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:766:8: '^' { Match('^'); if (state.failed) return ; @@ -2002,8 +2002,8 @@ { int _type = BAND; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:770:6: ( '&' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:770:8: '&' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:767:6: ( '&' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:767:8: '&' { Match('&'); if (state.failed) return ; @@ -2025,8 +2025,8 @@ { int _type = BNOT; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:771:6: ( '!' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:771:8: '!' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:768:6: ( '!' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:768:8: '!' { Match('!'); if (state.failed) return ; @@ -2048,8 +2048,8 @@ { int _type = COMMA; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:773:6: ( ',' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:773:8: ',' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:770:6: ( ',' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:770:8: ',' { Match(','); if (state.failed) return ; @@ -2071,8 +2071,8 @@ { int _type = OPEN; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:775:5: ( '(' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:775:7: '(' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:772:5: ( '(' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:772:7: '(' { Match('('); if (state.failed) return ; @@ -2094,8 +2094,8 @@ { int _type = CLOSE; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:776:6: ( ')' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:776:8: ')' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:773:6: ( ')' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:773:8: ')' { Match(')'); if (state.failed) return ; @@ -2117,8 +2117,8 @@ { int _type = OPEN_BRACKET; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:777:13: ( '[' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:777:15: '[' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:774:13: ( '[' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:774:15: '[' { Match('['); if (state.failed) return ; @@ -2140,8 +2140,8 @@ { int _type = CLOSE_BRACKET; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:778:14: ( ']' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:778:16: ']' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:775:14: ( ']' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:775:16: ']' { Match(']'); if (state.failed) return ; @@ -2163,8 +2163,8 @@ { int _type = CONCAT; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:780:7: ( '||' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:780:9: '||' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:777:7: ( '||' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:777:9: '||' { Match("||"); if (state.failed) return ; @@ -2187,8 +2187,8 @@ { int _type = PLUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:781:5: ( '+' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:781:7: '+' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:778:5: ( '+' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:778:7: '+' { Match('+'); if (state.failed) return ; @@ -2210,8 +2210,8 @@ { int _type = MINUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:782:6: ( '-' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:782:8: '-' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:779:6: ( '-' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:779:8: '-' { Match('-'); if (state.failed) return ; @@ -2233,8 +2233,8 @@ { int _type = STAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:783:5: ( '*' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:783:7: '*' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:780:5: ( '*' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:780:7: '*' { Match('*'); if (state.failed) return ; @@ -2256,8 +2256,8 @@ { int _type = DIV; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:784:4: ( '/' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:784:6: '/' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:781:4: ( '/' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:781:6: '/' { Match('/'); if (state.failed) return ; @@ -2279,8 +2279,8 @@ { int _type = COLON; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:785:6: ( ':' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:785:8: ':' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:782:6: ( ':' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:782:8: ':' { Match(':'); if (state.failed) return ; @@ -2302,8 +2302,8 @@ { int _type = PARAM; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:6: ( '?' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:8: '?' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:783:6: ( '?' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:783:8: '?' { Match('?'); if (state.failed) return ; @@ -2325,11 +2325,11 @@ { int _type = IDENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:789:2: ( ID_START_LETTER ( ID_LETTER )* ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:789:4: ID_START_LETTER ( ID_LETTER )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:2: ( ID_START_LETTER ( ID_LETTER )* ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:4: ID_START_LETTER ( ID_LETTER )* { mID_START_LETTER(); if (state.failed) return ; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:789:20: ( ID_LETTER )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:20: ( ID_LETTER )* do { int alt2 = 2; @@ -2344,7 +2344,7 @@ switch (alt2) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:789:22: ID_LETTER + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:786:22: ID_LETTER { mID_LETTER(); if (state.failed) return ; @@ -2376,7 +2376,7 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:794:5: ( '_' | '$' | 'a' .. 'z' | 'A' .. 'Z' | '\\u0080' .. '\\ufffe' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:791:5: ( '_' | '$' | 'a' .. 'z' | 'A' .. 'Z' | '\\u0080' .. '\\ufffe' ) // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g: { if ( input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u0080' && input.LA(1) <= '\uFFFE') ) @@ -2406,7 +2406,7 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:803:5: ( ID_START_LETTER | '0' .. '9' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:800:5: ( ID_START_LETTER | '0' .. '9' ) // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g: { if ( input.LA(1) == '$' || (input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u0080' && input.LA(1) <= '\uFFFE') ) @@ -2438,11 +2438,11 @@ { int _type = QUOTED_String; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:4: ( '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:6: '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:4: ( '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:6: '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' { Match('\''); if (state.failed) return ; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:11: ( ( ESCqs )=> ESCqs | ~ '\\'' )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:11: ( ( ESCqs )=> ESCqs | ~ '\\'' )* do { int alt3 = 3; @@ -2468,14 +2468,14 @@ switch (alt3) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:13: ( ESCqs )=> ESCqs + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:13: ( ESCqs )=> ESCqs { mESCqs(); if (state.failed) return ; } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:31: ~ '\\'' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:31: ~ '\\'' { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&') || (input.LA(1) >= '(' && input.LA(1) <= '\uFFFF') ) { @@ -2519,8 +2519,8 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:813:2: ( '\\'' '\\'' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:814:3: '\\'' '\\'' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:810:2: ( '\\'' '\\'' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:811:3: '\\'' '\\'' { Match('\''); if (state.failed) return ; Match('\''); if (state.failed) return ; @@ -2541,10 +2541,10 @@ { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:817:5: ( ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:817:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:814:5: ( ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:814:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:817:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:814:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) int alt4 = 5; switch ( input.LA(1) ) { @@ -2587,21 +2587,21 @@ switch (alt4) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:817:13: ' ' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:814:13: ' ' { Match(' '); if (state.failed) return ; } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:818:7: '\\t' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:815:7: '\\t' { Match('\t'); if (state.failed) return ; } break; case 3 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:819:7: '\\r' '\\n' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:816:7: '\\r' '\\n' { Match('\r'); if (state.failed) return ; Match('\n'); if (state.failed) return ; @@ -2609,14 +2609,14 @@ } break; case 4 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:820:7: '\\n' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:817:7: '\\n' { Match('\n'); if (state.failed) return ; } break; case 5 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:821:7: '\\r' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:818:7: '\\r' { Match('\r'); if (state.failed) return ; @@ -2654,7 +2654,7 @@ IToken f4 = null; bool isDecimal=false; IToken t=null; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:830:2: ( '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? | ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:827:2: ( '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? | ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? ) int alt20 = 2; int LA20_0 = input.LA(1); @@ -2677,14 +2677,14 @@ switch (alt20) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:830:6: '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:827:6: '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? { Match('.'); if (state.failed) return ; if ( (state.backtracking==0) ) { _type = DOT; } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:4: ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:4: ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? int alt8 = 2; int LA8_0 = input.LA(1); @@ -2695,9 +2695,9 @@ switch (alt8) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:6: ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:6: ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:6: ( '0' .. '9' )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:6: ( '0' .. '9' )+ int cnt5 = 0; do { @@ -2713,7 +2713,7 @@ switch (alt5) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:7: '0' .. '9' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:7: '0' .. '9' { MatchRange('0','9'); if (state.failed) return ; @@ -2733,7 +2733,7 @@ loop5: ; // Stops C# compiler whinging that label 'loop5' has no statements - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:18: ( EXPONENT )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:18: ( EXPONENT )? int alt6 = 2; int LA6_0 = input.LA(1); @@ -2744,7 +2744,7 @@ switch (alt6) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:19: EXPONENT + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:19: EXPONENT { mEXPONENT(); if (state.failed) return ; @@ -2753,7 +2753,7 @@ } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:30: (f1= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:30: (f1= FLOAT_SUFFIX )? int alt7 = 2; int LA7_0 = input.LA(1); @@ -2764,7 +2764,7 @@ switch (alt7) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:831:31: f1= FLOAT_SUFFIX + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:828:31: f1= FLOAT_SUFFIX { int f1Start1026 = CharIndex; mFLOAT_SUFFIX(); if (state.failed) return ; @@ -2802,9 +2802,9 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:843:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:840:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:843:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:840:4: ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) int alt13 = 2; int LA13_0 = input.LA(1); @@ -2827,14 +2827,14 @@ switch (alt13) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:843:6: '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:840:6: '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? { Match('0'); if (state.failed) return ; if ( (state.backtracking==0) ) { isDecimal = true; } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:844:4: ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:841:4: ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? int alt11 = 3; int LA11_0 = input.LA(1); @@ -2849,16 +2849,16 @@ switch (alt11) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:844:6: ( 'x' ) ( HEX_DIGIT )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:841:6: ( 'x' ) ( HEX_DIGIT )+ { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:844:6: ( 'x' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:844:7: 'x' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:841:6: ( 'x' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:841:7: 'x' { Match('x'); if (state.failed) return ; } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:845:5: ( HEX_DIGIT )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:842:5: ( HEX_DIGIT )+ int cnt9 = 0; do { @@ -2924,7 +2924,7 @@ switch (alt9) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:852:7: HEX_DIGIT + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:849:7: HEX_DIGIT { mHEX_DIGIT(); if (state.failed) return ; @@ -2948,9 +2948,9 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:854:6: ( '0' .. '7' )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:851:6: ( '0' .. '7' )+ { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:854:6: ( '0' .. '7' )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:851:6: ( '0' .. '7' )+ int cnt10 = 0; do { @@ -2966,7 +2966,7 @@ switch (alt10) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:854:7: '0' .. '7' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:851:7: '0' .. '7' { MatchRange('0','7'); if (state.failed) return ; @@ -2996,16 +2996,16 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:856:5: ( '1' .. '9' ) ( '0' .. '9' )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:853:5: ( '1' .. '9' ) ( '0' .. '9' )* { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:856:5: ( '1' .. '9' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:856:6: '1' .. '9' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:853:5: ( '1' .. '9' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:853:6: '1' .. '9' { MatchRange('1','9'); if (state.failed) return ; } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:856:16: ( '0' .. '9' )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:853:16: ( '0' .. '9' )* do { int alt12 = 2; @@ -3020,7 +3020,7 @@ switch (alt12) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:856:17: '0' .. '9' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:853:17: '0' .. '9' { MatchRange('0','9'); if (state.failed) return ; @@ -3045,7 +3045,7 @@ } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:858:3: ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:855:3: ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? int alt19 = 3; int LA19_0 = input.LA(1); @@ -3060,10 +3060,10 @@ switch (alt19) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:858:5: ( 'l' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:855:5: ( 'l' ) { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:858:5: ( 'l' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:858:6: 'l' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:855:5: ( 'l' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:855:6: 'l' { Match('l'); if (state.failed) return ; @@ -3077,14 +3077,14 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:861:5: {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:858:5: {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) { if ( !((isDecimal)) ) { if ( state.backtracking > 0 ) {state.failed = true; return ;} throw new FailedPredicateException(input, "NUM_INT", "isDecimal"); } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:4: ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:4: ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) int alt18 = 3; switch ( input.LA(1) ) { @@ -3115,10 +3115,10 @@ switch (alt18) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:8: '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:8: '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? { Match('.'); if (state.failed) return ; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:12: ( '0' .. '9' )* + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:12: ( '0' .. '9' )* do { int alt14 = 2; @@ -3133,7 +3133,7 @@ switch (alt14) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:13: '0' .. '9' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:13: '0' .. '9' { MatchRange('0','9'); if (state.failed) return ; @@ -3148,7 +3148,7 @@ loop14: ; // Stops C# compiler whining that label 'loop14' has no statements - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:24: ( EXPONENT )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:24: ( EXPONENT )? int alt15 = 2; int LA15_0 = input.LA(1); @@ -3159,7 +3159,7 @@ switch (alt15) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:25: EXPONENT + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:25: EXPONENT { mEXPONENT(); if (state.failed) return ; @@ -3168,7 +3168,7 @@ } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:36: (f2= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:36: (f2= FLOAT_SUFFIX )? int alt16 = 2; int LA16_0 = input.LA(1); @@ -3179,7 +3179,7 @@ switch (alt16) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:862:37: f2= FLOAT_SUFFIX + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:859:37: f2= FLOAT_SUFFIX { int f2Start1228 = CharIndex; mFLOAT_SUFFIX(); if (state.failed) return ; @@ -3198,10 +3198,10 @@ } break; case 2 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:863:8: EXPONENT (f3= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:860:8: EXPONENT (f3= FLOAT_SUFFIX )? { mEXPONENT(); if (state.failed) return ; - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:863:17: (f3= FLOAT_SUFFIX )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:860:17: (f3= FLOAT_SUFFIX )? int alt17 = 2; int LA17_0 = input.LA(1); @@ -3212,7 +3212,7 @@ switch (alt17) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:863:18: f3= FLOAT_SUFFIX + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:860:18: f3= FLOAT_SUFFIX { int f3Start1246 = CharIndex; mFLOAT_SUFFIX(); if (state.failed) return ; @@ -3231,7 +3231,7 @@ } break; case 3 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:864:8: f4= FLOAT_SUFFIX + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:861:8: f4= FLOAT_SUFFIX { int f4Start1261 = CharIndex; mFLOAT_SUFFIX(); if (state.failed) return ; @@ -3284,8 +3284,8 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:882:2: ( ( '0' .. '9' | 'a' .. 'f' ) ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:882:4: ( '0' .. '9' | 'a' .. 'f' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:879:2: ( ( '0' .. '9' | 'a' .. 'f' ) ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:879:4: ( '0' .. '9' | 'a' .. 'f' ) { if ( (input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { @@ -3314,17 +3314,17 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:2: ( ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:4: ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:2: ( ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:4: ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:4: ( 'e' ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:5: 'e' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:4: ( 'e' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:5: 'e' { Match('e'); if (state.failed) return ; } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:10: ( '+' | '-' )? + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:10: ( '+' | '-' )? int alt21 = 2; int LA21_0 = input.LA(1); @@ -3355,7 +3355,7 @@ } - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:21: ( '0' .. '9' )+ + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:21: ( '0' .. '9' )+ int cnt22 = 0; do { @@ -3371,7 +3371,7 @@ switch (alt22) { case 1 : - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:888:22: '0' .. '9' + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:885:22: '0' .. '9' { MatchRange('0','9'); if (state.failed) return ; @@ -3406,7 +3406,7 @@ { try { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:893:2: ( 'f' | 'd' ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:890:2: ( 'f' | 'd' ) // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g: { if ( input.LA(1) == 'd' || input.LA(1) == 'f' ) @@ -4096,8 +4096,8 @@ // $ANTLR start "synpred1_Hql" public void synpred1_Hql_fragment() { - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:13: ( ESCqs ) - // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:808:14: ESCqs + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:13: ( ESCqs ) + // /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:805:14: ESCqs { mESCqs(); if (state.failed) return ; Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs 2009-05-19 00:06:44 UTC (rev 4346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs 2009-05-19 11:57:25 UTC (rev 4347) @@ -1,4 +1,4 @@ -// $ANTLR 3.1.2 /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g 2009-05-14 21:14:48 +// $ANTLR 3.1.2 /Users/Steve/Projects/NHibernate/Trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g 2009-05-15 10:57:47 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -1054,7 +1054,7 @@ // AST REWRITE - // elements: asAlias, path + // elements: path, asAlias // token labels: // rule labels: retval // token list labels: @@ -1884,7 +1884,7 @@ // AST REWRITE - // elements: selectClause, fromClause, selectClause + // elements: fromClause, selectClause, selectClause // token labels: // rule labels: retval // token list labels: @@ -2214,7 +2214,7 @@ // AST REWRITE - // elements: selectedPropertiesList, path + // elements: path, selectedPropertiesList // token labels: // rule labels: retval // token list labels: @@ -3809,7 +3809,7 @@ // AST REWRITE - // elements: path, alias + // elements: alias, path // token labels: // rule labels: retval // token list labels: @@ -4017,7 +4017,7 @@ // AST REWRITE - // elements: path, alias + // elements: alias, path // token labels: // rule labels: retval // token list labels: @@ -7779,7 +7779,7 @@ // AST REWRITE - // elements: whenClause, elseClause, CASE + // elements: elseClause, whenClause, CASE // token labels: // rule labels: retval // token list labels: @@ -7893,7 +7893,7 @@ // AST REWRITE - // elements: altWhenClause, elseClause, unaryExpression + // elements: unaryExpression, altWhenClause, elseClause // token labels: ... [truncated message content] |
From: <fab...@us...> - 2009-05-19 00:07:03
|
Revision: 4346 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4346&view=rev Author: fabiomaulo Date: 2009-05-19 00:06:44 +0000 (Tue, 19 May 2009) Log Message: ----------- IObjectsFactory working Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/AuxiliaryDatabaseObjectFactory.cs trunk/nhibernate/src/NHibernate/Connection/ConnectionProvider.cs trunk/nhibernate/src/NHibernate/Connection/ConnectionProviderFactory.cs trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs trunk/nhibernate/src/NHibernate/Exceptions/SQLExceptionConverterFactory.cs trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs trunk/nhibernate/src/NHibernate/Impl/OracleClientCommandSet.cs trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs trunk/nhibernate/src/NHibernate/Impl/SqlClientCommandSet.cs trunk/nhibernate/src/NHibernate/Mapping/Collection.cs trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaValidator.cs trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs trunk/nhibernate/src/NHibernate/Tuple/PocoInstantiator.cs trunk/nhibernate/src/NHibernate/Type/CompositeCustomType.cs trunk/nhibernate/src/NHibernate/Type/CustomCollectionType.cs trunk/nhibernate/src/NHibernate/Type/CustomType.cs trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs Modified: trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -19,7 +19,7 @@ { try { - return (IProxyFactoryFactory)Activator.CreateInstance(proxyFactoryFactory); + return (IProxyFactoryFactory) ObjectsFactory.CreateInstance(proxyFactoryFactory); } catch (Exception e) { Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -1717,7 +1717,7 @@ { try { - listeners[i] = Activator.CreateInstance(ReflectHelper.ClassForName(listenerClasses[i])); + listeners[i] = Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(listenerClasses[i])); } catch (Exception e) { Modified: trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -185,7 +185,8 @@ try { settings.QueryCacheFactory = - (IQueryCacheFactory) Activator.CreateInstance(ReflectHelper.ClassForName(queryCacheFactoryClassName)); + (IQueryCacheFactory) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(queryCacheFactoryClassName)); } catch (Exception cnfe) { @@ -275,7 +276,7 @@ log.Info("Batcher factory: " + tBatcher.AssemblyQualifiedName); try { - return (IBatcherFactory) Activator.CreateInstance(tBatcher); + return (IBatcherFactory) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(tBatcher); } catch (Exception cnfe) { @@ -294,7 +295,9 @@ log.Info("cache provider: " + cacheClassName); try { - return (ICacheProvider) Activator.CreateInstance(ReflectHelper.ClassForName(cacheClassName)); + return + (ICacheProvider) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(cacheClassName)); } catch (Exception e) { @@ -330,7 +333,9 @@ log.Info("Query translator: " + className); try { - return (IQueryTranslatorFactory) Activator.CreateInstance(ReflectHelper.ClassForName(className)); + return + (IQueryTranslatorFactory) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(className)); } catch (Exception cnfe) { @@ -346,7 +351,9 @@ try { - return (ITransactionFactory)Activator.CreateInstance(ReflectHelper.ClassForName(className)); + return + (ITransactionFactory) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(className)); } catch (Exception cnfe) { Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/AuxiliaryDatabaseObjectFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/AuxiliaryDatabaseObjectFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/AuxiliaryDatabaseObjectFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -41,7 +41,8 @@ TypeNameParser.Parse(customTypeName, mappings.DefaultNamespace, mappings.DefaultAssembly).ToString(); System.Type customType = ReflectHelper.ClassForName(className); - IAuxiliaryDatabaseObject customObject = (IAuxiliaryDatabaseObject)Activator.CreateInstance(customType); + IAuxiliaryDatabaseObject customObject = + (IAuxiliaryDatabaseObject) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(customType); foreach (string dialectName in databaseObjectSchema.FindDialectScopeNames()) { Modified: trunk/nhibernate/src/NHibernate/Connection/ConnectionProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Connection/ConnectionProvider.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Connection/ConnectionProvider.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -104,7 +104,8 @@ { try { - driver = (IDriver) Activator.CreateInstance(ReflectHelper.ClassForName(driverClass)); + driver = + (IDriver) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(driverClass)); driver.Configure(settings); } catch (Exception e) Modified: trunk/nhibernate/src/NHibernate/Connection/ConnectionProviderFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Connection/ConnectionProviderFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Connection/ConnectionProviderFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -28,7 +28,9 @@ try { log.Info("Initializing connection provider: " + providerClass); - connections = (IConnectionProvider) Activator.CreateInstance(ReflectHelper.ClassForName(providerClass)); + connections = + (IConnectionProvider) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(providerClass)); } catch (Exception e) { Modified: trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -184,7 +184,7 @@ { try { - return (Dialect) Activator.CreateInstance(ReflectHelper.ClassForName(dialectName)); + return (Dialect) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(dialectName)); } catch (Exception e) { Modified: trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Driver/ReflectionBasedDriver.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -1,4 +1,3 @@ -using System; using System.Data; using NHibernate.Util; @@ -6,8 +5,8 @@ { public abstract class ReflectionBasedDriver : DriverBase { - private System.Type connectionType; - private System.Type commandType; + private readonly System.Type connectionType; + private readonly System.Type commandType; /// <summary> /// Initializes a new instance of <see cref="ReflectionBasedDriver" /> with @@ -16,7 +15,7 @@ /// <param name="driverAssemblyName">Assembly to load the types from.</param> /// <param name="connectionTypeName">Connection type name.</param> /// <param name="commandTypeName">Command type name.</param> - public ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) + protected ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) { // Try to get the types from an already loaded assembly connectionType = ReflectHelper.TypeFromAssembly(connectionTypeName, driverAssemblyName, false); @@ -36,12 +35,12 @@ public override IDbConnection CreateConnection() { - return (IDbConnection) Activator.CreateInstance(connectionType); + return (IDbConnection) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(connectionType); } public override IDbCommand CreateCommand() { - return (IDbCommand) Activator.CreateInstance(commandType); + return (IDbCommand) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(commandType); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Exceptions/SQLExceptionConverterFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Exceptions/SQLExceptionConverterFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Exceptions/SQLExceptionConverterFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -106,7 +106,7 @@ } // Otherwise, try to use the no-arg constructor - return (ISQLExceptionConverter)Activator.CreateInstance(converterClass); + return (ISQLExceptionConverter) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(converterClass); } catch (Exception t) { Modified: trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -201,7 +201,7 @@ try { System.Type clazz = GetIdentifierGeneratorClass(strategy, dialect); - var idgen = (IIdentifierGenerator) Activator.CreateInstance(clazz); + var idgen = (IIdentifierGenerator) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(clazz); var conf = idgen as IConfigurable; if (conf != null) { Modified: trunk/nhibernate/src/NHibernate/Impl/OracleClientCommandSet.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/OracleClientCommandSet.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Impl/OracleClientCommandSet.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -1,4 +1,3 @@ - using System; using System.Data.OracleClient; using System.Diagnostics; @@ -6,22 +5,21 @@ namespace NHibernate.Impl { - internal class OracleClientCommandSet : DbCommandSet<OracleConnection, OracleCommand> - { - private static System.Type oracleCmdSetType; + internal class OracleClientCommandSet : DbCommandSet<OracleConnection, OracleCommand> + { + private static readonly System.Type oracleCmdSetType; - static OracleClientCommandSet() - { - Assembly sysDataOracleClient = Assembly.Load("System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); - oracleCmdSetType = sysDataOracleClient.GetType("System.Data.OracleClient.OracleCommandSet"); - Debug.Assert(oracleCmdSetType != null, "Could not find OracleCommandSet!"); - } + static OracleClientCommandSet() + { + Assembly sysDataOracleClient = + Assembly.Load("System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); + oracleCmdSetType = sysDataOracleClient.GetType("System.Data.OracleClient.OracleCommandSet"); + Debug.Assert(oracleCmdSetType != null, "Could not find OracleCommandSet!"); + } - protected override object CreateInternalCommandSet() - { - return Activator.CreateInstance(oracleCmdSetType, true); - } - - } -} - + protected override object CreateInternalCommandSet() + { + return Activator.CreateInstance(oracleCmdSetType, true); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -1143,7 +1143,8 @@ try { System.Type implClass = ReflectHelper.ClassForName(impl); - return (ICurrentSessionContext) Activator.CreateInstance(implClass, new object[] {this}); + return + (ICurrentSessionContext) Environment.BytecodeProvider.ObjectsFactory.CreateInstance(implClass, new object[] {this}); } catch (Exception e) { Modified: trunk/nhibernate/src/NHibernate/Impl/SqlClientCommandSet.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SqlClientCommandSet.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Impl/SqlClientCommandSet.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -1,34 +1,33 @@ - using System; using System.Data; using System.Data.SqlClient; -using System.Diagnostics; using System.Reflection; namespace NHibernate.Impl { - internal class SqlClientCommandSet : DbCommandSet<SqlConnection, System.Data.SqlClient.SqlCommand> - { - private static System.Type sqlCmdSetType; + internal class SqlClientCommandSet : DbCommandSet<SqlConnection, System.Data.SqlClient.SqlCommand> + { + private static readonly System.Type sqlCmdSetType; - static SqlClientCommandSet() - { - Assembly sysData = typeof(IDbConnection).Assembly; - sqlCmdSetType = sysData.GetType("System.Data.SqlClient.SqlCommandSet"); - } + static SqlClientCommandSet() + { + Assembly sysData = typeof (IDbConnection).Assembly; + sqlCmdSetType = sysData.GetType("System.Data.SqlClient.SqlCommandSet"); + } - protected override object CreateInternalCommandSet() - { - if (sqlCmdSetType == null) - { - throw new HibernateException("Could not find SqlCommandSet"+Environment.NewLine + - "If you are running on Mono, batching support isn't implemented on Mono" + Environment.NewLine + - "If you are running on Microsoft .NET, this probably means that internal details"+Environment.NewLine+ - "of the BCL that we rely on to allow this have changed, this is a bug. Please inform the developers"); - } - return Activator.CreateInstance(sqlCmdSetType, true); - } - - } -} - + protected override object CreateInternalCommandSet() + { + if (sqlCmdSetType == null) + { + throw new HibernateException("Could not find SqlCommandSet" + Environment.NewLine + + "If you are running on Mono, batching support isn't implemented on Mono" + + Environment.NewLine + + "If you are running on Microsoft .NET, this probably means that internal details" + + Environment.NewLine + + + "of the BCL that we rely on to allow this have changed, this is a bug. Please inform the developers"); + } + return Activator.CreateInstance(sqlCmdSetType, true); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Mapping/Collection.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/Collection.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Mapping/Collection.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -156,7 +156,7 @@ { try { - comparer = Activator.CreateInstance(ReflectHelper.ClassForName(ComparerClassName)); + comparer = Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(ComparerClassName)); } catch { Modified: trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Properties/PropertyAccessorFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -264,7 +264,7 @@ try { - IPropertyAccessor result = (IPropertyAccessor)Activator.CreateInstance(accessorClass); + var result = (IPropertyAccessor) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(accessorClass); accessors[accessorName] = result; return result; } Modified: trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -88,7 +88,8 @@ else if (args[i].StartsWith("--naming=")) { cfg.SetNamingStrategy( - (INamingStrategy) Activator.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9)))); + (INamingStrategy) + Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9)))); } } else Modified: trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaValidator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaValidator.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaValidator.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -59,7 +59,8 @@ else if (args[i].StartsWith("--naming=")) { cfg.SetNamingStrategy( - (INamingStrategy) Activator.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9)))); + (INamingStrategy) + Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9)))); } } else Modified: trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -79,7 +79,9 @@ } // if resultClass is not a class but a value type, we need to use Activator.CreateInstance - result = resultClass.IsClass ? constructor.Invoke(null) : Activator.CreateInstance(resultClass, true); + result = resultClass.IsClass + ? constructor.Invoke(null) + : Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(resultClass, true); for (int i = 0; i < aliases.Length; i++) { Modified: trunk/nhibernate/src/NHibernate/Tuple/PocoInstantiator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/PocoInstantiator.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Tuple/PocoInstantiator.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -87,7 +87,7 @@ } else if (mappedClass.IsValueType) { - return Activator.CreateInstance(mappedClass, true); + return Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(mappedClass, true); } else if (constructor == null) { Modified: trunk/nhibernate/src/NHibernate/Type/CompositeCustomType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/CompositeCustomType.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Type/CompositeCustomType.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -25,7 +25,7 @@ try { - userType = (ICompositeUserType) Activator.CreateInstance(userTypeClass); + userType = (ICompositeUserType) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(userTypeClass); } catch (MethodAccessException mae) { Modified: trunk/nhibernate/src/NHibernate/Type/CustomCollectionType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/CustomCollectionType.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Type/CustomCollectionType.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -28,7 +28,7 @@ try { - userType = (IUserCollectionType) Activator.CreateInstance(userTypeClass); + userType = (IUserCollectionType) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(userTypeClass); } catch (InstantiationException ie) { Modified: trunk/nhibernate/src/NHibernate/Type/CustomType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/CustomType.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Type/CustomType.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -34,7 +34,7 @@ try { - userType = (IUserType) Activator.CreateInstance(userTypeClass); + userType = (IUserType) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(userTypeClass); } catch (ArgumentNullException ane) { Modified: trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs 2009-05-18 23:00:41 UTC (rev 4345) +++ trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs 2009-05-19 00:06:44 UTC (rev 4346) @@ -399,7 +399,7 @@ { try { - type = (IType)Activator.CreateInstance(typeClass); + type = (IType) Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(typeClass); } catch (Exception e) { @@ -811,9 +811,10 @@ string propertyRef, params System.Type[] typeArguments) { - return (CollectionType)Activator.CreateInstance( - genericCollectionType.MakeGenericType(typeArguments), - role, propertyRef); + return + (CollectionType) + Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance( + genericCollectionType.MakeGenericType(typeArguments), role, propertyRef); } private static CollectionType CreateSortedCollectionType( @@ -823,9 +824,10 @@ object comparer, params System.Type[] typeArguments) { - return (CollectionType)Activator.CreateInstance( - genericCollectionType.MakeGenericType(typeArguments), - role, propertyRef, comparer); + return + (CollectionType) + Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance( + genericCollectionType.MakeGenericType(typeArguments), role, propertyRef, comparer); } private static CollectionType CreateOrderedCollectionType(System.Type genericCollectionType, @@ -834,7 +836,9 @@ params System.Type[] typeArguments) { return - (CollectionType)Activator.CreateInstance(genericCollectionType.MakeGenericType(typeArguments), role, propertyRef); + (CollectionType) + Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance( + genericCollectionType.MakeGenericType(typeArguments), role, propertyRef); } /// <summary> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 23:00:57
|
Revision: 4345 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4345&view=rev Author: fabiomaulo Date: 2009-05-18 23:00:41 +0000 (Mon, 18 May 2009) Log Message: ----------- - Base abstract class for internal bytecode providers (with ActivatorObjectsFactory) - Refactoring all internals bytecode providers. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Bytecode/CodeDom/BytecodeProviderImpl.cs trunk/nhibernate/src/NHibernate/Bytecode/IBytecodeProvider.cs trunk/nhibernate/src/NHibernate/Bytecode/Lightweight/BytecodeProviderImpl.cs trunk/nhibernate/src/NHibernate/Bytecode/NullBytecodeProvider.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs Added: trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Bytecode/AbstractBytecodeProvider.cs 2009-05-18 23:00:41 UTC (rev 4345) @@ -0,0 +1,67 @@ +using System; +using NHibernate.Properties; +using NHibernate.Util; + +namespace NHibernate.Bytecode +{ + public abstract class AbstractBytecodeProvider : IBytecodeProvider, IInjectableProxyFactoryFactory + { + private readonly IObjectsFactory objectsFactory = new ActivatorObjectsFactory(); + protected System.Type proxyFactoryFactory; + + #region IBytecodeProvider Members + + public virtual IProxyFactoryFactory ProxyFactoryFactory + { + get + { + if (proxyFactoryFactory != null) + { + try + { + return (IProxyFactoryFactory)Activator.CreateInstance(proxyFactoryFactory); + } + catch (Exception e) + { + throw new HibernateByteCodeException("Failed to create an instance of '" + proxyFactoryFactory.FullName + "'!", e); + } + } + + throw new ProxyFactoryFactoryNotConfiguredException(); + } + } + + public abstract IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters); + + public virtual IObjectsFactory ObjectsFactory + { + get { return objectsFactory; } + } + + #endregion + + #region IInjectableProxyFactoryFactory Members + + public virtual void SetProxyFactoryFactory(string typeName) + { + System.Type pffc; + try + { + pffc = ReflectHelper.ClassForName(typeName); + } + catch (Exception he) + { + throw new UnableToLoadProxyFactoryFactoryException(typeName, he); + } + + if (typeof(IProxyFactoryFactory).IsAssignableFrom(pffc) == false) + { + var he = new HibernateByteCodeException(pffc.FullName + " does not implement " + typeof(IProxyFactoryFactory).FullName); + throw he; + } + proxyFactoryFactory = pffc; + } + + #endregion + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Bytecode/CodeDom/BytecodeProviderImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/CodeDom/BytecodeProviderImpl.cs 2009-05-18 22:28:37 UTC (rev 4344) +++ trunk/nhibernate/src/NHibernate/Bytecode/CodeDom/BytecodeProviderImpl.cs 2009-05-18 23:00:41 UTC (rev 4345) @@ -5,42 +5,20 @@ using log4net; using Microsoft.CSharp; using NHibernate.Properties; -using NHibernate.Util; namespace NHibernate.Bytecode.CodeDom { /// <summary> /// CodeDOM-based bytecode provider. /// </summary> - public class BytecodeProviderImpl : IBytecodeProvider, IInjectableProxyFactoryFactory + public class BytecodeProviderImpl : AbstractBytecodeProvider { private static readonly ILog log = LogManager.GetLogger(typeof (BytecodeProviderImpl)); - private System.Type proxyFactoryFactory; #region IBytecodeProvider Members - public IProxyFactoryFactory ProxyFactoryFactory + public override IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters) { - get - { - if (proxyFactoryFactory != null) - { - try - { - return (IProxyFactoryFactory) Activator.CreateInstance(proxyFactoryFactory); - } - catch (Exception e) - { - throw new HibernateByteCodeException("Failed to create an instance of '" + proxyFactoryFactory.FullName + "'!", e); - } - } - - throw new ProxyFactoryFactoryNotConfiguredException(); - } - } - - public IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters) - { if (clazz.IsValueType) { // Cannot create optimizer for value types - the setter method will not work. @@ -52,30 +30,6 @@ #endregion - #region Implementation of IInjectableProxyFactoryFactory - - public void SetProxyFactoryFactory(string typeName) - { - System.Type pffc; - try - { - pffc = ReflectHelper.ClassForName(typeName); - } - catch (Exception he) - { - throw new UnableToLoadProxyFactoryFactoryException(typeName, he); - } - - if (typeof (IProxyFactoryFactory).IsAssignableFrom(pffc) == false) - { - var he = new HibernateByteCodeException(pffc.FullName + " does not implement " + typeof(IProxyFactoryFactory).FullName); - throw he; - } - proxyFactoryFactory = pffc; - } - - #endregion - #region Nested type: Generator public class Generator Modified: trunk/nhibernate/src/NHibernate/Bytecode/IBytecodeProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/IBytecodeProvider.cs 2009-05-18 22:28:37 UTC (rev 4344) +++ trunk/nhibernate/src/NHibernate/Bytecode/IBytecodeProvider.cs 2009-05-18 23:00:41 UTC (rev 4345) @@ -20,6 +20,8 @@ /// <returns>The reflection optimization delegate.</returns> IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters); + IObjectsFactory ObjectsFactory { get; } + // <summary> Generate a ClassTransformer capable of performing bytecode manipulation. </summary> // <param name="classFilter"> // filter used to limit which classes are to be instrumented via this ClassTransformer. @@ -31,6 +33,5 @@ // <returns> The appropriate ClassTransformer. </returns> // Not ported //ClassTransformer getTransformer(ClassFilter classFilter, FieldFilter fieldFilter); - } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Bytecode/Lightweight/BytecodeProviderImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/Lightweight/BytecodeProviderImpl.cs 2009-05-18 22:28:37 UTC (rev 4344) +++ trunk/nhibernate/src/NHibernate/Bytecode/Lightweight/BytecodeProviderImpl.cs 2009-05-18 23:00:41 UTC (rev 4345) @@ -1,6 +1,4 @@ -using System; using NHibernate.Properties; -using NHibernate.Util; namespace NHibernate.Bytecode.Lightweight { @@ -12,31 +10,11 @@ /// Used in <see cref="NHibernate.Persister.Entity.AbstractEntityPersister"/> and /// <see cref="NHibernate.Type.ComponentType"/> /// </remarks> - public class BytecodeProviderImpl : IBytecodeProvider, IInjectableProxyFactoryFactory + public class BytecodeProviderImpl : AbstractBytecodeProvider { - private System.Type proxyFactoryFactory; #region IBytecodeProvider Members - public virtual IProxyFactoryFactory ProxyFactoryFactory - { - get - { - if (proxyFactoryFactory != null) - { - try - { - return (IProxyFactoryFactory) Activator.CreateInstance(proxyFactoryFactory); - } - catch (Exception e) - { - throw new HibernateByteCodeException("Failed to create an instance of '" + proxyFactoryFactory.FullName + "'!", e); - } - } - throw new ProxyFactoryFactoryNotConfiguredException(); - } - } - /// <summary> /// Generate the IReflectionOptimizer object /// </summary> @@ -44,35 +22,11 @@ /// <param name="setters">Array of setters</param> /// <param name="getters">Array of getters</param> /// <returns><see langword="null" /> if the generation fails</returns> - public IReflectionOptimizer GetReflectionOptimizer(System.Type mappedClass, IGetter[] getters, ISetter[] setters) + public override IReflectionOptimizer GetReflectionOptimizer(System.Type mappedClass, IGetter[] getters, ISetter[] setters) { return new ReflectionOptimizer(mappedClass, getters, setters); } #endregion - - #region IInjectableProxyFactoryFactory Members - - public void SetProxyFactoryFactory(string typeName) - { - System.Type pffc; - try - { - pffc = ReflectHelper.ClassForName(typeName); - } - catch (Exception he) - { - throw new UnableToLoadProxyFactoryFactoryException(typeName, he); - } - - if (typeof (IProxyFactoryFactory).IsAssignableFrom(pffc) == false) - { - var he = new HibernateByteCodeException(pffc.FullName + " does not implement " + typeof(IProxyFactoryFactory).FullName); - throw he; - } - proxyFactoryFactory = pffc; - } - - #endregion } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Bytecode/NullBytecodeProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/NullBytecodeProvider.cs 2009-05-18 22:28:37 UTC (rev 4344) +++ trunk/nhibernate/src/NHibernate/Bytecode/NullBytecodeProvider.cs 2009-05-18 23:00:41 UTC (rev 4345) @@ -1,6 +1,4 @@ -using System; using NHibernate.Properties; -using NHibernate.Util; namespace NHibernate.Bytecode { @@ -8,60 +6,15 @@ /// A <see cref="IBytecodeProvider" /> implementation that returns /// <see langword="null" />, disabling reflection optimization. /// </summary> - public class NullBytecodeProvider : IBytecodeProvider, IInjectableProxyFactoryFactory + public class NullBytecodeProvider : AbstractBytecodeProvider { - private System.Type proxyFactoryFactory; - #region IBytecodeProvider Members - public IProxyFactoryFactory ProxyFactoryFactory + public override IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters) { - get - { - if (proxyFactoryFactory != null) - { - try - { - return (IProxyFactoryFactory) Activator.CreateInstance(proxyFactoryFactory); - } - catch (Exception e) - { - throw new HibernateByteCodeException("Failed to create an instance of '" + proxyFactoryFactory.FullName + "'!", e); - } - } - throw new ProxyFactoryFactoryNotConfiguredException(); - } - } - - public IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters) - { return null; } #endregion - - #region Implementation of IInjectableProxyFactoryFactory - - public void SetProxyFactoryFactory(string typeName) - { - System.Type pffc; - try - { - pffc = ReflectHelper.ClassForName(typeName); - } - catch (Exception he) - { - throw new UnableToLoadProxyFactoryFactoryException(typeName, he); - } - - if (typeof (IProxyFactoryFactory).IsAssignableFrom(pffc) == false) - { - var he = new HibernateByteCodeException(pffc.FullName + " does not implement " + typeof(IProxyFactoryFactory).FullName); - throw he; - } - proxyFactoryFactory = pffc; - } - - #endregion } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-18 22:28:37 UTC (rev 4344) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-18 23:00:41 UTC (rev 4345) @@ -449,6 +449,7 @@ <Compile Include="AdoNet\Util\FormatStyle.cs" /> <Compile Include="AdoNet\Util\IFormatter.cs" /> <Compile Include="AdoNet\Util\SqlStatementLogger.cs" /> + <Compile Include="Bytecode\AbstractBytecodeProvider.cs" /> <Compile Include="Bytecode\ActivatorObjectsFactory.cs" /> <Compile Include="Bytecode\HibernateByteCodeException.cs" /> <Compile Include="Bytecode\IObjectsFactory.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 22:28:42
|
Revision: 4344 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4344&view=rev Author: fabiomaulo Date: 2009-05-18 22:28:37 +0000 (Mon, 18 May 2009) Log Message: ----------- ActivatorObjectsFactory implemented Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Bytecode/ActivatorObjectsFactory.cs trunk/nhibernate/src/NHibernate.Test/Bytecode/ActivatorObjectFactoryFixture.cs Modified: trunk/nhibernate/src/NHibernate/Bytecode/ActivatorObjectsFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Bytecode/ActivatorObjectsFactory.cs 2009-05-18 22:20:04 UTC (rev 4343) +++ trunk/nhibernate/src/NHibernate/Bytecode/ActivatorObjectsFactory.cs 2009-05-18 22:28:37 UTC (rev 4344) @@ -6,17 +6,17 @@ { public object CreateInstance(System.Type type) { - throw new NotImplementedException(); + return Activator.CreateInstance(type); } public object CreateInstance(System.Type type, bool nonPublic) { - throw new NotImplementedException(); + return Activator.CreateInstance(type, nonPublic); } public object CreateInstance(System.Type type, params object[] ctorArgs) { - throw new NotImplementedException(); + return Activator.CreateInstance(type, ctorArgs); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/Bytecode/ActivatorObjectFactoryFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Bytecode/ActivatorObjectFactoryFixture.cs 2009-05-18 22:20:04 UTC (rev 4343) +++ trunk/nhibernate/src/NHibernate.Test/Bytecode/ActivatorObjectFactoryFixture.cs 2009-05-18 22:28:37 UTC (rev 4344) @@ -4,7 +4,7 @@ namespace NHibernate.Test.Bytecode { - [TestFixture, Ignore("Not implemented yet.")] + [TestFixture] public class ActivatorObjectFactoryFixture { public class WithOutPublicParameterLessCtor @@ -27,21 +27,28 @@ public string Something { get; set; } } + protected virtual IObjectsFactory GetObjectsFactory() + { + return new ActivatorObjectsFactory(); + } + [Test] public void CreateInstanceDefCtor() { - var of = new ActivatorObjectsFactory(); + IObjectsFactory of = GetObjectsFactory(); Assert.Throws<ArgumentNullException>(() => of.CreateInstance(null)); - Assert.Throws<ArgumentNullException>(() => of.CreateInstance(typeof(WithOutPublicParameterLessCtor))); + Assert.Throws<MissingMethodException>(() => of.CreateInstance(typeof(WithOutPublicParameterLessCtor))); var instance = of.CreateInstance(typeof(PublicParameterLessCtor)); Assert.That(instance, Is.Not.Null); Assert.That(instance, Is.InstanceOf<PublicParameterLessCtor>()); } + + [Test] public void CreateInstanceWithNoPublicCtor() { - var of = new ActivatorObjectsFactory(); + IObjectsFactory of = GetObjectsFactory(); Assert.Throws<ArgumentNullException>(() => of.CreateInstance(null, false)); var instance = of.CreateInstance(typeof(WithOutPublicParameterLessCtor), true); Assert.That(instance, Is.Not.Null); @@ -51,7 +58,7 @@ [Test] public void CreateInstanceOfValueType() { - var of = new ActivatorObjectsFactory(); + IObjectsFactory of = GetObjectsFactory(); var instance = of.CreateInstance(typeof(ValueType), true); Assert.That(instance, Is.Not.Null); Assert.That(instance, Is.InstanceOf<ValueType>()); @@ -60,7 +67,7 @@ [Test] public void CreateInstanceWithArguments() { - var of = new ActivatorObjectsFactory(); + IObjectsFactory of = GetObjectsFactory(); Assert.Throws<ArgumentNullException>(() => of.CreateInstance(null, new[] {1})); var value = "a value"; var instance = of.CreateInstance(typeof(WithOutPublicParameterLessCtor), new[]{value}); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 22:20:12
|
Revision: 4343 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4343&view=rev Author: fabiomaulo Date: 2009-05-18 22:20:04 +0000 (Mon, 18 May 2009) Log Message: ----------- Minor (Make CLSCompliant) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs 2009-05-18 21:56:51 UTC (rev 4342) +++ trunk/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs 2009-05-18 22:20:04 UTC (rev 4343) @@ -26,7 +26,7 @@ [NonSerialized] private ISessionFactoryImplementor factory; - protected readonly Guid sessionId = Guid.NewGuid(); + private readonly Guid sessionId = Guid.NewGuid(); private bool closed; private System.Transactions.Transaction ambientTransation; private bool isAlreadyDisposed; @@ -58,7 +58,7 @@ public void Initialize() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); } @@ -108,7 +108,7 @@ public virtual IQuery GetNamedSQLQuery(string name) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); NamedSQLQueryDefinition nsqlqd = factory.GetNamedSQLQuery(name); @@ -147,7 +147,7 @@ public virtual IQuery GetNamedQuery(string queryName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); NamedQueryDefinition nqd = factory.GetNamedQuery(queryName); @@ -183,7 +183,7 @@ protected internal virtual void CheckAndUpdateSessionStatus() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ErrorIfClosed(); EnlistInAmbientTransactionIfNeeded(); @@ -226,7 +226,7 @@ private void InitQuery(IQuery query, NamedQueryDefinition nqd) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { query.SetCacheable(nqd.IsCacheable); query.SetCacheRegion(nqd.CacheRegion); @@ -252,7 +252,7 @@ public virtual IQuery CreateQuery(string queryString) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); QueryImpl query = new QueryImpl(queryString, this, GetHQLQueryPlan(queryString, false).ParameterMetadata); @@ -263,7 +263,7 @@ public virtual ISQLQuery CreateSQLQuery(string sql) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); SqlQueryImpl query = new SqlQueryImpl(sql, this, factory.QueryPlanCache.GetSQLParameterMetadata(sql)); @@ -274,7 +274,7 @@ protected internal virtual HQLQueryPlan GetHQLQueryPlan(string query, bool shallow) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return factory.QueryPlanCache.GetHQLQueryPlan(query, shallow, EnabledFilters); } @@ -282,7 +282,7 @@ protected internal virtual NativeSQLQueryPlan GetNativeSQLQueryPlan(NativeSQLQuerySpecification spec) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return factory.QueryPlanCache.GetNativeSQLQueryPlan(spec); } @@ -290,7 +290,7 @@ protected ADOException Convert(Exception sqlException, string message) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return ADOExceptionHelper.Convert(factory.SQLExceptionConverter, sqlException, message); } @@ -298,7 +298,7 @@ protected void AfterOperation(bool success) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (!ConnectionManager.IsInActiveTransaction) { @@ -311,7 +311,7 @@ void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { try { @@ -342,7 +342,7 @@ void IEnlistmentNotification.Commit(Enlistment enlistment) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { logger.Debug("committing DTC transaction"); // we have nothing to do here, since it is the actual @@ -353,7 +353,7 @@ void IEnlistmentNotification.Rollback(Enlistment enlistment) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { AfterTransactionCompletion(false, null); logger.Debug("rolled back DTC transaction"); @@ -363,7 +363,7 @@ void IEnlistmentNotification.InDoubt(Enlistment enlistment) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { AfterTransactionCompletion(false, null); logger.Debug("DTC transaction is in doubt"); @@ -373,7 +373,7 @@ protected void EnlistInAmbientTransactionIfNeeded() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (ambientTransation != null) return; Modified: trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-18 21:56:51 UTC (rev 4342) +++ trunk/nhibernate/src/NHibernate/Impl/SessionImpl.cs 2009-05-18 22:20:04 UTC (rev 4343) @@ -202,7 +202,7 @@ ConnectionReleaseMode connectionReleaseMode) : base(factory) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (interceptor == null) throw new AssertionFailure("The interceptor can not be null."); @@ -226,7 +226,7 @@ if (log.IsDebugEnabled) { - log.Debug(string.Format("[session-id={0}] opened session at timestamp:{1}", sessionId, timestamp)); + log.Debug(string.Format("[session-id={0}] opened session at timestamp:{1}", SessionId, timestamp)); } CheckAndUpdateSessionStatus(); @@ -241,7 +241,7 @@ private SessionImpl(SessionImpl parent, EntityMode entityMode) : base(parent.Factory) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { rootSession = parent; timestamp = parent.timestamp; @@ -326,7 +326,7 @@ /// <summary></summary> public IDbConnection Close() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { log.Debug("closing session"); if (IsClosed) @@ -376,7 +376,7 @@ /// </summary> public override void AfterTransactionCompletion(bool success, ITransaction tx) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { log.Debug("transaction completion"); if (Factory.Statistics.IsStatisticsEnabled) @@ -407,7 +407,7 @@ private void Cleanup() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { persistenceContext.Clear(); } @@ -415,7 +415,7 @@ public LockMode GetCurrentLockMode(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -459,7 +459,7 @@ /// <returns></returns> public object Save(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return FireSave(new SaveOrUpdateEvent(null, obj, this)); } @@ -467,7 +467,7 @@ public object Save(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return FireSave(new SaveOrUpdateEvent(entityName, obj, this)); } @@ -480,7 +480,7 @@ /// <param name="id"></param> public void Save(object obj, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireSave(new SaveOrUpdateEvent(null, obj, id, this)); } @@ -492,7 +492,7 @@ /// <param name="obj"></param> public void Delete(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireDelete(new DeleteEvent(obj, this)); } @@ -501,7 +501,7 @@ /// <summary> Delete a persistent object (by explicit entity name)</summary> public void Delete(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireDelete(new DeleteEvent(entityName, obj, this)); } @@ -509,7 +509,7 @@ public void Update(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireUpdate(new SaveOrUpdateEvent(null, obj, this)); } @@ -517,7 +517,7 @@ public void Update(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireUpdate(new SaveOrUpdateEvent(entityName, obj, this)); } @@ -525,7 +525,7 @@ public void SaveOrUpdate(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireSaveOrUpdate(new SaveOrUpdateEvent(null, obj, this)); } @@ -533,7 +533,7 @@ public void SaveOrUpdate(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireSaveOrUpdate(new SaveOrUpdateEvent(entityName, obj, this)); } @@ -541,7 +541,7 @@ public void Update(object obj, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireUpdate(new SaveOrUpdateEvent(null, obj, id, this)); } @@ -557,7 +557,7 @@ /// <returns></returns> public IList Find(string query) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return List(query, new QueryParameters()); } @@ -565,7 +565,7 @@ public IList Find(string query, object value, IType type) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return List(query, new QueryParameters(type, value)); } @@ -573,7 +573,7 @@ public IList Find(string query, object[] values, IType[] types) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return List(query, new QueryParameters(types, values)); } @@ -581,7 +581,7 @@ public override IList List(string query, QueryParameters parameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { IList results = new ArrayList(); List(query, parameters, results); @@ -591,7 +591,7 @@ public override IList<T> List<T>(string query, QueryParameters parameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { List<T> results = new List<T>(); List(query, parameters, results); @@ -601,7 +601,7 @@ public override void List(string query, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -634,7 +634,7 @@ public override IQueryTranslator[] GetQueries(string query, bool scalar) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { HQLQueryPlan plan = Factory.QueryPlanCache.GetHQLQueryPlan(query, scalar, enabledFilters); AutoFlushIfRequired(plan.QuerySpaces); @@ -644,7 +644,7 @@ public IEnumerable Enumerable(string query) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Enumerable(query, NoArgs, NoTypes); } @@ -652,7 +652,7 @@ public IEnumerable Enumerable(string query, object value, IType type) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Enumerable(query, new[] { value }, new[] { type }); } @@ -660,7 +660,7 @@ public IEnumerable Enumerable(string query, object[] values, IType[] types) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Enumerable(query, new QueryParameters(types, values)); } @@ -668,7 +668,7 @@ public override IEnumerable<T> Enumerable<T>(string query, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -689,7 +689,7 @@ public override IEnumerable Enumerable(string query, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -712,7 +712,7 @@ public int Delete(string query) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Delete(query, NoArgs, NoTypes); } @@ -720,7 +720,7 @@ public int Delete(string query, object value, IType type) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Delete(query, new[] { value }, new[] { type }); } @@ -728,7 +728,7 @@ public int Delete(string query, object[] values, IType[] types) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (string.IsNullOrEmpty(query)) { @@ -758,7 +758,7 @@ public void Lock(object obj, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireLock(new LockEvent(obj, lockMode, this)); } @@ -766,7 +766,7 @@ public void Lock(string entityName, object obj, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireLock(new LockEvent(entityName, obj, lockMode, this)); } @@ -780,7 +780,7 @@ /// <returns></returns> public IQuery CreateFilter(object collection, string queryString) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -795,7 +795,7 @@ private FilterQueryPlan GetFilterQueryPlan(object collection, string filter, QueryParameters parameters, bool shallow) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (collection == null) { @@ -856,7 +856,7 @@ public override object Instantiate(string clazz, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Instantiate(Factory.GetEntityPersister(clazz), id); } @@ -880,7 +880,7 @@ /// <returns></returns> public object Instantiate(IEntityPersister persister, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ErrorIfClosed(); object result = interceptor.Instantiate(persister.EntityName, entityMode, id); @@ -896,7 +896,7 @@ /// <summary> Force an immediate flush</summary> public void ForceFlush(EntityEntry entityEntry) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); if (log.IsDebugEnabled) @@ -920,7 +920,7 @@ /// <summary> Cascade merge an entity instance</summary> public void Merge(string entityName, object obj, IDictionary copiedAlready) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireMerge(copiedAlready, new MergeEvent(entityName, obj, this)); } @@ -929,7 +929,7 @@ /// <summary> Cascade persist an entity instance</summary> public void Persist(string entityName, object obj, IDictionary createdAlready) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FirePersist(createdAlready, new PersistEvent(entityName, obj, this)); } @@ -938,7 +938,7 @@ /// <summary> Cascade persist an entity instance during the flush process</summary> public void PersistOnFlush(string entityName, object obj, IDictionary copiedAlready) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FirePersistOnFlush(copiedAlready, new PersistEvent(entityName, obj, this)); } @@ -947,7 +947,7 @@ /// <summary> Cascade refresh an entity instance</summary> public void Refresh(object obj, IDictionary refreshedAlready) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireRefresh(refreshedAlready, new RefreshEvent(obj, this)); } @@ -956,7 +956,7 @@ /// <summary> Cascade copy an entity instance</summary> public void SaveOrUpdateCopy(string entityName, object obj, IDictionary copiedAlready) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireSaveOrUpdateCopy(copiedAlready, new MergeEvent(entityName, obj, this)); } @@ -965,7 +965,7 @@ /// <summary> Cascade delete an entity instance</summary> public void Delete(string entityName, object child, bool isCascadeDeleteEnabled, ISet transientEntities) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireDelete(new DeleteEvent(entityName, child, isCascadeDeleteEnabled, this), transientEntities); } @@ -975,7 +975,7 @@ public object Merge(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return FireMerge(new MergeEvent(entityName, obj, this)); } @@ -983,7 +983,7 @@ public object Merge(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Merge(null, obj); } @@ -991,7 +991,7 @@ public void Persist(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FirePersist(new PersistEvent(entityName, obj, this)); } @@ -999,7 +999,7 @@ public void Persist(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { Persist(null, obj); } @@ -1007,7 +1007,7 @@ public void PersistOnFlush(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FirePersistOnFlush(new PersistEvent(entityName, obj, this)); } @@ -1015,7 +1015,7 @@ public void PersistOnFlush(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { Persist(null, obj); } @@ -1035,7 +1035,7 @@ public override string BestGuessEntityName(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { INHibernateProxy proxy = entity as INHibernateProxy; if (proxy != null) @@ -1064,7 +1064,7 @@ public override string GuessEntityName(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { string entityName = interceptor.GetEntityName(entity); if (entityName == null) @@ -1086,7 +1086,7 @@ public override object GetEntityUsingInterceptor(EntityKey key) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); // todo : should this get moved to PersistentContext? @@ -1126,7 +1126,7 @@ /// <returns></returns> private bool AutoFlushIfRequired(ISet<string> querySpaces) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); if (!TransactionInProgress) @@ -1148,7 +1148,7 @@ public void Load(object obj, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { LoadEvent loadEvent = new LoadEvent(id, obj, this); FireLoad(loadEvent, LoadEventListener.Reload); @@ -1157,7 +1157,7 @@ public T Load<T>(object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Load(typeof(T), id); } @@ -1165,7 +1165,7 @@ public T Load<T>(object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Load(typeof(T), id, lockMode); } @@ -1187,7 +1187,7 @@ /// </exception> public object Load(System.Type entityClass, object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Load(entityClass.FullName, id, lockMode); } @@ -1195,7 +1195,7 @@ public object Load(string entityName, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (id == null) { @@ -1223,7 +1223,7 @@ public object Load(string entityName, object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { var @event = new LoadEvent(id, entityName, lockMode, this); FireLoad(@event, LoadEventListener.Load); @@ -1233,7 +1233,7 @@ public object Load(System.Type entityClass, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Load(entityClass.FullName, id); } @@ -1241,7 +1241,7 @@ public T Get<T>(object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Get(typeof(T), id); } @@ -1249,7 +1249,7 @@ public T Get<T>(object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Get(typeof(T), id, lockMode); } @@ -1257,7 +1257,7 @@ public object Get(System.Type entityClass, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Get(entityClass.FullName, id); } @@ -1276,7 +1276,7 @@ /// <returns></returns> public object Get(System.Type clazz, object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { LoadEvent loadEvent = new LoadEvent(id, clazz.FullName, lockMode, this); FireLoad(loadEvent, LoadEventListener.Get); @@ -1286,7 +1286,7 @@ public string GetEntityName(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); var proxy = obj as INHibernateProxy; @@ -1314,7 +1314,7 @@ public object Get(string entityName, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { LoadEvent loadEvent = new LoadEvent(id, entityName, false, this); bool success = false; @@ -1338,7 +1338,7 @@ /// </summary> public override object ImmediateLoad(string entityName, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (log.IsDebugEnabled) { @@ -1359,7 +1359,7 @@ /// </summary> public override object InternalLoad(string entityName, object id, bool eager, bool isNullable) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // todo : remove LoadType type = isNullable @@ -1379,7 +1379,7 @@ public void Refresh(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireRefresh(new RefreshEvent(obj, this)); } @@ -1387,7 +1387,7 @@ public void Refresh(object obj, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireRefresh(new RefreshEvent(obj, lockMode, this)); } @@ -1395,7 +1395,7 @@ public ITransaction BeginTransaction(IsolationLevel isolationLevel) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (rootSession != null) { @@ -1411,7 +1411,7 @@ public ITransaction BeginTransaction() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (rootSession != null) { @@ -1453,7 +1453,7 @@ /// </remarks> public override void Flush() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); if (persistenceContext.CascadeLevel > 0) @@ -1478,7 +1478,7 @@ public bool IsDirty() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -1508,7 +1508,7 @@ /// <returns></returns> public object GetIdentifier(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); // Actually the case for proxies will probably work even with @@ -1542,7 +1542,7 @@ /// <returns></returns> public override object GetContextEntityIdentifier(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { INHibernateProxy proxy = obj as INHibernateProxy; if (proxy != null) @@ -1559,7 +1559,7 @@ internal ICollectionPersister GetCollectionPersister(string role) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Factory.GetCollectionPersister(role); } @@ -1572,7 +1572,7 @@ /// <param name="writing"></param> public override void InitializeCollection(IPersistentCollection collection, bool writing) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IInitializeCollectionEventListener[] listener = listeners.InitializeCollectionEventListeners; @@ -1607,7 +1607,7 @@ /// <summary></summary> public IDbConnection Disconnect() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); log.Debug("disconnecting session"); @@ -1617,7 +1617,7 @@ public void Reconnect() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); log.Debug("reconnecting session"); @@ -1627,7 +1627,7 @@ public void Reconnect(IDbConnection conn) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); log.Debug("reconnecting session"); @@ -1652,9 +1652,9 @@ /// </summary> public void Dispose() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { - log.Debug(string.Format("[session-id={0}] running ISession.Dispose()",sessionId)); + log.Debug(string.Format("[session-id={0}] running ISession.Dispose()", SessionId)); if (TakingPartInDtcTransaction) { shouldCloseSessionOnDtcTransactionCompleted = true; @@ -1675,7 +1675,7 @@ /// </remarks> protected override void Dispose(bool isDisposing) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (IsAlreadyDisposed) { @@ -1683,7 +1683,7 @@ return; } - log.Debug(string.Format("[session-id={0}] executing real Dispose({1})", sessionId, isDisposing)); + log.Debug(string.Format("[session-id={0}] executing real Dispose({1})", SessionId, isDisposing)); // free managed resources that are being managed by the session if we // know this call came through Dispose() @@ -1704,7 +1704,7 @@ public ICollection Filter(object collection, string filter) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { QueryParameters qp = new QueryParameters(new IType[1], new object[1]); return ListFilter(collection, filter, qp); @@ -1713,7 +1713,7 @@ public ICollection Filter(object collection, string filter, object value, IType type) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { QueryParameters qp = new QueryParameters(new IType[] { null, type }, new object[] { null, value }); return ListFilter(collection, filter, qp); @@ -1722,7 +1722,7 @@ public ICollection Filter(object collection, string filter, object[] values, IType[] types) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -1737,7 +1737,7 @@ private void Filter(object collection, string filter, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); FilterQueryPlan plan = GetFilterQueryPlan(collection, filter, queryParameters, false); @@ -1768,7 +1768,7 @@ public override IList ListFilter(object collection, string filter, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { IList results = new ArrayList(); Filter(collection, filter, queryParameters, results); @@ -1778,7 +1778,7 @@ public override IList<T> ListFilter<T>(object collection, string filter, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { List<T> results = new List<T>(); Filter(collection, filter, queryParameters, results); @@ -1788,7 +1788,7 @@ public override IEnumerable EnumerableFilter(object collection, string filter, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); FilterQueryPlan plan = GetFilterQueryPlan(collection, filter, queryParameters, true); @@ -1798,7 +1798,7 @@ public override IEnumerable<T> EnumerableFilter<T>(object collection, string filter, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); FilterQueryPlan plan = GetFilterQueryPlan(collection, filter, queryParameters, true); @@ -1808,7 +1808,7 @@ public ICriteria CreateCriteria<T>() where T : class { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return CreateCriteria(typeof(T)); } @@ -1816,7 +1816,7 @@ public ICriteria CreateCriteria(System.Type persistentClass) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -1826,7 +1826,7 @@ public ICriteria CreateCriteria<T>(string alias) where T : class { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return CreateCriteria(typeof(T), alias); } @@ -1834,7 +1834,7 @@ public ICriteria CreateCriteria(System.Type persistentClass, string alias) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -1844,7 +1844,7 @@ public ICriteria CreateCriteria(string entityName, string alias) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return new CriteriaImpl(entityName, alias, this); @@ -1853,7 +1853,7 @@ public ICriteria CreateCriteria(string entityName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return new CriteriaImpl(entityName, this); @@ -1862,7 +1862,7 @@ public override IList List(CriteriaImpl criteria) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ArrayList results = new ArrayList(); List(criteria, results); @@ -1872,7 +1872,7 @@ public override IList<T> List<T>(CriteriaImpl criteria) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { List<T> results = new List<T>(); List(criteria, results); @@ -1882,7 +1882,7 @@ public override void List(CriteriaImpl criteria, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -1937,7 +1937,7 @@ internal IOuterJoinLoadable GetOuterJoinLoadable(string entityName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { var persister = Factory.GetEntityPersister(entityName) as IOuterJoinLoadable; if (persister == null) @@ -1950,7 +1950,7 @@ public bool Contains(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); var proxy = obj as INHibernateProxy; @@ -1991,7 +1991,7 @@ /// <param name="obj"></param> public void Evict(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireEvict(new EvictEvent(obj, this)); } @@ -1999,7 +1999,7 @@ public override ISQLQuery CreateSQLQuery(string sql) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return base.CreateSQLQuery(sql); @@ -2008,7 +2008,7 @@ public IQuery CreateSQLQuery(string sql, string returnAlias, System.Type returnClass) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return new SqlQueryImpl(sql, new[] { returnAlias }, new[] { returnClass }, this, @@ -2018,7 +2018,7 @@ public IQuery CreateSQLQuery(string sql, string[] returnAliases, System.Type[] returnClasses) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return new SqlQueryImpl(sql, returnAliases, returnClasses, this, @@ -2028,7 +2028,7 @@ public override IList List(NativeSQLQuerySpecification spec, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ArrayList results = new ArrayList(); List(spec, queryParameters, results); @@ -2038,7 +2038,7 @@ public override IList<T> List<T>(NativeSQLQuerySpecification spec, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { List<T> results = new List<T>(); List(spec, queryParameters, results); @@ -2048,7 +2048,7 @@ public override void List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { SQLCustomQuery query = new SQLCustomQuery( spec.SqlQueryReturns, @@ -2061,7 +2061,7 @@ public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -2085,7 +2085,7 @@ public override IList<T> ListCustomQuery<T>(ICustomQuery customQuery, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { List<T> results = new List<T>(); ListCustomQuery(customQuery, queryParameters, results); @@ -2096,7 +2096,7 @@ /// <summary></summary> public void Clear() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); actionQueue.Clear(); @@ -2106,7 +2106,7 @@ public void Replicate(object obj, ReplicationMode replicationMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireReplicate(new ReplicateEvent(obj, replicationMode, this)); } @@ -2114,7 +2114,7 @@ public void Replicate(string entityName, object obj, ReplicationMode replicationMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { FireReplicate(new ReplicateEvent(entityName, obj, replicationMode, this)); } @@ -2127,7 +2127,7 @@ public void CancelQuery() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -2142,7 +2142,7 @@ /// <returns></returns> public object SaveOrUpdateCopy(object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return FireSaveOrUpdateCopy(new MergeEvent(null, obj, this)); } @@ -2150,7 +2150,7 @@ public object SaveOrUpdateCopy(object obj, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return FireSaveOrUpdateCopy(new MergeEvent(null, obj, id, this)); } @@ -2158,7 +2158,7 @@ public IFilter GetEnabledFilter(string filterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return enabledFilters[filterName]; @@ -2167,7 +2167,7 @@ public IFilter EnableFilter(string filterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); FilterImpl filter = new FilterImpl(Factory.GetFilterDefinition(filterName)); @@ -2178,7 +2178,7 @@ public void DisableFilter(string filterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); enabledFilters.Remove(filterName); @@ -2187,7 +2187,7 @@ public override Object GetFilterParameterValue(string filterParameterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); string[] parsed = ParseFilterParameterName(filterParameterName); @@ -2204,7 +2204,7 @@ public override IType GetFilterParameterType(string filterParameterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); string[] parsed = ParseFilterParameterName(filterParameterName); @@ -2240,7 +2240,7 @@ private string[] ParseFilterParameterName(string filterParameterName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { int dot = filterParameterName.IndexOf("."); if (dot <= 0) @@ -2260,7 +2260,7 @@ public IMultiQuery CreateMultiQuery() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return new MultiQueryImpl(this); } @@ -2268,7 +2268,7 @@ public IMultiCriteria CreateMultiCriteria() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return new MultiCriteriaImpl(this, Factory); } @@ -2285,7 +2285,7 @@ public override void AfterTransactionBegin(ITransaction tx) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); interceptor.AfterTransactionBegin(tx); @@ -2294,7 +2294,7 @@ public override void BeforeTransactionCompletion(ITransaction tx) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { log.Debug("before transaction completion"); if (rootSession == null) @@ -2330,7 +2330,7 @@ public ISession GetSession(EntityMode entityMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // This is explicitly removed to allow support // for child sessions that want to flush during @@ -2422,7 +2422,7 @@ public void SetReadOnly(object entity, bool readOnly) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); persistenceContext.SetReadOnly(entity, readOnly); @@ -2431,7 +2431,7 @@ private void FireDelete(DeleteEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IDeleteEventListener[] deleteEventListener = listeners.DeleteEventListeners; @@ -2444,7 +2444,7 @@ private void FireDelete(DeleteEvent @event, ISet transientEntities) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IDeleteEventListener[] deleteEventListener = listeners.DeleteEventListeners; @@ -2457,7 +2457,7 @@ private void FireEvict(EvictEvent evictEvent) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IEvictEventListener[] evictEventListener = listeners.EvictEventListeners; @@ -2470,7 +2470,7 @@ private void FireLoad(LoadEvent @event, LoadType loadType) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); ILoadEventListener[] loadEventListener = listeners.LoadEventListeners; @@ -2483,7 +2483,7 @@ private void FireLock(LockEvent lockEvent) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); ILockEventListener[] lockEventListener = listeners.LockEventListeners; @@ -2496,7 +2496,7 @@ private object FireMerge(MergeEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IMergeEventListener[] mergeEventListener = listeners.MergeEventListeners; @@ -2510,7 +2510,7 @@ private void FireMerge(IDictionary copiedAlready, MergeEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IMergeEventListener[] mergeEventListener = listeners.MergeEventListeners; @@ -2523,7 +2523,7 @@ private void FirePersist(IDictionary copiedAlready, PersistEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IPersistEventListener[] persistEventListener = listeners.PersistEventListeners; @@ -2536,7 +2536,7 @@ private void FirePersist(PersistEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IPersistEventListener[] createEventListener = listeners.PersistEventListeners; @@ -2549,7 +2549,7 @@ private void FirePersistOnFlush(IDictionary copiedAlready, PersistEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IPersistEventListener[] persistEventListener = listeners.PersistOnFlushEventListeners; @@ -2562,7 +2562,7 @@ private void FirePersistOnFlush(PersistEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IPersistEventListener[] createEventListener = listeners.PersistOnFlushEventListeners; @@ -2575,7 +2575,7 @@ private void FireRefresh(RefreshEvent refreshEvent) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IRefreshEventListener[] refreshEventListener = listeners.RefreshEventListeners; @@ -2588,7 +2588,7 @@ private void FireRefresh(IDictionary refreshedAlready, RefreshEvent refreshEvent) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IRefreshEventListener[] refreshEventListener = listeners.RefreshEventListeners; @@ -2601,7 +2601,7 @@ private void FireReplicate(ReplicateEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IReplicateEventListener[] replicateEventListener = listeners.ReplicateEventListeners; @@ -2614,7 +2614,7 @@ private object FireSave(SaveOrUpdateEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); ISaveOrUpdateEventListener[] saveEventListener = listeners.SaveEventListeners; @@ -2628,7 +2628,7 @@ private void FireSaveOrUpdate(SaveOrUpdateEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); ISaveOrUpdateEventListener[] saveOrUpdateEventListener = listeners.SaveOrUpdateEventListeners; @@ -2641,7 +2641,7 @@ private void FireSaveOrUpdateCopy(IDictionary copiedAlready, MergeEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IMergeEventListener[] saveOrUpdateCopyEventListener = listeners.SaveOrUpdateCopyEventListeners; @@ -2654,7 +2654,7 @@ private object FireSaveOrUpdateCopy(MergeEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IMergeEventListener[] saveOrUpdateCopyEventListener = listeners.SaveOrUpdateCopyEventListeners; @@ -2668,7 +2668,7 @@ private void FireUpdate(SaveOrUpdateEvent @event) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); ISaveOrUpdateEventListener[] updateEventListener = listeners.UpdateEventListeners; @@ -2681,7 +2681,7 @@ public override int ExecuteNativeUpdate(NativeSQLQuerySpecification nativeQuerySpecification, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -2706,7 +2706,7 @@ public override int ExecuteUpdate(string query, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -2731,7 +2731,7 @@ public override IEntityPersister GetEntityPersister(string entityName, object obj) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); if (entityName == null) Modified: trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2009-05-18 21:56:51 UTC (rev 4342) +++ trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2009-05-18 22:20:04 UTC (rev 4343) @@ -34,7 +34,7 @@ internal StatelessSessionImpl(IDbConnection connection, SessionFactoryImpl factory) : base(factory) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { temporaryPersistenceContext = new StatefulPersistenceContext(this); connectionManager = new ConnectionManager(this, connection, ConnectionReleaseMode.AfterTransaction, @@ -50,7 +50,7 @@ public override object InternalLoad(string entityName, object id, bool eager, bool isNullable) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IEntityPersister persister = Factory.GetEntityPersister(entityName); @@ -89,7 +89,7 @@ public override IList List(string query, QueryParameters parameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up IList results = new ArrayList(); @@ -100,7 +100,7 @@ public override void List(string query, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); @@ -130,7 +130,7 @@ public override IList<T> List<T>(string query, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up List<T> results = new List<T>(); @@ -141,7 +141,7 @@ public override IList<T> List<T>(CriteriaImpl criteria) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up List<T> results = new List<T>(); @@ -152,7 +152,7 @@ public override void List(CriteriaImpl criteria, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); string[] implementors = Factory.GetImplementors(criteria.EntityOrClassName); @@ -193,7 +193,7 @@ private IOuterJoinLoadable GetOuterJoinLoadable(string entityName) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up IEntityPersister persister = Factory.GetEntityPersister(entityName); @@ -207,7 +207,7 @@ public override IList List(CriteriaImpl criteria) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up ArrayList results = new ArrayList(); @@ -256,7 +256,7 @@ public override void AfterTransactionCompletion(bool successful, ITransaction tx) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { connectionManager.AfterTransaction(); } @@ -270,7 +270,7 @@ public override object Instantiate(string clazz, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return Factory.GetEntityPersister(clazz).Instantiate(id, EntityMode.Poco); @@ -279,7 +279,7 @@ public override IList List(NativeSQLQuerySpecification spec, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up ArrayList results = new ArrayList(); @@ -290,7 +290,7 @@ public override void List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up SQLCustomQuery query = new SQLCustomQuery( @@ -304,7 +304,7 @@ public override IList<T> List<T>(NativeSQLQuerySpecification spec, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up List<T> results = new List<T>(); @@ -315,7 +315,7 @@ public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); @@ -337,7 +337,7 @@ public override IList<T> ListCustomQuery<T>(ICustomQuery customQuery, QueryParameters queryParameters) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // TODO pull up List<T> results = new List<T>(); @@ -363,7 +363,7 @@ public override IQueryTranslator[] GetQueries(string query, bool scalar) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { // take the union of the query spaces (ie the queried tables) HQLQueryPlan plan = Factory.QueryPlanCache.GetHQLQueryPlan(query, scalar, EnabledFilters); @@ -425,7 +425,7 @@ public override string BestGuessEntityName(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { INHibernateProxy proxy = entity as INHibernateProxy; if (proxy != null) @@ -449,7 +449,7 @@ public override void Flush() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ManagedFlush(); // NH Different behavior since ADOContext.Context is not implemented } @@ -457,7 +457,7 @@ public void ManagedFlush() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); Batcher.ExecuteBatch(); @@ -497,7 +497,7 @@ /// <summary> Close the stateless session and release the ADO.NET connection.</summary> public void Close() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { ManagedClose(); } @@ -505,7 +505,7 @@ public void ManagedClose() { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { if (IsClosed) { @@ -521,7 +521,7 @@ /// <returns> the identifier of the instance </returns> public object Insert(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); return Insert(null, entity); @@ -534,7 +534,7 @@ /// <returns> the identifier of the instance </returns> public object Insert(string entityName, object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IEntityPersister persister = GetEntityPersister(entityName, entity); @@ -567,7 +567,7 @@ /// <param name="entity">a detached entity instance </param> public void Update(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); Update(null, entity); @@ -579,7 +579,7 @@ /// <param name="entity">a detached entity instance </param> public void Update(string entityName, object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IEntityPersister persister = GetEntityPersister(entityName, entity); @@ -605,7 +605,7 @@ /// <param name="entity">a detached entity instance </param> public void Delete(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); Delete(null, entity); @@ -617,7 +617,7 @@ /// <param name="entity">a detached entity instance </param> public void Delete(string entityName, object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); IEntityPersister persister = GetEntityPersister(entityName, entity); @@ -631,7 +631,7 @@ /// <returns> a detached entity instance </returns> public object Get(string entityName, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Get(entityName, id, LockMode.None); } @@ -644,7 +644,7 @@ /// </returns> public T Get<T>(object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Get(typeof(T), id); } @@ -652,7 +652,7 @@ private object Get(System.Type persistentClass, object id) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return Get(persistentClass.FullName, id); } @@ -664,7 +664,7 @@ /// <returns> a detached entity instance </returns> public object Get(string entityName, object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); object result = Factory.GetEntityPersister(entityName).Load(id, null, lockMode, this); @@ -679,7 +679,7 @@ /// <returns> a detached entity instance </returns> public T Get<T>(object id, LockMode lockMode) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionIdLoggingContext(SessionId)) { return (T)Get(typeof(T).FullName, id, lockMode); } @@ -691,7 +691,7 @@ /// <param name="entity">The entity to be refreshed. </param> public void Refresh(object entity) { - using (new SessionIdLoggingContext(sessionId)) + using (new SessionId... [truncated message content] |
From: <fab...@us...> - 2009-05-18 21:56:57
|
Revision: 4342 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4342&view=rev Author: fabiomaulo Date: 2009-05-18 21:56:51 +0000 (Mon, 18 May 2009) Log Message: ----------- Removed obsolete ORACLE dialects. Modified Paths: -------------- trunk/nhibernate/releasenotes.txt trunk/nhibernate/src/NHibernate/Dialect/OracleLiteDialect.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs trunk/nhibernate/src/NHibernate.Test/Legacy/SQLLoaderTest.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/DoubleTypeFixture.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs trunk/nhibernate/src/NHibernate/Dialect/OracleDialect.cs Modified: trunk/nhibernate/releasenotes.txt =================================================================== --- trunk/nhibernate/releasenotes.txt 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/releasenotes.txt 2009-05-18 21:56:51 UTC (rev 4342) @@ -11,11 +11,12 @@ * the syntax foo.bar.baz.elements or foo.bar.baz.indices is not longer supported. Use the alternative syntax of elements(foo.bar.baz) or indices(foo.bar.baz) instead Note: in some case, where a sub-select is needed, the collection is enough example: FROM m IN CLASS Master WHERE NOT EXISTS( FROM m.Details d WHERE NOT d.I=5 ) - ##### Possible Breaking Changes for external frameworks ##### + ##### Possible Breaking Changes ##### * ISession interface has additional methods * IStatelessSession interface has additional methods * DefaultProxyFactoryFactory removed * IProxyFactoryFactory now provide the IProxyValidator implementation + * Now filters are working even with many-to-one association for Criteria and HQL (NH-1293, NH-1179) ##### Initialization time ##### * The ProxyValidator check for "internal virtual" (to be intercepted by proxy need "protected internal virtual") @@ -24,8 +25,8 @@ ##### Breaking Changes ##### * see NH-1633 if you are using SQL native queries * CriteriaUtil is gone. NHibernate.Transform.Transformers now returns predefined IResultTransformer. - * Now filters are working even with many-to-one association for Criteria and HQL (NH-1293, NH-1179) * ISessionFactory.Settings is gone (moved to ISessionFactoryImplementor.Settings) + * Obsolete ORACLE dialects was removed (new implementations are available) Build 2.1.0.Alpha2 (rev4167) ======================== Deleted: trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -1,270 +0,0 @@ -using System; -using System.Collections; -using System.Data; -using NHibernate.Dialect.Function; -using NHibernate.Dialect.Schema; -using NHibernate.Engine; -using NHibernate.SqlCommand; -using Environment=NHibernate.Cfg.Environment; -using System.Data.Common; - -namespace NHibernate.Dialect -{ - /// <summary> - /// It's a immature version, it just work. - /// An SQL dialect for Oracle 9 - /// </summary> - /// <remarks> - /// The Oracle9Dialect defaults the following configuration properties: - /// <list type="table"> - /// <listheader> - /// <term>Property</term> - /// <description>Default Value</description> - /// </listheader> - /// <item> - /// <term>use_outer_join</term> - /// <description><see langword="true" /></description> - /// </item> - /// <item> - /// <term>connection.driver_class</term> - /// <description><see cref="NHibernate.Driver.OracleClientDriver" /></description> - /// </item> - /// </list> - /// </remarks> - [Obsolete("This dialect will be removed in the next NHibernate version; Use Oracle9iDialect")] - public class Oracle9Dialect : Dialect - { - /// <summary></summary> - public Oracle9Dialect() - { - DefaultProperties[Environment.PrepareSql] = "false"; - DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.OracleClientDriver"; - - RegisterColumnType(DbType.AnsiStringFixedLength, "CHAR(255)"); - RegisterColumnType(DbType.AnsiStringFixedLength, 2000, "CHAR($l)"); - RegisterColumnType(DbType.AnsiString, "VARCHAR2(255)"); - RegisterColumnType(DbType.AnsiString, 2000, "VARCHAR2($l)"); - RegisterColumnType(DbType.AnsiString, 2147483647, "CLOB"); // should use the IType.ClobType - RegisterColumnType(DbType.Binary, "RAW(2000)"); - RegisterColumnType(DbType.Binary, 2000, "RAW($l)"); - RegisterColumnType(DbType.Binary, 2147483647, "BLOB"); - RegisterColumnType(DbType.Boolean, "NUMBER(1,0)"); - RegisterColumnType(DbType.Byte, "NUMBER(3,0)"); - RegisterColumnType(DbType.Currency, "NUMBER(19,1)"); - RegisterColumnType(DbType.Date, "DATE"); - RegisterColumnType(DbType.DateTime, "TIMESTAMP(4)"); - RegisterColumnType(DbType.Decimal, "NUMBER(19,5)"); - RegisterColumnType(DbType.Decimal, 19, "NUMBER(19, $l)"); - // having problems with both ODP and OracleClient from MS not being able - // to read values out of a field that is DOUBLE PRECISION - RegisterColumnType(DbType.Double, "DOUBLE PRECISION"); //"FLOAT(53)" ); - //RegisterColumnType(DbType.Guid, "CHAR(38)"); - RegisterColumnType(DbType.Int16, "NUMBER(5,0)"); - RegisterColumnType(DbType.Int32, "NUMBER(10,0)"); - RegisterColumnType(DbType.Int64, "NUMBER(20,0)"); - RegisterColumnType(DbType.UInt16, "NUMBER(5,0)"); - RegisterColumnType(DbType.UInt32, "NUMBER(10,0)"); - RegisterColumnType(DbType.UInt64, "NUMBER(20,0)"); - RegisterColumnType(DbType.Single, "FLOAT(24)"); - RegisterColumnType(DbType.StringFixedLength, "NCHAR(255)"); - RegisterColumnType(DbType.StringFixedLength, 2000, "NCHAR($l)"); - RegisterColumnType(DbType.String, "NVARCHAR2(255)"); - RegisterColumnType(DbType.String, 2000, "NVARCHAR2($l)"); - RegisterColumnType(DbType.String, 1073741823, "NCLOB"); - RegisterColumnType(DbType.Time, "DATE"); - - RegisterFunction("abs", new StandardSQLFunction("abs")); - RegisterFunction("sign", new StandardSQLFunction("sign", NHibernateUtil.Int32)); - - RegisterFunction("acos", new StandardSQLFunction("acos", NHibernateUtil.Double)); - RegisterFunction("asin", new StandardSQLFunction("asin", NHibernateUtil.Double)); - RegisterFunction("atan", new StandardSQLFunction("atan", NHibernateUtil.Double)); - RegisterFunction("cos", new StandardSQLFunction("cos", NHibernateUtil.Double)); - RegisterFunction("cosh", new StandardSQLFunction("cosh", NHibernateUtil.Double)); - RegisterFunction("exp", new StandardSQLFunction("exp", NHibernateUtil.Double)); - RegisterFunction("ln", new StandardSQLFunction("ln", NHibernateUtil.Double)); - RegisterFunction("sin", new StandardSQLFunction("sin", NHibernateUtil.Double)); - RegisterFunction("sinh", new StandardSQLFunction("sinh", NHibernateUtil.Double)); - RegisterFunction("stddev", new StandardSQLFunction("stddev", NHibernateUtil.Double)); - RegisterFunction("sqrt", new StandardSQLFunction("sqrt", NHibernateUtil.Double)); - RegisterFunction("tan", new StandardSQLFunction("tan", NHibernateUtil.Double)); - RegisterFunction("tanh", new StandardSQLFunction("tanh", NHibernateUtil.Double)); - RegisterFunction("variance", new StandardSQLFunction("variance", NHibernateUtil.Double)); - - RegisterFunction("round", new StandardSQLFunction("round")); - RegisterFunction("trunc", new StandardSQLFunction("trunc")); - RegisterFunction("ceil", new StandardSQLFunction("ceil")); - RegisterFunction("floor", new StandardSQLFunction("floor")); - - RegisterFunction("chr", new StandardSQLFunction("chr", NHibernateUtil.Character)); - RegisterFunction("initcap", new StandardSQLFunction("initcap")); - RegisterFunction("lower", new StandardSQLFunction("lower")); - RegisterFunction("ltrim", new StandardSQLFunction("ltrim")); - RegisterFunction("rtrim", new StandardSQLFunction("rtrim")); - RegisterFunction("soundex", new StandardSQLFunction("soundex")); - RegisterFunction("upper", new StandardSQLFunction("upper")); - RegisterFunction("ascii", new StandardSQLFunction("ascii", NHibernateUtil.Int32)); - RegisterFunction("length", new StandardSQLFunction("length", NHibernateUtil.Int64)); - RegisterFunction("left", new SQLFunctionTemplate(NHibernateUtil.String, "substr(?1, 1, ?2)")); - RegisterFunction("right", new SQLFunctionTemplate(NHibernateUtil.String, "substr(?1, -?2)")); - - RegisterFunction("to_char", new StandardSQLFunction("to_char", NHibernateUtil.String)); - RegisterFunction("to_date", new StandardSQLFunction("to_date", NHibernateUtil.Timestamp)); - - RegisterFunction("lastday", new StandardSQLFunction("lastday", NHibernateUtil.Date)); - RegisterFunction("sysdate", new NoArgSQLFunction("sysdate", NHibernateUtil.Date, false)); - RegisterFunction("uid", new NoArgSQLFunction("uid", NHibernateUtil.Int32, false)); - RegisterFunction("user", new NoArgSQLFunction("user", NHibernateUtil.String, false)); - RegisterFunction("current_timestamp", new CurrentTimeStamp()); - - RegisterFunction("str", new SQLFunctionTemplate(NHibernateUtil.String, "cast(?1 as nvarchar2(2000))")); - - // Multi-param string dialect functions... - RegisterFunction("concat", new VarArgsSQLFunction(NHibernateUtil.String, "(", "||", ")")); - RegisterFunction("instr", new StandardSQLFunction("instr", NHibernateUtil.String)); - RegisterFunction("instrb", new StandardSQLFunction("instrb", NHibernateUtil.String)); - RegisterFunction("lpad", new StandardSQLFunction("lpad", NHibernateUtil.String)); - RegisterFunction("replace", new StandardSQLFunction("replace", NHibernateUtil.String)); - RegisterFunction("rpad", new StandardSQLFunction("rpad", NHibernateUtil.String)); - RegisterFunction("substr", new StandardSQLFunction("substr", NHibernateUtil.String)); - RegisterFunction("substring", new StandardSQLFunction("substr", NHibernateUtil.String)); - RegisterFunction("substrb", new StandardSQLFunction("substrb", NHibernateUtil.String)); - RegisterFunction("translate", new StandardSQLFunction("translate", NHibernateUtil.String)); - - // Multi-param numeric dialect functions... - RegisterFunction("atan2", new StandardSQLFunction("atan2", NHibernateUtil.Single)); - RegisterFunction("log", new StandardSQLFunction("log", NHibernateUtil.Int32)); - RegisterFunction("mod", new StandardSQLFunction("mod", NHibernateUtil.Int32)); - RegisterFunction("nvl", new StandardSQLFunction("nvl")); - RegisterFunction("power", new StandardSQLFunction("power", NHibernateUtil.Single)); - - // Multi-param date dialect functions... - RegisterFunction("add_months", new StandardSQLFunction("add_months", NHibernateUtil.Date)); - RegisterFunction("months_between", new StandardSQLFunction("months_between", NHibernateUtil.Single)); - RegisterFunction("next_day", new StandardSQLFunction("next_day", NHibernateUtil.Date)); - } - - /// <summary></summary> - public override string AddColumnString - { - get { return "add"; } - } - - /// <summary></summary> - public override string GetSequenceNextValString(string sequenceName) - { - return "select " + sequenceName + ".nextval from dual"; - } - - /// <summary></summary> - public override string GetCreateSequenceString(string sequenceName) - { - return - "create sequence " + sequenceName + - " INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER"; - } - - /// <summary></summary> - public override string GetDropSequenceString(string sequenceName) - { - return "drop sequence " + sequenceName; - } - - /// <summary></summary> - public override string CascadeConstraintsString - { - get { return " cascade constraints"; } - } - - public override string ForUpdateNowaitString - { - get { return " for update nowait"; } - } - - /// <summary></summary> - public override bool SupportsSequences - { - get { return true; } - } - - /// <summary></summary> - public override bool SupportsLimit - { - get { return true; } - } - - public override bool SupportsVariableLimit - { - get { return false; } - } - - - public override SqlString GetLimitString(SqlString querySqlString, int offset, int limit) - { - SqlStringBuilder pagingBuilder = new SqlStringBuilder(); - var hasOffset = offset > 0; - - pagingBuilder.Add("SELECT * FROM ("); - pagingBuilder.Add(querySqlString); - if (hasOffset) - { - pagingBuilder.Add(") WHERE rownum BETWEEN "); - pagingBuilder.Add(offset.ToString()); - pagingBuilder.Add(" AND "); - pagingBuilder.Add((limit + offset).ToString()); - } - else - { - pagingBuilder.Add(") WHERE rownum <= "); - pagingBuilder.Add(limit.ToString()); - } - - return pagingBuilder.ToSqlString(); - } - - /// <summary></summary> - public override bool BindLimitParametersInReverseOrder - { - get { return true; } - } - - /// <summary></summary> - public override bool UseMaxForLimit - { - get { return true; } - } - - public override bool ForUpdateOfColumns - { - get { return true; } - } - - public override string GetForUpdateString(string aliases) - { - return ForUpdateString + " of " + aliases; - } - - public override string GetForUpdateNowaitString(string aliases) - { - return ForUpdateString + " of " + aliases + " nowait"; - } - - public override IDataBaseSchema GetDataBaseSchema(DbConnection connection) - { - return new OracleDataBaseSchema(connection); - } - - [Serializable] - private class CurrentTimeStamp : NoArgSQLFunction - { - public CurrentTimeStamp() - : base("current_timestamp", NHibernateUtil.DateTime, true) - { } - - public override SqlString Render(IList args, ISessionFactoryImplementor factory) - { - return new SqlString(Name); - } - } - } -} Deleted: trunk/nhibernate/src/NHibernate/Dialect/OracleDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/OracleDialect.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate/Dialect/OracleDialect.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -1,30 +0,0 @@ -using System; -using System.Data; -using NHibernate.SqlCommand; - -namespace NHibernate.Dialect -{ - /// <summary> - /// An SQL dialect for Oracle, compatible with Oracle 8. - /// </summary> - [Obsolete("This dialect will be removed in the next NHibernate version; Use Oracle8iDialect")] - public class OracleDialect : Oracle9Dialect - { - public OracleDialect() - { - RegisterColumnType(DbType.DateTime, "DATE"); - } - - /// <summary></summary> - public override JoinFragment CreateOuterJoinFragment() - { - return new OracleJoinFragment(); - } - - /// <summary></summary> - public override CaseFragment CreateCaseFragment() - { - return new DecodeCaseFragment(this); - } - } -} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Dialect/OracleLiteDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/OracleLiteDialect.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate/Dialect/OracleLiteDialect.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -25,7 +25,7 @@ /// </item> /// </list> /// </remarks> - public class OracleLiteDialect : Oracle9Dialect + public class OracleLiteDialect : Oracle9iDialect { /// <summary></summary> public OracleLiteDialect() Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-18 21:56:51 UTC (rev 4342) @@ -111,8 +111,6 @@ <Compile Include="Dialect\MsSql2000Dialect.cs" /> <Compile Include="Dialect\MsSql7Dialect.cs" /> <Compile Include="Dialect\MySQLDialect.cs" /> - <Compile Include="Dialect\Oracle9Dialect.cs" /> - <Compile Include="Dialect\OracleDialect.cs" /> <Compile Include="Dialect\PostgreSQLDialect.cs" /> <Compile Include="Dialect\SQLiteDialect.cs" /> <Compile Include="Dialect\SybaseDialect.cs" /> Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -21,8 +21,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is MsSql2000Dialect || dialect is FirebirdDialect || dialect is Oracle9Dialect - || dialect is Oracle8iDialect; + return dialect is MsSql2000Dialect || dialect is FirebirdDialect || dialect is Oracle8iDialect; } [Test] Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -17,7 +17,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is MsSql2000Dialect || dialect is Oracle9Dialect || dialect is Oracle8iDialect; + return dialect is MsSql2000Dialect || dialect is Oracle8iDialect; } } } Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -17,7 +17,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is MsSql2000Dialect || dialect is Oracle9Dialect || dialect is Oracle8iDialect; + return dialect is MsSql2000Dialect || dialect is Oracle8iDialect; } protected override string CacheConcurrencyStrategy Modified: trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -20,11 +20,11 @@ notSupportedStandardFunction.Add("locate", new[] { typeof(MsSql2000Dialect), typeof(MsSql2005Dialect), typeof(MsSql2008Dialect) ,typeof(FirebirdDialect), typeof(PostgreSQLDialect) }); notSupportedStandardFunction.Add("bit_length", - new[] { typeof(MsSql2000Dialect), typeof(MsSql2005Dialect), typeof(MsSql2008Dialect), typeof(Oracle9Dialect), typeof(OracleDialect), typeof(Oracle8iDialect), typeof(Oracle9iDialect), typeof(Oracle10gDialect) }); + new[] { typeof(MsSql2000Dialect), typeof(MsSql2005Dialect), typeof(MsSql2008Dialect), typeof(Oracle8iDialect), typeof(Oracle9iDialect), typeof(Oracle10gDialect) }); notSupportedStandardFunction.Add("extract", new[] { typeof(MsSql2000Dialect), typeof(MsSql2005Dialect), typeof(MsSql2008Dialect) }); notSupportedStandardFunction.Add("nullif", - new[] { typeof(OracleDialect), typeof(Oracle8iDialect)}); + new[] { typeof(Oracle8iDialect)}); } private bool IsOracleDialect() Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -2518,7 +2518,7 @@ // TODO: figure out why this is throwing an ORA-1722 error // probably the conversion ProxyArray.id (to_number ensuring a not null value) - if (!(Dialect is Oracle9Dialect) && !(Dialect is Oracle8iDialect)) + if (!(Dialect is Oracle8iDialect)) { s.CreateQuery( "select count(*) from Bar as bar join bar.Component.Glarch.ProxyArray as g where cast(g.id as Int32) in indices(bar.Baz.FooArray)"). Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -59,7 +59,7 @@ Assert.AreEqual(1, s.CreateQuery("select count(*) from s in class Simple").List().Count); - if (Dialect is Oracle9Dialect) + if (Dialect is Oracle8iDialect) { // Check Oracle Dialect mix of dialect functions - no args (no parenthesis and single arg functions IList rset = s.CreateQuery("select s.Name, sysdate, trunc(s.Pay), round(s.Pay) from s in class Simple").List(); @@ -129,8 +129,8 @@ [Test] public void Broken() { - if (Dialect is Oracle9Dialect) - return; + if (Dialect is Oracle8iDialect) + Assert.Ignore("Does not apply to " + typeof(Oracle8iDialect).FullName); ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/SQLLoaderTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Legacy/SQLLoaderTest.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/Legacy/SQLLoaderTest.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -34,7 +34,7 @@ [Test] public void TS() { - if (Dialect is Oracle9Dialect) + if (Dialect is Oracle8iDialect) { return; } @@ -57,7 +57,7 @@ [Test] public void TSNamed() { - if (Dialect is Oracle9Dialect) + if (Dialect is Oracle8iDialect) { return; } Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryTypeFixture.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -77,7 +77,7 @@ [Test] public void InsertZeroLength() { - if (Dialect is Oracle9Dialect || Dialect is Oracle8iDialect) + if (Dialect is Oracle8iDialect) { Assert.Ignore("Certain drivers (ie - Oralce) don't handle writing and reading byte[0]"); } Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/DoubleTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/DoubleTypeFixture.cs 2009-05-18 21:32:58 UTC (rev 4341) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/DoubleTypeFixture.cs 2009-05-18 21:56:51 UTC (rev 4342) @@ -21,7 +21,7 @@ protected override void OnSetUp() { base.OnSetUp(); - if (Dialect is Oracle9Dialect || Dialect is Oracle8iDialect) + if (Dialect is Oracle8iDialect) { _values[0] = 1.5e20; _values[1] = 1.2e-20; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 21:33:05
|
Revision: 4341 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4341&view=rev Author: fabiomaulo Date: 2009-05-18 21:32:58 +0000 (Mon, 18 May 2009) Log Message: ----------- Minor (removed warn on XML comment) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs Modified: trunk/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs 2009-05-18 21:29:16 UTC (rev 4340) +++ trunk/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs 2009-05-18 21:32:58 UTC (rev 4341) @@ -30,7 +30,7 @@ public object Id { get; private set; } /// <summary> - /// The persister for the <see cref="Entity">. + /// The persister for the <see cref="Entity"/>. /// </summary> public IEntityPersister Persister { get; private set; } Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs 2009-05-18 21:29:16 UTC (rev 4340) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs 2009-05-18 21:32:58 UTC (rev 4341) @@ -50,7 +50,7 @@ } /// <summary> - /// Count the number of child nodes (including DOWNs & UPs) of a parent node + /// Count the number of child nodes (including DOWNs and UPs) of a parent node /// </summary> /// <param name="parentIndex">The index of the parent in the node array</param> /// <returns>The number of child nodes</returns> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 21:29:22
|
Revision: 4340 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4340&view=rev Author: fabiomaulo Date: 2009-05-18 21:29:16 +0000 (Mon, 18 May 2009) Log Message: ----------- Minor (removed warn on XML comment) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs 2009-05-18 21:27:23 UTC (rev 4339) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/HqlSqlWalkerTreeNodeStream.cs 2009-05-18 21:29:16 UTC (rev 4340) @@ -13,7 +13,7 @@ : base(adaptor, tree, initialBufferSize) {} /// <summary> - /// Insert a new node into both the Tree and the Node Array. Add DOWN & UP nodes if needed + /// Insert a new node into both the Tree and the Node Array. Add DOWN and UP nodes if needed. /// </summary> /// <param name="parent">The parent node</param> /// <param name="child">The child node</param> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-18 21:27:29
|
Revision: 4339 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4339&view=rev Author: fabiomaulo Date: 2009-05-18 21:27:23 +0000 (Mon, 18 May 2009) Log Message: ----------- Minor (removed warn because CLSCompliant) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTErrorNode.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTErrorNode.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTErrorNode.cs 2009-05-18 21:23:51 UTC (rev 4338) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTErrorNode.cs 2009-05-18 21:27:23 UTC (rev 4339) @@ -1,7 +1,9 @@ -using Antlr.Runtime; +using System; +using Antlr.Runtime; namespace NHibernate.Hql.Ast.ANTLR.Tree { + [CLSCompliant(false)] public class ASTErrorNode : ASTNode { public ASTErrorNode(ITokenStream input, IToken start, IToken stop, RecognitionException e) : base(start) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |