Skip to content
Commits on Aug 24, 2011
  1. @enyim @ingenthr

    Basic paged view support.

    Change-Id: I9dc2a87ecdc93a71dd4f34502378fe0d33e0a3a0
    Reviewed-on: http://review.couchbase.org/9055
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with ingenthr Aug 17, 2011
Commits on Jul 28, 2011
  1. @bcui6611 @ingenthr

    Select right Hammock package

    Change-Id: I73bf3679192b03c8562912e947c1f81cc5c71091
    Reviewed-on: http://review.couchbase.org/8516
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    bcui6611 committed with ingenthr Jul 28, 2011
  2. @bcui6611 @ingenthr

    Modify designdoc prefix to "dev" from "$dev"

    Change-Id: Iacabddf275ddb8086f4f12a4d3040b9483ce7f11
    Reviewed-on: http://review.couchbase.org/8515
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    bcui6611 committed with ingenthr Jul 28, 2011
  3. @enyim @bcui6611

    Added a batch script to download the packages from NuGet after a repo…

    … clone.
    
    Change-Id: Ie607977cd1b2ef5caa66b0e5cdc09a74fefc2093
    Reviewed-on: http://review.couchbase.org/8488
    Tested-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 28, 2011
  4. @enyim @bcui6611

    Removed obsolete unit tests.

    DocumentIdRangeShouldRemoveKeyRange and KeyRangeShouldRemoveDocumentIdRange belonged to a reverted functionality.
    
    Change-Id: Ia3b19e5acd8d9adedbbdf3fd2dfa756f04384094
    Reviewed-on: http://review.couchbase.org/8486
    Tested-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 28, 2011
  5. @enyim @bcui6611

    Handle the new error response format.

    Change-Id: I12ea63add3638a64cfcf9df0088c4d29be13c46a
    Reviewed-on: http://review.couchbase.org/8487
    Tested-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 28, 2011
Commits on Jul 27, 2011
  1. @enyim @ingenthr

    Handle errors in responses better.

    Previously an "error row" would only throw "The 'id' was not found in the row definition." which is technically valid but unhelpful.
    
    Now the view checks if a row is an error response and complains accordingly.
    
    Change-Id: I529f37cb265e1977b338b1609a42f6a53da07cb4
    Reviewed-on: http://review.couchbase.org/8384
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 26, 2011
  2. @enyim @ingenthr

    Split the view tests into multiple files.

    Change-Id: I45884eb2cb19f811de8948b0d5f138e0f7033e3f
    Reviewed-on: http://review.couchbase.org/8383
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 26, 2011
  3. @enyim @bcui6611

    View operation cleanup and accompanying unit tests.

    - Removed the Couchbase word from the view interfaces. It was redundant since we're already in the Couchbase namespace.
    - Range operations have been been split into Start* and End* counterparts. This communicates better that both are optionnal. Previously the user had to pass `null` for the part he was not interested in.
    - Descending/Reduce/Group all accept a `bool` flag, so all of them can be reversed if required.
    
        var view = client.GetView("view", "index").Descending(true).Reduce(false);
        ...
        if (someMagicFlag) view = view.Descending(false);
    
    - Added GroupAt, WithInclusiveEnd
    - Stale supports both `ok` and `update_after`
    
    Change-Id: If3fc0842c509fc9357493b695d8b60ddadcc2055
    Reviewed-on: http://review.couchbase.org/8381
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Tested-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 26, 2011
  4. @enyim @bcui6611

    New view operations: IdRange, KeyRange, Reduce

    - IdRange(from, to) -> get documents by id range
    - KeyRange(from, to) -> get documents by key range
    - Reduce(flag) -> run/skip tghe reducer function
    
    Change-Id: I35b29710b88d0eae7a915f535229cfafa0909777
    Reviewed-on: http://review.couchbase.org/8358
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Tested-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 26, 2011
  5. @enyim @bcui6611

    ILMerge is now a required dependency on the build machine.

    The build script will throw an exception if it cannot found on the default install location.
    
    The following paths are checked:
    
    - %ProgramFiles%\Microsoft\ILMErge\ilmerge.exe
    - %ProgramFiles(x86)%\Microsoft\ILMErge\ilmerge.exe
    
    Change-Id: I75ef6defc8211faf654e36bb3592dba91670ed4f
    Reviewed-on: http://review.couchbase.org/8357
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Tested-by: Bin Cui <bin.cui@gmail.com>
    enyim committed with bcui6611 Jul 27, 2011
