diff --git a/build-support/integrationtest_db.sql b/build-support/integrationtest_db.sql
new file mode 100644
index 00000000..a2820635
--- /dev/null
+++ b/build-support/integrationtest_db.sql
@@ -0,0 +1,99 @@
+create database Credits
+GO
+CREATE TABLE [Credits](
+ [CreditID] [int] IDENTITY NOT NULL,
+ [CreditAmount] [float] NOT NULL,
+ CONSTRAINT [PK_CreditID] PRIMARY KEY CLUSTERED
+ (
+ [CreditID] ASC
+ )
+)
+go
+
+create database Debits
+GO
+CREATE TABLE [Debits](
+ [DebitID] [int] IDENTITY NOT NULL,
+ [DebitAmount] [float] NOT NULL,
+ CONSTRAINT [PK_DebitID] PRIMARY KEY CLUSTERED
+ (
+ [DebitID] ASC
+ ) ON [PRIMARY]
+)
+GO
+
+create database CreditsAndDebits
+GO
+CREATE TABLE [Debits](
+ [DebitID] [int] IDENTITY NOT NULL,
+ [DebitAmount] [float] NOT NULL,
+ CONSTRAINT [PK_DebitID] PRIMARY KEY CLUSTERED
+ (
+ [DebitID] ASC
+ ) ON [PRIMARY]
+)
+CREATE TABLE [Credits](
+ [CreditID] [int] IDENTITY NOT NULL,
+ [CreditAmount] [float] NOT NULL,
+ CONSTRAINT [PK_CreditID] PRIMARY KEY CLUSTERED
+ (
+ [CreditID] ASC
+ )
+)
+GO
+
+create database Spring
+GO
+CREATE TABLE [Debits](
+ [DebitID] [int] IDENTITY NOT NULL,
+ [DebitAmount] [float] NOT NULL,
+ CONSTRAINT [PK_DebitID] PRIMARY KEY CLUSTERED
+ (
+ [DebitID] ASC
+ ) ON [PRIMARY]
+)
+CREATE TABLE [Credits](
+ [CreditID] [int] IDENTITY NOT NULL,
+ [CreditAmount] [float] NOT NULL,
+ CONSTRAINT [PK_CreditID] PRIMARY KEY CLUSTERED
+ (
+ [CreditID] ASC
+ )
+)
+CREATE TABLE [dbo].[TestObjects](
+ [TestObjectNo] [int] IDENTITY(1,1) NOT NULL,
+ [Age] [int] NOT NULL,
+ [Name] [nvarchar](1024) NULL,
+ CONSTRAINT [TestObjectNo] PRIMARY KEY CLUSTERED
+ (
+ [TestObjectNo] ASC
+ )
+)
+
+create database Spring2
+GO
+CREATE TABLE [Debits](
+ [DebitID] [int] IDENTITY NOT NULL,
+ [DebitAmount] [float] NOT NULL,
+ CONSTRAINT [PK_DebitID] PRIMARY KEY CLUSTERED
+ (
+ [DebitID] ASC
+ ) ON [PRIMARY]
+)
+CREATE TABLE [Credits](
+ [CreditID] [int] IDENTITY NOT NULL,
+ [CreditAmount] [float] NOT NULL,
+ CONSTRAINT [PK_CreditID] PRIMARY KEY CLUSTERED
+ (
+ [CreditID] ASC
+ )
+)
+CREATE TABLE [dbo].[TestObjects](
+ [TestObjectNo] [int] IDENTITY(1,1) NOT NULL,
+ [Age] [int] NOT NULL,
+ [Name] [nvarchar](1024) NULL,
+ CONSTRAINT [TestObjectNo] PRIMARY KEY CLUSTERED
+ (
+ [TestObjectNo] ASC
+ )
+)
diff --git a/build-support/solutions/Spring.Net.NHibernate.sln b/build-support/solutions/Spring.Net.NHibernate.sln
new file mode 100644
index 00000000..97f8ad07
--- /dev/null
+++ b/build-support/solutions/Spring.Net.NHibernate.sln
@@ -0,0 +1,127 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F04753EF-7A1B-4837-AB63-8C0821E8155D}"
+ ProjectSection(SolutionItems) = preProject
+ Spring.build = Spring.build
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Core.2008", "..\..\src\Spring\Spring.Core\Spring.Core.2008.csproj", "{710961A3-0DF4-49E4-A26E-F5B9C044AC84}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Aop.2008", "..\..\src\Spring\Spring.Aop\Spring.Aop.2008.csproj", "{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.2008", "..\..\src\Spring\Spring.Data\Spring.Data.2008.csproj", "{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.Tests.2008", "..\..\test\Spring\Spring.Data.Tests\Spring.Data.Tests.2008.csproj", "{ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Core.Tests.2008", "..\..\test\Spring\Spring.Core.Tests\Spring.Core.Tests.2008.csproj", "{44B16BAA-6DF8-447C-9D7F-3AD3D854D904}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate.2008", "..\..\src\Spring\Spring.Data.NHibernate\Spring.Data.NHibernate.2008.csproj", "{130E1609-45A7-4F65-B112-105F2DD3E2CE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate.Tests.2008", "..\..\test\Spring\Spring.Data.NHibernate.Tests\Spring.Data.NHibernate.Tests.2008.csproj", "{94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Data.NHibernate.Integration.Tests.2008", "..\..\test\Spring\Spring.Data.NHibernate.Integration.Tests\Spring.Data.NHibernate.Integration.Tests.2008.csproj", "{4A07E150-ED90-407C-8CAD-4760444DDFD9}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|.NET = Debug|.NET
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Release|.NET = Release|.NET
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|.NET.Build.0 = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|.NET.ActiveCfg = Release|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|.NET.Build.0 = Release|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Any CPU.Build.0 = Release|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {710961A3-0DF4-49E4-A26E-F5B9C044AC84}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|.NET.Build.0 = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|.NET.ActiveCfg = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|.NET.Build.0 = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {3A3A4E65-45A6-4B20-B460-0BEDC302C02C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|.NET.Build.0 = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|.NET.ActiveCfg = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|.NET.Build.0 = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {AE00E5AB-C39A-436F-86D2-33BFE33E2E40}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|.NET.ActiveCfg = Release|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {ACD39D47-1811-40FA-9E7E-5DEA5B9CE6C0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|.NET.ActiveCfg = Release|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Any CPU.Build.0 = Release|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {44B16BAA-6DF8-447C-9D7F-3AD3D854D904}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Release|.NET.ActiveCfg = Release|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {130E1609-45A7-4F65-B112-105F2DD3E2CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|.NET.ActiveCfg = Release|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {94E4E1B4-D424-4EB9-BF34-2EE8CC3D7048}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Debug|.NET.ActiveCfg = Debug|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|.NET.ActiveCfg = Release|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4A07E150-ED90-407C-8CAD-4760444DDFD9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ NAntAddinLastFileName = Spring.build
+ EndGlobalSection
+EndGlobal
diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Support/SessionScope.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Support/SessionScope.cs
index 14bf33f9..b5af0288 100644
--- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Support/SessionScope.cs
+++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/Support/SessionScope.cs
@@ -412,8 +412,8 @@ namespace Spring.Data.NHibernate.Support
{
// single session mode
if (isLogDebugEnabled) log.Debug("Closing single Hibernate Session in SessionScope");
- TransactionSynchronizationManager.UnbindResource(SessionFactory);
- LazySessionHolder.Current.Close();
+ LazySessionHolder holder = (LazySessionHolder)TransactionSynchronizationManager.UnbindResource(SessionFactory);
+ holder.Close();
}
else
{
@@ -448,8 +448,6 @@ namespace Spring.Data.NHibernate.Support
///
private class LazySessionHolder : SessionHolder
{
- private static readonly string ThreadDataSlotKey = UniqueKey.GetTypeScopedString(typeof(LazySessionHolder), "Current");
-
private readonly ILog log = LogManager.GetLogger(typeof(LazySessionHolder));
private SessionScope owner;
private ISession session;
@@ -461,16 +459,6 @@ namespace Spring.Data.NHibernate.Support
{
if (log.IsDebugEnabled) log.Debug("Created LazySessionHolder");
this.owner = owner;
- Current = this;
- }
-
- ///
- /// Gets or sets the LazySessionHolder instance for the current request
- ///
- public static LazySessionHolder Current
- {
- get { return (LazySessionHolder) LogicalThreadContext.GetData(ThreadDataSlotKey); }
- set { LogicalThreadContext.SetData(ThreadDataSlotKey, value); }
}
///
@@ -492,7 +480,6 @@ namespace Spring.Data.NHibernate.Support
public void Close()
{
owner = null;
- Current = null;
if (session != null)
{
ISession tmpSession = session;
diff --git a/src/Spring/Spring.Data.NHibernate/Spring.Data.NHibernate.2008.csproj b/src/Spring/Spring.Data.NHibernate/Spring.Data.NHibernate.2008.csproj
index a9200b07..624bfc32 100644
--- a/src/Spring/Spring.Data.NHibernate/Spring.Data.NHibernate.2008.csproj
+++ b/src/Spring/Spring.Data.NHibernate/Spring.Data.NHibernate.2008.csproj
@@ -2,7 +2,7 @@
Debug
AnyCPU
- 9.0.21022
+ 9.0.30729
2.0
{130E1609-45A7-4F65-B112-105F2DD3E2CE}
Library
@@ -93,10 +93,6 @@
{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}
Spring.Data.2008
-
- {BA4789EB-281A-48EA-8763-28B9F0596A18}
- Spring.Web.2008
-