diff --git a/BreakingChanges.txt b/BreakingChanges.txt index 0d66a73f..3414d36c 100644 --- a/BreakingChanges.txt +++ b/BreakingChanges.txt @@ -1,14 +1,11 @@ Changes (1.3.2 to 2.0) ======================== -1. Default transaction isolation level is now IsolationLevel.Unspecified instead of old IsolationLevel.ReadUncommitted - - You need to update your configuration to set the isolation level where old ReadUncommitted was expected, see Spring documentation's Transaction Management chapter - -2. Protected fields were changed to private. Access is now allowed via public/protected property member. +1. Protected fields were changed to private. Access is now allowed via public/protected property member. -3. Most of members marked as Obsolete before 2.0 release were removed. +2. Most of members marked as Obsolete before 2.0 release were removed. -4. DbProvider automatically sets BindByName to true for Oracle's ODP.NET OracleCommand instances when created +3. DbProvider automatically sets BindByName to true for Oracle's ODP.NET OracleCommand instances when created Changes (1.3.1 to 1.3.2) ======================== diff --git a/Spring.Net.2010.sln b/Spring.Net.2010.sln index 5cc8e538..42b41f3f 100644 --- a/Spring.Net.2010.sln +++ b/Spring.Net.2010.sln @@ -108,6 +108,7 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Template.Velocity.Castle.2010", "src\Spring\Spring.Template.Velocity.Castle\Spring.Template.Velocity.Castle.2010.csproj", "{250601C0-A4AC-41FE-B484-51A9B0D5473D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Template.Velocity.Castle.Tests.2010", "test\Spring\Spring.Template.Velocity.Castle.Tests\Spring.Template.Velocity.Castle.Tests.2010.csproj", "{8D6ED392-8A1F-41C0-A765-22CF384EDEA1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests", "test\Spring\Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests\Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.csproj", "{DE276F7C-4564-49EC-AABC-B964EC3D1626}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -578,7 +579,17 @@ Global {8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Any CPU.ActiveCfg = Release|Any CPU {8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Any CPU.Build.0 = Release|Any CPU {8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8D6ED392-8A1F-41C0-A765-22CF384EDEA1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|.NET.ActiveCfg = Debug|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|.NET.ActiveCfg = Release|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Any CPU.Build.0 = Release|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Spring.build b/Spring.build index e010e2ad..87a5ae31 100644 --- a/Spring.build +++ b/Spring.build @@ -540,6 +540,7 @@ Commandline Examples: + @@ -904,6 +905,8 @@ Commandline Examples: + + @@ -1858,6 +1861,7 @@ Commandline Examples: + diff --git a/build-release-all.cmd b/build-release-all.cmd index 1837c845..af5b1337 100644 --- a/build-release-all.cmd +++ b/build-release-all.cmd @@ -7,7 +7,8 @@ cd .. @echo ... @echo Running full Build Script, capturing output to buildlog.txt file... @echo Start Time: %time% -build-support\tools\nant\bin\nant clean package -f:spring.build -D:project.build.sign=true -D:build-ems=true -D:test.integration.ems=false -D:test.integration.data=true -D:mstest.exe="c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\mstest.exe" -D:package.version=2.0.0 -D:nuget.version.suffix=RC2 -D:vs-net.mstest.bin.dir="c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE" -D:skipmstestrun=true > buildlog.txt +build-support\tools\nant\bin\nant clean package -f:spring.build -D:project.build.sign=true -D:build-ems=true -D:test.integration.ems=false -D:test.integration.data=true -D:mstest.exe="c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\mstest.exe" -D:package.version=2.0.0 -D:vs-net.mstest.bin.dir="c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE" -D:skipmstestrun=true > buildlog.txt +rem for reference, package suffix arg = -D:nuget.version.suffix=RC2 @echo . @echo .. @echo ... diff --git a/changelog.txt b/changelog.txt index 4c34cd02..84eae382 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,15 @@ SPRING.NET FRAMEWORK CHANGELOG ============================== http://www.springframework.net +***************************************************************************************** +Release Version 2.0.0 March 27, 2015 + +Release Notes - Spring.NET - Version 2.0.0 + + + + + ***************************************************************************************** Release Version 1.3.2 August 1, 2011 diff --git a/doc/reference/src/transaction.xml b/doc/reference/src/transaction.xml index 108f8bbf..b00e55ed 100644 --- a/doc/reference/src/transaction.xml +++ b/doc/reference/src/transaction.xml @@ -1068,7 +1068,7 @@ mgr.DeleteTwoTestObjects("Jack", "Jill"); No - Unspecified + ReadCommitted The transaction isolation level @@ -1162,7 +1162,7 @@ mgr.DeleteTwoTestObjects("Jack", "Jill"); The isolation level is - IsolationLevel.Unspecified + IsolationLevel.ReadCommitted diff --git a/src/Spring/Spring.Aop/Spring.Aop.nuspec b/src/Spring/Spring.Aop/Spring.Aop.nuspec index 7b818fee..1b0d948d 100644 --- a/src/Spring/Spring.Aop/Spring.Aop.nuspec +++ b/src/Spring/Spring.Aop/Spring.Aop.nuspec @@ -14,7 +14,7 @@ en-US - + diff --git a/src/Spring/Spring.Core/Core/IO/EncodedResource.cs b/src/Spring/Spring.Core/Core/IO/EncodedResource.cs index c1b4a591..ed7e2175 100644 --- a/src/Spring/Spring.Core/Core/IO/EncodedResource.cs +++ b/src/Spring/Spring.Core/Core/IO/EncodedResource.cs @@ -50,7 +50,7 @@ namespace Spring.Core.IO /// Create an encoded resource, autodetecting the encoding from the resource stream. /// /// the resource to read from. Must not be null - /// whether to autoDetect encoding from byte-order marks () + /// whether to autoDetect encoding from byte-order marks () public EncodedResource(IResource resource, bool autoDetectEncoding) :this(resource, null, autoDetectEncoding) { @@ -62,7 +62,7 @@ namespace Spring.Core.IO /// /// the resource to read from. Must not be null /// the encoding to use. If null, encoding will be autodetected. - /// whether to autoDetect encoding from byte-order marks () + /// whether to autoDetect encoding from byte-order marks () public EncodedResource(IResource resource, Encoding encoding, bool autoDetectEncoding) { AssertUtils.ArgumentNotNull(resource, "resource"); @@ -88,7 +88,7 @@ namespace Spring.Core.IO } /// - /// whether to autoDetect encoding from byte-order marks () + /// whether to autoDetect encoding from byte-order marks () /// public bool AutoDetectEncoding { diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/HibernateTxScopeTransactionManager.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/HibernateTxScopeTransactionManager.cs index 9342eee6..fa51c74e 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/HibernateTxScopeTransactionManager.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/HibernateTxScopeTransactionManager.cs @@ -342,10 +342,12 @@ namespace Spring.Data.NHibernate /// protected override bool IsExistingTransaction(object transaction) { - return - ((HibernateTransactionObject)transaction).PromotableTxScopeTransactionObject.TxScopeAdapter. - IsExistingTransaction; - //return ((HibernateTransactionObject) transaction).HasTransaction(); + var hibernateTransactionObject = ((HibernateTransactionObject) transaction); + + var hasExistingPromotableTxScopeTransaction = hibernateTransactionObject.PromotableTxScopeTransactionObject.TxScopeAdapter.IsExistingTransaction; + var hasExistingTransaction = hibernateTransactionObject.HasTransaction(); + + return hasExistingPromotableTxScopeTransaction && hasExistingTransaction; } /// @@ -951,12 +953,14 @@ namespace Spring.Data.NHibernate } */ ISession session = txObject.SessionHolder.Session; + if (txObject.NewSessionHolder) { if (log.IsDebugEnabled) { log.Debug("Closing Hibernate Session [" + session + "] after transaction"); } + SessionFactoryUtils.CloseSessionOrRegisterDeferredClose(session, SessionFactory); } else @@ -970,9 +974,8 @@ namespace Spring.Data.NHibernate session.FlushMode = txObject.SessionHolder.PreviousFlushMode; } } + txObject.SessionHolder.Clear(); - - } private class HibernateTransactionObject : AdoTransactionObjectSupport diff --git a/src/Spring/Spring.Data.NHibernate3/Spring.Data.NHibernate3.nuspec b/src/Spring/Spring.Data.NHibernate3/Spring.Data.NHibernate3.nuspec index 2da6b6e2..adc5c59e 100644 --- a/src/Spring/Spring.Data.NHibernate3/Spring.Data.NHibernate3.nuspec +++ b/src/Spring/Spring.Data.NHibernate3/Spring.Data.NHibernate3.nuspec @@ -15,9 +15,9 @@ - - - + + + diff --git a/src/Spring/Spring.Data.NHibernate4/Spring.Data.NHibernate4.nuspec b/src/Spring/Spring.Data.NHibernate4/Spring.Data.NHibernate4.nuspec index 5281d204..483e5689 100644 --- a/src/Spring/Spring.Data.NHibernate4/Spring.Data.NHibernate4.nuspec +++ b/src/Spring/Spring.Data.NHibernate4/Spring.Data.NHibernate4.nuspec @@ -15,9 +15,9 @@ - - - + + + diff --git a/src/Spring/Spring.Data/Spring.Data.nuspec b/src/Spring/Spring.Data/Spring.Data.nuspec index 42c5c045..c927c461 100644 --- a/src/Spring/Spring.Data/Spring.Data.nuspec +++ b/src/Spring/Spring.Data/Spring.Data.nuspec @@ -14,8 +14,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs b/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs index 186cba68..972c4017 100644 --- a/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs +++ b/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs @@ -68,7 +68,7 @@ namespace Spring.Transaction.Support //TODO Refactoring to sync with Spring 2.0 for nt/enums for various default values. private TransactionPropagation _transactionPropagation = TransactionPropagation.Required; - private IsolationLevel _transactionIsolationLevel = IsolationLevel.Unspecified; + private IsolationLevel _transactionIsolationLevel = IsolationLevel.ReadCommitted; private int _timeout = DefaultTransactionDefinition.TIMEOUT_DEFAULT; private bool _readOnly = false; private string _name = null; diff --git a/src/Spring/Spring.Messaging.Ems/Messaging/Ems/Connections/EmsTransactionManager.cs b/src/Spring/Spring.Messaging.Ems/Messaging/Ems/Connections/EmsTransactionManager.cs index 48452f56..efa3ea9f 100644 --- a/src/Spring/Spring.Messaging.Ems/Messaging/Ems/Connections/EmsTransactionManager.cs +++ b/src/Spring/Spring.Messaging.Ems/Messaging/Ems/Connections/EmsTransactionManager.cs @@ -169,7 +169,7 @@ namespace Spring.Messaging.Ems.Connections protected override void DoBegin(object transaction, ITransactionDefinition definition) { //This is the default value defined in DefaultTransactionDefinition - if (definition.TransactionIsolationLevel != IsolationLevel.Unspecified) + if (definition.TransactionIsolationLevel != IsolationLevel.ReadCommitted) { throw new InvalidIsolationLevelException("EMS does not support an isoliation level concept"); } diff --git a/src/Spring/Spring.Messaging.Ems/Spring.Messaging.Ems.nuspec b/src/Spring/Spring.Messaging.Ems/Spring.Messaging.Ems.nuspec index 758ec2b8..486804ad 100644 --- a/src/Spring/Spring.Messaging.Ems/Spring.Messaging.Ems.nuspec +++ b/src/Spring/Spring.Messaging.Ems/Spring.Messaging.Ems.nuspec @@ -14,8 +14,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/NmsTransactionManager.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/NmsTransactionManager.cs index cb4afc48..fd6542fe 100644 --- a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/NmsTransactionManager.cs +++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Connections/NmsTransactionManager.cs @@ -186,7 +186,7 @@ namespace Spring.Messaging.Nms.Connections protected override void DoBegin(object transaction, ITransactionDefinition definition) { //This is the default value defined in DefaultTransactionDefinition - if (definition.TransactionIsolationLevel != IsolationLevel.Unspecified) + if (definition.TransactionIsolationLevel != IsolationLevel.ReadCommitted) { throw new InvalidIsolationLevelException("NMS does not support an isoliation level concept"); } diff --git a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.nuspec b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.nuspec index 14a59d37..dd225659 100644 --- a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.nuspec +++ b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.nuspec @@ -15,8 +15,8 @@ - - + + diff --git a/src/Spring/Spring.Messaging/Spring.Messaging.nuspec b/src/Spring/Spring.Messaging/Spring.Messaging.nuspec index 1be161b5..18736da3 100644 --- a/src/Spring/Spring.Messaging/Spring.Messaging.nuspec +++ b/src/Spring/Spring.Messaging/Spring.Messaging.nuspec @@ -14,8 +14,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Scheduling.Quartz2/Spring.Scheduling.Quartz2.nuspec b/src/Spring/Spring.Scheduling.Quartz2/Spring.Scheduling.Quartz2.nuspec index fe5295cb..949adb9f 100644 --- a/src/Spring/Spring.Scheduling.Quartz2/Spring.Scheduling.Quartz2.nuspec +++ b/src/Spring/Spring.Scheduling.Quartz2/Spring.Scheduling.Quartz2.nuspec @@ -15,8 +15,8 @@ - - + + diff --git a/src/Spring/Spring.Services/Spring.Services.nuspec b/src/Spring/Spring.Services/Spring.Services.nuspec index ea9b7135..8c6f2b86 100644 --- a/src/Spring/Spring.Services/Spring.Services.nuspec +++ b/src/Spring/Spring.Services/Spring.Services.nuspec @@ -14,7 +14,7 @@ en-US - + diff --git a/src/Spring/Spring.Template.Velocity.Castle/Spring.Template.Velocity.Castle.2010.csproj b/src/Spring/Spring.Template.Velocity.Castle/Spring.Template.Velocity.Castle.2010.csproj index 99cbac0a..1706c6e7 100644 --- a/src/Spring/Spring.Template.Velocity.Castle/Spring.Template.Velocity.Castle.2010.csproj +++ b/src/Spring/Spring.Template.Velocity.Castle/Spring.Template.Velocity.Castle.2010.csproj @@ -116,11 +116,11 @@ - \ No newline at end of file diff --git a/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.nuspec b/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.nuspec index e2799c02..970248c9 100644 --- a/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.nuspec +++ b/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.nuspec @@ -14,7 +14,7 @@ - + diff --git a/src/Spring/Spring.Testing.Microsoft/Spring.Testing.Microsoft.nuspec b/src/Spring/Spring.Testing.Microsoft/Spring.Testing.Microsoft.nuspec index 126a2bb0..5eeaa665 100644 --- a/src/Spring/Spring.Testing.Microsoft/Spring.Testing.Microsoft.nuspec +++ b/src/Spring/Spring.Testing.Microsoft/Spring.Testing.Microsoft.nuspec @@ -14,8 +14,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Testing.NUnit/Spring.Testing.NUnit.nuspec b/src/Spring/Spring.Testing.NUnit/Spring.Testing.NUnit.nuspec index 3c072084..e642198e 100644 --- a/src/Spring/Spring.Testing.NUnit/Spring.Testing.NUnit.nuspec +++ b/src/Spring/Spring.Testing.NUnit/Spring.Testing.NUnit.nuspec @@ -15,8 +15,8 @@ - - + + diff --git a/src/Spring/Spring.Web.Conversation.NHibernate3/Spring.Web.Conversation.NHibernate3.nuspec b/src/Spring/Spring.Web.Conversation.NHibernate3/Spring.Web.Conversation.NHibernate3.nuspec index 9d3839e8..e0e11b8d 100644 --- a/src/Spring/Spring.Web.Conversation.NHibernate3/Spring.Web.Conversation.NHibernate3.nuspec +++ b/src/Spring/Spring.Web.Conversation.NHibernate3/Spring.Web.Conversation.NHibernate3.nuspec @@ -13,7 +13,7 @@ en-US - + diff --git a/src/Spring/Spring.Web.Extensions/Spring.Web.Extensions.nuspec b/src/Spring/Spring.Web.Extensions/Spring.Web.Extensions.nuspec index ed851405..27976968 100644 --- a/src/Spring/Spring.Web.Extensions/Spring.Web.Extensions.nuspec +++ b/src/Spring/Spring.Web.Extensions/Spring.Web.Extensions.nuspec @@ -13,8 +13,8 @@ Interfaces and classes that provide ASP.NET AJAX 1.0 support in Spring.Net en-US - - + + diff --git a/src/Spring/Spring.Web.Mvc3/Spring.Web.Mvc3.nuspec b/src/Spring/Spring.Web.Mvc3/Spring.Web.Mvc3.nuspec index aa17705a..e32b19de 100644 --- a/src/Spring/Spring.Web.Mvc3/Spring.Web.Mvc3.nuspec +++ b/src/Spring/Spring.Web.Mvc3/Spring.Web.Mvc3.nuspec @@ -13,8 +13,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Web.Mvc4/Spring.Web.Mvc4.nuspec b/src/Spring/Spring.Web.Mvc4/Spring.Web.Mvc4.nuspec index 9c25340e..8d5b4ed0 100644 --- a/src/Spring/Spring.Web.Mvc4/Spring.Web.Mvc4.nuspec +++ b/src/Spring/Spring.Web.Mvc4/Spring.Web.Mvc4.nuspec @@ -13,8 +13,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Web.Mvc5/Spring.Web.Mvc5.nuspec b/src/Spring/Spring.Web.Mvc5/Spring.Web.Mvc5.nuspec index b310a20f..56678030 100644 --- a/src/Spring/Spring.Web.Mvc5/Spring.Web.Mvc5.nuspec +++ b/src/Spring/Spring.Web.Mvc5/Spring.Web.Mvc5.nuspec @@ -13,8 +13,8 @@ en-US - - + + diff --git a/src/Spring/Spring.Web/Spring.Web.nuspec b/src/Spring/Spring.Web/Spring.Web.nuspec index e5daebcc..28f894b1 100644 --- a/src/Spring/Spring.Web/Spring.Web.nuspec +++ b/src/Spring/Spring.Web/Spring.Web.nuspec @@ -14,7 +14,7 @@ en-US - + diff --git a/test/Spring/Spring.Data.Integration.Tests/Data/Spring.Data.Integration.Tests_Spring_database.sql b/test/Spring/Spring.Data.Integration.Tests/Data/Spring.Data.Integration.Tests_Spring_database.sql index 50b2b976..c5464272 100644 Binary files a/test/Spring/Spring.Data.Integration.Tests/Data/Spring.Data.Integration.Tests_Spring_database.sql and b/test/Spring/Spring.Data.Integration.Tests/Data/Spring.Data.Integration.Tests_Spring_database.sql differ diff --git a/test/Spring/Spring.Data.NHibernate4.Integration.Tests/AssemblyInfo.cs b/test/Spring/Spring.Data.NHibernate4.Integration.Tests/AssemblyInfo.cs index 74c9ff94..f2e9bd31 100644 --- a/test/Spring/Spring.Data.NHibernate4.Integration.Tests/AssemblyInfo.cs +++ b/test/Spring/Spring.Data.NHibernate4.Integration.Tests/AssemblyInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyTitle("Spring.Data.NHibernate3 Integration Tests")] -[assembly: AssemblyDescription("Integration tests for Spring.Data.NHibernate3 assembly")] +[assembly: AssemblyTitle("Spring.Data.NHibernate4 Integration Tests")] +[assembly: AssemblyDescription("Integration tests for Spring.Data.NHibernate4 assembly")] diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/App.config b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/App.config new file mode 100644 index 00000000..3feb6038 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/App.config @@ -0,0 +1,64 @@ + + + + +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Container.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Container.cs new file mode 100644 index 00000000..981767a2 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Container.cs @@ -0,0 +1,10 @@ +using System; + +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + public class Container : IContainer + { + public Guid Id { get; set; } + public string Name { get; set; } + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/HibernateTxScopeTransactionManagerNestedTransactionSuspensionTests.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/HibernateTxScopeTransactionManagerNestedTransactionSuspensionTests.cs new file mode 100644 index 00000000..55e05c9a --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/HibernateTxScopeTransactionManagerNestedTransactionSuspensionTests.cs @@ -0,0 +1,49 @@ +using NUnit.Framework; + +using Spring.Testing.NUnit; + +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + [TestFixture] + public class HibernateTxScopeTransactionManagerNestedTransactionSuspensionTests : AbstractTransactionalSpringContextTests + { + #region DI + + public IService1 Service1 { get; set; } + public IService2 Service2 { get; set; } + + #endregion + + protected override string[] ConfigLocations + { + get + { + return new[] + { + "config://spring/objects", + "assembly://Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Configuration.xml", + "assembly://Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.NHibernate.xml", + "assembly://Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.HibernateTxScopeTransactionManager.xml" + }; + } + } + + [Test] + public void CanSuspendTransactionOnNotSupported() + { + Service1.ServiceMethodWithNotSupported1(); + } + + [Test] + public void CanSuspendTransactionOnNotSupportedWithNestedRequiresNew() + { + Service2.ServiceMethodWithNotSupported(); + } + + [Test] + public void CanSuspendTransactionOnNotSupportedWithNestedRequired() + { + Service1.ServiceMethodWithNotSupported3(); + } + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IContainer.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IContainer.cs new file mode 100644 index 00000000..82264794 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IContainer.cs @@ -0,0 +1,10 @@ +using System; + +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + public interface IContainer + { + Guid Id { get; set; } + string Name { get; set; } + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService1.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService1.cs new file mode 100644 index 00000000..330273be --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService1.cs @@ -0,0 +1,15 @@ +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + public interface IService1 + { + void ServiceMethodWithNotSupported1(); + + void ServiceMethodWithNotSupported2(); + + void ServiceMethodWithNotSupported3(); + + void ServiceMethodWithNotSupported4(); + + void ServiceMethodWithRequired(); + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService2.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService2.cs new file mode 100644 index 00000000..c0499435 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/IService2.cs @@ -0,0 +1,9 @@ +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + public interface IService2 + { + void ServiceMethodWithNotSupported(); + + void ServiceMethodWithRequiresNew(); + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Mappings.hbm.xml b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Mappings.hbm.xml new file mode 100644 index 00000000..f90a7070 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Mappings.hbm.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Properties/AssemblyInfo.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..53078829 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,4 @@ +using System.Reflection; + +[assembly: AssemblyTitle("Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests")] +[assembly: AssemblyDescription("Integration tests for HibernteTxScopeTransactionManager suspension of transactions")] diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service1.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service1.cs new file mode 100644 index 00000000..c0ff827d --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service1.cs @@ -0,0 +1,45 @@ +using Spring.Data.NHibernate.Generic; +using Spring.Transaction; + +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + [Transaction.Interceptor.Transaction(TransactionPropagation.Supports, ReadOnly = true)] + public class Service1 : IService1 + { + #region DI + + public HibernateTemplate HibernateTemplate { get; set; } + + #endregion + + [Transaction.Interceptor.Transaction(TransactionPropagation.NotSupported)] + public virtual void ServiceMethodWithNotSupported1() + { + ServiceMethodWithNotSupported2(); + } + + [Transaction.Interceptor.Transaction(TransactionPropagation.NotSupported)] + public virtual void ServiceMethodWithNotSupported2() + { + // do some stuff + } + + [Transaction.Interceptor.Transaction(TransactionPropagation.NotSupported)] + public virtual void ServiceMethodWithNotSupported3() + { + ServiceMethodWithNotSupported4(); + } + + [Transaction.Interceptor.Transaction(TransactionPropagation.NotSupported)] + public virtual void ServiceMethodWithNotSupported4() + { + ServiceMethodWithRequired(); + } + + [Transaction.Interceptor.Transaction(TransactionPropagation.Required)] + public virtual void ServiceMethodWithRequired() + { + // do some stuff + } + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service2.cs b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service2.cs new file mode 100644 index 00000000..968e92e2 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Service2.cs @@ -0,0 +1,27 @@ +using Spring.Data.NHibernate.Generic; +using Spring.Transaction; + +namespace Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests +{ + [Transaction.Interceptor.Transaction(TransactionPropagation.Supports, ReadOnly = true)] + public class Service2 : IService2 + { + #region DI + + public HibernateTemplate HibernateTemplate { get; set; } + + #endregion + + [Transaction.Interceptor.Transaction(TransactionPropagation.NotSupported)] + public virtual void ServiceMethodWithNotSupported() + { + ServiceMethodWithRequiresNew(); + } + + [Transaction.Interceptor.Transaction(TransactionPropagation.RequiresNew)] + public virtual void ServiceMethodWithRequiresNew() + { + // do stuff + } + } +} diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Configuration.xml b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Configuration.xml new file mode 100644 index 00000000..ae0bbe88 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Configuration.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + *Service* + + + + + transactionAdvice + + + + + + + + + + + + diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.build b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.build new file mode 100644 index 00000000..5f18d163 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.build @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.csproj b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.csproj new file mode 100644 index 00000000..c329d390 --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests.csproj @@ -0,0 +1,108 @@ + + + + + Debug + AnyCPU + {DE276F7C-4564-49EC-AABC-B964EC3D1626} + Library + Properties + Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests + Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests + v4.5 + 512 + + + true + full + false + ..\..\..\build\VS.Net.2010\Spring.Data.NestedTxSuspension.Integration.Tests\Debug\ + TRACE;DEBUG;NET_4_0 + prompt + 4 + + + pdbonly + true + ..\..\..\build\VS.Net.2010\Spring.Data.NestedTxSuspension.Integration.Tests\Release\ + TRACE;NET_4_0 + prompt + 4 + + + + False + ..\..\..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll + + + False + ..\..\..\packages\Common.Logging.Core.3.0.0\lib\net40\Common.Logging.Core.dll + + + ..\..\..\packages\NHibernate.4.0.3.4000\lib\net40\NHibernate.dll + + + False + ..\..\..\packages\NUnit.2.6.3\lib\nunit.framework.dll + + + + + + + + + + + + + + + + + + + + + + + {3a3a4e65-45a6-4b20-b460-0bedc302c02c} + Spring.Aop.2010 + + + {710961A3-0DF4-49E4-A26E-F5B9C044AC84} + Spring.Core.2010 + + + {d9c45177-0d80-4133-ab46-58f142db92aa} + Spring.Data.NHibernate4.2010 + + + {ae00e5ab-c39a-436f-86d2-33bfe33e2e40} + Spring.Data.2010 + + + {ed204a7b-832f-44c7-bfe3-504aebe1bcc8} + Spring.Testing.NUnit.2010 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.HibernateTxScopeTransactionManager.xml b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.HibernateTxScopeTransactionManager.xml new file mode 100644 index 00000000..d4d6fa3b --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.HibernateTxScopeTransactionManager.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.NHibernate.xml b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.NHibernate.xml new file mode 100644 index 00000000..52829b7b --- /dev/null +++ b/test/Spring/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.NHibernate.xml @@ -0,0 +1,41 @@ + + + Dependency Injection for NHibernate Session + + + + + + + + + + + + + + + + + + + + + + + + + + + assembly://Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Spring.Data.NHibernate4.NestedTxSuspension.Integration.Tests/Mappings.hbm.xml + + + + + + + + + + + \ No newline at end of file diff --git a/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs index 3fd24f13..15748226 100644 --- a/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs @@ -45,7 +45,7 @@ namespace Spring.Data public class AdoPlatformTransactionManagerTests { private MockRepository mocks; - private IsolationLevel _defaultIsolationLevel = IsolationLevel.Unspecified; + private const IsolationLevel DefaultIsolationLevel = IsolationLevel.ReadCommitted; [SetUp] public void Setup() @@ -75,7 +75,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -116,7 +116,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -166,7 +166,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -238,7 +238,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection).Repeat.Twice(); connection.Open(); LastCall.On(connection).Repeat.Twice(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction).Repeat.Twice(); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction).Repeat.Twice(); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -280,7 +280,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); transaction.Commit(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); @@ -292,7 +292,7 @@ namespace Spring.Data Expect.Call(dbProvider2.CreateConnection()).Return(connection2); connection2.Open(); LastCall.On(connection2).Repeat.Once(); - Expect.Call(connection2.BeginTransaction(_defaultIsolationLevel)).Return(transaction2); + Expect.Call(connection2.BeginTransaction(DefaultIsolationLevel)).Return(transaction2); transaction2.Rollback(); LastCall.On(transaction2).Repeat.Once(); connection2.Dispose(); @@ -335,7 +335,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); @@ -395,7 +395,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -431,7 +431,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -482,7 +482,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection2); connection2.Open(); LastCall.On(connection2).Repeat.Once(); - Expect.Call(connection2.BeginTransaction(_defaultIsolationLevel)).Return(transaction2); + Expect.Call(connection2.BeginTransaction(DefaultIsolationLevel)).Return(transaction2); transaction2.Commit(); LastCall.On(transaction2).Repeat.Once(); connection2.Dispose(); @@ -573,7 +573,7 @@ namespace Spring.Data connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); Expect.Call(connection.CreateCommand()).Return(command); command.CommandText = "some SQL statement"; LastCall.On(command).Repeat.Once(); @@ -674,7 +674,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -717,7 +717,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); transaction.Commit(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -763,7 +763,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -877,7 +877,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -923,7 +923,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -971,7 +971,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); + Expect.Call(connection.BeginTransaction(DefaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); diff --git a/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs index 18e7b12f..6b436ecf 100644 --- a/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs @@ -159,7 +159,7 @@ namespace Spring.Data.Core // inner tx ConfigureServiceConfig(serviceConfig, false); serviceConfig.TransactionOption = TransactionOption.RequiresNew; - serviceConfig.IsolationLevel = TransactionIsolationLevel.Any; + serviceConfig.IsolationLevel = TransactionIsolationLevel.ReadCommitted; txAdapter.Enter(serviceConfig); Expect.Call(txAdapter.IsInTransaction).Return(true); txAdapter.SetAbort(); @@ -204,7 +204,7 @@ namespace Spring.Data.Core if (standardIsolationAndProp) { serviceConfig.TransactionOption = TransactionOption.Required; - serviceConfig.IsolationLevel = TransactionIsolationLevel.Any; + serviceConfig.IsolationLevel = TransactionIsolationLevel.ReadCommitted; } return serviceConfig; diff --git a/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs index c7fae522..c1151c9d 100644 --- a/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs @@ -57,7 +57,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.Unspecified; + txOptions.IsolationLevel = IsolationLevel.ReadCommitted; txAdapter.CreateTransactionScope(TransactionScopeOption.Required, txOptions, EnterpriseServicesInteropOption.None); Expect.Call(txAdapter.RollbackOnly).Return(false); @@ -94,7 +94,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.Unspecified; + txOptions.IsolationLevel = IsolationLevel.ReadCommitted; txAdapter.CreateTransactionScope(TransactionScopeOption.Required, txOptions, EnterpriseServicesInteropOption.None); txAdapter.Dispose(); } @@ -141,7 +141,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.Unspecified; + txOptions.IsolationLevel = IsolationLevel.ReadCommitted; txAdapter.CreateTransactionScope(TransactionScopeOption.RequiresNew, txOptions, EnterpriseServicesInteropOption.None); //inner tx actions diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs index 6a154af5..e43e933d 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs @@ -18,7 +18,7 @@ namespace Spring.Transaction.Interceptor public void ToStringTests() { DefaultTransactionAttribute dta = new DefaultTransactionAttribute(); - Assert.AreEqual( "PROPAGATION_Required,ISOLATION_Unspecified,-System.Exception", dta.ToString()); + Assert.AreEqual( "PROPAGATION_Required,ISOLATION_ReadCommitted,-System.Exception", dta.ToString()); } } } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs index 441c0132..c5e87b5a 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs @@ -34,7 +34,7 @@ namespace Spring.Transaction.Interceptor ITransactionAttribute ta = editor.Value; Assert.IsTrue( ta != null ); Assert.IsTrue( ta.PropagationBehavior == TransactionPropagation.Required ); - Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.Unspecified ); + Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.ReadCommitted ); Assert.IsFalse( ta.ReadOnly ); } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs index 9717d75b..8da00917 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs @@ -59,7 +59,7 @@ namespace Spring.Transaction.Interceptor { ITransactionAttribute ta = tas.ReturnTransactionAttribute( method, null ); Assert.IsTrue( ta != null ); - Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.Unspecified ); + Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.ReadCommitted ); Assert.IsTrue( ta.PropagationBehavior == transactionPropagation); } } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs index 92624b4e..86c3ceb1 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs @@ -20,7 +20,7 @@ namespace Spring.Transaction.Support Assert.IsTrue( 1000 == def.TransactionTimeout ); Assert.IsTrue( false == def.ReadOnly ); def.ReadOnly = true; - Assert.IsTrue( true == def.ReadOnly ); + Assert.IsTrue( def.ReadOnly ); } [Test] public void PropogationBehaviorDefault() @@ -32,7 +32,7 @@ namespace Spring.Transaction.Support public void IsolationLevelDefault() { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); - Assert.IsTrue(def.TransactionIsolationLevel == IsolationLevel.Unspecified); + Assert.IsTrue(def.TransactionIsolationLevel == IsolationLevel.ReadCommitted); } [Test] [ExpectedException(typeof(ArgumentException))] diff --git a/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.2010.csproj b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.2010.csproj index 0052eb8e..5f3087d8 100644 --- a/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.2010.csproj +++ b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.2010.csproj @@ -112,11 +112,11 @@ - \ No newline at end of file diff --git a/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.build b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.build new file mode 100644 index 00000000..320b89a7 --- /dev/null +++ b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.build @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.csproj b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.csproj new file mode 100644 index 00000000..13761b7f --- /dev/null +++ b/test/Spring/Spring.Template.Velocity.Castle.Tests/Spring.Template.Velocity.Castle.Tests.csproj @@ -0,0 +1,98 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8D6ED392-8A1F-41C0-A765-22CF384EDEA1} + Library + Properties + Spring + Spring.Template.Velocity.Castle.Tests + v3.5 + 512 + + + + + true + full + false + ..\..\..\build\VS.NET.2008\Spring.Template.Velocity.Castle.Tests\Debug\ + TRACE;DEBUG;NET_2_0 + prompt + 4 + true + + + + + pdbonly + true + ..\..\..\build\VS.NET.2008\Spring.Template.Velocity.Castle.Tests\Release\ + TRACE;NET_2_0 + prompt + 4 + true + + + + False + ..\..\..\lib\Net\2.0\nunit.framework.dll + + + False + ..\..\..\lib\Net\2.0\NVelocity.dll + + + + + + + + + + + + + + {710961A3-0DF4-49E4-A26E-F5B9C044AC84} + Spring.Core.2008 + + + {BF3AB954-8375-407C-9E98-4C51D8072784} + Spring.Template.Velocity.2008 + + + {44B16BAA-6DF8-447C-9D7F-3AD3D854D904} + Spring.Core.Tests.2008 + + + + + + + + Always + + + + + Always + + + + + + + + + + \ No newline at end of file