Skip to content

Commit

Permalink
Adapters which implement ICloneable will be cloned instead of shared
Browse files Browse the repository at this point in the history
  • Loading branch information
markrendle committed Nov 26, 2011
1 parent 5d230c3 commit 4d69557
Show file tree
Hide file tree
Showing 8 changed files with 268 additions and 189 deletions.
4 changes: 2 additions & 2 deletions CommonAssemblyInfo.cs
Expand Up @@ -19,6 +19,6 @@
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

[assembly: AssemblyVersion("0.11.3.1")]
[assembly: AssemblyFileVersion("0.11.3.1")]
[assembly: AssemblyVersion("0.11.3.2")]
[assembly: AssemblyFileVersion("0.11.3.2")]

429 changes: 252 additions & 177 deletions Simple.Data.Ado/AdoAdapter.cs

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Simple.Data.Ado/Simple.Data.Ado.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Simple.Data.Ado</id>
<version>0.11.3.1</version>
<version>0.11.3.2</version>
<authors>Mark Rendle</authors>
<owners>Mark Rendle</owners>
<description>ADO Adapter for the Simple.Data data access library.</description>
Expand All @@ -12,7 +12,7 @@
<tags>sqlserver database data ado .net40</tags>
<language>en-us</language>
<dependencies>
<dependency id="Simple.Data.Core" version="0.11.3.1" />
<dependency id="Simple.Data.Core" version="0.11.3.2" />
</dependencies>
</metadata>
</package>
4 changes: 2 additions & 2 deletions Simple.Data.Mocking/Simple.Data.Mocking.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>Simple.Data.Mocking</id>
<version>0.11.3.1</version>
<version>0.11.3.2</version>
<authors>Mark Rendle</authors>
<owners>Mark Rendle</owners>
<description>XML-based Mocking adapter for the Simple.Data data access library.</description>
Expand All @@ -12,7 +12,7 @@
<tags>database data .net40</tags>
<language>en-us</language>
<dependencies>
<dependency id="Simple.Data.Ado" version="0.11.3.1" />
<dependency id="Simple.Data.Ado" version="0.11.3.2" />
</dependencies>
</metadata>
</package>
4 changes: 2 additions & 2 deletions Simple.Data.SqlCe40/Simple.Data.SqlCe40.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>Simple.Data.SqlCompact40</id>
<version>0.11.3.1</version>
<version>0.11.3.2</version>
<authors>Mark Rendle</authors>
<owners>Mark Rendle</owners>
<description>SQL Server Compact 4.0 ADO provider for the Simple.Data data access library.</description>
Expand All @@ -12,7 +12,7 @@
<tags>sqlserver compact sqlce database data ado .net40</tags>
<language>en-us</language>
<dependencies>
<dependency id="Simple.Data.Ado" version="0.11.3.1" />
<dependency id="Simple.Data.Ado" version="0.11.3.2" />
</dependencies>
</metadata>
</package>
4 changes: 2 additions & 2 deletions Simple.Data.SqlServer/Simple.Data.SqlServer.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>Simple.Data.SqlServer</id>
<version>0.11.3.1</version>
<version>0.11.3.2</version>
<authors>Mark Rendle</authors>
<owners>Mark Rendle</owners>
<description>SQL Server ADO provider for the Simple.Data data access library.</description>
Expand All @@ -12,7 +12,7 @@
<tags>sqlserver database data ado .net40</tags>
<language>en-us</language>
<dependencies>
<dependency id="Simple.Data.Ado" version="0.11.3.1" />
<dependency id="Simple.Data.Ado" version="0.11.3.2" />
</dependencies>
</metadata>
</package>
6 changes: 5 additions & 1 deletion Simple.Data/CachingAdapterFactory.cs
Expand Up @@ -19,6 +19,7 @@ public CachingAdapterFactory(Composer composer) : base(composer)
}

private readonly ConcurrentDictionary<string, Adapter> _cache = new ConcurrentDictionary<string, Adapter>();

public override Adapter Create(string adapterName, IEnumerable<KeyValuePair<string, object>> settings)
{
List<KeyValuePair<string, object>> mat;
Expand All @@ -34,7 +35,10 @@ public override Adapter Create(string adapterName, IEnumerable<KeyValuePair<stri
hash = HashSettings(adapterName, mat);
}

return _cache.GetOrAdd(hash, _ => DoCreate(adapterName, mat));
var adapter = _cache.GetOrAdd(hash, _ => DoCreate(adapterName, mat));
var cloneable = adapter as ICloneable;
if (cloneable != null) return (Adapter)cloneable.Clone();
return adapter;
}

private static string HashSettings(string adapterName, IEnumerable<KeyValuePair<string, object>> settings)
Expand Down
2 changes: 1 addition & 1 deletion Simple.Data/Simple.Data.nuspec
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Simple.Data.Core</id>
<version>0.11.3.1</version>
<version>0.11.3.2</version>
<authors>Mark Rendle</authors>
<owners>Mark Rendle</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
Expand Down

0 comments on commit 4d69557

Please sign in to comment.