commit 4e6f4b3bfb1d5cae2da1b43a63b39ec5dcbd7951
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Apr 14 17:08:26 2016 +0200

    Update Spymemcached to 2.12.1
    
    Change-Id: Ib52d636b7c01dd222d2523676151c607745699a5
    Reviewed-on: http://review.couchbase.org/62849
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit e1133d9d0ff2b440ccca7880780716403649f797
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jan 29 13:59:44 2016 +0100

    JCBC-912: Explicitly check that the retry information is not null.
    
    Motivation
    ----------
    If the server returns a NMVB with an empty response, the code needs
    to check for this case and do not potentially throw a NPE if this
    case remains undetected.
    
    Modifications
    -------------
    The code checks if the buffer which potentially contains the new
    config is not null and if it is just returns (nothing to do here
    at this point).
    
    Result
    ------
    Better resiliency for the NMVB config optimizations implemented
    in the server for the watson timeframe.
    
    Change-Id: Ie236ed0beb26251c4f9d84ef911906e508b0d41a
    Reviewed-on: http://review.couchbase.org/59258
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 21b6fdc80b06ad24897dad8605221e192b926863
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Nov 17 10:33:50 2015 +0100

    JCBC-776: Fix typo in log message.
    
    Change-Id: I1ff1e0c712d7c9bb7a828ca8d21c3c55b21c8cee
    Reviewed-on: http://review.couchbase.org/57106
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Tested-by: Simon Baslé <simon@couchbase.com>