Commits on Jul 26, 2011
  1. @enyim @ingenthr

    Fixes 'CreatingClientFromInvalidSectionShouldFailProperly'.

    Change-Id: I80365bdc80b3c2108204b350fa85a01c7d4bd60c
    Reviewed-on: http://review.couchbase.org/8203
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 21, 2011
  2. @enyim @ingenthr

    Fixes 'AllRequestParametersShouldBeApplied'.

    Change-Id: Ia76f004e1713bc09b92f514e93cb7680314cde7c
    Reviewed-on: http://review.couchbase.org/8202
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 21, 2011
  3. @enyim @ingenthr

    Unit tests.

    You can run the tests with VS 2010, as it uses Microsoft's own testing framework.
    
    Change-Id: I504142673eaa4f4a05e537708c4d93b99ed475bb
    Reviewed-on: http://review.couchbase.org/8201
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 21, 2011
  4. @enyim @ingenthr

    Decouple CouchbaseClient and CouchbaseView.

    They are not decoupled phisically tho, but at least the required functionality is provided by interfaces. This is needed for testability.
    
    Change-Id: I34056f1c507ea5685aa56863ce08dfe6e3039c29
    Reviewed-on: http://review.couchbase.org/8200
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 21, 2011
Commits on Jul 20, 2011
  1. @enyim @ingenthr

    Upgraded the build script.

    Now the build script generates a nuget (http://nuget.org) package
    alongside the standard zip file.
    
    The nuget package must be pushed manually to the repository.
    
    See also:
    https://github.com/enyim/couchbase-net-client/wiki/Release-builds
    
    Change-Id: I26f8cf118c86653799980d764f4192a7c294f57b
    Reviewed-on: http://review.couchbase.org/8144
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 20, 2011
  2. @enyim @ingenthr

    Fixed the config section's namespace.

    Change-Id: Id413efb99a516791e9000d460dece2c6a9850c00
    Reviewed-on: http://review.couchbase.org/8143
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 19, 2011
  3. @enyim @ingenthr

    Added IHttpClient to make the REST engine pluggable.

    This way users will be able add logging, can mock the server, etc.
    
    The IHttpClient implementation is configurable from both code and app.config
    and the library will use Hammock if no custom implementation is provided.
    
    Change-Id: I330031f913631851f66ff75f63fe835fd04e631b
    Reviewed-on: http://review.couchbase.org/8142
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 19, 2011
Commits on Jul 19, 2011
  1. @enyim @ingenthr

    EnyimMemcached submodule update.

    Change-Id: I3039c75d188732e2f51c14046e816d97b711bcde
    Reviewed-on: http://review.couchbase.org/8141
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    enyim committed with ingenthr Jul 19, 2011
  2. @ingenthr @enyim

    Updated README minorly.

    Change-Id: Ifaef711755b5fd0933712994ec7a56e45d44b98d
    Reviewed-on: http://review.couchbase.org/8137
    Reviewed-by: Attila Kiskó <a@enyim.com>
    Tested-by: Attila Kiskó <a@enyim.com>
    ingenthr committed with enyim Jul 19, 2011
Commits on Jul 15, 2011
  1. @enyim

    Submodule update.

    enyim committed Jul 15, 2011
  2. @enyim

    Build scripts.

    You'll need powershell 2.0 and 7zip for a proper release build. (This applies to the command line builds only, you can use VS2010 for development builds.)
    
    There are two important things.
    
    By default, every project in the solution is signed with the "public_key.snk" file, which contains only the public part of the "couchbase.snk", thus every assembly will be delay signed. This way the dlls will look like they have string names, thus we can use the same assembly identities everywhere, there is no need to differentiate between release and local builds. (E.g. Membase was signed differently if you did a local build, whihc could mess with GAC and config files.)
    
    However, delay-signed assemblies fail the load time verification, so this need to be disabled using 'sn -Vr assembly'; see MSDN for more details. This applies to Enyim.Caching & Membase too, but they use a different public key (the public part of their signing key).
    
    Secondly, the release version of the library consist of a single assembly. This is created by merging Couchbase, Enyim.Caching, Membase & Hammock (using IlMerge). This way for example we can included a bugfixed version of Membase without being forced to release a new version of the Membase library in the same time. The fixes later can be copied into Membase's master and the library can be released in a different time, but we'd still have one officially released version of it, instead of one in Couchbase, and one at the Membase repo.
    
    To invoke the command line build process, run 'build.ps1' from a PowerShell prompt. (The build directory must be the current directory.) 'get-help ./build.ps1' should give a small overview of the options.
    
    TL;DR
    
    - Assemblies are delay signed when developing, use 'sn -Vr' on Couchbase, Membase and Enyim.Caching
    - Release builds require public/private keys
    - cd build; get-help .\build.ps1
    enyim committed Jul 15, 2011
  3. @enyim

    Placeholder files.

    Content needs to be added before release.
    enyim committed Jul 15, 2011
Commits on Jul 14, 2011
  1. @enyim

    Updated the gitignore file to ignore the packages folder.

    Git GUI was always scanning the external libraries and it was annoying.
    enyim committed Jul 14, 2011
  2. @enyim

    Removed the Json.NET dependency.

    The client only uses a very small subset of the Newtonsoft library, namely the forward only json parser.
    
    Since Json.NET is MIT licensed it was possible to extract only the neccessary parts of the library (see externals/Newtonsoft) and use them internally. This way we can cut back on the exposed types and users will not feel forced to use Json.NET for json de/serialization.
    enyim committed Jul 14, 2011
  3. @enyim

    Initial checkin.

    The new client is Couchbase.CouchbaseClient:
    
        var client = new Couchbase.CouchbaseClient(...);
    
    Parameters are similar to the MembaseClient, except
    
    - the config class should be ICouchbaseClientConfiguration; because of the design time views we need to know about an INameTransformer
    - the config section is configuration/couchbase
    
    The client has a new `GetView` operation which returns an ICouchbaseView. The resulting object does not uery the server until it's enumerated, so parameters can be set conveniently:
    
        var view = client.GetView("doc", "index").Limit(20);
    
        foreach(var row in view)
        {
            var item = row.GetItem();
        }
    
    Enumerating the view is convenient if we want to get the new values emitted by the mapper or we want to get the keys, but very inefficient if we need only the items, so the client has a new `Get` overload:
    
        var items = client.Get(view);
    
    This will do a multiget using all keys returned by the view, and store everything in an IDictionary<string, object> (just like the regular multiget).
    enyim committed Jul 14, 2011
Commits on Jul 13, 2011
  1. @enyim

    Infrastructure.

    Currently we're using the 'cb20' branch of EnyimMemcached.
    enyim committed Jul 13, 2011
  2. @enyim

    Initial commit.

    enyim committed Jul 13, 2011
Something went wrong with that request. Please try again.