Permalink
Browse files

Merge pull request #1 from kendallb/master

My changes to be pulled in the master repository
  • Loading branch information...
jzablocki committed Apr 30, 2013
2 parents cf8a591 + c6e27a0 commit 17f9baa4296d9077ca28a62a628ef7e73ef054e7
@@ -1,70 +1,79 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>8.0.30703</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{A53FF68E-9029-4652-A59D-F9FFD097C206}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Couchbase.AspNet</RootNamespace>
- <AssemblyName>Couchbase.AspNet</AssemblyName>
- <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="Couchbase">
- <HintPath>..\packages\CouchbaseNetClient.1.1.6\lib\net35\Couchbase.dll</HintPath>
- </Reference>
- <Reference Include="Enyim.Caching">
- <HintPath>..\packages\CouchbaseNetClient.1.1.6\lib\net35\Enyim.Caching.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Configuration" />
- <Reference Include="System.Core" />
- <Reference Include="System.Web" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="OutputCache\CouchbaseOutputCacheProvider.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="CouchbaseClientFactory.cs" />
- <Compile Include="SessionState\CouchbaseSessionStateProvider.cs" />
- <Compile Include="ICouchbaseClientFactory.cs" />
- <Compile Include="ProviderHelper.cs" />
- <Compile Include="Web\CouchbaseHttpApplication.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="packages.config" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{A53FF68E-9029-4652-A59D-F9FFD097C206}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Couchbase.AspNet</RootNamespace>
+ <AssemblyName>Couchbase.AspNet</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SignAssembly>true</SignAssembly>
+ </PropertyGroup>
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>Couchbase.snk</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Couchbase, Version=1.1.4635.18746, Culture=neutral, PublicKeyToken=269b55efb37646d0, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\CouchbaseNetClient.1.1.6\lib\net35\Couchbase.dll</HintPath>
+ </Reference>
+ <Reference Include="Enyim.Caching, Version=1.0.0.0, Culture=neutral, PublicKeyToken=269b55efb37646d0, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\CouchbaseNetClient.1.1.6\lib\net35\Enyim.Caching.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="OutputCache\CouchbaseOutputCacheProvider.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="CouchbaseClientFactory.cs" />
+ <Compile Include="SessionState\CouchbaseSessionStateProvider.cs" />
+ <Compile Include="ICouchbaseClientFactory.cs" />
+ <Compile Include="ProviderHelper.cs" />
+ <Compile Include="Web\CouchbaseHttpApplication.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Couchbase.snk" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
</Project>
Binary file not shown.
@@ -1,45 +1,52 @@
-using System;
-using System.Collections.Specialized;
-using System.Configuration;
-using Enyim.Caching;
-using Couchbase.Configuration;
-
-namespace Couchbase.AspNet
-{
- public sealed class CouchbaseClientFactory : ICouchbaseClientFactory
- {
- public IMemcachedClient Create(string name, NameValueCollection config)
- {
- var sectionName = ProviderHelper.GetAndRemove(config, "section", false);
- if (String.IsNullOrEmpty(sectionName))
- return new CouchbaseClient();
-
- var section = ConfigurationManager.GetSection(sectionName) as ICouchbaseClientConfiguration;
- if (section == null) throw new InvalidOperationException("Invalid config section: " + section);
-
- return new CouchbaseClient(section);
- }
- }
-}
-
-#region [ License information ]
-/* ************************************************************
- *
- * @author Couchbase <info@couchbase.com>
- * @copyright 2012 Couchbase, Inc.
- * @copyright 2012 Attila Kiskó, enyim.com
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ************************************************************/
-#endregion
+using System;
+using System.Collections.Specialized;
+using System.Configuration;
+using Enyim.Caching;
+using Couchbase.Configuration;
+
+namespace Couchbase.AspNet
+{
+ public sealed class CouchbaseClientFactory : ICouchbaseClientFactory
+ {
+ public IMemcachedClient Create(string name, NameValueCollection config, out bool disposeClient)
+ {
+ // This client should be disposed of as it is not shared
+ disposeClient = true;
+
+ // Get the section name from the configuration file. If not found, create a default Couchbase client which
+ // will get the configuration information from the default Couchbase client section in the Web.config file
+ var sectionName = ProviderHelper.GetAndRemove(config, "section", false);
+ if (String.IsNullOrEmpty(sectionName))
+ return new CouchbaseClient();
+
+ // If a custom section name is passed in, get the section information and use it to construct the Couchbase client
+ var section = ConfigurationManager.GetSection(sectionName) as ICouchbaseClientConfiguration;
+ if (section == null)
+ throw new InvalidOperationException("Invalid config section: " + section);
+ return new CouchbaseClient(section);
+ }
+ }
+}
+
+#region [ License information ]
+/* ************************************************************
+ *
+ * @author Couchbase <info@couchbase.com>
+ * @copyright 2012 Couchbase, Inc.
+ * @copyright 2012 Attila Kiskó, enyim.com
+ * @copyright 2012 Good Time Hobbies, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ************************************************************/
+#endregion
@@ -1,39 +1,42 @@
-using System;
-using System.Collections.Specialized;
-using Enyim.Caching;
-
-namespace Couchbase.AspNet
-{
- public interface ICouchbaseClientFactory
- {
- /// <summary>
- /// Returns a memcached client. This will be called by the provider's Initialize method.
- /// </summary>
- /// <param name="name"></param>
- /// <param name="config"></param>
- /// <returns></returns>
- IMemcachedClient Create(string name, NameValueCollection config);
- }
-}
-
-#region [ License information ]
-/* ************************************************************
- *
- * @author Couchbase <info@couchbase.com>
- * @copyright 2012 Couchbase, Inc.
- * @copyright 2012 Attila Kiskó, enyim.com
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ************************************************************/
-#endregion
+using System.Collections.Specialized;
+using Enyim.Caching;
+
+namespace Couchbase.AspNet
+{
+ public interface ICouchbaseClientFactory
+ {
+ /// <summary>
+ /// Returns a Couchbase client. This will be called by the provider's Initialize method. Note
+ /// that the instance of the client returned will be owned by the called, and will be disposed.
+ /// So make sure you don't return a shared instance, but create a new one.
+ /// </summary>
+ /// <param name="name">Name of the section from the configuration file</param>
+ /// <param name="config">Configuration section information from the config file</param>
+ /// <param name="disposeClient">True if the client should be disposed of or not</param>
+ /// <returns>Instance of the couchbase client to use</returns>
+ IMemcachedClient Create(string name, NameValueCollection config, out bool disposeClient);
+ }
+}
+
+#region [ License information ]
+/* ************************************************************
+ *
+ * @author Couchbase <info@couchbase.com>
+ * @copyright 2012 Couchbase, Inc.
+ * @copyright 2012 Attila Kiskó, enyim.com
+ * @copyright 2012 Good Time Hobbies, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ************************************************************/
+#endregion
Oops, something went wrong.

0 comments on commit 17f9baa

Please sign in to comment.