commit f07576f2ed47fcab08af8d1cf26523f76fa6786c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Nov 17 10:05:55 2015 +0100

    JCBC-881: Expose custom transcoder with durability requirements.
    
    Motivation
    ----------
    On the CouchbaseClientIF, all the mutation methods expose a custom
    transcoder, but only without durability requirements. It is a valid
    use case to use a custom transcoder with durability requirements.
    
    Modifications
    -------------
    Add API which allows to use the durability requirements together
    with a custom transcoder.
    
    The changeset itself is low risk, since the methods are available
    internally, only the approrpiate overloads have been added which
    now call the underlying methods explicitly with the transcoder.
    
    Result
    ------
    Mutations with a custom transcoder and durability requirements
    can now be used easily.
    
    Change-Id: I5eca2162d3b5c844635dbf1b8d0aa7c03edcdb8f
    Reviewed-on: http://review.couchbase.org/57103
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit c5feb5fdd1b4320281e5234f569d3f9f0f88d68a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jul 23 12:17:54 2015 +0200

    JCBC-816: Make reconfiguration more resilient during edge cases.
    
    Motivation
    ----------
    There are two edge cases which can happen either individually or
    together:
    
      - Full cluster restarts (also single node cluster restarts)
      - Low ops/s. (especially during testing on a single thread
        in a loop, blocking with the default timeout)
    
    If they happen, the client is not able to get to an alternative
    node immediately and also the incentive for a reconfiguration
    (triggered through ops not finding their primary node) is
    lowered.
    
    There are some steps which can be done to make it more resilient and
    recovering more quickly.
    
    Modifications
    -------------
    A bunch of smaller fixes combined provide better reliability
    semantics. They are:
    
      - If an exception happens during bootstrap, it is retried. But if
        an exception happens again during the re-bootstrap, it is now
        caught and ignored to "keep going" and wait for new attempts
        through the other heuristics. Propagating the exception into
        the nirvana only has the side effect of potentially shooting off
        live threads which just want to signal a stale connection.
    
      - The current code had too strict boundary checks in place for when
        a new reconfiguration is triggered, mainly for legacy reasons
        when http streaming only was available. With CCCP, things changed
        a bit. So the code now only makes sure that not more than one
        "outdated" attempt is made per second (the 10 ops in a 10 sec
        interval boundary has been removed). This makes sure that even
        under low load, we eventually reach a new configuration as
        quickly as possible.
    
    Tests have been adapted to get rid of the removed boundary check, as
    well as a potential NPE has been removed.
    
    Result
    ------
    Under these edge cases, the client now more reliably and more quickly
    gets back to a valid configuration.
    
    Change-Id: I3e19e1d0a859cfd345db18457377b7373e643605
    Reviewed-on: http://review.couchbase.org/53589
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 7ae27ec8cc1935c64e2204cac13765614b9ce48d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon May 18 07:39:32 2015 +0200

    JCBC-770: Memcached buckets fail to pick up new configuration.
    
    Motivation
    ----------
    For memcached buckets, the client was able to pick up an initial
    configuration, but failed to properly establish a streaming
    connection to get subsequent configuration updates.
    
    This resulted in the problem that when memcached nodes are
    added, it is not picked up properly and since the ketama
    algorithm doesn't make it fail it could only be observed
    by looking in the UI. Also, node removals are not
    properly picked up.
    
    Modifications
    -------------
    The root cause of the problem is that the HTTP streaming
    connection is not properly attached to one of the servers,
    and the reason for that is that the correct bootstrap provider
    type was not set and therefore an assertion failed.
    
    Result
    ------
    After setting the bootstrap provider before monitoring the
    bucket through a streaming connection, new configs are now
    properly picked up (both node add and removals) and delivered
    to the subscribers.
    
    Change-Id: I4565b1d7f6c28773736be0a18a020029f0b7964e
    Reviewed-on: http://review.couchbase.org/51153
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit c4441e8bd1523bfff66b489f4af306c09f972b0c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Apr 3 09:54:30 2015 +0200

    Upgrade Spymemcached to 2.11.7
    
    Change-Id: I5a1d869ede982f2d70d6c2a996474fa22d23798f
    Reviewed-on: http://review.couchbase.org/49157
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 8bab8926afd10259421f4e3bef38486406e40030
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Apr 1 11:43:23 2015 +0200

    JCBC-738: Avoid casting op in HttpFuture on timeout.
    
    Motivation
    ----------
    A bug was reported that the HttpFuture incorrectly casted the
    operation to a net.spy one, which is unexpected. In fact, the
    cast itself is unnecessary and can be removed.
    
    Modifications
    -------------
    The timeout exception is now directly exposed to be in line with
    the other timeout case on the codepath and as a result is not
    subject to a classcast exception anymore as well as consistently
    throws a TimeoutException in the timeout case. In fact, the
    method directly allows a TimeoutException to be thrown as a
    checked exception.
    
    Result
    ------
    No classcast exceptions and correct exception type thrown on all
    timeout codepaths.
    
    Change-Id: I4e0cda493a4cba961c42cef3b24fdea49e18fb81
    Reviewed-on: http://review.couchbase.org/49020
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 4a07360dbd1e40df7d02f7503626ffe866744a5b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Apr 1 11:21:55 2015 +0200

    JCBC-741: Always poll master on observe.
    
    Motivation
    ----------
    To consistently detect concurrent modifications of the
    observed document, the client needs to always poll the
    master cas state, since it can't be reliably detected
    on the client.
    
    So even when just ReplicateTo.* is used, the master
    is polled and used for a cas crosscheck.
    
    Modifications
    -------------
    The isMaster() check blocks have been removed which will
    enable master polling all the time, leading to cas
    mismatch detection.
    
    Result
    ------
    Consistent concurrent modification check behaviour,
    independent if PersistTo is used or not.
    
    Change-Id: Ia48cb827ff90a1d7511a42fd10fd058dd3dcb845
    Reviewed-on: http://review.couchbase.org/49023
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit f004c6cc5c8ca78392723f97f2cf6b25f6325bb5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Feb 16 08:18:52 2015 +0100

    JCBC-700: Set ObserveFuture isDone() properly.
    
    Motivation
    ----------
    When a ObserveFuture is returned (the underlying one which is always
    returned when PersistTo or ReplicateTo overloads are used) the current
    code always returns false on isDone, even when done.
    
    Modifications
    -------------
    Overriding the set() method which is called by the callback to set
    the proper status and count down the latch to also set the "done"
    flag.
    
    Adding a test case to verify its working.
    
    Result
    ------
    Proper behavior when calling isDone() on observe overloads.
    
    Change-Id: I783d10753c1cbe7bbba4d3940922b78161c9023e
    Reviewed-on: http://review.couchbase.org/46873
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 4cede5077846ed903e9a504703a461c0c8ca4e24
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 19 10:46:32 2015 +0100

    Depend on Spymemcached 2.11.6
    
    Change-Id: I2e12877d0885482d7f8b66624021c6633f12ac92
    Reviewed-on: http://review.couchbase.org/45555
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 84e1d041aa417c933df23803fa9063211e5a5026
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 19 11:15:09 2015 +0100

    Fix unit tests with > 3.0.0 compat
    
    Motivation & Modifications
    --------------------------
    Spatial views have changed and currently it is not planned to support
    the new format going forward on the 1.4 branch. It needs to be
    conditionally disabled.
    
    Also, the test config did incorrectly parse out the version of the nodes,
    this has been corrected by backporting the Version regex from 2.1.
    
    Change-Id: I43e9ad9ab2a48ec7fb5394564d380557cf869665
    Reviewed-on: http://review.couchbase.org/45557
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 14bd22c00565e0018d2fe5db975f7c1d0b20fc35
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 12 16:17:19 2015 +0100

    JCBC-681: Detect missing noop polls and rebootstrap config.
    
    Motivation
    ----------
    If the node where the carrier config is attached to, dies silently,
    the config channel is kept open longer than its doing any good. We
    are already doing NOOP polls on a 5 second interval to make sure
    the connection does not get dropped by firewalls, so we can piggyback
    the responses to trigger an outdated config signal when they do
    not come back anymore.
    
    Modifications
    -------------
    The changeset piggybacks on the NOOP interval which is done anyways
    and adds a simple counting mechanism. When more than (by default)
    3 NOOPs are missed, after 3*5seconds a "outdated config" signal is
    issued to the configuration provider.
    
    Once the provider tries to grab a config but can't (since it won't
    return him one on the dead node), a full rebootstrap is initiated.
    
    Result
    ------
    The client now switches over to another node in the cluster even
    before auto failover kicks in, so when it does it can very quickly
    retrieve a valid configuration and get back to a stable state.
    
    Change-Id: I7004d1923bf43cf899113da48dd8aa146a458625
    Reviewed-on: http://review.couchbase.org/45214
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit fa1b11619c39c71c4a2083d60313b7f5950d9351
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Dec 9 09:06:02 2014 +0100

    JCBC-647: Avoid WARN level log on failed over replica with observe.
    
    Motivation
    ----------
    During a failover/error condition, the actual number
    of replicas will differ from the configured ones. There has always
    been a check in place to not send a request to an inactive replica
    (identified by -1 in the config). The code path used printed out
    a WARN which, under high traffic, can seriously crowd the logs.
    
    Modifications
    -------------
    The Locator already provides a pre-check to only return the active
    replicas, which is used by replica get queries. This change also
    makes the code use this path, only looping through the active
    replicas and avoiding the very verbose WARN log message over
    and over again.
    
    Result
    ------
    Less verbose logs, making it easier to discover actual problems.
    
    Change-Id: Ie9577fd55f6171406a0176c8b7ec7a4ee4db4bcc
    Reviewed-on: http://review.couchbase.org/44141
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 13f0db05294364dcbdf99e16d8f6405b19b0ae6c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Dec 1 08:20:48 2014 +0100

    JCBC-641: Upgrade Spymemcached to 2.11.5
    
    Motivation
    ----------
    Spymemcached 2.11.5 contains two important fixes, including one where
    reconnect can take longer than necessary.
    
    Modifications
    -------------
    Upgrade the dependency.
    
    Change-Id: I40d4b73c9e0579088b5d35c284567d5168b06d9f
    Reviewed-on: http://review.couchbase.org/43756
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit c4fa34c32d67193125c8828ebaef25484c5d55ad
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 3 15:22:06 2014 +0100

    JCBC-620: Make Diagnostics resilient for not found classes
    
        Motivation
        ----------
        The code uses com/sun namespaced packages - which we shouldn't be using -
        but are able to optionally utilize them to get more diagnostics information.
    
        The code previously did check if the classes are proper instances, but it was
        not resilient for environments where the class doesn't exist at all (that is
        on IBM JVMs, as well as OSGi containers and app servers like Wildfly). It prevents
        starting an application.
    
        Modifications
        -------------
        The code now properly catches such an exception and logs a debug notice that extended
        info is not available and only reduced output is printed.
    
        Result
        ------
        Properly degrading output and making sure app servers with reduced context are able
        to start.
    
    Change-Id: I7c3b2b22bd42dbc28ff46d5db6a3ca413aa6f744
    Reviewed-on: http://review.couchbase.org/42711
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 7662ee138e3a3d74f7d67a78d2ba89d8c6bc282d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Aug 26 16:02:13 2014 +0200

    JCBC-531: Add Diagnostics and dump them on startup.
    
    Change-Id: Ib8a3719ac0380cf64486bbea8fb208bb9606f770
    Reviewed-on: http://review.couchbase.org/40913
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5e233d219b24dd6080c4c99d77b95163ee3dce57
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Tue Sep 30 23:46:51 2014 +0300

    Initialize bootstrapProvider member
    
    Fixes NPE in reloadConfig()
    
      public void reloadConfig() {
        if (bootstrapProvider.isCarrier() && !shutdown) {
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Change-Id: Ie88aeb0624968656e89819de2b931832843e0ad3
    Reviewed-on: http://review.couchbase.org/41786
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>

commit a7fcf503d603579bf5d96ebfe22e6c3d7bc46c7d
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Tue Sep 23 23:21:37 2014 +0300

    JCBC-566: Remove dead code blocking configuration updates
    
    In this patch http://review.couchbase.org/32589 Resubscriber class was
    removed, but its flag was not. So the boolean state is never changed
    here.
    
    Change-Id: I9509e207d1c1c9215ac22de0bd57022dd9270aec
    Reviewed-on: http://review.couchbase.org/41741
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit fa5b5241ddfd880bdd6576962cf10cea99236213
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Mon Sep 29 03:20:45 2014 +0300

    Do not reset thresholdLastCheck on each iteration
    
    Change-Id: I3d28ad5f8014cb46f1d3e9bd5e2beb8bde9add8a
    Reviewed-on: http://review.couchbase.org/41740
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 5529322655b7056314b773e4afec2dbb0667d7b0
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Mon Sep 29 02:49:36 2014 +0300

    JCBC-567: Remember initial bootstrap method
    
    Motivation
    ----------
    
    In some situations like recovering connection after network outage, the
    client might stop using Carrier Publication protocol to receive cluster
    configuration.
    
    Modifications
    -------------
    
    BucketConfigurationProvider.isBinary property refactored from simple
    boolean to type with three values to clearly describe the bootstrap
    protol or state that the bootstrap process have not decided on any of
    them.
    
    Result
    ------
    
    When someone signals that configuration has been
    outdated (BucketConfigurationProvider.signalOutdated), the last method
    will be tried first, and then (if it was CCCP) the library will try to
    bootstrap from HTTP
    
    Change-Id: I6218ea6ceba7acddfcb4b43d81cc83a3cb6bbf6d
    Reviewed-on: http://review.couchbase.org/41734
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>

commit 98513344b55a2726f6d6fb39f4a6e785998a641e
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Fri Sep 26 21:01:05 2014 +0300

    JCBC-566: Catch ConfigurationException to prevent IO loop death
    
    When CCCP protocol enabled, there is a likelihood that
    ConfigurationException will bubble up and kill the IO loop. When
    connectivity will be restored, the client cannot reconnect the nodes.
    
    Change-Id: I52de7e70008cddc602169356d4db0b592bcfb682
    Reviewed-on: http://review.couchbase.org/41677
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 9f6fdf8d260b079850d8872534bc9383b547e62d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Aug 18 08:06:39 2014 +0200

    JCBC-510: Allow optional non-persistent view connections.
    
    Motivation
    ----------
    With HTTP 1.1, all connections are by default persistent, unless connection
    control headers are set to close. In order to provide more flexbility in how
    the client handles those connection, an optional system property can be set
    to change it appropriately.
    
    Modifications
    -------------
    A custom system property has been introduced and the view pipeline has been
    modified to take it into account. Tests have been added to verify the
    header settings.
    
    Result
    ------
    It is now possible to change socket persistence behavior from a system
    property.
    
    Change-Id: I960bf22cb64f8fa93ee4853cfff0bd1103d487c2
    Reviewed-on: http://review.couchbase.org/40685
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 669c9580674082b2acccd769d9da5e1b3bb3e417
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 14 11:07:52 2014 +0200

    JCBC-464: Clear buckets for HTTP provider on (re)bootstrap.
    
    Motivation
    ----------
    Prior to this change, a combination of (re)bootstrapping initiated
    by a full cluster shutdown and a previously loaded configuration
    led to a invalid state in the HTTP provider. Since it is also used
    for a cccp fallback, it always interfered in such a scenario.
    
    Modifications
    -------------
    The internal problem was that once bootstrapped, the bucket config
    was stored and on a re-bootstrap, this old config was taken. That
    itself did not cause trouble, but the http streaming config attachment
    was broken because some parameters were not set properly (which would
    have been on a full bootstrap).
    
    This changeset clears out the bucket configs before a (re)bootstrap
    to make sure a full http walk cycle is always done. This provides
    more predictable behavior and also avoids a reported NPE.
    
    Result
    ------
    Even if rebootstrapped, it now either gets to a valid configuration
    over HTTP and succeed or will retry, without failing with a NPE or
    ending up in an invalid state.
    
    Change-Id: Id8644b1fddf7b38168e663a3d5af51e17e56b9c4
    Reviewed-on: http://review.couchbase.org/39346
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ffaaf977ff3c6f08465122dde6a505c7052a1cb1
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 14 11:29:51 2014 +0200

    JCBC-490: Error log unexpected/unparsable JSON body content.
    
    Motivation
    ----------
    Stack traces with invalid server responses have been reported where
    the root cause is unclear. The stack trace does not show the actual
    response however so its hard to decipher.
    
    Modifications
    -------------
    Since normally such a case shouldn't happen, the actual body including
    the HTTP header are logged at ERROR level to raise proper attention and
    make it easier to find the actual cause.
    
    Result
    ------
    Unparsable server results that lead to exceptions are now easier to
    decipher and to track down eventually.
    
    Change-Id: Id3c98a6488581c5025811433452551de8cc9a136
    Reviewed-on: http://review.couchbase.org/39347
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit bf510d732978c4877296a20e7c7a1b0033c83657
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jul 30 18:49:17 2014 +0200

    JCBC-505: Fix concurrency issue in Query builder.
    
    Motivation
    ----------
    Similar to one fix earlier in SPY (SPY-170), only the regex matcher is thread safe
    (resetting it is not), leading to NPEs further down the stack.
    
    Modifications
    -------------
    Always use a new builder and do not reset the same one.
    
    Result
    ------
    Thread safety for the Query class and no exceptions like:
    
    java.lang.NullPointerException
    at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
    at java.util.regex.Matcher.reset(Matcher.java:309)
    at java.util.regex.Matcher.reset(Matcher.java:329)
    at com.couchbase.client.protocol.views.Query.quote(Query.java:572)
    at com.couchbase.client.protocol.views.Query.setRangeStart(Query.java:400)
    at com.couchbase.client.protocol.views.Paginator.fetchNextPage(Paginator.java:180)
    at com.couchbase.client.protocol.views.Paginator.hasNext(Paginator.java:160)
    
    Change-Id: Icc578a03bdece1ebc9b344ee8fdbe36a2542b6cf
    Reviewed-on: http://review.couchbase.org/40058
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit f03df181dd300623a3f908edac56b49774b4226d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Aug 4 17:09:59 2014 +0200

    JCBC-503: Release observers on shutdown.
    
    Motivation
    ----------
    On shutdown of the provider, there are still observers referenced. Making sure they
    are not referenced anymore should be part of a clean shutdown procedure.
    
    Modifications
    -------------
    Clear out the observers array to remove the references.
    
    Result
    ------
    Cleaner shutdown.
    
    Change-Id: I710d1b8be9dea88aba0fe28162442951807610de
    Reviewed-on: http://review.couchbase.org/40263
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit c7beac4f40d03e851cb316e29794d956c147bfd9
Author: David Haikney <david.haikney@couchbase.com>
Date:   Wed Jul 16 18:18:44 2014 +0100

    JCBC-495: Quotes round variables to accommodate pathnames with spaces
    
    Change-Id: I9dc381a1b7223c4ed3c23c14989e4261f50badba
    Reviewed-on: http://review.couchbase.org/39443
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 75d57883e684e18e0eb5270a1128e427e237d531
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jul 16 09:09:23 2014 +0200

    JCBC-488: Make sure headers are overriden, not appended on readd.
    
    Motivation
    ----------
    If a view operation needs to be retried, the current code adds headers
    instead of overwriting them, which leads to broken http requests. As a
    result, the server responds with 400 and is unable to process the query.
    
    Modifications
    -------------
    Changing the code from addHeader to setHeaders overrides the headers
    instead of appending them.
    
    Result
    ------
    Valid HTTP requests, even if it needs to be retried.
    
    Change-Id: I13b72effc2998d17aaf2ac8acfc3c225aef30de3
    Reviewed-on: http://review.couchbase.org/39429
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 23040ca987095332a90b563030db8e7114987483
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jul 1 07:28:33 2014 +0200

    Upgrade spymemcached to 2.11.4
    
    Change-Id: I9971faf5b9511f8764667654fc326469e0ad8d9c
    Reviewed-on: http://review.couchbase.org/39006
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b634acbc477b5ff8f99be1126cdd32519c4564a9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jun 27 10:59:53 2014 +0200

    JCBC-482: Select proper replica node for getsFromReplica
    
    Motivation
    ----------
    getsFromReplica did not work when the master node is currently failing because
    it had not been scheduled properly. This fix remedies that. Note that
    getFromReplica had always worked as expected.
    
    Modification
    ------------
    This changeset adds support for getsFromReplica in the add operation codepath
    to properly select the replica node.
    
    Result
    ------
    getsFromReplica now works like getFromReplica even when only replica nodes
    are available.
    
    Change-Id: I4362efbba4ea04ff063c85128949a3931c95bd58
    Reviewed-on: http://review.couchbase.org/38866
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 02c4f367098beeff6846a98cdea89eb2cc965006
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jun 25 13:42:06 2014 +0200

    JCBC-480: Complete replica read ops even if NOT_EXISTS
    
    Motivation
    ----------
    get(s)FromReplica operations may timeout incorrectly if the document has not been
    stored on the server at all, since it waits for a successful response before it
    completes the latch and stores the response. Since a non-existing doc response
    returns NOT_EXISTS and false success, it will never complete and timeout.
    
    Modifications
    -------------
    Complete the latch as well if the response is a NOT_EXISTS, indicating a good
    response but the document was just not found. This is perfectly fine under the
    assumptions that the response is allowed to be non-consistent by contract, even
    if it may not be replicated yet.
    
    Result
    ------
    The behavior is now consistent for both found and not found docs.
    
    Change-Id: Ic310255e28c498ed6482101f64657978fad8c7ae
    Reviewed-on: http://review.couchbase.org/38796
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 1d0fdce12b8028a2d41c73ad8a0d3800f2170dd8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jun 17 13:46:50 2014 +0200

    JCBC-475: Harden configuration provider on shutdown and restarting of nodes.
    
    Motivation
    ----------
    The current configuration provider runs into issues when nodes are restarted in
    several edge cases. Also, shutdown handling was subject to race conditions, leaving
    threads behind and as a result kept JVMs running.
    
    Modifications
    -------------
    This changeset makes several modifications to the provider:
    	- A shutdown variable is introduced and crucial parts of the code are made
    	  aware of it, stopping their work if shutdown is true.
    	- If a new carrier provider is set, the code now checks if there was an old
    	  one in place, shutting it down. This makes sure that no threads are left
    	  behind.
    	- Only monitor the bucket in http bootstrap, avoiding weird stack overflows
    	  if monitoring and bootstrapping does not succeed (if only one node is used
    	  and it is restarted).
    
    In addition the used CouchbaseConfigConnection has been clarified a bit so that
    from a thread dump it is now visible if a data IO thread is meant or the config
    thread for carrier configs.
    
    Result
    ------
    In general, the resulting provider should be more resilient to failure and should not
    leave threads behind on shutdown.
    
    Change-Id: Ic3c4026494c858e03d63767dd953675104687e0b
    Reviewed-on: http://review.couchbase.org/38364
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 0a740e124c8ded89ed42bf8489a8e3b7191cb89c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 23 17:00:09 2014 +0200

    JCBC-476: Rework misleading log message.
    
    Motivation
    ----------
    The message in the changeset is misleading because the ops are now
    queued up and therefore more resilient. Also, WARN is too high since
    it should be just an INFO message. If auth or anything else fails,
    different messages will be shown in the logs anyway.
    
    Modifications
    -------------
    Change it to INFO level and also rework the text to be more clear
    what is happening with the given key.
    
    Result
    ------
    No misleading information anymore which looks falsly suspicious.
    
    Change-Id: I9b0052dd82bad4edbc54df4d06c98b6b18f31dce
    Reviewed-on: http://review.couchbase.org/38668
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 04fa4338c8ee62a50dca4a9f0562c38b479390a7
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 23 17:20:22 2014 +0200

    JCBC-477: Pass down the timeout to the getBulk for views
    
    Motivation
    ----------
    If no timeout is passed down to the BulkGetFuture, Long.MAX_VALUE
    is used as a timeout which, if something goes wrong, basically
    translates to block the thread forever. Also, this breaks the
    contract since a custom time can always be passed in.
    
    Modifications
    -------------
    The timeout is now passed down to the bulk get so that a timeout
    is properly respected.
    
    Result
    ------
    Correct behavior from the client side.
    
    Change-Id: I56696a21ed14e9c0669eb5d05941f67a987eeb18
    Reviewed-on: http://review.couchbase.org/38678
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b301f290ff7b0479b8e0920ea4373860af3791a2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jun 5 15:27:55 2014 +0200

    Upgrading Spymemcached to 2.11.3
    
    Change-Id: I7b51952195a55c69d70ef151e493cd5d36c447a8
    Reviewed-on: http://review.couchbase.org/37903
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5269259739bf0de01191bb6bed693741074f7b47
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 2 14:42:41 2014 +0200

    JCBC-424: Broadcast NOOP on idle state.
    
    Motivation
    ----------
    This changeset has two main motivations:
    
      - Detect rebalancing out nodes  & broken sockets even when there is no load.
      - Help firewalls that close idle sockets.
    
    Modifications
    -------------
    In addition to a change in spymemcached which calls a method if the selector is woken up
    without actually selecting something (so the delay hits), this change correlates the last
    write with the woken up time. If the timespan is longer than a given maximum, a NOOP
    broadcast is sent, which works like any other operation but immediately triggers broken
    sockets and therefore a new configuration will be fetched.
    
    Note that the NOOP broadcast is not sent under load, since the write timestamp will always
    be fresh (and the more load the more seldom the method itself will be called from spy).
    
    Result
    ------
    Rebalancing away nodes and broken sockets are much quicker detected and also the socket is
    prevented from being closed becasue it is idling too much in case of no load.
    
    Change-Id: I056b76ea009a689f4ba700730fb281d78d57484d
    Reviewed-on: http://review.couchbase.org/37729
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 02bea4ba7e03c521b0e864cece3c13a5c55b46c1
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 2 12:52:19 2014 +0200

    JCBC-463: Harden shutdown procedure in CouchbaseClient
    
    Motivation
    ----------
    Lingering bucket streaming threads are reported, this could be the case
    if something is preventing them from being shut down.
    
    Modifications
    -------------
    Split up the spymemcached IO and view IO shutdown in two different
    try/catch blocks, to make sure the other part always runs, even if
    something goes wrong in the other.
    
    This change goes hand-in-hand with related shutdown hardening changes
    in spymemcached directly.
    
    Result
    ------
    Shutting down of the config threads now also happens if an exception
    is raised during memcached IO shutdown.
    
    Change-Id: I65bbe9ab1b5c27333012268cd3aafa5d8aa528b4
    Reviewed-on: http://review.couchbase.org/37726
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ed3fec9f9cff518d62deab8a119c0a37aa3f5f06
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 2 10:23:12 2014 +0200

    JCBC-461: Limit the netty worker count for streaming conns.
    
    Motivation
    ----------
    Under normal circumstances, netty should create worker threads on the fly
    and since the client only uses one channel for the bucket streaming connection,
    there should every only one be used.
    
    Under failure conditions, it could be the case that many more threads
    are created falsely.
    
    Modifications
    -------------
    The worker count is held to one thread only, since only one channel needs
    ever to be accessed.
    
    Result
    ------
    Providing a hard upper limit for worker threads prevents thread exhaustion.
    
    Change-Id: Idb285bc794c190b876e63383d1eff690ba57d9ba
    Reviewed-on: http://review.couchbase.org/37722
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit d6dde6ee101efa829d016e62a2ad5f7f84e93822
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 2 07:02:53 2014 +0200

    JCBC-359, JCBC-408, JCBC-409, : Multiple Javadoc enhancements.
    
    Motivation
    ----------
    Several javadoc enhancements have been reported where API parts
    need clarifications and more information.
    
    Modifications
    -------------
    ComplexKey, Builder and replica get docs have been enhanced, hopefully
    clarifying their usage and behavior.
    
    Result
    ------
    Better docs!
    
    Change-Id: I7008bfc9b8d5722447a58a4cd415a4caaafb5906
    Reviewed-on: http://review.couchbase.org/37718
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 35856598be74a8386d498e12fbaebe69e7741afe
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 2 09:25:56 2014 +0200

    JCBC-413: Fix race condition in ClusterManager.
    
    Motivation
    ----------
    When the ClusterManager response returns with a successful response, it could be that the code waiting
    on the result is notified before the corresponding results are stored.
    
    Modifications
    -------------
    The latch is now counted down after the results have been gathered, avoidin the race condition.
    
    Result
    ------
    The code afterwards waiting on the latch is now only counted down before the results have been gathered.
    
    Change-Id: I97f0f0eb72e74a6400fecd5d03e8d35e537b4339
    Reviewed-on: http://review.couchbase.org/37719
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a059bf9431dd67b68930e50418274339db4293c9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon May 12 11:33:39 2014 +0200

    JCBC-459: Ignore Configurations with old (or same) revID.
    
    Motivation
    ----------
    If carrier config is used, new configuration arrives in the payload of the
    NMVB responses. Since configurations trickle through the server cluster not
    100% at the same time, it can happen that we get a outdated configuration from
    one of the nodes, where the client already is in the posession of a newer
    one.
    
    The server emits a revid with a monotonically increasing number, so if we
    have a higher revid we can skip/discard incoming older ones and keep going.
    By not ignoring them, the client may run into a situation where it updates
    a older config in place for a newer one.
    
    Modifications
    -------------
    The revnr is parsed out of the configuration, but if no id is set (for backwards
    compatibility reasons), -1 is used. In the provider itself, if the number is > 0
    it is checked against the current known revnr and if higher the new config
    is used and the subscribers are notified.
    
    Result
    ------
    Older configurations will now not be used anymore if a newer version is already
    in the posession of the SDK.
    
    Change-Id: I0eb5af448e8149017962030de6fe054358bd67ea
    Reviewed-on: http://review.couchbase.org/36981
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a5ab1d36ef0cc3b947fc184b6602bc16dd84a517
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon May 12 14:07:43 2014 +0200

    JCBC-460: Make sure replica vbucket changes count as significant.
    
    Motivation
    ----------
    When a new configuration arise, there is a simple difference heuristic in place
    which checks if a new configuration is worth applying or if it only contains
    insignificant changes that are not worth the effort of applying a new configuration.
    
    One of those measurements is if vbuckets have changed (the values in the vbuckets
    array). One case that was not thought of before is if only replica vbuckets change
    and the master buckets stay the same. This has been recently found to be an issue
    when configurations are not applied because only the replica vbucket information
    has changed.
    
    Modifications
    -------------
    The algorithm now also checks the content of the replica vbuckets to see if
    a significant modification has been made, leading to an update of the map
    to the according parties.
    
    Result
    ------
    New configuration is now also applied if only the replica vbuckets change. A
    test case has been added to verivy the functionality (and fails without the
    change).
    
    Change-Id: I50d81f0053360b1c073fa90c217bde18abafd78d
    Reviewed-on: http://review.couchbase.org/36985
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 407b2352a44b58ef398f2ff36208eb980d22e78d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu May 8 10:09:11 2014 +0200

    Upgrade spymemcached to 2.11.2
    
    Change-Id: I2209edf896c448b4b14e71572866fd5057a1de30
    Reviewed-on: http://review.couchbase.org/36829
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 31c7ad01f02b06ace73ab04e7cca3e684bf01fbd
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Apr 24 10:55:21 2014 +0200

    JCBC-453: Also check for fresh configs with failure modes != redistribute
    
    Motivation
    ----------
    When a different failure mode is used, it can be the case that a new
    configuration is not picked up (ie with cancel).
    
    Modification
    ------------
    This changeset also makes sure we update the config reload threshold
    if other failure modes are used.
    
    Result
    ------
    New configurations eventually get picked up even if other failure
    modes are used.
    
    Change-Id: I302b2192f2fc34ea7df36d3b83ce63197513d7be
    Reviewed-on: http://review.couchbase.org/36828
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 919ff0015864dd2ce39056bd374bc8989ab2cec8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed May 7 13:21:53 2014 +0200

    JCBC-457: Force CCCP config fetching on node reconnect.
    
    Motivation
    ----------
    If a node needs to be reconnected, there is a strong indication that
    the socket has been closed and this could be because of a topology
    change.
    
    Modification
    ------------
    If a reconnect is scheduled, make sure it forces a config update.
    Also, the method is added for memcache buckets to keep the behavior consistent.
    
    Result
    ------
    Quicker detection of topology changes, eventually getting quicker to
    a valid config state.
    
    Change-Id: I5244dfc6d6f19288977ef98745d47efe25773093
    Reviewed-on: http://review.couchbase.org/36779
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ee717e2c17398b4f299c2acae7d14294cab8340f
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Apr 15 08:18:10 2014 +0200

    Make sure CCCPAwarenessTest always has a bucket.
    
    Motivation
    ----------
    It could be the case that the CCCPAwarenessTest does not have a bucket
    to use if used in the wrong order by JUnit for all tests.
    
    Modifications
    -------------
    The fix makes sure that a default bucket is created, it also makes sure
    that the test doesn't fail against more than one node incorrectly.
    
    Result
    ------
    The test is now more failure resilient to false positives.
    
    Change-Id: I617561d900129e8ddda86e6ad624760473258a5f
    Reviewed-on: http://review.couchbase.org/35722
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 23c550efa2c9e35e921562e388cdc95026b4b0b2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Apr 15 06:49:45 2014 +0200

    Fix ConcurrentModificationException in VBucketNodeLocator
    
    Motivation
    ----------
    If a node needs to be removed in the VBucketNodeLocator#fillNodeEntries, the previous
    code could lead to a ConcurrentModificationException.
    
    Modifications
    -------------
    Use an iterator to safely remove it from the map.
    
    Result
    ------
    No more ConcurrentModificationException.
    
    Change-Id: Icc9b86661c69436e60f9dc4ace559ecfff4ff28b
    Reviewed-on: http://review.couchbase.org/35719
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 7a01b8d59b4d4855f908ac92d923d95ff6063d22
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 18 11:18:32 2014 +0100

    JCBC-431: Config poller for tainted carrier configurations.
    
    This changeset adds a config poller for tainted carrier configurations.
    It spawns once it finds a tainted config and stops once its not tainted
    anymore.
    
    What a tainted configuration exactly defines, is implemented in each
    configuration implementation. The Provider just checks for the field
    and acts accordingly.
    
    Change-Id: If4d9c83994ad82b0f22d0ea9edc2bc0e9dca7ffe
    Reviewed-on: http://review.couchbase.org/34626
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 2783677202ce1cb5b245dc9e1892f2483743ff77
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 25 11:58:14 2014 +0100

    JCBC-446: Better NMV handling
    
    Motivation
    ----------
    Once the NMVB collection (set) is full, we never reset it back
    to a clean state. This means that once full, the primary node
    will always be used, even if it returns NMVB itself multiple
    times.
    
    Also, because of the heuristics in place, a NMVB will not trigger
    a config check for a new config. Since this is a clear pointer to
    an outdated config, doing so will get it to a good confing quicker.
    
    Modifications
    -------------
    If the collection is full, empty it out. This will make room for
    subsequent attempts. Also, trigger a "checkConfigUpdate" if we need
    to reschedule such an operation (thresholds in the CF still apply).
    
    Also the code makes sure that the alternative node is active. This
    needs to be in place because it could be that the node in the list
    has been removed already, but is still hold as a reference in this
    set.
    
    Result
    ------
    More robust handling of NMVB operations.
    
    Change-Id: I89898017e2eea1f07a99b8a866d9a1b6e45bb825
    Reviewed-on: http://review.couchbase.org/34885
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit aa8e153af8c7e890882ba5930a245ed0f0f0cc22
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Mar 17 14:44:22 2014 +0100

    WIP: Fixing issues with rebalance & cccp in general
    
    BucketConfigurationProvider:
    
    - Make sure that configs marked as outdated are not propagated up the
      stack but instead an outdated signal is raised, eventually leading
      to a fresh new correct configuration.
    
    - When carrier config is used, register a connection observer that
      gets notified once the connection is closed and shuts it down, also
      signalling an outdated configuration, leading to a fresh new correct
      configuration.
    
    - Simplifying the HTTP reconfiguration to only subscribe in one place.
    
    CouchbaseConnection:
    
    - Do not queue a node for reconnect if it is not part of the cluster
      anymore.
    
    Change-Id: I1b2b8b6fdc130b58c0765cea183010da568aaf0e
    Reviewed-on: http://review.couchbase.org/34555
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 45d368b18b7a4dadbb47917a785c79a847666ec3
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Mar 24 13:57:04 2014 +0100

    Add development pom.xml
    
    Motivation
    ----------
    While ivy/ant works for years now, it is a little too hard to get
    started when contributing simple patches with IDE setup. Since most
    IDEs have good maven support, adding a pom.xml to get up and running
    quickly makes it easier to contribute and develop.
    
    Modification
    ------------
    Add a pom.xml which is inteded to get up and running quickly. It is not
    designed to do release management, which still happens through the
    ant/ivy pipeline.
    
    Result
    ------
    Contributors and developers can import the project more easily and
    contribute patches.
    
    Change-Id: I40831905d61d263522e006774faecca9534e31e2
    Reviewed-on: http://review.couchbase.org/34853
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 83beef1959de357af48bb1232f4ab6f536e51b8e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Mar 26 13:32:05 2014 +0100

    JCBC-439: Fix AuthDescriptor overriding.
    
    Motivation
    ----------
    The AuthDescriptor, even when set through the builder, is ignored on factory
    construction. This means that no manual descriptor can be passed in, always
    leading to SASL auth list.
    
    Modifications
    -------------
    The appropriate methods in the builder have been implemented and tests added
    to verify the functionality.
    
    Result
    ------
    A custom descriptor can now be passed in and be used to override default auth
    settings.
    
    Change-Id: I66ac4e34a32e2da31d1b8a784bcfb39e9ce31f01
    Reviewed-on: http://review.couchbase.org/34935
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 67c0fc317f58a43c21f66b29d711438091367ab8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Mar 24 14:19:05 2014 +0100

    JCBC-436: Expose custom auth wait time setting.
    
    Motiviation
    -----------
    With changes introduced in spy (SPY-159), it is possible to customize
    the auth wait time on the connection factory builder. This time should
    be increased for the couchbase SDK and also still be configurable.
    
    Modifications
    -------------
    The setting is exposed through the regular methods, test have been added.
    Note that the default time has been increased to 2.5 seconds, which mirrors
    the default OP timeout.
    
    Slight-side effect change: one test has been adapted to some interface
    changes in the spymemcached library, which needs to be part of this changeset.
    
    Result
    ------
    The auth wait timeout is now configurable.
    
    Change-Id: I7d2acc94e2fbd220154caf8c5dfe787b9374ca5d
    Reviewed-on: http://review.couchbase.org/34854
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8132247150cf5c6874c7dad33582a981734deb7e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Apr 4 09:13:36 2014 +0100

    Upgrade spymemcached to 2.11.0
    
    Motivation
    ----------
    Spymemcached 2.11.0 contains many changes that help with more stability
    during authentication, reconneaction, and other scenarios. Also, more
    methods are exposed for async mutating and typesafe status codes.
    
    Modifications
    -------------
    Upgrade the dependency and adapt the test cases to fit with the new interface.
    
    Result
    ------
    Upgraded dependency.
    
    Change-Id: I5543c028a2ee7c9bee0035d04f3fb576ee96bcf8
    Reviewed-on: http://review.couchbase.org/35264
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit eaf998d0df78fa052480c3f06f459d66038ea62e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 11 13:06:37 2014 +0100

    JCBC-427: Update enclosed HTTP provider with new configs.
    
    This changeset makes sure that the enclosed HTTP configuration
    provider also gets new configurations during runtime, so that once
    it needs it, it doesnt override a good one with a very old one.
    
    This is particularly important when the HTTP connection gets closed,
    because then a "notifyDisconnect" would override a good config with
    a old and outdated one, leading to inconsistencies.
    
    Change-Id: Iffce8028c49844eb5a834fcfc1e93e7525128536
    Reviewed-on: http://review.couchbase.org/34378
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 07c7ea3f4feebb4d3f6819f29e272b69892dd053
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 11 13:53:37 2014 +0100

    JCBC-426: Add support for manually disabling carrier or http bootstrap.
    
    This changeset adds the possibility to manually disable both carrier and
    http bootstrap through system properties.
    
    Carrier: System.setProperty("cbclient.disableCarrierBootstrap", "true");
    Http: System.setProperty("cbclient.disableHttpBootstrap", "true");
    
    If such a setting is issued, a INFO level message is logged to make it easier
    during debugging and failure analysis. Note that in general, tweaking such
    params is not necessary, althogh it might help in certain debugging and
    failure conditions.
    
    Change-Id: I654bcecd0a1ffa576b7a5c146dc4580e37a7995e
    Reviewed-on: http://review.couchbase.org/34380
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit abf39bf460424afcc5993979bac41874975c7759
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Feb 26 14:31:25 2014 +0100

    JCBC-421: Rewriting the Query internals for better performance.
    
    This changeset is a complete rewrite of the Query object internals while
    keeping the external API completely identical. Under the covers, it now
    uses a String array instead of a HashMap to provide faster looping and
    better cache friendliness.
    
    Also, values are now encoded and quoted (if needed at all) during the set time
    and not when the query string is created. This gives even better performance
    when most of the Query objects are cached and just fields changed on the fly.
    
    It also uses a custom compiled regex to identify JSON objects and does not rely
    on the slower spymemcached "isJSONObject" anymore.
    
    In JMH benchmark tests, performance was 100% better or more compared to the
    old implementation. The performance difference is even higher when more params
    are set on the Query object.
    
    Change-Id: I73e9157093d5f0ea82b72d424548d1bc34afd5b5
    Reviewed-on: http://review.couchbase.org/33930
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit d8ef99e1c92028bc87c08f1ac5915cc70346224c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 13 09:19:31 2014 +0100

    Harden "bucket state"-dependent test cases.
    
    This changeset makes sure that various test cases which depend
    on bucket state (that is mostly warmup happening) are more
    resilient to false-negatives. This is mostly achieved through
    larger allowed timeouts, which allows slower disks also to
    catch up between the unit tests.
    
    It increases the timeout for the http cluster
    operations in the test from 2.5 seconds (operationTimeout) to
    the more realistic HttpTimeout (75 seconds).
    
    Change-Id: I4d884c74802ad9906b3a44e91ff9b45f1ca6b650
    Reviewed-on: http://review.couchbase.org/32306
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 332d1f4761ef03eeacc8c32549a0b8ce2111daf5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Feb 24 15:50:57 2014 +0100

    JCBC-417: Expose (async)getsFromReplica.
    
    This changeset exposes the same replica read functionality as before,
    but this time also exposes its underlying CASValue. The signature is
    a mix between a replica get and a gets operation.
    
    Change-Id: Id094092280115e66af6962eb8898a6e4b5f27f78
    Reviewed-on: http://review.couchbase.org/33884
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit de9c301c5fb5fccfbfe76546108a7e254c6ed9d8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Feb 25 12:59:06 2014 +0100

    Upgrade Spymemcached to 2.10.6
    
    Change-Id: I48d1f2857f9d4b3e394e994f8a9344ace029a278
    Reviewed-on: http://review.couchbase.org/33907
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b4c4bebb68bc1c27ebd041bf8711710650aae313
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Feb 24 09:35:50 2014 +0100

    Enable SNAPSHOT uploading through ant target.
    
    This changeset adds an additional ant target which deploys snapshot
    releases directly into the sonatype snapshot repository.
    
    See https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-7c.DeploySnapshotsandStageReleaseswithAnt
    for more details on how to setup local authentication.
    
    Change-Id: I3dc26b70c3547e42c0181486bc4e189b5e30ace9
    Reviewed-on: http://review.couchbase.org/33881
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 3d2fd917cae4c2ac7f8e93a5964383afc8469377
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Feb 21 10:18:01 2014 +0100

    JCBC-418: Fix potential deadlock when reconfiguring.
    
    This changeset fixes a potential deadlock which can happen during
    reconfiguration and a failing node. When a 500 error response comes
    back from the server, the httpcore IO pool handles the retry and
    passes it back to our logic, where it grabs a new node to ask. This
    node list is synchronized.
    
    In parallel, when a reconfiguration happens, we synchronize on this
    list and mark the appropriate node in the pool for shutdown. We
    arrive in a deadlock situation because in our code the node list
    is synchronized (waiting/holding) and in the httpcore code there
    is a lock (waiting/holding) on the internal node to shutdown, but
    it is still hold by the retry process.
    
    This changeset moves the actual shutdown out of the synchronized
    block, making sure that parallel requests can progress. The node
    has been removed out of the list already, so it will not be
    tried again for a regular view request (and we can shut down the
    open connections behind the scenes).
    
    Change-Id: I0f65d440ce593d0a795ee068e5d84348b9207b5b
    Reviewed-on: http://review.couchbase.org/33827
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit b8f90dcb1c02e1f293fefb4f4d97682793dfcc8c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Feb 20 09:38:49 2014 +0100

    Use CouchbaseConfig instead of the incorrectly used DefaultConfig.
    
    Change-Id: I2081ef6cf37b83c8a3cb9c7237b01ccafdcf58eb
    Reviewed-on: http://review.couchbase.org/33788
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit de89c8404a27c057ed1f4d32ce187891971d826b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 18 08:44:13 2013 +0100

    Rename config types for clarity.
    
    This changeset renames the DefaultConfig in CouchbaseConfig and
    the CacheConfig into MemcacheConfig to more accurately describe
    the type of buckets they are referring to.
    
    Change-Id: Icfa43b63595a362d14c1b0938094fc1d4fcc56b3
    Reviewed-on: http://review.couchbase.org/30373
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 009833c1526a3431e265735c96a8b48dde727cd2
Author: John Douglass <johnsdouglass@yahoo.com>
Date:   Wed Mar 6 16:00:51 2013 -0800

    JCBC-240 Add total number of rows in ViewResponse
    
    Change-Id: I82bcb65e48e3d6fde8d5361ee242f89960d38a6f
    Reviewed-on: http://review.couchbase.org/25027
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit e7b8b777d176e37039ac4a8bf1a7aa5c9324b6e9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 28 10:11:51 2013 +0100

    Correcting mailmap for shortlog
    
    Change-Id: I83c239dc4a7ced77059261ae7c689d0ae6bd54cd
    Reviewed-on: http://review.couchbase.org/30682
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 1684f6bcaa133aba0e69a418281d8b650d18b789
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jan 17 10:54:47 2014 +0100

    JCBC-337: Implement a Combined Configuration Provider (Binary + HTTP)
    
    This changeset provides a combined http and binary configuration provider. It is
    designed to handle bootstrap and monitoring completely autonomously, further
    decoupling it from the rest of the codebase.
    
    Change-Id: I13b5029b98c9327cac6927ea35efe529edbb2f84
    Reviewed-on: http://review.couchbase.org/32589
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 25a447464e98c1f56bdd9c7748640b2a93f0711e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 18 08:58:36 2013 +0100

    Suppress unchecked warnings on completion listeners.
    
    Change-Id: Icf7af9df6b7a1fa3df6892ec0a3b3e4175f86d33
    Reviewed-on: http://review.couchbase.org/30375
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 19437e96b4fefea3193bfbf20871453867de7e23
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 15 13:42:35 2014 +0100

    JCBC-337: Update Config from NMVB-Responses.
    
    This changeset takes an incoming "Not My VBucket" response from the server,
    does some conversion logic and then passes it on to the ConfigurationProvider.
    
    The config then gets parsed and stored as any other configuration coming
    from a streaming response. A test case is added to veriy that behaviour.
    
    Change-Id: I83a838ca0c086426779c092001329b00d11a19e7
    Reviewed-on: http://review.couchbase.org/32425
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5707da5e01e0f6cc6fad6531e1ba28b6124446bf
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Tue Jan 14 16:09:29 2014 +0530

    JCBC-400 : New feature test for credential encryption CRAM-MD5 or PLAIN
    
    Change-Id: I003f5987f56392bd50b871e7a1eb4182008ccc2b
    Reviewed-on: http://review.couchbase.org/32355
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit aee906f8fb2bf2488989a5a20fbc88ac48890aac
Author: Philipp Fehre <philipp.fehre@googlemail.com>
Date:   Mon Feb 3 18:12:05 2014 +0200

    configurable cluster.adminname, cluster.password
    
    provide option to set cluster.adminname and cluster.password in the
    build.xml test related properties section.
    
    Change-Id: I46c2e595ed16d477bbd09062cf554c7df2915928
    Reviewed-on: http://review.couchbase.org/33137
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit e65abda2ae72987f4514f7a440d6f194ec787087
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Feb 6 13:50:52 2014 +0100

    Updating Spymemcached to 2.10.5
    
    Removing the shutdown method because it is now part of the
    inherited spymemcached connection.
    
    Change-Id: Icf881d3de30f11655920091600badba3987e615d
    Reviewed-on: http://review.couchbase.org/33285
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 33d020afac245b52629da2c55f70a1d1c6b3b543
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 22 14:18:40 2014 +0100

    JCBC-403: Harden reconfigures on view-based workloads.
    
    This changeset makes sure that even on view-based workloads, lost
    streaming connections are detected properly, leading to faster
    working states again. In particular, it contains:
    
     - Signaling an outdated config also on failing http requests
     - Signaling an outdated config on bulkget workloads (by identifying
       inactive nodes)
     - Making sure the proper resubscriber is called with the bucket
       config when the monitor is disconnected.
    
    Change-Id: Ib64faa78a983347d38479a1ab1c3ac9c181ae7ed
    Reviewed-on: http://review.couchbase.org/32727
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 2ad8cdfc02d30332e089a3da2ea5a281a2bdc92b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 13 07:23:34 2014 +0100

    JCBC-399: Do not notify ViewFuture listeners twice.
    
    This changeset fixes a regression introduced in the latest
    listener changes, which makes sure to not notify the listeners
    twice on the ViewFuture (which is triggered only when
    setIncludeDocs(true)).
    
    Change-Id: I59d0b7442b3aac451bfdd277b7d24681423ae7d6
    Reviewed-on: http://review.couchbase.org/32305
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 556d3f92ad93b0afaa30ec4c6ea72286416754cf
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 8 19:48:35 2014 +0100

    SPY-149: Notify Listeners after Complete.
    
    Change-Id: I90c58ffd02c841bf1dbc1a8b67717d47954fcde1
    Reviewed-on: http://review.couchbase.org/31734
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 29eae04a56886d103dc5c4a87690035c3bd9aa80
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 8 18:43:13 2014 +0100

    Upgrade spymemcached to 2.10.4
    
    Change-Id: Id2ba05399a89c348eda22afd57f3dfda42d0ceae
    Reviewed-on: http://review.couchbase.org/31733
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 60c6d8946fcadc7e8bd5e87fe6706eef25d24cf3
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 8 07:54:09 2014 +0100

    JCBC-361: Only add CAS if not null.
    
    Change-Id: Ia86667ce291ad9c22f4a847510df4383b07fb378
    Reviewed-on: http://review.couchbase.org/31710
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>

commit 750171ad9dec822def38efac666b655adb1bfd86
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jan 7 13:11:43 2014 +0100

    JCBC-397: Adding INFO-level config output on init.
    
    This changeset prints info-level output on initialization, making
    it easier to report and debug issues when they show up in logs.
    
    Change-Id: I12cb58cded7ef106cf727c1eeab93101024d3c56
    Reviewed-on: http://review.couchbase.org/31667
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 96d5dfb1747025f5c5b09a9cf12c247180b325d9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jan 7 11:27:03 2014 +0100

    JCBC-361: Add specific observe timeout.
    
    This changeset adds a longer timeout for futures when persistence
    or replication constraints (observe) are used. It currently defaults
    to 5 seconds, acknowledging that writing to disk may take longer
    than just writing to ram.
    
    The manual setting of maximum number of polls has been deprecated,
    because it is now calculated out of the observe timeout and the
    observe interval, making it more flexbile and easier to configure.
    
    In summary, regular operations still have the 2.5 second timeout,
    but everywhere "PersistTo" or "ReplicateTo" is used, a longer,
    5 second timeout is used instead by default.
    
    Change-Id: Ifdee7550782c72bb71bc11ddede2c139e3b5436e
    Reviewed-on: http://review.couchbase.org/31655
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit db6f66917e7b837e4ca36983b5e6fcc1d0985c88
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jan 7 13:21:38 2014 +0100

    JCBC-396: Rename getDesignDocument to align with other methods.
    
    This changeset renames the getDesignDocument and async* to
    just getDesignDoc. This helps with consistent naming for all
    design document operation.
    
    The old method is marked as deprecated.
    
    Change-Id: I3a2b0df7138404e24619a2ebdbdebca3c74f2412
    Reviewed-on: http://review.couchbase.org/31668
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 95569c408c2f14069fab8f2b856ad1b6d75ef516
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jan 3 10:05:30 2014 +0100

    Fix ClusterManager too optimistic timeouts.
    
    Also, make sure the PaginatorTests pass properly with a larger timeout
    since persisting can take longer than the default timeout.
    
    Change-Id: Id11eceea654b3b4f1267dc61627d3f477eda445e
    Reviewed-on: http://review.couchbase.org/31569
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 5d4e67d9ead9b61a213e77d35b65ca1c0b543c05
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Dec 17 15:21:44 2013 +0100

    JCBC-361: Add real async observe capabilities.
    
    This changeset makes the blocking-in-disguise methods really async,
    allowing to run them in parallel as needed. Observe calls are fired
    off in the callback pool, returning a new future that overlays
    the results of the original one (same behavior as before).
    
    The code is a little more ugly than needed, but it takes care to
    inherit the exact same behavor and messages than before.
    
    Change-Id: I626dd989b98940700f92dfdc36cf3ba5dd8c9765
    Reviewed-on: http://review.couchbase.org/31214
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3c7d3de4142c0b351d7733a49421a8ff36b0ff07
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Dec 19 12:17:19 2013 +0100

    JCBC-390: Refactor ClusterManager
    
    The ClusterManager needs to be refactored because the HttpCore dependency
    has been upgraded. While the old code would still work, getting rid of
    the deprecated pieces makes sense to keep the code consistent with the
    view logic.
    
    Change-Id: I2df6e086b9911fb1a50a6d2ab08239cbf4c6a342
    Reviewed-on: http://review.couchbase.org/31246
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 32fb5cd0f0133609f77428c2af6ac9281beebbae
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Dec 11 10:57:00 2013 +0100

    JCBC-388: Rewrite View Connection Management
    
    This changeset rewrites the connection management of the view layer
    by utilizing newer mechanisms in apache httpcore nio.
    
    	- It uses a built-in pooling mechanism
    	- Reduces the amount of threads used to a minimum
    	- Fixes severe connection issues under failover conditions
    	- Massively reduces the amount of code needed
    	- Streamlines the reconfiguration process in ViewConnection
    	- Makes the worker threads and connection size configurable
    	- Handles connection lease on rebalance out
    	- Adds better testing for the provided functionality
    	- Writes the HTTP_HOST automatically to avoid costly DNS
    	  lookups, fixing JCBC-151.
    
    Change-Id: Ie78466a0ec7e70118d1ed874684f690887ffb688
    Reviewed-on: http://review.couchbase.org/31017
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 1f9dd2e2de6b41ed13619dd9b79c4f7f6444d8f5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Dec 19 14:20:18 2013 +0100

    JCBC-386: Cleanup Query and add docblock for grouping.
    
    This changeset performs non-behaviour-changing cleanup and
    enhances the docblock for setGroup and setGroupLevel to
    warn users to not use both together since they override
    each other.
    
    Change-Id: Icfb73a6c7c53c83e2957d62226c95638776ef399
    Reviewed-on: http://review.couchbase.org/31250
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit aef952f3818632aad4705b817f606c3c953aad36
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Dec 3 06:43:03 2013 +0100

    Upgrade SPY to 2.10.3
    
    Change-Id: I65097bf0e5f04e3e08fa8d3d994943445f4de1e8
    Reviewed-on: http://review.couchbase.org/30779
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 30b30cd42a14421652ce6c7261699626a3dcd40c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 29 09:29:51 2013 +0100

    Add test case for SPY-146.
    
    This changeset adds a test case to make sure observe with 2-byte
    UTF-8 chars works as expected. To pass, this requires at least
    spymemcached 2.10.3 in place.
    
    Change-Id: I91b629f3a69d2c5587d2ea7be5261ed015d8e6e6
    Reviewed-on: http://review.couchbase.org/30702
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 6851cdccab2421e6b34d64a55f9cfc918021dae6
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 18 08:15:02 2013 +0100

    JCBC-380: Dynamically load ports from incoming config.
    
    This changeset makes sure that the 8091 port is not hardcoded
    during reconfigure, but loads and applies it dynamically
    from the config that comes in from the cluster.
    
    Change-Id: I4d06b9d80674069c1b46493777cbac4e476554a2
    Reviewed-on: http://review.couchbase.org/30372
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f55703c092dfef7c421c09be46f3e19e29339b7d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 18 08:54:38 2013 +0100

    Converting deprecated methods on channelbuffer.toString()
    
    Change-Id: Ia4e2d9e11cba976f7aa230029b32bd303bc98df1
    Reviewed-on: http://review.couchbase.org/30374
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f1dcab369cf24a98880e057fd65f36cd341576f5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Nov 5 12:02:20 2013 +0100

    Upgrade to spymemcached 2.10.2
    
    Change-Id: I1aed2cbcd5552686b5a141828edf75d6bfb8afd1
    Reviewed-on: http://review.couchbase.org/30051
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>

commit f4aa27a83924fc37a7f503067bdbda90c0e9c4a3
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Nov 5 08:22:54 2013 +0100

    Adapting test case for the latest observe changes.
    
    Change-Id: I0dab4692c29411d96ddea5297d8fd2959640626b
    Reviewed-on: http://review.couchbase.org/30045
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>

commit 50f61cb3a7a00c8d6b3321902cde69178e7cfc47
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 30 09:04:47 2013 +0100

    Reuse VBucket objects from last Configs to lower GC pressure.
    
    This changeset allows to (optionally) pass in a existing Config
    and if VBucket objects are the same, those get reused in the new
    Config and not creating new ones all the time. This lowers GC
    pressure, especially during rebalance phases when 10 or more
    CouchbaseClient objects are used.
    
    Tests have been added, please note that the JSON configs will
    be separated out into resource files in a different commit.
    
    Change-Id: If979b5a52ffbcf7e87a4c59bb14f781bf48deaee
    Reviewed-on: http://review.couchbase.org/29887
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5444a117e1fffb854bb205a82e7f595ec0e6b895
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 4 11:10:14 2013 +0100

    JCBC-375: Correctly reorder resubscriber to prevent race condition.
    
    This changeset makes sure that the old reconfigurable is taken out
    of the old provider before it gets shut down to avoid a situation
    where it is null, leading to failures on subsequent reconnect
    attempts.
    
    Change-Id: I733ae5ecc0965a95299dbe5a8b9ca4f25742be31
    Reviewed-on: http://review.couchbase.org/30010
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit dd91f06a18fa3d4494eb0330806fb6ea556d6ee9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 4 08:25:15 2013 +0100

    Further hardening of ReplicaRead.
    
    This changeset hardens the implementation of ReplicaRead further
    by applying the following changes:
    
     - Make sure the completedFuture is not overriden by later calls.
     - The "cancel" iterations on the monitoredFutures is synched as
       advised by Collections#synchronizedList.
     - Make sure that replica reads are only "fanned out" to nodes that
       are actually configured as a replica at the moment. For that
       reason, a new method is added to the VBucketNodeLocator to return
       a list of servable nodes for this specific key.
     - Along the lines of the previous point, make sure that an additional
       request to the proper active master is only sent when it is actually
       reachable (not -1 in the vbucket map).
    
    Change-Id: I6568e1c1fd5d779acf3fd1e52ed2d88b46a1a8b7
    Reviewed-on: http://review.couchbase.org/30009
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 736d6ac77499cfc204f5e69b39be7fb67ca4be0a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 15 12:02:00 2013 +0200

    Moving CouchbaseClient docblocks to the IF and adding @Override.
    
    Since the CouchbaseClient grows out of bounds with the recent
    additions, moving the docblocks makes it shorter. Also, this is
    where they belong to anyway. Actual refactoring of the code
    will follow in separate commits.
    
    Change-Id: I8d9f3a6c64a41b58c9a25df69fc17864acabd6ff
    Reviewed-on: http://review.couchbase.org/29541
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6953408ddc5f5c67aab453f4a986bd610bbc1edf
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 15 13:34:34 2013 +0200

    JCBC-369: Fix observePoll delete logic.
    
    This changeset refactors the observePoll method, making it faster
    and also correcting the delete logic which is not correct for
    certain scenarios (now it is correct with respect to the non-delete
    methods).
    
    Also, it optimizes the observe() method to only add those nodes
    to the bcast list that are actually needed to fulfill the
    constraint.
    
    Change-Id: Ib101af5f1212123fcb103d335d40fb2bc79f8964
    Reviewed-on: http://review.couchbase.org/29545
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 9b2cd202e7e202845d1367af5778cb558a5cf539
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 29 07:31:56 2013 +0100

    JCBC-374: Also trigger completion on active node replica doc.
    
    This changeset makes sure that when a replica get (that is
    fanned out to all replica nodes + the active node) from the
    active node returns first, the replica get future is also
    completed.
    
    This fixes the situation where 1 replica is defined, this node
    is failed over and no data is returned (while of course the
    master node is still reachable and returns the result). Before
    the data was returned properly but the latch on the replica get
    future was never counted down, and as a result never indicating
    success.
    
    Change-Id: Ib6b513819ed9a686fdc80956ebb58edf9cfc6a43
    Reviewed-on: http://review.couchbase.org/29848
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a6f004e7e813c615a45ce92f9e4f56e2745675fd
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 28 14:27:57 2013 +0100

    JCBC-373: The replica get future to complete is not thread safe.
    
    This leads to false positives while the future could be completed
    but never is because of visibility issues.
    
    Change-Id: I28a74e3f44d28ab8e4f3780ddb158527484fd59d
    Reviewed-on: http://review.couchbase.org/29823
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b259a099084be4dfc7a437887740a3fc884aff2c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 29 13:18:43 2013 +0100

    Refactor ConfigFactory and optimize VBucket memory heap size.
    
    This changeset refactors the ConfigFactory but not changing how it
    works internally. In addition, VBucket objects are moved from int
    to short and only allocate as much memory as needed.
    
    Change-Id: Ifa8d2eff9a9cd7fe44fabb83ce8ec4ab1192f32b
    Reviewed-on: http://review.couchbase.org/29850
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 65717a241e288778b916e2ea059151b95364e8e5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 29 10:44:36 2013 +0100

    Refactor the ConfigurationParserJSON for clarity.
    
    This changeset doesnt change any functionality but only refactors
    and properly comments the ConfigurationParserJSON.
    
    Change-Id: Ic534336f5421e9c0e928520665bde454cee4f653
    Reviewed-on: http://review.couchbase.org/29849
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit dbad2a413f17226503b3ca8d0881a0b7aa18f926
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 24 11:27:14 2013 +0200

    Make property tests more solid by clearing them properly.
    
    Change-Id: I63d73e441551b5944206c628dbfd47505ac070cf
    Reviewed-on: http://review.couchbase.org/29735
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 843575ac944c3e81661759244749f2e5b7256a72
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 14 09:58:02 2013 +0200

    Convert local-used only fields to local.
    
    Change-Id: I5711371b06a255b05c037cbaaa9ea1e46b6bbb68
    Reviewed-on: http://review.couchbase.org/29538
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ddbbf219ef262f5054a9442903fbe00764eb1339
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 14 10:18:46 2013 +0200

    Removing redundant declarations and making more fields final.
    
    Change-Id: I9f2dcb6e37544c237d11e6f4050fe1120344aecb
    Reviewed-on: http://review.couchbase.org/29537
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ad8353b39d408984f28891fac144d5c21dba13e0
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 23 11:41:36 2013 +0200

    JCBC-371: Removing redundant reference of bucket/vBucket.
    
    This changeset removes the redundant this.bucket reference in
    the BucketMonitor, reducing memory a bit. Also, the observe
    notifiers are now called directly and the needed bucket
    config is referenced from the parent ConfigurationProvider.
    
    Change-Id: I0b044388d570b8e321c6285488d9f07b6c0f163d
    Reviewed-on: http://review.couchbase.org/29714
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 82dc6d2ab6900a5edbc27df81bc0fbdedb8f8599
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 14 09:21:55 2013 +0200

    JCBC-368: Avoid potential netty deadlock on failing streaming conn.
    
    Change-Id: Ia3246b960e2e05515c0d54214b1732cbaf570c8b
    Reviewed-on: http://review.couchbase.org/29539
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 0540d9f51f08a331730f992b3385d8d7849ddeac
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 11 09:30:47 2013 +0200

    Updating spymemcached to 2.10.1
    
    Change-Id: Ide6d9c0191fc91a492b64022e2f12afb6f76083c
    Reviewed-on: http://review.couchbase.org/29468
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit e93f92ae8e4d3facf73b0443f5c6120eb30de6b8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 11 08:26:53 2013 +0200

    Make CouchbaseClientTests more resilient.
    
    Change-Id: I7476a1dc625000669d40f4f707e5c9003508fe11
    Reviewed-on: http://review.couchbase.org/29467
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 01043e3cca69c1a781a2a26f35eb89d480a25704
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 11 08:10:56 2013 +0200

    Make sure random tests have better chance of succeeding.
    
    Change-Id: Iacc07dfd949ffaaacb64e68349580952c6c51df2
    Reviewed-on: http://review.couchbase.org/29465
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 6663bf84671f588f99f93c32019f0f805fd72f54
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 11 08:16:40 2013 +0200

    Mock should use a empty list instead of null for the servers.
    
    Change-Id: I103606e82f609231846998b59719fa170bd4624a
    Reviewed-on: http://review.couchbase.org/29466
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 08d4c800163bc97f6b8e22d63c21f99bef318d4c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 7 17:35:26 2013 +0200

    JCBC-366: Properly override ExecutorService and Metrics.
    
    Change-Id: Ia1987d3dc9ca8cf8c73435ba505ada1fd83f265e
    Reviewed-on: http://review.couchbase.org/29374
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 4cafb384eeebd3ec7921fb8a6512cf16280c12dd
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Sep 12 23:43:10 2013 -0700

    Changing groupId and adding targets for maven central.
    
    Change-Id: I3ebf070eb7a4db6e9a269be60d6bf36905d475cf
    Reviewed-on: http://review.couchbase.org/28970
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 94045a03be31bfcff4dfedf69c75650632890fdf
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Sep 5 11:09:54 2013 +0200

    JCBC-344: Support creation params through properties.
    
    This changeset supports the creation of a factory through properties and
    also enables it through the factory builder.
    Change-Id: I8b5fe5cd95dfa8800588a623a02d29d924bbd966
    Reviewed-on: http://review.couchbase.org/28860
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 493521418a801d9246c917c81d4b6f63aeceb0aa
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Aug 20 15:53:08 2013 +0200

    JCBC-351: Harden asyncGetFromReplica.
    
    This changeset makes sure that also the active node
    is considered in the replica list (to get a value
    even after a failover happened in the meantime) and
    also make sure that if no replica node is active for
    the key, reconfiguration is triggered to avoid dead
    nodes.
    
    This is in alignment with the getPrimary() operations
    which use the same behavior.
    
    Change-Id: I5a9c7c888025069942c3db366e36dbd627f643e0
    Reviewed-on: http://review.couchbase.org/28473
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f586f1af79b3e88ef968ec1c709f65b40c23c974
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Aug 2 09:51:31 2013 +0200

    JCBC-330: Exposing expiration on more CAS methods.
    
    This changeset exposes the - already implemented - expiration
    setting on CAS methods to more signatures. This makes it easier
    to avoid a subsequent touch() on the sync methods and enables
    it at all on the persistTo/replicateTo variants.
    
    Change-Id: Icfb2e38811db41fe21e767b839bb78e821b77e14
    Reviewed-on: http://review.couchbase.org/27886
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit af5601b07ef42cfcbc0a652b7ea3177d2a45abe1
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Aug 30 10:49:30 2013 +0200

    JCBC-333: Only query nodes with active vbuckets.
    
    Change-Id: I0bdfa213e1f8577a0ec1efee9c5191cf30792c38
    Reviewed-on: http://review.couchbase.org/28693
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit da6780856682b58a20af3667801a61412dedc45a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Aug 12 13:45:24 2013 +0200

    JCBC-343: Adding Listeners support.
    
    This changeset builds on the foundation of spymemcached
    (ticket SPY-132) and adds functionality for replica gets,
    and views (http futures).
    
    Change-Id: I1a2b189947484555e0d51654913d0dd9681de9dc
    Reviewed-on: http://review.couchbase.org/28109
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit c9956555729f67ce6c378d506e3d31e55dc5b864
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Sep 10 12:51:02 2013 -0700

    Fixing FlushTest and warmup.
    
    Change-Id: I6598491eedc348a2edfe50caa074d62a41d31c8f
    Reviewed-on: http://review.couchbase.org/28878
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 281f142759ba3417950fa4963d5cd99cc502f9e2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Sep 6 10:24:17 2013 +0200

    JCBC-350: One more spot where to fix the race condition.
    
    This changeset also fixes the possible inconsistency in the observePoll
    method, not only in observe itself.
    
    Change-Id: Ifbec6e88e2df534724e48a173413ec41d6f35175
    Reviewed-on: http://review.couchbase.org/28933
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit fd4103f7fd6b79861c316c164f72b3131eb582a5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Sep 4 11:27:14 2013 +0200

    JCBC-138: Replace nodeList on reconfiguration to reflect changes.
    
    This changeset makes sure that, after a reconfiguration, the new
    node list is passed on to the configuration handler so that it is
    aware of the new topology.
    
    This changeset now makes it possible that also when only one node
    is passed in during construction, all of the other nodes will be
    picked up proactively.
    
    Change-Id: I810f6b4e419a1ddecf58c46d428ada66e17a84c2
    Reviewed-on: http://review.couchbase.org/28785
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 1fc5e0878a008e026a5bd358dbf7ad80443313f8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Sep 5 11:22:14 2013 +0200

    Upgrade Spymemcached to 2.10.0.
    
    This changeset upgrades the spy dependency and also applies all
    needed fixes for the upgrade (it passes the executor along to the
    futures).
    
    Change-Id: Icea367bbe66aa9a3eaea9c85c307e04bf353840f
    Reviewed-on: http://review.couchbase.org/28815
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ec311196362ba86341a1459288da644ea9cc283c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Aug 27 17:16:48 2013 +0200

    JCBC-349: Make sure flush() works on memcached buckets.
    
    This changeset enables the pending flush() tests and makes sure
    that they also work on memcached type buckets.
    
    Change-Id: I5b1916c7e3058a819c0787c60bad3cc8b3df4c21
    Reviewed-on: http://review.couchbase.org/28599
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 8dc8b2a0003a054af9a1a09887dd4461d6885b12
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Sep 4 11:54:40 2013 +0200

    Reset system properties before running the PropertyTests.
    
    Change-Id: I81a8bb4db3fd5b6f7955e2d7416918fa3e9cf97c
    Reviewed-on: http://review.couchbase.org/28786
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit c1ead909683d329bdbc054f70446ab194ffa8f99
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Sep 3 17:28:30 2013 +0200

    Make sure ant clean does not wipe .idea directory files.
    
    Change-Id: I0db0906f36a2018e8ed918fa8e99aa2ec9cc7f01
    Reviewed-on: http://review.couchbase.org/28764
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>

commit 82fc9dbdf76a502afe8f0e0be52319e012a73e63
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Aug 20 15:54:38 2013 +0200

    JCBC-347: Adjust observe intervals for better performance.
    
    By decreasing the observe poll interval, better throughput on
    intense replicateTo settings can be achieved. This can also be
    modified through the Builder, but setting it to a lower value
    should provide a better experience by default.
    
    Also, the max poll cycles have been increased so together now
    the max waiting time is 5 seconds.
    
    Change-Id: I348aaa28ef9c2fea4161750178c1308be4231e7b
    Reviewed-on: http://review.couchbase.org/28391
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 95971629b8d4f9978e88599af1930b69191dfe79
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Aug 20 12:54:53 2013 +0200

    JCBC-346: Automatically detect SASL mechanisms.
    
    This changeset, together with the corresponding spymemcached
    changeset makes sure that the server automatically gets asked
    for all supported SASL mechanisms and the most secure one is
    selected.
    
    A specific mechanism can be forced by providing a custom
    AuthDescriptor.
    
    Change-Id: I27b5ace1dc884f370f14db8ba713221a5e8779fe
    Reviewed-on: http://review.couchbase.org/28389
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a106266f8f9f96ee87e0336a610b9bfa3f547344
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Aug 22 14:36:50 2013 +0200

    JCBC-350: Avoide race condition in observe replica.
    
    This changeset uses the locator only and avoids a possible
    race condition where the config contains stale data that does
    not correlate with the locator information.
    
    This can lead to a possible IndexOutOfBounds exception down the
    call stack.
    
    Change-Id: I4dea46c96ce78f7aaccf6cfff6ecd0629aa19894
    Reviewed-on: http://review.couchbase.org/28477
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3617768f3a188e1675dfc1f07a26b37495be8368
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Tue May 28 18:35:18 2013 +0530

    JCBC-280 - Support for edit bucket functionality through cbc.
    
    Change-Id: Ia96f7653630a16e9c922a00882ff7fc1c1c195e8
    Reviewed-on: http://review.couchbase.org/26557
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit f8a69072d5c726ea5e48358cd98c5097fa0e60d2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Aug 5 16:01:01 2013 +0200

    JCBC-340: TAP backfill ignores replicas.
    
    This changeset makes sure that only keys from the active
    node get propagated to the TapStream. This helps, but is
    not a full fix of the issue. See the corresponding linked
    issues from JCBC-340 for the ongoing other fixes.
    
    Change-Id: I4a7acaaa3066180be0e0949023c295aef2eb7685
    Reviewed-on: http://review.couchbase.org/27916
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit e539f5c29222b238ff75b107e8e3cafb5c3ba083
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Fri Aug 2 12:08:06 2013 +0530

    Fixed Assertion failures from isDone() method call on future
    
    Change-Id: I39693e789222f39a263d365546fda169e1182645
    Reviewed-on: http://review.couchbase.org/27885
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 2e00201b84b8601af7342bf819e39659ade57eaa
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 22 14:35:24 2013 +0200

    CouchbaseProperties should use the SPY LoggerFactory.
    
    Before this change, these log messages were not properly
    logged with respect to the configured logging endpoint.
    
    Also, the informative log message has been degraded to
    DEBUG, because it is not used that often and it generates
    confusion.
    
    Change-Id: Ibac70bf012be80439d4d2a4f894230d0fabadca2
    Reviewed-on: http://review.couchbase.org/27597
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit a1d63e17dcdde8d3d7c28768879d0bbada4c705d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jul 31 11:32:13 2013 +0200

    JCBC-338: Don't allow null for bucket and password.
    
    This changeset makes sure that the code "fails fast" and throws
    a semantically correct exception in case null (or an empty bucket
    name) is passed in. Otherwise, the data goes through and throws a
    NPE exception down the stack.
    
    Change-Id: I6d73f5dd551d1d9921a25cae8c58783e5f63afed
    Reviewed-on: http://review.couchbase.org/27790
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8032572d692afbb75d992b0477c65ca17049e19a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jul 30 13:54:35 2013 +0200

    JCBC-336: Refresh config while polling.
    
    This changeset makes sure the actual config is always used while
    polling in the loop. This makes sure a potentially stale config
    is reloaded before getting used.
    
    Change-Id: I5e636672b2cc910a3b3d2272672939ca7edbd4b3
    Reviewed-on: http://review.couchbase.org/27761
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 9f49f71b854b4779c989d2ab1d01c0fdd592cd60
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Mon Jul 22 21:44:05 2013 +0530

    JCBC-332 : Tests added for observe and arithmetic operations
    
    Change-Id: Ie6bfac06cf168fddbbd7808a2579ece1e080c700
    Reviewed-on: http://review.couchbase.org/27610
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 45a09f4c1d345c3cce0a1a6e12056fafc08d841a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 22 14:49:09 2013 +0200

    JCBC-325: Adapt Testcase to work with only one server.
    
    The % 2 assertion on available servers is not needed (anymore)
    and can lead to false negatives on unit test runs with only
    one target server in the cluster.
    
    Change-Id: I92f9edb8f5f9f9b7b4f3297a0f7576543840a9f5
    Reviewed-on: http://review.couchbase.org/27608
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit db51d4d834407f134e5b0384c142b43b9bc51b9b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 8 12:49:39 2013 +0200

    Checkstyle fixes before 1.1.8 release round.
    
    Change-Id: I675fda5d0d0de3155d1ddddc68e204b81f468142
    Reviewed-on: http://review.couchbase.org/27309
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit acad2ac6cf01140b563501e72e49ea6580a9fc68
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 8 10:33:27 2013 +0200

    JCBC-327: Adding missing CouchbaseClientIF Signatures.
    
    Change-Id: I505b95d1dbc76a365572ded83c85c5e6581ffe3e
    Reviewed-on: http://review.couchbase.org/27307
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 768094058b610205b315c9047c7c23287b9b209d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jul 5 08:13:17 2013 +0200

    Fix BucketMonitorTest and harden request code to avoid HTTP 401.
    
    This changeset fixes the test cases to correctly pass in the
    username. The server code has changed with 2.1 so that an
    authorized header with empty user/password on the default
    bucket are no longer ignored, therefore leading to
    unauthorized responses in tests.
    
    This does not affect production, because the code normally
    passes in the bucket name as the user, which gets recognized
    properly. A small change also now exposes this unlikely
    situation with an exception, so that it just "doesnt stop"
    silently in this case.
    
    Change-Id: I46793cdc42e4851d72a81338e5ee5c47b3f86608
    Reviewed-on: http://review.couchbase.org/27283
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit da3185683faef19d7d67bff7f630105cb6d9c633
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 1 14:12:36 2013 +0200

    Upgrade to SPY 2.9.1
    
    Change-Id: I615ec7a305c2177810e4307f41cd21a68d083a9a
    Reviewed-on: http://review.couchbase.org/27214
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3e3e3a763214a14688b2746b47d7d82a8a00fe83
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jul 3 10:06:53 2013 +0200

    Fix MemcachedMock to align with latest SPY changes.
    
    Change-Id: I113802e89d1f74f93859e7298f06a693ea402d6b
    Reviewed-on: http://review.couchbase.org/27261
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 0b12bc63fb83e54aca10a297f6a2c22989dee0fa
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 10 15:59:17 2013 +0200

    JCBC-266: Harden HTTP Provider on empty pool buckets.
    
    This changeset makes sure a proper exception is thrown when
    no valid bucket configuration could be found. The resubscriber
    picks it up and retries again.
    
    Change-Id: I254c5498a149fc2bab2f5459b10c0654354d23fe
    Reviewed-on: http://review.couchbase.org/26862
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit d1610b2aa798f1c5920a7057b98096aa22075755
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Thu Jun 27 17:19:30 2013 +0530

    JCBC-322 : Extended test coverage for the store, retrieve operations
    
    This changeset adds more test coverage for the add, replace
    and set operations which are currently not covered by the
    underlying SPY tests.
    
    Change-Id: Ie2ad5bd48dbea7ab09a76e3d4010355af5398231
    Reviewed-on: http://review.couchbase.org/27167
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit bc3d69acb23ad55d8ba495feb60f820f460a429d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jun 21 12:07:35 2013 +0200

    JCBC-319: check config for memcache buckets.
    
    This changeset makes sure that when using ketama with
    memcache buckets, failing operations also trigger
    reconfiguration eventually. Note that this algorithm is
    different than for the CouchbaseConnection, because ketama will
    always find a next node. Therefore, we trigger reconfigure but let
    the doc pass through to a separate node.
    
    Change-Id: I83ce342b76358a374469ca27e3807d8c3d8381af
    Reviewed-on: http://review.couchbase.org/27065
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 293a9fd51fc25610cdbd28965260876a00483621
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 10 11:30:18 2013 +0200

    JCBC-318: Making sure reconnect logic is not called in parallel.
    
    This also prevents the underlying logic to be executed more often
    than needed and therefore mitigating race conditions and overloaded
    IO.
    
    Change-Id: I6c18feadf55c56bb5bc0ba5c8e6920337e452f21
    Reviewed-on: http://review.couchbase.org/26860
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b110e53088f9d5b922502ecafdda4f7f2130a316
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 1 16:45:24 2013 +0200

    JCBC-323: Make flush() shutdown-aware.
    
    This changeset makes sure that when flush() is called, it properly
    checks that we are up and running and not shutDown.
    
    It also exposes the shutDown variable to all other package-private
    members.
    
    Change-Id: Id8fcd379c260ef6586d4a73b97dbf540b33a1372
    Reviewed-on: http://review.couchbase.org/27216
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit da8705b8d8751013534aac368f99186971aca5af
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Feb 20 17:06:41 2013 +0100

    JCBC-76: Replica Read Command
    
    This changeset implements the replica read command
    on both the application level facing CouchbaseClient
    and also implements the backend changes neeeded.
    
    It depends on the corresponding changes on the SPY
    project (see SPY-113).
    
    Change-Id: Idfd0836adfd5212152f369e8e624d45c4c9ca2b4
    Reviewed-on: http://review.couchbase.org/24750
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6e529cd097806beaa1fc7cf514b560153c054bd5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jul 1 16:05:25 2013 +0200

    Adapting testStatsKey Testcase to account changes in 2.1.0.
    
    This changeset makes sure that the test case passes for both
    post 2.1.0 and pre 2.1.0, because the exposed key stats
    have changed between versions.
    
    Change-Id: Ia32dd34c5cb5b504471f4660f152e7f4799b8f66
    Reviewed-on: http://review.couchbase.org/27215
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5b435621693381762625357d2867933ce237c17c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jun 24 07:45:52 2013 +0200

    Removing unused generic type from DesignDocument.
    
    Change-Id: I7c13306854a3c986f5b52faabf3b2c792e983c35
    Reviewed-on: http://review.couchbase.org/27077
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 74cc27efb02a42ba1501429098551923f49b6c2d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jun 21 12:19:16 2013 +0200

    JCBC-320: Catch ConcurrentModificationException also for Memcache
    Buckets.
    
    Change-Id: I86f1feaca2dfbdd5a80d6dfb46636dbd03045a01
    Reviewed-on: http://review.couchbase.org/27066
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8b6257d402659909f26c660e8e9fe976426e83d7
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri May 31 11:21:33 2013 +0200

    JCBC-313: Retry View Request if Response Code >= 300
    
    This changeset makes sure that responses on view requests
    that are either redirects or 500 on the server get retried,
    because we consider them non-fatal. Note that HTTP 400 are
    considered client side errors and are not retried.
    
    Also, already cancelled or timed out ops are not retried.
    
    Change-Id: I0d93e3d5c95dd6565d0b726a0bfd2cf31bef2ad9
    Reviewed-on: http://review.couchbase.org/26639
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ff559d2ba2cf5c8ecae5dec9e330c350156bdaf7
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri May 31 12:29:31 2013 +0200

    JCBC-312: When vbucket master is -1, trigger reconfigure.
    
    This changeset makes sure that when no active master is found,
    reconfiguration is properly triggered.
    
    Change-Id: I5f4f2b9aac9db1b536cba596e8ed062453b7a263
    Reviewed-on: http://review.couchbase.org/26636
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit e319e0c338488ae52ec2f8dfc53fb773990db845
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon May 13 12:07:23 2013 +0200

    JCBC-161: Remove duplication for observe checks
    
    This changeset removes duplication in terms of observe node
    size checks. A less accurate one has been removed in favor
    of the - already in place - more accurate one.
    
    Since the exception names have changed, the tests have been
    adapted to reflect the new names. assumeTrue() fixes have
    been added to make sure they don't produce false positives
    in test scenarios which equal or more to 4 nodes.
    
    Change-Id: Ie8b3b129b2b8781d916b54bc06f31f20408e7dad
    Reviewed-on: http://review.couchbase.org/26261
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit ad36ce93cf8e589e566f164fc15344053b02e155
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jun 6 11:13:52 2013 +0200

    Upgrade SPY to 2.9.0 (served from maven central).
    
    Change-Id: I281e60a8dff9b6a5d8d7504a7f07fe1904efd8eb
    Reviewed-on: http://review.couchbase.org/26778
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 83b3415fd9087cc24a94bc4fc94991dda8bca18b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon May 27 10:21:01 2013 +0200

    JCBC-250: Fail Fast when Observe with Memcached Bucket is used.
    
    This changeset makes sure that an obviously illegal operation
    (using persist/repliace with memcached type buckets) fails
    fast and with a expressive IllegalArgumentException and not
    further down the stack with a ClassCastException as reported
    in the JCBC ticket.
    
    Change-Id: Icb6acc019df737a7f2b10bc83f9a303594fd8369
    Reviewed-on: http://review.couchbase.org/26541
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 50de8557d2a9ef5975b251e5241d9945a9da5ea3
Author: tgrall <tugdual@gmail.com>
Date:   Tue Jun 4 21:27:17 2013 +0200

    JCBC-314: Bring README file up to date
    
    Change-Id: Iec1a77e1cb9e5e3533da5db3df93e3620b66ef05
    Reviewed-on: http://review.couchbase.org/26774
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6786754cde354a4b6dad36d278d34d3196531166
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed May 22 12:42:41 2013 +0200

    JCBC-309: Catch ConcurrentModificationException in IO Thread.
    
    This changeset adds the check to the overriden method, it has
    also been incorporated in spy directly.
    
    Change-Id: Ic5d665b610fbf228408b798bf347c8835371efa7
    Reviewed-on: http://review.couchbase.org/26465
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 4a35caf707c2df20e5d800470e5a7d1f49f17a02
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Tue Apr 9 15:26:53 2013 +0530

    JCBC-282 Two tests added for connection refused and network un-reachable.
    
    Change-Id: I6bab9dd16a9804bfd4232c1433fc186028300703
    Reviewed-on: http://review.couchbase.org/25563
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 7ee82891a4f3c1e2759233bff9b2d28e11ccf0b2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed May 8 10:39:34 2013 +0200

    JCBC-268: Optimize ReplicateTo.ZERO & PersistTo.ZERO
    
    This changeset optimizes the persistence constraint methods
    when both are zero, which basically means do not check at
    all. Without this change, added latency is involved because
    "observe" is alaways called, even when not necessary.
    
    Change-Id: I8dd6b6226dc797ee066b2113ff7b67f48735baf8
    Reviewed-on: http://review.couchbase.org/26182
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8cffb66dadba2d9075cc0770c95ddeb2ea5bdb0d
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Mon Apr 1 15:54:18 2013 +0530

    JCBC-177: Added code to support single null in view query
    
    Change-Id: If3b1e2cddda8ddad5d1568d96052347311569d41
    Reviewed-on: http://review.couchbase.org/25415
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 60ad29585632beb4310bbf1ca153122209642588
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 19 12:17:59 2013 +0100

    JCBC-241: Refactoring Paginator
    
    This changeset represents a complete refactoring of the Paginator
    class, while keeping the old API the same.
    
    Some of the changes included:
    
      - Only use one query against the Cluster.
      - It now works against reduced views as well.
      - Improved documentation.
      - Various other smaller bugfixes.
    
    The PaginatorTest class has been extended to test against reduced
    views as well (the old test have not been modified on order to
    ensure backwards compatibility).
    
    Change-Id: I50e9030c1c1efa46f5f65ca45d1c4945eeb78254
    Reviewed-on: http://review.couchbase.org/25229
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 787b23c2409041e61c0b927a8d201935859ac08d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Sat Apr 13 10:54:46 2013 +0100

    Fix Exception message that leads in the wrong direction.
    
    An exception is raised when the number of vBuckets is not correct,
    but the message states "buckets" instead of "vBuckets", which may
    lead to confusion.
    
    Change-Id: I2be6fd1ddcc38837dfc86196d324d6940eb16e99
    Reviewed-on: http://review.couchbase.org/25661
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit fb690d51b1a7e00774bcb27a0f35040e62b7a240
Author: tgrall <tugdual@gmail.com>
Date:   Fri Apr 19 15:51:42 2013 +0200

    Fix JCBC-288 : Issue Query parameter parsing
    
    Change-Id: Ib6b750147ad3e1feec5969ce68759cf5d956239a
    Reviewed-on: http://review.couchbase.org/25790
    Tested-by: Tugdual Grall <tugdual@gmail.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 23a7cba49c56a713f092d3dc66b22192a35ebde2
Author: tgrall <tugdual@gmail.com>
Date:   Fri Apr 12 17:47:37 2013 +0200

    Add new operations (set/add/replace) without ttl - see JCBC-284
    
    Change-Id: Ia886f28e7b8b885f1100e6f949ce96ed2b228823
    Reviewed-on: http://review.couchbase.org/25638
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Tugdual Grall <tugdual@gmail.com>

commit 8bf710d0f1560c982e545458e83c7a6f27921d89
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Apr 2 17:46:20 2013 +0200

    JCBC-278: Align default settings in builder.
    
    This changeset makes the defaults for the factory the same when
    instantiated through the builder as it would have been when
    instantiated directly.
    
    Change-Id: Ibb8d20a23d1aab78c130f95cadcb36ee9a784ff2
    Reviewed-on: http://review.couchbase.org/25448
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 67d9899b1ae4c95d5408cb395565e2c57b609399
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Mar 27 15:46:53 2013 +0100

    Removing INFO Log message on view queries.
    
    This message only shows up when docs are included and spams the logs,
    because it shows up on every query. Removing it aligns it with both
    other queries (reduced and no docs). Logs like this should be, if
    at all in place, debug level output.
    
    Change-Id: Iec62151a1542ba1ac588011a97c353911478e32f
    Reviewed-on: http://review.couchbase.org/25360
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 76fa01c707a9f7ca7c31efa0f4d2433d6a8b742b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Feb 18 07:40:42 2013 +0100

    JCBC-232: Renaming javadocs to javadoc for standard compl.
    
    This changeset renames the resulting mvn jar files for javadocs
    from javadocs to javadoc to conform with IDE and repository
    standards.
    
    Change-Id: I1377f35cd249e109918b5ee9c966178e68b4b40d
    Reviewed-on: http://review.couchbase.org/24652
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Tugdual Grall <tugdual@gmail.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit c9badac84ff9af1b5f8869e7cc1487757578ce18
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 16 12:09:35 2012 +0100

    JCBC-135: better interoperability between the client and netty.
    
    This changeset make the netty channel wait for inside a listener, so
    that it possible to use the couchbase client inside a netty-based
    server architecture. Netty by default forbids the waiting inside
    a worker, therefore we need to assign the channel on a different
    thread and then wait based on a Latch.
    
    Change-Id: Ic14d0ec5dcd39e16986aa1c3386f0320bd386b41
    Reviewed-on: http://review.couchbase.org/22589
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 8afa04eaad5d34cdab83eafc3092b2b16332d9fd
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Mar 18 09:31:38 2013 +0100

    Force 1.6 compat even when using 1.7 JDK on compile.
    
    This changeset ensures that we keep 1.6 compatibility even when
    the host where the JAR is created uses 1.7 or later.
    
    Change-Id: I20ea32d79d8a9a37c4097416a51ba98f34fa9ef8
    Reviewed-on: http://review.couchbase.org/25201
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 053c653ebbbb5da14cb9398447acc40c1f63552d
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Mar 15 09:52:57 2013 +0100

    JCBC-271: Don't force reconnect on add.
    
    This changeset prevents nodes from being added prematurely, leading
    to duplicate channel assignments and exceptions. This also alignes
    the CouchbaseMemcachedConnection functionality with the one
    provided by CouchbaseConnection.
    
    Change-Id: I7ca1ba2a91f8324259af48688a4daf4ae4283341
    Reviewed-on: http://review.couchbase.org/25171
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 0958708ab0425a8b91c3e32d7e07d577b50a92b8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 12 12:13:26 2013 +0100

    Full Checkstyle run for 1.1.4.
    
    Change-Id: If3c252fd671c1f86ff25492f9977638253e765fc
    Reviewed-on: http://review.couchbase.org/25107
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 40ed0978716b5e1226a3f8764c23fb860e458a6b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Mar 12 07:37:26 2013 +0100

    JCBC-265: Fixing ConfigurationProviderMock for unit test.
    
    This changeset fixes the mock to not throw an unsupported
    operation exception when reconfigure is called. This prevents
    the unit test from executing correctly.
    
    Change-Id: I6c6fe6c8f5e39fbf8680e90249b608f0a60880dd
    Reviewed-on: http://review.couchbase.org/25101
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 9a277f6f84b8f420392111225c383239be75ee81
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Mar 11 15:35:24 2013 +0100

    JCBC-261: Fix memcache compatibility on warmup backoff.
    
    Since vbuckets are not supported and warmup is not needed on
    memcache buckets, immediately get out of the loop and make sure
    no vbucket access is done.
    
    Change-Id: I3c48e37428a83ff8b0841614271622e3345d263a
    Reviewed-on: http://review.couchbase.org/25083
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 68dc63537f7844aa787b48728fbb90d019ae640a
Author: Sergey Avseyev <sergey.avseyev@gmail.com>
Date:   Mon Mar 11 13:20:42 2013 +0300

    Create directories for docjar, srcjar and jar targets
    
    The ant target 'mvn-install' doesn't create all directories needed,
    therefore jenkins builder is failing to build artifacts
    
    http://sdkbuilds.couchbase.com/job/java-snapshot-build/18/console
    
    Change-Id: I8acb12eee4c1214febd2de8f49cdad3a8de706f2
    Reviewed-on: http://review.couchbase.org/25077
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit eebf48042457fb27de25db46927819cb6c9a8c27
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Tue Mar 5 17:20:51 2013 +0530

    JCBC-257 : Added default values of Hash Algo and Failure Mode when null.
    
    Change-Id: Id6525bbc651168ff57d93992fb1e79f802e8f35b
    Reviewed-on: http://review.couchbase.org/24989
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a02fc6e15c4897dd8d241d98dc8ddbafd9d91909
Author: Deepti Dawar <deepti.dawar@globallogic.com>
Date:   Thu Feb 21 03:31:00 2013 +0530

    JCBC-249 : Observe tests added as per the test plan.
    
    Change-Id: Ic0116620fbdf1944432a1b643cda250c0b397f7e
    Reviewed-on: http://review.couchbase.org/24767
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 946985a59be9cd058edd40c613381faf742fa5f4
Author: deeptida <deepti.dawar@globallogic.com>
Date:   Wed Jan 30 16:21:10 2013 +0530

    JCBC-225-Fixes in the unit tests as per latest observations.
    
    Change-Id: I57110c4ac84e590cd340a8f39a895cf016d32850
    Reviewed-on: http://review.couchbase.org/24299
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit eaff6b0e67af7665301aa749722c97023e6d653b
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Feb 26 19:26:49 2013 -0800

    Upgrade spymemcached dependency for 2.8.12
    
    Change-Id: If89ee8f3fdf4730777e768a917c7a8d401576c0b
    Reviewed-on: http://review.couchbase.org/24888
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 68a348d993cadab9f8767e023ac908e7e0791020
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Feb 28 22:37:32 2013 +0100

    Only check for replica if there really is one used.
    
    This changeset changes the behavior on how the code
    makes sure that there are enough replicas available
    in a way so that even if there is only a PersistTo
    constraint applied and no ReplicateTo, it will not
    fail with an IndexOutOfBound exception. If this is
    the case, then it is simply ignore and only the
    PersistTo logic is applied.
    
    Change-Id: Ibcfbe13cf0ee1ef791e6c3202723074b05d32833
    Reviewed-on: http://review.couchbase.org/24935
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 12696264f0f0ccc775113417a49405f944a9b7af
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Feb 26 18:25:37 2013 -0800

    JCBC-254: handle NOT_FOUND responses in observe() method
    
    This is primarily for delete observe situations, where the item
    is expecting to transition to NOT_FOUND.
    
    Change-Id: If1c7d3aff0940a6534dbabf138eb95ba2df701f1
    Reviewed-on: http://review.couchbase.org/24886
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 73885f7298064c4ff8aac40cc4622f749f472f26
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 30 09:42:00 2012 +0100

    JCBC-27: exponential backoff when cluster is not warmed up
    
    This changeset prevents operations against a warming up cluster and
    waits until its in a warmed-up state or throws an exception after
    the backoff limit is reached.
    
    Change-Id: I655700909b98179c3f828df863c2a4ce355fc9fe
    Reviewed-on: http://review.couchbase.org/22933
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 91e68d1056d73c9be486c1b8a1deed8388bec868
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Feb 26 18:22:59 2013 +0100

    JCBC-253: Fail fast when no replica is available during observe.
    
    This changeset checks if really a replica is available, not just
    theoretically enough nodes configured. When the current replica
    index requested is -1, fail. This is mostly the case when a
    failover is triggered (no replica available), but no rebalance
    has been triggered yet. This leads to timing out observes.
    
    Change-Id: I19310e2c3ce6f0409970cb150d371687e03467d6
    Reviewed-on: http://review.couchbase.org/24867
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6843027a345c9902d1bd86052ca09057f14b02ea
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Feb 19 10:52:43 2013 +0100

    JCBC-245: Allow Object instead of String as value.
    
    This changeset aligns the allowed value types for mutate methods
    with persistence constraints to those without constraints.
    
    Change-Id: I529a868c5b88b4b5ea193ca818e972c2367affd6
    Reviewed-on: http://review.couchbase.org/24689
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit e9aca627a42911a9c3cdd443490d581c7cbadc86
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Sun Feb 24 09:30:29 2013 +0100

    JCBC-198: Update ConfigurationProvider on reconfigure.
    
    When a reconfiguration is needed, this changeset makes
    sure the new bucket instance is populated to the
    ConfigurationProvider as well (not just to the node
    locator), because some code of the stack - especially
    observe - depends on it. This prevents the usage of
    an outdated map leading to IndexOutOfBound exceptions.
    
    Change-Id: Ic1ab87a1502ec4f72cf003bee786d07f263abdfa
    Reviewed-on: http://review.couchbase.org/24818
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 95221b93236287a370cfd4d81da03f51de399fc8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Sun Feb 24 20:50:35 2013 +0100

    JCBC-251: Allow replicas with index 0 to work.
    
    This changeset makes sure that replicas on the first
    node still get included in the observe broadcast. Before
    this changeset, all replicas that live on the first node
    will lead to a timeout because they never get included
    and as a result can never report replicate success.
    
    Change-Id: Ic5fc4602ed468bbbaaecc16932964782b6d1464f
    Reviewed-on: http://review.couchbase.org/24817
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6a077da1970fde40a43875a494c42e11fe0a2448
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Feb 18 09:59:53 2013 +0100

    JCBC-210: Throw CancellationException when future is cancelled.
    
    This changeset makes sure CouchbaseClient memcached operations
    behave the same way as they do in MemcachedClient. In addition,
    the semantics of HttpFuture have been aligned to OperationFutures.
    
    Change-Id: I0ce3f7fc6a40e99987c3bc32c24113d6ea4c0714
    Reviewed-on: http://review.couchbase.org/24658
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6781b2ad8352a8e48ca3889929e7cc0f31b6fe3b
Author: deeptida <deepti.dawar@globallogic.com>
Date:   Mon Feb 18 15:32:46 2013 +0530

    Changes to remove hardcoding of the User and Password.
    
    Change-Id: Id2d2348e42114981118635ab32591b0e9adbb316
    Reviewed-on: http://review.couchbase.org/24661
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 682954b1fe05734341c23676ec04c5c8ef0aeeab
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Feb 5 16:53:22 2013 +0100

    Upgrading Spy to 2.8.11
    
    Change-Id: I55d941167c9aeaf6f9619cc19e3c15515e0f3cf2
    Reviewed-on: http://review.couchbase.org/24406
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 7395a8e09e6638649ab664a70f42c1976bfaffe7
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Feb 1 15:52:08 2013 +0100

    Improving failure resiliency on view node writes.
    
    This changeset makes it possible to retry a different view node
    when no connection could be established on the first one. After
    a maximum of 5 retries the operation is cancelled. The change
    also makes sure that no operations are written to a node that
    is currently shutting down.
    
    Change-Id: Ie438ac667e1236aa4315008ad2dbc1ce8bde28bd
    Reviewed-on: http://review.couchbase.org/24342
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 4b733eb37351aa62bab7c6d58d7f689f829ea704
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Feb 1 14:12:44 2013 +0100

    JCBC-230: Release Connection also on cancel()
    
    This changeset properly releases the view connection also
    on cancel(), not only on completed().
    
    Change-Id: I6f2d5e83f4356db2e827b61098a94b4f7d9d6be0
    Reviewed-on: http://review.couchbase.org/24343
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 7134df1e338373ec197c13a7cdd2799a6b43442e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jan 31 14:27:09 2013 +0100

    JCBC-227: Implementing backoff on resubscribe thread.
    
    This changeset implements a backoff algorithm when resubscription
    is needed and no valid node can be picked up from the list. Each
    try waits 1 second longer (from 0), up to 10 second max. It will
    loop until a valid configuration can be picked up.
    
    Change-Id: Ia5be1e74e16c5692d5a94a9df3ec366de3c0aaf0
    Reviewed-on: http://review.couchbase.org/24322
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 96cc87e964fe1c9fc93d10f2f7f690ca5e07a3b7
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jan 29 10:45:17 2013 +0100

    JCBC-223: Do not broadcast op on observe to -1 replicas.
    
    This changeset changes observe behavior so that no broadcast
    operation is sent to -1 replicas. This prevents a possible
    exception when using only one node in the cluster but replicas
    are defined (but not available).
    
    Change-Id: I1995610efc17fd60046eada7dfc94c459c885208
    Reviewed-on: http://review.couchbase.org/24261
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Tugdual Grall <tugdual@gmail.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f70ae04012dd9727d0268ad33494918580497fc4
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jan 24 15:53:43 2013 +0100

    JCBC-219: Fix reconnect logic on valid rebalance out/failover.
    
    This changeset forces to reconnect the CouchbaseClient when a
    node is rebalanced out, but still alive. The connection is
    correctly closed for netty and not "hard" disconnected. This
    prevents an issue where the client is left in a state where
    it does not receive new cluster updates because it still
    listens on a node that has been removed.
    
    Change-Id: Ideefe229d22ee5becc3c6401d43f773a04aba56f
    Reviewed-on: http://review.couchbase.org/24182
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 380f9d3e046d412c0bdbd8b044f212d3c088988f
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 23 12:11:52 2013 +0100

    Full round of checkstyle fixes.
    
    Change-Id: I841e75d9d2b5f7d1bc7455d35bcb52eee3ca93dd
    Reviewed-on: http://review.couchbase.org/24156
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3d2ed6837dd33f0f554e9202f288627192d46650
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Jan 21 08:45:12 2013 +0100

    JCBC-134: Harden Resubscription Logic
    
    This changeset hardens the resubscription logic to catch and
    retry when the resubscribe process fails.
    
    Change-Id: Ie9a7d5f06b97efe8a04d4319be9214295adacf61
    Reviewed-on: http://review.couchbase.org/24092
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 9ea0f1d95e516c523adb0aac829b6a10eb438cf5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 23 08:36:58 2013 +0100

    Fixing unit tests to wait for persistence in order to test with stale=false
    
    Change-Id: I5fbbfa5121f6ce7bc61c00a1a25c9a321c7115bf
    Reviewed-on: http://review.couchbase.org/24151
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit f4a802b3ee67d57742e114e54051beac1900f021
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jan 18 09:34:32 2013 +0100

    JCBC-216 Add BuildInfo on compile.
    
    This changeset adds the proper compilation of the BuildInfo class.
    
    Change-Id: I63308b7605f5aaa690a2b96fe7db97f1d5e28500
    Reviewed-on: http://review.couchbase.org/24048
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit daebd3958816b0e3ecfd6ced8364bb5aac33ff6f
Author: deeptida <deepti.dawar@globallogic.com>
Date:   Wed Jan 2 15:09:47 2013 +0530

    JCBC-140: Throw ConnectionException during config bootstrap on invalid URI.
    
    This changeset throws a ConnectionException instead of a ParseException
    to make it more clear what is happening during bootstrap. The exception
    is thrown when the /pools URI can not be read properly, this mainly
    occurs when /pools is omitted in the host list and therefore index.html
    gets used.
    
    Change-Id: I2bdc072d95727610758e4068a6793bf0c5bcd85b
    Reviewed-on: http://review.couchbase.org/23648
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 2d648611cf70ee271e6a652a5266f17119f535d0
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Jan 18 08:06:12 2013 +0100

    JCBC-213: Implement better Exception names for CacheBucket
    
    This changeset removes ambigous TODO exceptions and exchanges them
    with proper ones.
    
    Change-Id: Ic9b922a6007ad6979e890aab43b024bdd4ea5808
    Reviewed-on: http://review.couchbase.org/24046
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>

commit 584a1f70953bcd90d120a0ef500d1eb9f791e582
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jan 17 10:57:48 2013 +0100

    JCBC-215: Refactoring viewmode property loading.
    
    This changeset refactors the viewmode property loading by using
    the recently added CouchbaseProperties class. This makes it simpler
    and more flexible to use. As of now, both "viewmode" and the
    preferred "cbclient.viewmode" property names can be used.
    
    Change-Id: Ie845ff0aeb4cbe4d0b0f51e7a21f0ba2367d3011
    Reviewed-on: http://review.couchbase.org/24011
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit bbdcd5d5f44b5f8561c523c87563391be9ed7e36
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Jan 17 12:23:06 2013 +0100

    JCBC-214: Add read timeout on configuration fetch
    
    This changeset adds a 5 second read timeout when the configuration
    is fetched from the server. This prevents a possible issue when
    the couchbase server process is hanging, but the socket is still
    open. In this case, the client now skips to the next in the given
    list of nodes when there is no response after 5 seconds coming
    back (even when the socket has been opened properly).
    
    Change-Id: I155b522648d2e4b4848001b03e6eeb443dacad71
    Reviewed-on: http://review.couchbase.org/24019
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 7a3fb48cb60af67d8ad94e8136d0ace59107c923
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 2 15:22:37 2013 +0100

    JCBC-212: Command Throttling for CouchbaseClient
    
    This initial draft of throttling for the CouchbaseClient manages
    backoff times for commands based on the high water marks and
    memory.
    
    It knows three states: normal, high and critical and uses the
    given thresholds to throttle accordingly.
    
    Change-Id: Ie1886a86b0cf998260422b723bedf85f93f84440
    Reviewed-on: http://review.couchbase.org/23658
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 20daddfe90703cdb4b2216b87022fdf71400206c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 16 13:57:36 2013 +0100

    Upgrading spymemcached to 2.8.10.
    
    Note, this is a prerequisite to the fix for JCBC-214.  There was
    one fix at the SPY project level related to detecting failures.
    
    Change-Id: Ia377f28e7c98e9b9f5c01f7d255e0be523cc41d1
    Reviewed-on: http://review.couchbase.org/23986
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5d283c26905847060a0e0a8dfeabfd8003b343e8
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 16 15:19:07 2013 +0100

    Happy 2013!
    
    Thic changeset increments the copyright year to 2013.
    
    Change-Id: I91c24ca0d97215284a64e0a581e7ebd76a52f8d8
    Reviewed-on: http://review.couchbase.org/23990
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>

commit e7f9da376baaf3e2ad90980759fb02e0cfe2b9de
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Jan 16 15:01:33 2013 +0100

    Cleaning up the codebase based on checkstyle suggestions.
    
    Change-Id: Ifbb79e7bf25ec20d301ead2a04a27d8cc12179e2
    Reviewed-on: http://review.couchbase.org/23989
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a342c98c969e3656762f14e6e208a7f7fef2c0aa
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Jan 8 23:16:19 2013 -0800

    JCBC-207: Correct Reconnect Logic on Failover
    
    This changeset makes sure the reconnect logic works even when
    failing over the node which is bound as the streaming connection.
    A test has been added to verify the threshold logic of the
    CouchbaseConnectionFactory works as expected.
    
    Change-Id: I314e157b05f77f795d262c234f91d8e1f1c357cc
    Reviewed-on: http://review.couchbase.org/23801
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8cf553b368568bec89d51382a2f6b7c977d8ff04
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Jan 15 11:55:43 2013 +0100

    JCBC-211: Adding a new CouchbaseProperties class for property management.
    
    This changeset adds a CouchbaseProperties class that centralizes
    property management for both file- and code-based properties.
    
    Change-Id: I2f32fcb59460630d4cc250c786535980f3bd5dd2
    Reviewed-on: http://review.couchbase.org/23942
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 59ed3eb01f6f8fb32c6e45ced163a5c707b844a5
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Jan 15 15:49:07 2013 -0800

    Update dependency to 2.8.10-SNAPSHOT.
    
    Change-Id: Ife89ecbbd2912827704b38a5220c737514ed9be1
    Reviewed-on: http://review.couchbase.org/23977
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 022c304f9479273232729eee9a95d8112f71f64c
Author: deeptida <deepti.dawar@globallogic.com>
Date:   Tue Dec 4 06:46:59 2012 +0530

    JCBC-170: Update documentation on test classes.
    
    This changeset updates the JUnit tests and adds docblocks
    for clarity.
    
    Change-Id: I127eafcd02b58d37d019b5a2275c63223d55591d
    Reviewed-on: http://review.couchbase.org/23021
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 19280fd7dbfaf27734d7a1a23bc7197f8e059f77
Author: Tugdual Grall <tugdual@gmail.com>
Date:   Sat Dec 8 16:22:01 2012 +0100

    Add new IDE support in .gitignore
    
    Change-Id: Ifdf6dded9d895181c8398e5d6dae1a1f2fd28fc2
    Reviewed-on: http://review.couchbase.org/23156
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Tugdual Grall <tugdual@gmail.com>
    Reviewed-by: Tugdual Grall <tugdual@gmail.com>

commit 6394f844dadb65ae7a1dfb531f2aa15e9c88d4c6
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Thu Jan 10 11:32:14 2013 -0800

    Keep README and TESTING at ant clean time.
    
    Change-Id: I3c55d732d2857e9c6e23f535c5500d54eaf9f258
    Reviewed-on: http://review.couchbase.org/23850
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit bad240d99f492346332130ebd1dba92b00a246c9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Dec 28 12:59:05 2012 +0100

    JCBC-190: Allow ComplexKeys to work with all kinds of numbers.
    
    This changeset switches from parsing longs to the more generic
    NumberFormat.parse method. This allows the usage of integers,
    doubles, floats and longs at the same time. See the updated
    test cases for examples.
    
    Change-Id: Id7b906958d1bbd75a1319aedffa0e8b6211dc9d6
    Reviewed-on: http://review.couchbase.org/23605
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 7484ce125d01ddf27b9aed7fda5580d26f3da1ad
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Dec 11 11:50:52 2012 +0100

    JCBC-167: Allow long values for ComplexKeys.
    
    This changeset prevents the bug of throwing quotes around
    long values. Now it is possible to use long values through
    the ComplexKey object. Since this is tried as a last resort,
    no old behavior is subject to change.
    
    This also adds some additional tests around booleans and
    null values since those are primitives to JavaScript.
    
    Change-Id: I60c68aa48631b719cc7b5ec0328b257380a64874
    Reviewed-on: http://review.couchbase.org/23194
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit e4447b89cfc46b0453cbe8e23055ef1733cd997f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Dec 10 23:49:27 2012 -0800

    JCBC-168: Honor default view timeout.
    
    This changeset also fixes default settings for other
    CFB values (observe-related).
    
    Change-Id: I2349b1bc05fbce752ba5cc0ab71cd8f9ef70e740
    Reviewed-on: http://review.couchbase.org/23189
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit ccde0d0738780b554cf6ad3c7ccea52eb00e24c8
Author: Tugdual Grall <tugdual@gmail.com>
Date:   Sat Dec 8 17:44:19 2012 +0100

    Small typo in exception
    
    Change-Id: I8b6dd24aa2614d5de57d4504625c72c1b304cffa
    Reviewed-on: http://review.couchbase.org/23157
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 9d948c7176e51d2a8fe301bcd99879a969f422fd
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Fri Dec 7 20:01:58 2012 -0800

    Renamed the bucket create method to abstract type better.
    
    Change-Id: Ie454506b10b09b78c81b4ba03c62c4bcc0f7c411
    Reviewed-on: http://review.couchbase.org/23153
    Reviewed-by: John C. Zablocki <john@couchbase.com>
    Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit ff1271ff6dd7143c0e731b94b8ea1ee5ddd53990
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Nov 12 14:19:05 2012 +0100

    JCBC-144: Implement flush over HTTP
    
    This changeset implements the flushBucket method which handles flushing
    over HTTP instead of using the memcached flush command.
    
    Note that in the process of implementing this, issue MB-7381 was found
    and thus dependent JCBC-173 was filed.
    
    Change-Id: I3d46497f1693b0b5f550b83b521b3cbde092a0b9
    Reviewed-on: http://review.couchbase.org/22445
    Reviewed-by: John C. Zablocki <john@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit e030f67f5d6d69d81fcdcdaa99fd72b02c2440f1
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Dec 6 17:09:18 2012 +0100

    Adding replica on bucket creation to make the replica test pass.
    
    This changeset adds the replica on the test bucket creation to
    make sure the ReplicateTo correctly works.
    
    Change-Id: Id3abb61531a9d5d8b1b2aeb8c7853528fc5f95ba
    Reviewed-on: http://review.couchbase.org/23121
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 81261872c6d33727e8bc5696be7f7493f1fde695
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Dec 5 18:47:47 2012 +0100

    JCBC-163: Fixing TAP errors
    
    This changeset corrects the client usage and moves to new
    JUnit test style. It also fixes the assertion errors that
    did show up previously.
    
    Change-Id: Ic1221bae6ce5da97c1692823b751c812d48980d8
    Reviewed-on: http://review.couchbase.org/23088
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 6f68dad93a39b8666d7200d74f7633b0529799f9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Dec 5 18:12:02 2012 +0100

    JCBC-165: Allow the possibility to force an array on ComplexKey
    
    This changeset adds the forceArray() method to the ComplexKex
    instance and as a result makes it possible to return an array
    with one element (even when only one is given).
    
    Change-Id: I8cb022fd4f7aff0608a57a26a9f9f416c7109a81
    Reviewed-on: http://review.couchbase.org/23086
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 5c8037e704d56d1d7594d8a210b8d89e5c014749
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Dec 5 18:17:49 2012 +0100

    Small JavaDoc cleanup.
    
    Change-Id: I7c4888a3ca63fba16cf07f68320b0213dab573de
    Reviewed-on: http://review.couchbase.org/23087
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 8898f423dbf993121142e6a53666ed28c1deb42a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Dec 5 19:10:02 2012 +0100

    Checkstyle fixes.
    
    Change-Id: I42768e7d978bf6c8377edacd1f4b5e0b55d40ae8
    Reviewed-on: http://review.couchbase.org/23090
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 6b630b337c0ebe0dba80285093709bf360cf3be5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Dec 3 21:13:07 2012 +0100

    Depend on spymemcached 2.8.9.
    
    A change in spymemcached was made to allow keys to not be
    restricted by ASCII protocol rules.  We'd like that change
    here as well.  Note that the 250 character limit remains.
    
    Change-Id: I0997aac25e97d88064d0f7a714cc92de4e3d4c4a
    Reviewed-on: http://review.couchbase.org/23000
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit c97ef0ee5895fe702406a831fbb495f8f4c6c82a
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Dec 3 11:33:40 2012 -0800

    JCBC-162: Re-enable delete with durability (observe).
    
    This was removed while some server changes for responding
    with CAS in the case of delete were merged into the 2.0
    branch. Since that has been resolved, this feature should
    be re-enabled.
    
    This reverts commit f5603e21c7cbf94d4804e01688c1160375dae418.
    
    Conflicts:
    	src/main/java/com/couchbase/client/CouchbaseClient.java
    	src/test/java/com/couchbase/client/CouchbaseClientTest.java
    
    Change-Id: Id9c195afdcd5253be6d590a481816a38065c98e1
    Reviewed-on: http://review.couchbase.org/22998
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 97496987ee6b5cebac9729faea5931f40059edb1
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 21 14:05:40 2012 +0100

    JCBC-147: Rename getViews to getDesignDocument
    
    this changeset aligns the design document read method with the newly
    added creation and deletion api methods.
    
    WARNING: this is a API break!
    
    Change-Id: Idbc5cba57cf9d7b8c34e1fed0f621d8c64772ebd
    Reviewed-on: http://review.couchbase.org/22713
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 30390e57b31b7ffee8281cd44245f58b73ec85da
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Dec 3 01:11:15 2012 -0800

    JCBC-160: Merge current release 1.0 branch fixes in for 1.1.
    
    * gerrit/release10:
      JCBC-120: Fix NPE on null for password. Backport.
      JCBC-70: Fix Authentication to non-default bucket when connecting new node
    
    Change-Id: I4a2db78d48f145be7e61d09a31c293f8365646eb
    Reviewed-on: http://review.couchbase.org/22975
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 06467553c0fd4872fd15a706ccc471080a74f6c9
Merge: 32c1801 b8eda75
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Dec 3 09:08:43 2012 -0800

    JCBC-154: Merge special release 1.1c branch fixes in for release 1.1.
    
    * gerrit/release11c:
      JCBC-130: Add a timeout for unresponsive http connection fetches.
      Correcting view tests with wrong exception handling.
      [Backport] Cancel view requests when the operation is cancelled.
      JCBC-100: [Backport] Add better error handling on view fetches.
    
    Conflicts:
    	src/main/java/com/couchbase/client/CouchbaseClient.java
    	src/test/java/com/couchbase/client/ViewTest.java
    
    Also, had to add a minor change to ViewNodeTest.java to add a view
    since the NoDocsOperationImpl had changed.
    
    Change-Id: I9a1ddd2b57c3a2d5e8801414ab72b4d435c7c5cb

commit 32c18017ef32385fe361ab3e4f382d5a58a2a309
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 30 10:36:04 2012 +0100

    JCBC-148: check persistence against node count
    
    This changeset verifies the persistence requirements against the
    total node count and returns an exception if the requirements can
    not be satisfied by the current cluster layout.
    
    Note that this does NOT look at how much nodes are available for
    a given key, this needs to be implemented as an enhancement.
    The corresponding enhancement can be found at JCBC-161.
    
    Change-Id: I531ad01b332a367256a8a1c6a0941b3683dede9e
    Reviewed-on: http://review.couchbase.org/22936
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit aa077cf73e748bb26613495fcb0c889eb358d2fb
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 29 13:28:03 2012 +0100

    JCBC-157: Really wait 10 seconds for the reconnect threshold.
    
    This changeset fixes a typo that leads to unexpected behavior in the
    reconnection threshold section of the connection factory.
    
    Change-Id: I6d72b705d14a3ad1a8709ff2875d8fef430ce43b
    Reviewed-on: http://review.couchbase.org/22902
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit bb1c6ae743964e81e5f9a92d844c5a83db4a9c4b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 30 08:42:03 2012 +0100

    JCBC-158: add debug=true to query options.
    
    This changeset adds the debug=true to the query options and also
    prints the JSON response as a raw string to INFO when the debug
    info is encountered.
    
    Change-Id: Ic6c9f4f8f8551a110aae6052b8d1c08c216754e8
    Reviewed-on: http://review.couchbase.org/22923
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 46fd97e15d1d95221fc312cbf17df33928b07a02
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 5 14:20:25 2012 +0200

    JCBC-63: Implementing Design Document Management
    
    This changeset enables the creation and deletion of design
    documents with appropriate views. It also adds tests for
    the new functionality and allows the creation of spatial
    views as well.
    
    Change-Id: I51ff2e4306698a76b9481d7f23f0c887744baa16
    Reviewed-on: http://review.couchbase.org/21380
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 328ea1e04928e39d3ad892885baf34ae62528d3a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 28 09:21:05 2012 +0100

    JCBC-155: Adding JavaDoc for *View.java files.
    
    This changeset adds JavaDoc for AbstractView, SpatialView and View.
    It is intended to clarify their usage and what they can be used for.
    
    Change-Id: I62b9bda1eb4b006fa012be909cec92a66e3fafdc
    Reviewed-on: http://review.couchbase.org/22872
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 21fe279347d89881fb25f959136ba416638c37fc
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 28 13:05:45 2012 +0100

    JCBC-35: Don't compare vBuckets on MEMCACHE bucket reconfigs.
    
    This changeset checks the bucket type before applying vbucket checks. This
    prevents the problem of trying to compare vbuckets when there are none.
    
    Change-Id: I7180e4347241064326542deca85240dbb18e9bdd
    Reviewed-on: http://review.couchbase.org/22878
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3663b5e58115fa4926cbcee9519ca57b663d054b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 28 10:02:22 2012 +0100

    JCBC-152: Adding Test docs.
    
    This changeset adds the test documentation and renames the README
    file name to .md to be consistent and short.
    
    Change-Id: I2398093cfed0e75436804a4b6fa4458f58d209bf
    Reviewed-on: http://review.couchbase.org/22874
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit e3313b1f359fa69f536c38f738b44732780b95ca
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Nov 27 10:25:39 2012 +0100

    Adding debug output for jdk version on ant compile/test.
    
    This changeset also gets rid of ant warnings and removes
    some duplicated content.
    
    Change-Id: Ie40fc881177dec0e37c92225d87dee7223df910e
    Reviewed-on: http://review.couchbase.org/22845
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit ba4e3e2714142a2c493260330a09df2edf527c14
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 28 12:46:33 2012 +0100

    JCBC-156: Fixing JavaDoc outdated params.
    
    Change-Id: I0f13b45a5ed27f39df2eaf58733eb43c555bd2a8
    Reviewed-on: http://review.couchbase.org/22877
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit d3e17b045a1c307d6f11ba55d3556e79a016fc9e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 21 12:05:20 2012 +0100

    JCBC-150: Implicitly add reduce = true on reduced view
    
    This changeset makes sure that when a reduced view is accessed and
    no setReduce param was supplied, setReduce() is set to true to make
    sure that appropriate view parsing codepath is used and no exceptions
    are raised.
    
    Change-Id: Ib2dfb5684428fe32bfdd654bef9947002bd5b1fb
    Reviewed-on: http://review.couchbase.org/22710
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 3a176165263ce2c06f43342e29d207d89fea7533
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 22 10:21:39 2012 +0100

    JCBC-153: Increase view timeout and make it configurable.
    
    This changeset increases the view timeout from 60 to 75 seconds
    and also makes it configurable through the connection factory.
    
    Change-Id: I8b5dca7a32a352c51b27d9ee9cd10485652d4e3b
    Reviewed-on: http://review.couchbase.org/22755
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 94fc174732c871d78dca4531b7f0b7e18580e9c9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 14 16:18:32 2012 +0100

    JCBC-40: Fix NPE on pagination iteration.
    
    This changeset fixes a possible NPE when the view result does not have
    more rows to return. It also moves the Pagination tests into a separate
    file to make it easer to isolate possible issues.
    
    Also, documentation has been added to the Paginatior class.
    
    Change-Id: I560f22ac057d01cb72c3530fda15dfa08b5c9b5d
    Reviewed-on: http://review.couchbase.org/22513
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 64b32be66db3ed8806f164f2d13aa53d83929d86
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Wed Nov 21 11:29:38 2012 -0800

    JCBC-142: Fix observe test case
    
    The observe test case was trying to observe that an item was
    replicated and since we only have a single node cluster this
    was causing all of the observe calls to fail.
    
    Change-Id: I55f94e432e4095052dea668a015bfe8e04d77fe3
    Reviewed-on: http://review.couchbase.org/22737
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 33fffab268a57c660ff3cce7d03aa679cbcf1dea
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Nov 20 15:05:41 2012 -0800

    JCBC-142: Fix persist master issue with observe
    
    Change-Id: I83368deaea04c0439822bdf825c472e0cdb88e87
    Reviewed-on: http://review.couchbase.org/22692
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 77d8bb9f161f79e91a9723fcda11c6ed73d1b577
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 15 13:03:45 2012 +0100

    JCBC-136: Adding support for spatial view queries.
    
    This changeset adds the capabilities to query spatial views. Queries
    work with and without documents, but not for reduce queries. The tests
    have been refactored out to a new file for better encapsulation.
    
    Change-Id: I96383e7f421c7e2d446f8d09724f0c707177552a
    Reviewed-on: http://review.couchbase.org/22563
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 49745439418d9efac506479a07fa27d0309e6329
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Nov 16 11:28:50 2012 +0100

    JCBC-86: Remving HashAlgorithm fo Cache buckets
    
    This changeset removes the unused hashAlgorithm code from the CachConfig
    becaus it confuses and is not needed currently. The method is kept in there
    because of interface compliance.
    
    Change-Id: I8a44a958a96a67a203ffb4ffee3a03046f27676c
    Reviewed-on: http://review.couchbase.org/22586
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit aee9908e59e74dc3cee50d1239ae55a3216d00a6
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Nov 14 11:18:07 2012 +0100

    Ensure that include_docs is never passed as a HTTP param.
    
    This test update ensures that the include_docs param is never
    used in the HTTP param list.
    
    Change-Id: I9915cdd0a1d67cbeebcc16d98d9c7b95a36e2867
    Reviewed-on: http://review.couchbase.org/22505
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 66b8f32bace85ae90234894a84eb70ebe1e28ae3
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 8 13:39:04 2012 +0100

    JCBC-123: Throw an exception when vbucket master is -1
    
    This changeset makes sure to throw a controlled exception when
    vor the given vbucket there is no master server defined to handle
    it appropriately. -1 for the master is clearly an invalid state
    and could be the case for the following reason:
    
    - No replicas are defined and a node is failed over.
    - More nodes have been failed over than there are replicas.
    
    Either way, the client library is unable to remedy the situation
    on its on and therefore throws an exception. The application
    layer is expected to deal with the situation (either retry until
    a rebalance is done) or redirect it to a system which is capable
    to do so.
    
    Change-Id: I582939820ec3067ce724c93e410e93f834c340ee
    Reviewed-on: http://review.couchbase.org/22352
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit a0d973891930dd08e2bd966600e8c4f9bd9e2572
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 8 14:26:21 2012 +0100

    JCBC-58: Refactoring HttpFuture and ViewFuture
    
    This changeset refactors the get() method for both the
    HttpFuture and the ViewFuture to extract a common codepath
    inside and reduce duplication.
    
    Change-Id: I719dad0636cf3f2b0419335fbbe477033c335392
    Reviewed-on: http://review.couchbase.org/22353
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f2007087625b43c7fa7fe287d58924c941f03d85
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 3 11:41:26 2012 +0200

    JCBC-94: Fixes possible thread issues on shutdown.
    
    This changeset makes sure to wait for the view IO threads
    to finish before returning to the shutdown method up the
    stack.
    
    Change-Id: Ic60fd610469e9254b31cdda204fe525997041327
    Reviewed-on: http://review.couchbase.org/21301
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit d70239efeb69d022730baf7f28985c4b476a38c2
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 3 14:22:09 2012 +0200

    JCBC-125: Don't cast every view document to string.
    
    Casting every document to string causes problems when reading binary
    objects like serialized objects through a view. It also includes
    an updated ViewTest with a custom design doc that verifies such
    situations.
    
    Change-Id: I1267af20f5b6808935f0ce067c35229b9a16bb20
    Reviewed-on: http://review.couchbase.org/21305
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b41f1108acffe8f3a1cc1a6ab6aa3762f266f5a3
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Oct 29 11:57:25 2012 -0700

    JCBC-122: Remove the TestAdmin and make tests more resilient
    
    Bucket creation and deletion on the server can potentially take
    a long time. This change makes these processes retry these
    operations until they eirther timeout or complete. This change
    also makes us wait until traffic is enabled on the server before
    beginning our tests.
    
    Change-Id: I87d5129763566cfc0293209b24f4031dc47cd405
    Reviewed-on: http://review.couchbase.org/22058
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit df5b6a53bbd61ca8daf64d56919e79d81870355e
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 9 12:25:05 2012 +0200

    JCBC-80: Adding a unit test for persist and no stale
    
    This changeset adds an integration test for the persistence
    requirements in combination with stale=false.
    
    Change-Id: I6ed681ab7dbc0ff131ef3a0d271cfad43bdc539e
    Reviewed-on: http://review.couchbase.org/21444
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit c1eabf5968cf4cde5ad02e667f5c36b6e5b76c7b
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 31 11:54:55 2012 +0100

    Remove unused jmock dependency.
    
    This changeset removes the unused JMock dependency, easymock is
    used instead.
    
    Change-Id: I7488fb0c7e20c82b691201875759e6a961ac4d13
    Reviewed-on: http://review.couchbase.org/22109
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b5c2722a6bbac5ffe7f647bf0203120515351a98
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sun Sep 16 16:27:32 2012 -0700

    JCBC-64: Add bucket create and delete API's
    
    This changeset adds the ability to create and delete buckets
    through the ClusterManager class. This class is separate from
    the CouchbaseClient class, because by definition the Client
    operates on one bucket while the ClusterManager allows to
    manage more than one at the same time.
    
    Change-Id: Ia885d20aad1598b25d43e3a645ef51bdd68ff663
    Reviewed-on: http://review.couchbase.org/20895
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 982a05b0399f0db67d3b32d048b945b397b8090f
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Oct 29 12:28:14 2012 -0700

    Fix checkstyle errors and remove unused variables
    
    Change-Id: I5fda71dac640bb2f3ac2a88a49398c10438f6636
    Reviewed-on: http://review.couchbase.org/22057
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit b8eda759c9a9f16642fcdd18eb93cb035799bb43
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Nov 1 18:07:47 2012 +0100

    JCBC-130: Add a timeout for unresponsive http connection fetches.
    
    This adds a hardcoded timeout and a test to make sure that after
    a certain time it is guaranteed that the thread waiting for the
    connection initialization returns eventually.
    
    The timeout is set to 30 seconds. Note that this is not the
    timeout for the actual view response to receive, but for the
    connection initialization.
    
    Change-Id: Icb1138803d7914853b4e0f69b5a8a0443e4170c0
    Reviewed-on: http://review.couchbase.org/22206
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 04607c3baf015286b40e2c7f4ed8cbaea44cbc2f
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 26 17:31:48 2012 +0200

    Updating spymemcached to the 2.8.8 release.
    
    Change-Id: Idf77acb167a4f7d7729f6fddb913d926d439e60e
    Reviewed-on: http://review.couchbase.org/22015
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 216af9b3daa6c3a75b5512291fb719c00b3f6eb4
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 9 14:01:18 2012 +0200

    JCBC-121: Dont use view connections for memcached
    
    This changeset makes sure to only set/use the view connection while
    connected to a couchbase bucket and not to a memcached bucket.
    
    It also adds a test class with corresponding mocks to make sure
    the initialization works correctly and does not fail on rebalance
    or shutdown as well.
    
    Change-Id: I912b134d43c7b145ece4e641a20d1fbc3a2c6d68
    Reviewed-on: http://review.couchbase.org/21445
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit f40b3f72a906ebff66a9cc75fdbeff4f930c5602
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Wed Oct 24 16:02:35 2012 +0200

    Correcting view tests with wrong exception handling.
    
    This changeset corrects the tests and makes sure the correct exceptions
    are thrown. This is different than on master because the view tests
    changed and the original changeset referred to those changes.
    
    Change-Id: Id96b611105d7b3566eab2e6e3d81bb949c1a5ee3
    Reviewed-on: http://review.couchbase.org/21924
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 6876ee6d382ff612f54718c8721b93603fed94b3
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 18 14:26:05 2012 +0200

    [Backport] Cancel view requests when the operation is cancelled.
    
    This changeset makes sure that the corresponding http
    requests are cancelled as well when the operation is
    cancelled. This prevents a possible issue on blocking
    the caller thread when the connection can't be
    established.
    
    This addresses JCBC-130.
    
    Change-Id: I4c62eb8196a098ab5215e09659765fbd95010e1a
    Reviewed-on: http://review.couchbase.org/21743
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit eb439b775330fb86f75b6d06a825a52670eef4d0
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 4 12:55:09 2012 +0200

    JCBC-100: [Backport] Add better error handling on view fetches.
    
    This changeset adds better error handling for synchronous
    view fetches (getView and getViews) and adds documentation
    to the asynchronous methods to remind the developer that
    he has to check on the future object himself.
    
    Change-Id: Ic1a74310f1f789b7b83bfae09496526b27ee7247
    Reviewed-on: http://review.couchbase.org/21338
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-on: http://review.couchbase.org/21738

commit dee933a4b7ae2127db86cb512b90c00e09857365
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 23 10:57:46 2012 +0200

    Overriding spy tests to work correctly with couchbase
    
    This changesets overrides two test cases that fail but
    dont need to do so. They are overridden from spy because
    the assertions are not correct with respect to couchbase
    functionality.
    
    Change-Id: I32c60869e1feb26345b29123fb0c22d0b6cc90f3
    Reviewed-on: http://review.couchbase.org/21867
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit d65f0bc8a9672956dd0a3f7c6eb0a4be645c6a43
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 22 15:25:27 2012 +0200

    Prevent doctype clash in view test.
    
    This changeset prevents the pagination tests to fail because
    of recently added tests. It modifies the view function to only
    emit the correct documents.
    
    Change-Id: Ic0e809b070c75ce440402972588de578344d3258
    Reviewed-on: http://review.couchbase.org/21827
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit d94f3d91281e77835723d9b7e6f161fa9b072802
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 23 13:45:59 2012 +0200

    Renaming log message to remove CouchDB reference.
    
    This changeset changes the log message to not refer to
    CouchDB anymore but to a Couchbase HTTP connection
    instead.
    
    Change-Id: Idd21b8c6df2c50c3ce6616bf775c908ecc2c8d14
    Reviewed-on: http://review.couchbase.org/21872
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 95c25750680b7271ccfea5119c5a376d1199628c
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 18 14:26:05 2012 +0200

    Cancel view requests when the operation is cancelled.
    
    This changeset makes sure that the corresponding http
    requests are cancelled as well when the operatiion is
    cancelled. This prevents a possible issue on blocking
    the caller thread when the connection cant be
    established.
    
    Change-Id: I4c62eb8196a098ab5215e09659765fbd95010e1a
    Reviewed-on: http://review.couchbase.org/21915
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 0bc3d238157c1812cd903ed502843455010e18a5
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 4 12:55:09 2012 +0200

    JCBC-100: Add better error handling on view fetches.
    
    This changeset adds better error handling for synchronous
    view fetches (getView and getViews) and adds documentation
    to the asynchronous methods to remind the developer that
    he has to check on the future object himself.
    
    Change-Id: Ic1a74310f1f789b7b83bfae09496526b27ee7247
    Reviewed-on: http://review.couchbase.org/21338
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 00a21386f6fe0b981aa9083243a1e54cbc7d2ac0
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 8 14:57:31 2012 +0200

    JCBC-119: Allow NULL for persist/replicate.
    
    This changeset adds the possibility of using null for persistTo
    and/or replicateTo. It defaults to ZERO for both enums, which
    are the defaults and are equal to "dont observe at all". Tests
    are also attached.
    
    Change-Id: I0d69c971792ad8118f5d9035ccf3e0d8bca0215b
    Reviewed-on: http://review.couchbase.org/21421
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit b54d2ff4d1e9eb70b0473b5c5ab3064a38f7151a
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 8 18:51:34 2012 +0200

    JCBC-126: Properly encode view values.
    
    This changeset encodes all view property values so that they are
    sent correctly over the wire. It encodes special characters like
    spaces or brackets. This changeset also adapts the tests.
    
    Change-Id: I347e4dce20181c0cd932a0d6d30e34f90475035d
    Reviewed-on: http://review.couchbase.org/21423
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit f6f0b254607e4187c7ba43e0f1d873fe8a360ff9
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Fri Oct 5 07:50:25 2012 +0200

    Return correct result on hasPendingRequests.
    
    This fixes a simple logic-bug which returns true when no pending
    requests are in the queue.
    
    Change-Id: Id917fa22ad3551b118ef0f3a3cbb8769a4cf999b
    Reviewed-on: http://review.couchbase.org/21372
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 0d75967786d79cca1ea1c9a8f3a010b005a11056
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Thu Oct 4 10:31:52 2012 +0200

    JCBC-41: Allows better query options through ComplexKey.
    
    Related Issues: JCBC-90, JCBC-48
    
    This changeset provides more flexible options on how to provide
    the query params, especially if someone wants to add numeric
    strings and not want them to be casted to pure numbers. Since we
    only allow Strings or ComplexKeys as params, the ComplexKey class
    can be used to hint the correct type and enfore it down to the
    HTTP query layer. See the added test cases for more details.
    
    Change-Id: I0d56bda1d3d9727455bfe26fa7a1311dbcce00a8
    Reviewed-on: http://review.couchbase.org/21337
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5cfc13ac68cfda7c3695687ebec7a26bb08f7460
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 8 12:07:49 2012 +0200

    JCBC-129: Improve Documentation for PersistTo and ReplicateTo.
    
    This changeset adds a bunch of docblocks describing the way how
    the PersistTo and ReplicateTo argument work and what they may be
    used for.
    
    Change-Id: I38a9f24c26072e9e8bb9ea54d26c0442f29240df
    Reviewed-on: http://review.couchbase.org/21417
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 325f213a50710a84fc03f30a9f6570c25aa1ab92
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 8 11:31:55 2012 +0200

    JCBC-128: Allow replicateTo without persistTo
    
    This changeset makes it possible to run mutation operations
    like add,set,replace or cas only with replicateTo set and
    persistTo to zero. This adds a security net to operations
    that need to be fast but dont have to be persistet at the
    same time.
    
    Change-Id: Ic261eb027d39111d925a53271b36465349fdcd3b
    Reviewed-on: http://review.couchbase.org/21416
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>

commit 5d133ed90603ec85a277e4564dc11fe8f6309811
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Tue Oct 9 14:24:07 2012 +0200

    JCBC-120: Fix NPE on null for password
    
    This changeset sets the password to an empty string if it is passed
    in as null. This fixes a NPE exception down the stack in the spy
    memcached library that tries to access it. This of course also sets
    it for couchbase connections, but since an empty string is always
    allowd it makes it more consistent.
    
    Change-Id: Ic62558d2dbbef8e67f7570eb605207587718aec7
    Reviewed-on: http://review.couchbase.org/21446
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit c73d7fab29534f5148bea79eb8ff9f40b6f5facb
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Fri Sep 28 12:25:06 2012 -0700

    JCBC-105: Add key stats operation
    
    Change-Id: I5d5300ae29cdc7d73477a488b4554126325213bc
    Reviewed-on: http://review.couchbase.org/21202
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 340c13e2f887df719432a1d991431411097c280b
Author: Michael Nitschinger <michael.nitschinger@couchbase.com>
Date:   Thu Oct 4 15:00:53 2012 -0700

    Add javadocs to public functions in Query class
    
    Change-Id: Ia9ab7b631a0966fdc6326cf360c2707b12caaeae
    Reviewed-on: http://review.couchbase.org/21356
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 4020091d251a2dfe99d34be86cfb88b9e5c1dc6c
Author: Michael Nitschinger <michael.nitschinger@couchbase.com>
Date:   Thu Oct 4 15:00:31 2012 -0700

    Remove the update_seq query parameter
    
    Change-Id: I0e8d0a2096deeba981696f428df850e08e5f564d
    Reviewed-on: http://review.couchbase.org/21355
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 06a19407946327df6d187fbd8a01a891447fc6e8
Author: Michael Nitschinger <michael.nitschinger@couchbase.com>
Date:   Thu Oct 4 14:51:22 2012 -0700

    Add more unit tests for the Query class
    
    Change-Id: Ib9b863838eef8fb7e1f0d4a6f438a513edccae44
    Reviewed-on: http://review.couchbase.org/21354
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 96332980449ea58cc2a90805028bf9c0350f39da
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 1 12:47:20 2012 +0200

    Documentation improvements for the constructors.
    
    Improving documentation for the constructors and making
    it clear that - for the moment - different usernames and
    bucketnames are not possible.
    
    Change-Id: I9e130f05009a888031cad76a76dc1fcc0f7411dd
    Reviewed-on: http://review.couchbase.org/21217
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 2178868be2bd3212d19e02943da26c72762509d3
Author: Michael Nitschinger <michael.nitschinger@couchbase.com>
Date:   Sat Sep 15 17:52:44 2012 -0700

    Adding a ComplexKey class and tests for querying with arrays.
    
    This changeset extends the capabilities of the ComplexKey
    class, fixes a few issues and adds test cases for all
    supported operations. It also adds docblocks where
    appropriate.
    
    Change-Id: I9e0e31179e08fa482f7615370798b7af254dfdc5
    Reviewed-on: http://review.couchbase.org/21353
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 58c1c9f203b576182f8025d25c353e05a2ca6237
Author: Michael Nitschinger <michael@nitschinger.at>
Date:   Mon Oct 1 14:14:48 2012 +0200

    Changing Copyright Years and URL.
    
    This small fix just updates copyright years and the couchbase
    java sdk url.
    
    Change-Id: I1b789b3b6b83ec1921f90e63768fcf25aaf9543d
    Reviewed-on: http://review.couchbase.org/21219
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 7c39dee5a2f46fe3c3e9b017e07ba3fc53f6e687
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Thu Oct 4 14:37:56 2012 -0700

    Fix checkstyle errors
    
    Change-Id: I9d2395e78d174f6e29e1bbad6df5a0744b2ecd29
    Reviewed-on: http://review.couchbase.org/21351
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 1b1e13ac2e9253b2f76544ba0439a9b6109d9a0c
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Wed Sep 26 17:18:24 2012 -0700

    Don't increment volatile variables
    
    Incrementing a volitile int is not thread safe since it follows
    the read/modify/update pattern.
    
    Change-Id: Ifa32c8867cc333ae722e74fedc345cdbd4e89e3d
    Reviewed-on: http://review.couchbase.org/21157
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit a9420b692a8b1503b1950dacfa95fbcb27b0477e
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Wed Sep 26 17:16:32 2012 -0700

    Fail testOps in VBucketCouchbaseClientTest if connection fails
    
    Fail test rather than log syserr in VBucketCouchbaseClientTest if
    connection fails.
    
    Change-Id: I252ea356300fbaa1fea0dd9b0b47f25bb8c6d0bd
    Reviewed-on: http://review.couchbase.org/21156
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 59d1d5c03f5d09c1a20686d3f36fcba881f869e2
Author: Raghavan Srinivas <rags@acm.org>
Date:   Fri Sep 14 20:18:28 2012 -0400

    JCBC-25: Add option for on_error in conjunction with Views.
    
    Fixes http://www.couchbase.com/issues/browse/JCBC-25
    
    Change-Id: Ide9264bb8db5b6c3b1477e1d720aa289229ecfb8
    Reviewed-on: http://review.couchbase.org/20878
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4647b0a8683979c2b9447df10edbff66155dd7cd
Author: Raghavan Srinivas <rags@acm.org>
Date:   Sun Sep 16 23:10:22 2012 -0400

    JCBC-40: Make paginator not return null.
    
    It now no longer returns null.  It will also allow for easier
    understanding of iterating between pages and records within
    a page.  It will also now honor the setLimit on the supplied
    Query.
    
    Change-Id: Ib310bbe3cc4a9694426e78a31d9cbcc1daf70f05
    Reviewed-on: http://review.couchbase.org/20898
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit f5603e21c7cbf94d4804e01688c1160375dae418
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Sep 17 15:22:10 2012 -0700

    Remove observe delete command
    
    There is a server bug that pervents this change from working
    properly in all cases. We will revert this change once the issue
    is fixed on the server.
    
    Change-Id: Ia9b4ea5e95dccd6f7083a996fb4cd66f471ba03a
    Reviewed-on: http://review.couchbase.org/20918
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5f50dbd742d3f9f1563bd3518e56ae44db31de95
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Thu Sep 13 21:21:35 2012 -0700

    JCBC 110: Fix observe command
    
    Change-Id: I70eb4947eb05cb4c356bab5ad14e7b277c00e7b8
    Reviewed-on: http://review.couchbase.org/20847
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 455886d419ac76ab3509a69dfc8950d2c7f22360
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Sep 17 15:08:23 2012 -0700

    Fix checkstyle errors
    
    Change-Id: I3fe78fca9075b812b4369f5b99cc2d5556a0f065
    Reviewed-on: http://review.couchbase.org/20917
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit e0e7d10776a524ef536fc02d9e7f046bddb3bc2a
Author: Raghavan Srinivas <rags@acm.org>
Date:   Sat Sep 15 11:39:02 2012 -0400

    Upgrade Netty Dependency
    
    Fix for JCBC-106.
    According to https://github.com/netty/netty/issues/milestones?state=open
    3.5.5 is backwards compatible with earlier versions and is the latest
    stable release. So far testing has proved that there are no
    compatibility issues.
    
    Conflicts:
    	ivy/libraries.properties
    
    Change-Id: I4b5ff9219d5709d45a7bcf7e5fdd9f7607b65184
    Reviewed-on: http://review.couchbase.org/20889
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit e65942dfd55c0959dbe2a9a3fab14344c3a0597c
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Sep 12 01:59:22 2012 -0700

    Update to released spymemcached 2.8.6.
    
    Change-Id: I7803440f9ba5a88c3758fe10c49ab5c50532e0fd
    Reviewed-on: http://review.couchbase.org/20780
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit ce74eb6bf1004500f854082da4c91316ed906d3b
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Sep 12 01:58:59 2012 -0700

    Fix minor checkstyle issues.
    
    Change-Id: I19ceb6459e61d0d5e53981267d6e58fcf99b784c
    Reviewed-on: http://review.couchbase.org/20779
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit f96138ffe2fa699fe8edd2fe7bd4f1f9eb8e7b88
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Sep 11 17:01:02 2012 -0700

    JCBC-109: Reduce observe poll interval latency.
    
    A 100ms interval was chosen after some discussion.  It's
    not optimal, and JCBC-108 tracks getting this to an adaptive
    algorithm.
    
    The reason for 100ms is that with real disks, chances are
    fast IOs will happen in 60-120ms.  Only with caching or SSDs
    will it likely be lower.  This means that with most checks
    it'll happen in a handful of checks.
    
    Change-Id: Ia6e14ee32ba6d6fc57608ffb44dbb9611e3401a5
    Reviewed-on: http://review.couchbase.org/20760
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit dd5e34e6e02b27fc54b731cf7c86e96ae1d3d8b8
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Sep 10 12:21:38 2012 -0700

    JCBC-107: Correct OperationStatus message when observe poll is tuned.
    
    Change-Id: Icf02c8d2f597a821869f77a79e38eb5cfb584a47
    Reviewed-on: http://review.couchbase.org/20712
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 49fe212fdf78beac6263e73f918ff9a811923e0c
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Sep 10 12:22:40 2012 -0700

    Update to spy 2.8.6-SNAPSHOT for development.
    
    Change-Id: Ie46913976b2a24197410cb7d57a6c35b5a76b3ed
    Reviewed-on: http://review.couchbase.org/20711
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 2ec3bca248c08f27984f748ceae652a044dfd879
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Fri Sep 7 17:01:35 2012 -0700

    Remove unused variables in observe implementation
    
    Change-Id: I38c8aaf59f1d01390e8f60bc96f21d6e4ede0881
    Reviewed-on: http://review.couchbase.org/20654
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 21db5dd7e835fa19a5775ea5bb44c41e6786228f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Thu Aug 30 22:10:31 2012 -0700

    Make observe poll loop parameters tuneable.
    
    Change-Id: Iaf8c8a22119066d04869e30d657bde157a7f4dfd
    Reviewed-on: http://review.couchbase.org/20399
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4b300b2dcc007eaeb1f27f85444322b583bd0ea4
Author: Raghavan Srinivas <rags@acm.org>
Date:   Thu Aug 30 00:24:39 2012 -0400

    Enhanced observe and added observe support for other mutation ops
    
    Throw ObservedException, ObservedTimeoutException
    and ObservedModifiedException
    Added support for add, replace, cas
    Updated Tests for observing the mutation operations
    
    Change-Id: Ifa9accbe8056f28ecfefaac19a9d5bdf34fb9951
    Reviewed-on: http://review.couchbase.org/20329
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 710f39839adcb727dd188f96de241aa72dbd2004
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Fri Aug 31 00:59:55 2012 -0700

    Update to spymemcached 2.8.5.
    
    Change-Id: I754b08c9f1151bd739a89b8aeac3c0a4d102fa07
    Reviewed-on: http://review.couchbase.org/20398
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4a5b5cbc4395fb6569f90872eb9519d43f5b6b2d
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Aug 21 23:04:25 2012 -0700

    Remove jettison import from ViewTest.
    
    Change-Id: I72f49c842272ee06b39df38d6501aceaee7da7dc
    Reviewed-on: http://review.couchbase.org/20010
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 12dffd5cf5049645938d405a056135ff1cb5be26
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Aug 21 20:14:21 2012 -0700

    Update spymemcached dependency to 2.8.4.
    
    Change-Id: I3a92bb4efde4cda95fd8bd0b63976f6a76fd3da1
    Reviewed-on: http://review.couchbase.org/20008
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 0967d5167eba965205de0f8a26e88db237ee065d
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Aug 21 18:38:35 2012 -0700

    Remove design docs without the _rev.
    
    As of build 15xx, design documents no longer have a _rev and thus
    there is no reason to retrieve them to remove them with _rev.
    
    Technically speaking, we could probably get rid of this whole
    section, but there's no harm in just making it work.
    
    Change-Id: I6373dbab78ed7f3c02e57c2a4dcf734285b45ee8
    Reviewed-on: http://review.couchbase.org/19998
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 1840d0fa39f593ecd2b973523e023bc9affe3b06
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue Aug 21 17:29:27 2012 -0700

    Updated spy dependency to 2.8.4-SNAPSHOT.
    
    Change-Id: I27be57d44302248d27059b213a3dcc2364131a34
    Reviewed-on: http://review.couchbase.org/19997
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 7e5d17d8b7ab5feaf67d3a80f85f87bd45e007fe
Author: Raghavan Srinivas <rags@acm.org>
Date:   Mon Aug 20 20:39:31 2012 -0400

    Observe/Delete related changes
    
    Properly return OperationFuture from delete().
    Ignore the cas values if set to zero.
    
    Change-Id: I7f9b4a9149f1a952f5a2354f223223d02144da43
    Reviewed-on: http://review.couchbase.org/19920
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 0b92ee2ea2cf658054a73145bc80e9a8267090d8
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Aug 19 22:26:50 2012 -0700

    Updated README to map up to the 1.1 DP state.
    
    Change-Id: Ia810d5b6f1418476fc2118e3501e0c69f2d6da79
    Reviewed-on: http://review.couchbase.org/19862
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit e8ff311445822053a623c823647fb3b58f156e16
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Aug 19 14:15:14 2012 -0700

    Update to depend on released spymemcached 2.8.3
    
    Change-Id: I20765441809571c2660b661032ba3bc4a681165f
    Reviewed-on: http://review.couchbase.org/19861
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5bb4b3692ba47bbaa25bc0d8f16454b44600e01e
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Aug 19 14:14:39 2012 -0700

    Minor typo in test log message.
    
    Change-Id: Id0713e7df30b0a828af3122ad9623c3e9240c245
    Reviewed-on: http://review.couchbase.org/19860
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4e059171ca69e6dea5fc1f968ed9ecd0465d8647
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sat Aug 18 16:59:20 2012 -0700

    Checkstyle misc. fixes.
    
    This fixes a number of checkstyle issues which have been
    around for a while.  Some are still in code review, but a merge
    commit is a bit in the way of putting things in the right order.
    
    Change-Id: Icd79b614ef53840130abd8ec8adf1ebdb8fccdb4
    Reviewed-on: http://review.couchbase.org/19840
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 66115cef4542ece437229f90a0ba17ea96aac69e
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sat Aug 18 16:25:30 2012 -0700

    Checkstyle fixes from merge commit.
    
    Initially, I tried to rebase this to be the first commit after
    the merge, but git would keep losing it even when using -p during
    rebase.
    
    Change-Id: If9c79e0139ab60261e67195037686de3a446a373
    Reviewed-on: http://review.couchbase.org/19839
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit bbbeb7677eabb08a50c3905dbf88b390d980a969
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sat Aug 18 15:15:47 2012 -0700

    Rename README since ant clean kept removing it.
    
    Change-Id: I2eada518c22bc345c113c0b786e200fd931e0567
    Reviewed-on: http://review.couchbase.org/19838
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 47bc98af900f1ba89357cf003ab046257f8083ff
Author: Raghavan Srinivas <rags@acm.org>
Date:   Mon Aug 13 04:00:11 2012 -0400

    Add support for a synchronous delete, via observe operation.
    
    This change adds support for a synchronous delete, including
    detection of full delete versus logical delete.
    
    The main use case behind this feature is that if using
    Couchbase Server 2.0, and wanting to query views, one may
    wish to ensure a delete has been persisted to know that
    a subsequent query with .setStale(false) will take the
    deletion into account when generating the index.
    
    Change-Id: I99ad5b5089992a7df2c2ab12e487d043265df21f
    Reviewed-on: http://review.couchbase.org/19778
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4460d262b761363b6e375eafd2b1385660f42bd7
Author: Raghavan Srinivas <rags@acm.org>
Date:   Tue Jul 31 00:02:12 2012 -0400

    Add support for synchronous set via Observe operation.
    
    This change introduces a simple synchronous set which
    uses the underlying observe command introduced in
    spymemcached 2.8.3.  This command is a binary command only
    and is in Couchbase Server 2.0 (approx. build 1495) only.
    
    Conflicts:
    	src/test/java/com/couchbase/client/CouchbaseClientTest.java
    
    Change-Id: I6a1e8af54ef13d4a40a5dcc21bb7a939fb63499f
    Reviewed-on: http://review.couchbase.org/19068
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 93e59f05216df7428197305fc175ec7609a800dc
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Thu Aug 16 19:18:41 2012 -0700

    Fixes for view authentication when adding design docs.
    
    Change-Id: I78fd48c5fb18a2622ed0a9f0aa80f317537e70a3
    Reviewed-on: http://review.couchbase.org/19758
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 7a6976cbbb1f8fc68214f7395cac91712a64c12b
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 21:57:23 2012 -0700

    Adapt OptimizedStoreVbucketTest to new test fixtures.
    
    Change-Id: Id4a3268f42124ace70531f10674b817b7464c15c
    Reviewed-on: http://review.couchbase.org/19694
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit b0e561ab11e34d80a776053e070a3893db043d83
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 21:56:47 2012 -0700

    Fixes for TapTest based on new flush.
    
    Change-Id: Ib8be84252cc34eb3c5ec12b039abbcb410cd6a54
    Reviewed-on: http://review.couchbase.org/19693
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit b6df3e4a94811312d0b2bc5a22f746a909819309
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 21:55:43 2012 -0700

    Better logging on testGetAvailableServers in failure case.
    
    Change-Id: Id14c724e9a6ea40f10e4691f09f3bca4f4f8f821
    Reviewed-on: http://review.couchbase.org/19692
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit d0dd7f9068b479b15663084d4b7e265d45ded2de
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 21:54:38 2012 -0700

    Disable tests related to flush after change to test fixtures.
    
    Change-Id: I0225828c83cd70ee3ae9fdea66f226a22c183e32
    Reviewed-on: http://review.couchbase.org/19691
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 924d30175c80569d8e7ef533707f9626507f1960
Merge: b9aa7c1 5b3f66f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 18:10:34 2012 -0700

    Merge branch 'release10'
    
    By Matt Ingenthron (16) and others
    
    * gerrit/release10:
      Added a simple README.
      Add default test type to ant build.
      Add a few minor override annotations.
      JCBC-88: Fix resubscr by not waiting long and asynch subscribing.
      Workaround NOT_MY_VBUCKET during optimization, and test.
      Honor TestConfig in syncGetTimeoutsInitClient().
      Ensure config update checks do not overwhelm the system.  JCBC-54.
      Use the correct Connection type for the config.  JCBC-53
      Update deps to spy 2.8.2-SNAPSHOT
      Fix checkstyle errors
      Do not override fetching of AuthDescriptor.  JCBC-59
      Added additional ctor to avoid username. JCBC-38.
      Missing space added to log message when node is down.
      Reconnect to configuration stream if disconnected. JCBC-19
      Use the correct default Hashing Algorithm - JCBC-29
    
    Conflicts:
    	ivy/libraries.properties
    	src/main/java/com/couchbase/client/CouchbaseClient.java
    	src/main/java/com/couchbase/client/CouchbaseConnection.java
    	src/main/java/com/couchbase/client/CouchbaseConnectionFactory.java
    
    Change-Id: Idefa785503f0dae99624af7172ba38f54087a45e

commit b9aa7c16d919936d43ae089337f1a97ea4284fef
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 16:41:34 2012 -0700

    Change tests to use bucket delete/create instead of flush_all.
    
    Recent changes of Couchbase Server 2.0 have flush_all disabled
    by default. It's also not correct to re-enable flush_all
    (though possible) as it won't really behave correctly.
    
    This change shifts to a bucket delete followed by a bucket create.
    It's not the best change in that it introduces a lot of sleep time
    instead of checking for bucket availability with some other poll,
    but does appear to be reliable.
    
    After the integration of RESTful flush in MB-5170, we should be
    able to trim some of the time of running tests again and remove
    the sleeps in here.
    
    Change-Id: I80ed8bb311afc8dde3970db0cbad6687f58c0048
    Reviewed-on: http://review.couchbase.org/19677
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit d9ae5a95511c015e37fa2463a21df017d768264b
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 15 16:36:55 2012 -0700

    Added asserts to ensure expected view handling.
    
    Change-Id: I191ff4bfdd61aec26afb146aa3aa9de4d315f9c0
    Reviewed-on: http://review.couchbase.org/19676
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5502ef84ec2dba6a3a6b4fa3f02cf1700bb694c2
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Thu Aug 9 11:34:00 2012 -0700

    Make diagnosis of HTTP connection startup better.
    
    Change-Id: I49d9f44aca5adad8f070cca661c990c9de306853
    Reviewed-on: http://review.couchbase.org/19675
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 228b3cd3c3d1d171779ccbdb10bbd3974f8a8a57
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Jul 25 01:40:43 2012 -0700

    Added better debug logging on ViewNode error handling.
    
    Change-Id: Ic1ee33df0a95ce285143269b9cc1246cc8be0913
    Reviewed-on: http://review.couchbase.org/18808
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit d6100b2c01e9c6788444c30e1b8b367b1f463f04
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 21:47:38 2012 -0700

    Remove dependency on ErrorCode, which was revereted in spymemcached.
    
    Change-Id: Ife8c127ad3d0e9bfc7648f2f8e87e62a5ec4e0f9
    Reviewed-on: http://review.couchbase.org/19674
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 113ad2e34581ac30534c12f4bb638dbafce779ae
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Fri Aug 3 13:14:18 2012 -0700

    Depend upon 2.8.3-SNAPSHOT
    
    Change-Id: Idb97b900ec1856b75df631bfe620c73b11bedb1e
    Reviewed-on: http://review.couchbase.org/19673
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 0443cd9b023f3c14904765c74b41423c40674dc7
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Aug 13 18:03:43 2012 -0700

    JCBC-96: Remove the queue mechanism in ViewConnection
    
    This change removes the queueing mechanism that hold operations
    before being given to an individual ViewNode. The operations are
    now passed directly to a ViewNode and if there are too many
    operations then they are held as pending requests until the
    ViewNode is ready to process them. On node shutdown the pending
    ops are requeued through a callback function that redistributes
    them equally to the rest of the ViewNodes.
    
    Change-Id: Ieffbb45123cf47153cea662df1a01f5b2266c8d3
    Reviewed-on: http://review.couchbase.org/19606
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit f8857d696a451508e77cf45162a0294628f6dd92
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Aug 14 10:47:47 2012 -0700

    Fix checkstyle errors
    
    Change-Id: Id044e448f2ec1b9f83c06bacf21ccdc1f123110b
    Reviewed-on: http://review.couchbase.org/19605
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 92a87ffdf142417c45256f781ad3c6960857c71f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Jul 25 01:37:22 2012 -0700

    Make fields of HttpOperation volatile for concurrent access.
    
    Change-Id: Ia55c4a4a3ef30affe9fea5d5f9623a79e4b91a4b
    Reviewed-on: http://review.couchbase.org/18807
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 38914528a0e074f1b9276d6c120ac6a73b1ef150
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Aug 8 10:31:22 2012 -0700

    Add HTTP Basic Authorization for View Requests. JCBC-95
    
    Change-Id: I51dde71b94f99dc0a5db8e9877fa94db45b718f2
    Reviewed-on: http://review.couchbase.org/19373
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 5b3f66f4c44e8f73fff0e8dc65a866bd1676bd96
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jul 30 18:16:29 2012 -0700

    Update spymemcached depedency to 2.8.2 release.
    
    Change-Id: I2f3099dc885de9e78ca67607174408ad5b075d0e
    Reviewed-on: http://review.couchbase.org/19051
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Jasdeep Jaitla <jasdeep@couchbase.com>

commit f122ff228fe5089eae761b44ef46ab537b874e33
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jul 30 09:09:57 2012 -0700

    Added a simple README.
    
    Change-Id: I71ee47b5f3c3260657ec70644f63d9a58eb73055
    Reviewed-on: http://review.couchbase.org/19018
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit d026763993705d1a30269970b39e8abd9ddc8294
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jul 30 07:43:26 2012 -0700

    Add default test type to ant build.
    
    Change-Id: Ib0cc409a440ff5b485d6a188f77867abc79bc204
    Reviewed-on: http://review.couchbase.org/19017
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 9952e10ba2f8dcc5e0c4fc4cc5e9e479cad80e5b
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Jul 29 18:12:46 2012 -0700

    Add a few minor override annotations.
    
    Change-Id: I943c6253c55fa96f6a567dacd2598192f512f21b
    Reviewed-on: http://review.couchbase.org/19012
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 7e4339aeed7a0e240c75717ebc5250bb47279343
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Fri Jul 27 09:28:20 2012 -0700

    JCBC-88: Fix resubscr by not waiting long and asynch subscribing.
    
    It was found during autofailover testing that the client
    did not recover well.  The problem was that we completed the
    resubscription on one of the callers threads.  The subscription
    can take upward of 700ms, but if the caller adjusts their timeout
    for operations to be lower, we don't complete the resubscription.
    
    This change does a couple of things:
    1) doesn't allow the connection for any individual HTTP request
       (non-streaming) to take longer than 500ms to establish for
       purposes of faster failover
    2) changes resubscription to occur in a thread temporarily
       spawned by the CouchbaseConnectionFactory, so it can complete
       even if the caller's request times out.
    
    This has been tested to show autofailover working correctly.
    
    Change-Id: I87582b99fa872530a62a336b3144fefc60b63f6e
    Reviewed-on: http://review.couchbase.org/19008
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 36f97dc87dff189f9638bd1dec24bdd199ea27ac
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Jun 3 15:36:41 2012 -0700

    Workaround NOT_MY_VBUCKET during optimization, and test.
    
    On SPY-91, it was found that receiving a NOT_MY_VBUCKET
    response in the middle of an optimized batch of requests
    will upset things by causing the optimized operation itself
    to be unqueued for reads, rather than retrying the contained
    operation.
    
    Since the severity level is high and the workaround is
    straightforward (disable optimization) this commit both
    disables optimization and introduces the test which helped
    find the cause of the issue.
    
    Recommended way of verifying this would be to remove the
    two sections related to disabling optimization and then
    verify the test fails.
    
    Change-Id: I20aa2945bbbbe9f19a56a41224244fe368d5e34e
    Reviewed-on: http://review.couchbase.org/18757
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5c1d311f9f85bfe31fcac8eac6ed1f524b43e5aa
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jul 23 23:13:15 2012 -0700

    Honor TestConfig in syncGetTimeoutsInitClient().
    
    Change-Id: I6b1d9cba8598799177f686016970ca254e9cec9e
    Reviewed-on: http://review.couchbase.org/18758
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 4c73aa8f1ed631f2afd0b197d9e04e6fa8a891a2
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Tue May 22 21:42:24 2012 -0700

    Ensure config update checks do not overwhelm the system.  JCBC-54.
    
    Change-Id: Id0514278608fa1476e21c0f52958860404240561
    Reviewed-on: http://review.couchbase.org/16338
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5bd2319962fc1d97aa534edb8779b33b07809443
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon May 21 21:53:37 2012 -0700

    Use the correct Connection type for the config.  JCBC-53
    
    In the refactoring of the client into two packages, we lost
    the functionality that would handle reconfiguration from
    MemcachedConnections.  This change introduces a
    CouchbaseMemcachedConnection which extends the MemcachedConnection
    and implements reconfiguration.  By doing so, we properly handle
    add and remove node events from the cluster.
    
    Change-Id: Ief068cab934542617a11e2f527d98b9c38affd07
    Reviewed-on: http://review.couchbase.org/16337
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 468a425893fe0fb38a47f859404b86e049b7234f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jul 23 21:17:18 2012 -0700

    Update deps to spy 2.8.2-SNAPSHOT
    
    This will be replaced before release with the non-snapshot.
    
    Change-Id: Ia9800f9f63279c4716963066dc059e88aa009119
    Reviewed-on: http://review.couchbase.org/18755
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 98b9d82dc59d05b2138c73dead407d192026c66a
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Fri Jul 20 14:03:19 2012 -0700

    Fix checkstyle errors
    
    Change-Id: I87007bd428da34badc0d5a10ef17aa50b8132804
    Reviewed-on: http://review.couchbase.org/18655
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 2390ecc598b569907fccc92535388ce38f0ce24a
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Jul 10 19:51:33 2012 -0700

    Fixed incorrect error handling in view parsing
    
    This should call setException because setException set errored
    to true. If errored is not set then the Future won't properly
    throw and exception.
    
    Change-Id: I71288cda2f6fe27c9dc9ae83968efe81d6fe154d
    Reviewed-on: http://review.couchbase.org/18197
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 9a3e20797c082d5983a861caadd7a6846232d8e8
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Mon Jul 9 12:56:54 2012 -0700

    JCBC-72: Throw exception for non-200 http view responses
    
    Change-Id: Iee0b1de24a9ea245b6554aea5a30462cf7b613ef
    Reviewed-on: http://review.couchbase.org/18094
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit a407211be57bbf528e657fa6f4833264d504ab6d
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Jul 10 19:44:18 2012 -0700

    Change spymemcached dependency to 2.8.2-SNAPSHOT
    
    Change-Id: I0d3968baa57c3736af2c992eaf169ab6e3dabb37
    Reviewed-on: http://review.couchbase.org/18194
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit e565ba016a534575f387fadc1c8e40e37c309032
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Thu Jun 28 21:57:35 2012 -0700

    JCBC-68: Copy key correctly in query
    
    Change-Id: I26a9470a7a39caf913338126dfb918c8774774cd
    Reviewed-on: http://review.couchbase.org/17742
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit c66354dbce794852d7f4e97d27d281f48409f853
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat Jun 2 23:22:19 2012 -0700

    JCBC-43: Make VBucketNodeLocator nested classes static final
    
    Change-Id: I937829e51621d8ed6a0e54b1b079cc338ffab059
    Reviewed-on: http://review.couchbase.org/16703
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit e39cd7670097d08798fcf5a8b329c84574fca764
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Tue Apr 17 10:53:47 2012 -0700

    JCBC-20: ViewConnection blocks when no ops pending
    
    When getting the next op in the queue we were using the poll()
    function which immediately returns null if the queue is empty. This
    immediate return causes the IO thread to spin and consumes a lot of
    cpu. What we really want is to block when getting an item from the
    queue until one is available. In order to do this we should be using
    the take() function.
    
    Change-Id: I9a5bcb4c3852976b55b3162fad513156e94aaaf6
    Reviewed-on: http://review.couchbase.org/14959
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 0c9d2d3a3457c4f81580aeb8be7bed127f80b244
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Jun 4 19:58:27 2012 -0700

    Do not override fetching of AuthDescriptor.  JCBC-59
    
    Change-Id: Iff02589db6e1a3c3f56108a647e37b821b6cc447
    Reviewed-on: http://review.couchbase.org/16765
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 0af53740b76fb48dc8d17822e45938e71589d919
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 22:05:04 2012 -0700

    JCBC-42: Close properties file after using it
    
    Change-Id: I1daa439afd2e88b55f04a63b7c42a9a7f18244e2
    Reviewed-on: http://review.couchbase.org/15958
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit a2dcbc01c3bf7b7843e816aa69f0a017412a8332
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 21:47:38 2012 -0700

    JCBC-44: Check if op is null before checking if it is cancelled
    
    Change-Id: I960a31110484007b9ac6b3735c9cd2ce9ca79e60
    Reviewed-on: http://review.couchbase.org/15957
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 9e72d8687d59ea80f376aec2483912bdc6a790f7
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 20:58:37 2012 -0700

    Support error codes in OperationStatus class
    
    Change-Id: If6bd4c86a28b892018385921b0f7c98172225410
    Reviewed-on: http://review.couchbase.org/15953
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit ba75181c9439f612b42816abba27ca29e7b23de0
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 21:47:04 2012 -0700

    JCBC-24: Create setGroupLevel() function in Query class
    
    I removed the setGroup(boolean group, int group_level) function
    since group overrides group_level making this function useless. I
    turned this function into the setGroupLevel() function.
    
    Change-Id: I98ea665c8bae73ae0940863ef84c426cfade01c1
    Reviewed-on: http://review.couchbase.org/15956
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit f1090070c89b2f6906291b4a9d7c0b352de2c2a7
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 21:09:46 2012 -0700

    Removed redundent code in setStale() function in Query class
    
    Change-Id: Ie46923fde6ff5bccbf92a9da6af17769b5e44efa
    Reviewed-on: http://review.couchbase.org/15955
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit f660e1943746af299e7fd756e9ee88a020b95d11
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Sat May 12 21:04:53 2012 -0700

    JCBC-47: Query now copies include_docs correctly
    
    Change-Id: I9a894bb86530f36151c5075d2da814a66e3f4e9f
    Reviewed-on: http://review.couchbase.org/15954
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 0e37394794790561074694af42b457bc42b6a7f4
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Apr 29 11:34:49 2012 -0700

    Update dependencies to spymemcached 2.8.1. JCBC-39.
    
    Change-Id: I9d4e1099edbe4d32d80af22b19cfd3dad6bde221
    Reviewed-on: http://review.couchbase.org/15436
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Marty Schoch <marty.schoch@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit df18fb4ea62f1662308fd71449a3ebb84b0de1a7
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Apr 29 11:31:20 2012 -0700

    Added additional ctor to avoid username. JCBC-38.
    
    Change-Id: If487df95e2974f0a4c60e3c57978a82596967de6
    Reviewed-on: http://review.couchbase.org/15435
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Marty Schoch <marty.schoch@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit b424ca4bc0b497362206cb459d98728f6af05ac1
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Apr 30 12:15:44 2012 -0700

    Missing space added to log message when node is down.
    
    Change-Id: Ifad8da0b4e42f4f58945510de8513e6a7f1424e2
    Reviewed-on: http://review.couchbase.org/15462
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 02df7a7e663af846af9a742a306681a6ff5feb74
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Thu Apr 5 14:10:57 2012 -0700

    Change back to spymemcached 2.8.0 for this branch.
    
    Change-Id: I38ef9d66544f30f8101ca04889b8042c1abfc177
    Reviewed-on: http://review.couchbase.org/14586
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Marty Schoch <marty.schoch@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 7c049c5290766789cc30098238d34858ea07cf14
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Mar 21 08:47:46 2012 -0700

    Reconnect to configuration stream if disconnected. JCBC-19
    
    With this change, a Bucket which is marked as disconnected will be
    later reconnected when noticed by a calling thread.
    
    The logic for this is a little convoluted at the moment, but tests
    to be correct.  In the future, this whole section should be refactored
    to be a better NodeLocator or something similar.  See JCBC-28.
    
    Change-Id: I8541493fdf7e8c504c4cbd512ca43e3416b03829
    Reviewed-on: http://review.couchbase.org/14574
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 4d34594b7be3a76f1e5a868ecb9bb056f94cbbf0
Author: Mike Wiederhold <mike@couchbase.com>
Date:   Thu Apr 5 10:47:40 2012 -0700

    Fixed checkstyle errors
    
    Change-Id: I1ae53a088077e098313231f2d044a0ca61c1fd46
    Reviewed-on: http://review.couchbase.org/14562
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit ce7a0842c61a20b867fdbd1ea5606b694eb9d872
Author: Raghavan Srinivas <rags@acm.org>
Date:   Tue Apr 3 00:55:28 2012 -0400

    Use the correct default Hashing Algorithm - JCBC-29
    
    Change-Id: Ifb1a9ebcc7ae64a8590f1123ddde9138c17fe23e
    Reviewed-on: http://review.couchbase.org/14485
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit cf95135b9d97aa2823d31ae9777b041fb240450c
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Mar 21 18:18:08 2012 -0700

    Update dependencies to spymemcached 2.8.1.
    
    Change-Id: I86e4ee1c29f16eff16c3057db12f190158f5ee30
    Reviewed-on: http://review.couchbase.org/14178
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit b0cd3ab2d2d993a293542870904d0b6345be935f
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Wed Mar 21 09:13:13 2012 -0700

    Add httpcomponents to ivy file for makepom.
    
    Change-Id: I04508e00b77b7b6e6936f43e3d130ad22e5cdf9d
    Reviewed-on: http://review.couchbase.org/14157
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit c7410b33a4670f6ff9f3b03c5db6896b8cf7fa19
Author: Raghavan Srinivas <rags@acm.org>
Date:   Fri Mar 9 00:51:32 2012 -0500

    Add support for stale=false which is needed from 2.0 DP4 and later
    
    Change-Id: Id1956b6467ae02c2fae69d7cf252e3c62507cc82
    Reviewed-on: http://review.couchbase.org/13849
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit beda277e7ad5efd0c0cf163067d03d70fdf2f5d6
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Feb 29 13:44:09 2012 -0800

    Added support for views
    
    Change-Id: I67a5912f2b329151c15cff7fc89ab7ef3700503e
    Reviewed-on: http://review.couchbase.org/13688
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 97e627601510424f3275f2d46b0b79862dcd8bdf
Author: Raghavan Srinivas <rags@acm.org>
Date:   Fri Mar 9 00:45:23 2012 -0500

    Fixed a javadoc issue
    
    Change-Id: Ic6957078afdf56c16f2e44c3a269b3e31a8bb466
    Reviewed-on: http://review.couchbase.org/13847
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 0d87dd20458dc96909c5f42a0bfe81966373d06c
Author: Raghavan Srinivas <rags@acm.org>
Date:   Fri Mar 9 00:47:36 2012 -0500

    Correctly shut down connection from TapClient. JCBC-16
    
    Fix based on http://www.couchbase.com/issues/browse/JCBC-16
    
    Change-Id: Iefa5d36a1263350a5e61f54d2f65796dec9b808f
    Reviewed-on: http://review.couchbase.org/13848
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit f1d750e70f4f295491861a51115965f72c8b9782
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Mon Feb 20 11:48:46 2012 -0800

    Fixed a number of TAP test issues.
    
    Change-Id: I1193262637596d0576838a67db7a61ff1447ad37
    Reviewed-on: http://review.couchbase.org/13394
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 88bb58be09f18c5f3035e4e519baae0f58a018d7
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Feb 19 19:06:11 2012 -0800

    Added a note about TAP interface stability.
    
    Change-Id: Ida28a8804777fddf0a8e47f7b3adecbdc7b0b633
    Reviewed-on: http://review.couchbase.org/13373
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit b68dc175c32e72f6f655f63f23daa892a04f8a5b
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Tue Feb 7 19:32:13 2012 -0800

    Use TapAck from Spymemcached
    
    This change removes duplicate code.
    
    Change-Id: I7cf569e6c96f41af5bab51aabe402662f49282af
    Reviewed-on: http://review.couchbase.org/13085
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 7d9b64af066781a83ae3e02a02427a1ea61e37ae
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Tue Feb 7 18:58:36 2012 -0800

    Use TapStream abstraction in spymemcached
    
    This will allow our tap streams to be able to connect to
    all node in the cluster.
    
    Change-Id: I233a8fc96bb55cf12e73e40f46281dd3870004b5
    Reviewed-on: http://review.couchbase.org/13083
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 4a38b26b2290013e316df26a21ba295d31e01a5c
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Feb 19 19:02:45 2012 -0800

    Depend on spymemcached 2.8.1-SNAPSHOT.
    
    I've pushed a tag to the first commit on spymemcached after
    the last release, verified that it's building/installing
    with the snapshot tag.  Then based this on it.  We need
    to release them in order, obviously.
    
    Seems like the best flexibility for now with how things are
    changing.
    
    Change-Id: I8edc64963b074fe558a8e4cd42b3ff9e0af26dc2
    Reviewed-on: http://review.couchbase.org/13372
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit b464e085d277b632cfbb4b755f8465aa64ab41b5
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Tue Feb 7 18:47:47 2012 -0800

    Fixed checkstyle issues.
    
    Change-Id: I767ed66a6c3b36016300448a2075ada7071dfbae
    Reviewed-on: http://review.couchbase.org/13082
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 8ba261989a9a43e05efd43e81a80bcf65d7d61c2
Author: Raghavan Srinivas <rags@acm.org>
Date:   Tue Feb 7 00:17:54 2012 -0500

    Fixes for adding only hostname instead of both hostname and ip address
    
    Change-Id: Ieae49545e1c08f2cb9155f926015046a787c0f5b
    Reviewed-on: http://review.couchbase.org/13046
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit a606674af0dee53fe2c05cb2cbbad2439b82ba90
Author: Raghavan Srinivas <rags@acm.org>
Date:   Tue Jan 31 19:34:50 2012 -0500

    Added unlock operation
    
    Based on patch submitted by Brent Ryan.
    
    Change-Id: I9a30f21108fcbbd43add4abd2f16af05a3fbe68b
    Reviewed-on: http://review.couchbase.org/12907
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 1a3c1cf90eb8a5b7c83daa785db41519bc31b1a8
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Tue Jan 31 16:51:57 2012 -0800

    Changed spy jar configuration to default
    
    We changed this in spymemcached during the release so that it would
    be added as a normal compile time dependency for users who add the
    spy dependency to their pom files. I changed it in the pom config but
    not in the project config that we use for development.
    
    Change-Id: I34175919faec283d993a57f9a2b5f15646ccce0b
    Reviewed-on: http://review.couchbase.org/12841
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit b5d59c10cf790b0b664883607e220e4cf309ea4f
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Jan 25 19:20:30 2012 -0800

    Fixed testAvailableServers()
    
    With Couchbase we should make sure that we get two "names" for
    each server. One will be the hostame and the other will be the
    ip address.
    
    Change-Id: Ic4f47da68afcbd4efe542ec1f00627a2c63558cd
    Reviewed-on: http://review.couchbase.org/12690
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 89717bf80243583a9d214ac2da5bc9b28479b729
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Jan 25 19:06:23 2012 -0800

    Use the master configuration for spymemcached jars
    
    This will solve the issue where we were importing jmx
    and other things that were not needed.
    
    Change-Id: I2d30d058a57a696e8de196224e568c0e28f477ca
    Reviewed-on: http://review.couchbase.org/12689
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit e4bfb93653067162c0e9fd9e5127bdf2efb1a7bd
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Jan 25 19:04:33 2012 -0800

    Uncomment the resolver for the Couchbase maven repo
    
    Change-Id: If110e8fe50157411ea0fa81d63b062e577482fc8
    Reviewed-on: http://review.couchbase.org/12688
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 61e9afe2f21766bf0273274066546266c2b59284
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Jan 25 13:34:20 2012 -0800

    Fixed issue where everything was getting hashed to vb 0
    
    The node locator types here are backwards and will cause
    everything to be written to and read from vbucket 0.
    
    Change-Id: Ia12887f75748ce0fcf5f3fcf5c11bdd3436cea72
    Reviewed-on: http://review.couchbase.org/12674
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit e047c66b70564f4d1e6cfa3b2f22530a944bda41
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sun Jan 22 10:06:31 2012 -0800

    Updated libraries.properties to go with 2.8.0 release.
    
    Change-Id: Id41f575ed0b3b9a50d096a5d77754d911ca1312e
    Reviewed-on: http://review.couchbase.org/12583
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit c7ebfe50c83c1692ed6841637b86c8dbb1cebae3
Author: Raghavan Srinivas <rags@acm.org>
Date:   Sun Jan 22 05:56:41 2012 -0500

    Corrected stage of maven artifacts to properly include source/docs.
    
    Change-Id: Ife95d2f4b1033caa34e6defae4f7339c3a8a82bc
    Reviewed-on: http://review.couchbase.org/12578
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 5a325712141992958aa10c169d92d27e5aa0cdb3
Author: Matt Ingenthron <ingenthr@cep.net>
Date:   Sat Jan 21 00:11:23 2012 -0800

    Changes to stage Maven repository locally
    
    Added a target mvn-stage to stage repository to {user.home}/mvn-stage
    
    Based on http://draconianoverlord.com/2010/07/18/publishing-to-maven-repos-with-ivy.html
    
    Change-Id: Ib71d9ab41abd7fe4a396fc6e0cab8e56edc99e46
    Reviewed-on: http://review.couchbase.org/12576
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit b00f8207b5ab5e34e5f6df51b21d3f191181905e
Author: Raghavan Srinivas <rags@acm.org>
Date:   Sun Jan 22 04:11:45 2012 -0500

    Corrected BuildInfo and other metadata.
    
    Change-Id: I34b46bc01ec94696dd7d75ea55e5fe5f471e00f5
    Reviewed-on: http://review.couchbase.org/12577
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit d9be8695ce6ca4d85df93c8936ef6b246e3f6ec9
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Sun Jan 15 13:52:13 2012 -0800

    Rename files used for pom file generation
    
    These files still had the membase in the name so I changed them to
    have couchbase in the name.
    
    Change-Id: I4d1cf095093f72f9de4b19ffa3c92dfc92d930c3
    Reviewed-on: http://review.couchbase.org/12384
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 8144ac5a0b8e336c4dbfa49d4a9e3ab214f6950c
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Wed Jan 11 13:16:40 2012 -0800

    Don't check for null ConnectionProvider on shutdown
    
    This should never be null in CouchbaseClient. It is leftover
    code from the project split.
    
    Change-Id: Ib6ec24de33ad897d81729dc87624c558fe6c1967
    Reviewed-on: http://review.couchbase.org/12285
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 47722b00efd2de766c36819d556044223259bc79
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Sun Jan 8 19:10:27 2012 -0800

    Refactored the tap client to run correctly
    
    When we originally broke up Spymemcached and created this
    project we left the tap client in a broken state. This change
    makes the tap client function correctly and reenables the test
    cases that were commented out.
    
    Change-Id: Ic23bc0599038893a8ae63d50bec3529a15cc6b1b
    Reviewed-on: http://review.couchbase.org/12159
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 21d74be7048055d792758edb7f7115c902ae738f
Author: Raghavan Srinivas <rags@acm.org>
Date:   Mon Jan 9 00:29:41 2012 -0500

    More membase to couchbase refactoring changes
    
    Changed some more occurences (affects javadocs and log messages)
    Also added/renamed VBucketCouchbaseClientTest.java which I missed.
    
    Change-Id: I9ec314dd2ac65cb904bed978710835135e2a0ac9
    Reviewed-on: http://review.couchbase.org/12160
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>

commit 4e31d3b103c7182b3eb47253ed8ede53bf3878cc
Author: Raghavan Srinivas <rags@acm.org>
Date:   Fri Jan 6 01:04:39 2012 -0500

    Added option to selectively run tests for CI
    
    Change-Id: I391d2e967e56b01cd8d88e73a95e50549422873b
    Reviewed-on: http://review.couchbase.org/12096
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>

commit 702ee8c6d2fd822a9179834454eb4d4adb356c32
Author: Raghavan Srinivas <rags@acm.org>
Date:   Wed Jan 4 15:48:04 2012 -0500

    Changed package namespace to com.couchbase.client
    
    Change-Id: Idd6454bd6574a9337528281df912f51a9fda52ad
    Reviewed-on: http://review.couchbase.org/12050
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>

commit 3501d8cbb3dbd6b4ad6801478e6ac065a98542fa
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Sun Jan 8 12:17:46 2012 -0800

    When adding ops we now use enqueueOperation()
    
    addOp() was removed from MemcachedClient and into memcachedConnection
    and then renamed to enqueueOperation. This change makes it so we
    now use the new function.
    
    Change-Id: I2f2431194a1d417a8540e8fb5e5f1a93bdbe3b0a
    Reviewed-on: http://review.couchbase.org/12151
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 776b2747efcf089eb642c04c6c5c830f025d2a7e
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Sun Jan 8 14:17:16 2012 -0800

    Remove checks for Membase in test cases
    
    This client should always work with Membase and Couchbase
    so we do not need to check the server type.
    
    Change-Id: Iad899a4593795737f8d74eb6b088168207f003a3
    Reviewed-on: http://review.couchbase.org/12150
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>

commit 31f14b3b541cf1322f76683ff93947389a92f39b
Author: Mike Wiederhold <mikewied@comcast.net>
Date:   Fri Nov 18 11:33:05 2011 -0800

    First commit
    
    * Transferred all of the Couchbase code from spymemcached
      into this project
    * Updated build files to properly build the project
    * Fixed errors in project to allow it to build
    * Fixed check style errors
    
    Change-Id: Id736de65fb83f9aa4f0a4a7adbbbb396ebf0ef76
