Permalink
Commits on May 5, 2017
  1. JCBC-1078 Rename attributeAccess to xattr as per RFC change

    Change-Id: I3eec47b3d02d249de957ec62e5b8832e33a337fd
    Reviewed-on: http://review.couchbase.org/77737
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed May 4, 2017
Commits on May 2, 2017
  1. Prepare 2.4.5 release

    Change-Id: I8469a68b4ea1c34adf8d1d955a6a76acd4281329
    Reviewed-on: http://review.couchbase.org/77612
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    subalakr committed May 2, 2017
Commits on Apr 27, 2017
  1. JCBC-1074 Support GetUsers change in returning domain instead of type

    Motivation
    ----------
    Server returns User's domain instead of type
    
    Changes
    -------
    Read domain from server response. User object will also contain domain
    instead of type.
    
    Change-Id: I80b143282345a183368b5d46d141addd74b4132c
    Reviewed-on: http://review.couchbase.org/77257
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Apr 24, 2017
  2. Fix compilation errors

    Change-Id: Ie11efcd1a9e1cd5dc0b43acc89b5c9ca497fde30
    Reviewed-on: http://review.couchbase.org/77432
    Tested-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    avsej committed Apr 27, 2017
Commits on Apr 20, 2017
  1. JCBC-1066: Add support for FTS Geo & TermRange Queries & Advanced Sort.

    Motivation
    ----------
    Couchbase Server 5.0 ships with some new FTS capabilities which need to
    be exposed properly in the SDK these are:
    
     - Geo Bounding Box Query
     - Geo Distance Query
     - Term Range Query
     - Advanced Sorting (Field, GeoDistance, Id, Score)
    
    Modifications
    -------------
    This changeset adds the three new query types as well as the new sorting
    capabilities exposed as a simple builder, very similar to the facets API.
    
    Unit tests have been added to make sure the new capabilities produce
    the query as intended.
    
    In addition, the sort param also allows for a "JsonObject" to be passed in,
    this allows for forwards compatibility when a new sort mechanism is added
    in future server versions, the user can always fall back to that type
    and still benefit from querying.
    
    Result
    ------
    Support for the new querying mechanisms as well as advanced sorting
    capabilities.
    
    Change-Id: I8f4caca1629925bc0caaacb82f39306aace87bf2
    Reviewed-on: http://review.couchbase.org/76246
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Apr 4, 2017
Commits on Apr 14, 2017
  1. JCBC-1055: Add support for ephemeral bucket management.

    Motivation
    ----------
    This changeset adds support for ephemeral bucket management, since
    adding and removing ephemeral buckets is needed once Couchbase
    Server 5.0 ships.
    
    Modifications
    -------------
    Both the encoding and decoding part of BucketSettings has been adapted
    so that the new EPHEMERAL bucket type is respected.
    
    Note that there are still advanced options missing on the builder for
    all kinds of bucket types, but those can/will be added in subsequent
    changesets.
    
    Tests added for 5.0+.
    
    Result
    ------
    Support for ephemeral bucket management.
    
    Change-Id: I93f6c51af0665cd4530819f03523e4738fbc7759
    Reviewed-on: http://review.couchbase.org/76638
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Apr 11, 2017
Commits on Apr 11, 2017
  1. JCBC-1072: Add covenient authenticate overload.

    Motivation
    ----------
    Most of the time when user-based authentication is used one just
    needs to supply a username and a password. Right now this is only
    possible by doing:
    
     cluster.authenticate(new PasswordAuthenticator("user", "pw"));
    
    This adds some friction to the user experience since the user
    first needs to figure out what an authenticator is, which instance
    one should be using and so forth.
    
    Modifications
    -------------
    This changeset adds a simple overload which should suffice most
    of the time and will allow the user just to authenticate with
    a username and a password string like this:
    
     cluster.authenticate("user", "pw");
    
    The old overload is still available for advanced use cases of
    course.
    
    Result
    ------
    Much easier way to authenticate against a cluster with user
    credentials.
    
    Change-Id: Icb8aa20fd5f3da44436dd5e8745ebdb95fe11173
    Reviewed-on: http://review.couchbase.org/76637
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Apr 11, 2017
Commits on Apr 7, 2017
  1. JCBC-1068 Add dsl support to ANY AND EVERY expression

    Thanks and Credits to the original author: uri.brodsky@gmail.com
    
    Change-Id: I680d2211b7b7e1f91d3bd617aef8c15b8859708f
    Reviewed-on: http://review.couchbase.org/76437
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Apr 6, 2017
  2. JCBC-1067 Expose configPollInterval from CouchbaseEnvironment builder

    Motivation
    ----------
    Past release added the tuneable in Core Environment, add this info as override
    on Couchbase Environment builder so it correctly returns the current
    CouchbaseEnvironment builder instead of the super class CoreEnvironment builder.
    
    Changes
    -------
    Added an override on CouchbaseEnvironment builder.
    
    Change-Id: Ibe072d79480d693920b106d4cad7016508a1b400
    Reviewed-on: http://review.couchbase.org/76433
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Apr 6, 2017
  3. Prepare for next development iteration

    Change-Id: Ib44e97cbfd449c002aed7713a6577d7bc04884e3
    Reviewed-on: http://review.couchbase.org/76435
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Apr 6, 2017
Commits on Apr 4, 2017
  1. Prepare 2.4.4 release

    Change-Id: I260c6cf4574c9a9c7cbd53c0cd0ddd0bc84a081e
    Reviewed-on: http://review.couchbase.org/76268
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    subalakr committed Apr 4, 2017
Commits on Mar 31, 2017
  1. JCBC-1061 Add query profile info to N1qlQuery result

    Motivation
    ----------
    If query profile info is requested using a raw param, the query response
    contains profile information and it is parsed if using yasjl parser. Expose
    this information on N1qlQueryResult.
    
    Changes
    -------
    Add profileInfo JsonObject to N1qlQueryResult and the corresponding observable to
    AsyncN1qlQueryResult. Map the bytebuf emitted by QueryResponse to jsonObject
    by parsing it using objectMapper. Default is an empty object. Added changes to
    existing tests to include profileInfo.
    
    Results
    -------
    Query profile info should be available in N1qlResult and AsyncN1qlResult
    if requested.
    
    Change-Id: Ia077c7c3eac9a9f6d5fbe3e78ac34cf4c3d0c4a9
    Reviewed-on: http://review.couchbase.org/76072
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Mar 30, 2017
  2. JCBC-1065 Fix api doc to correctly mention about

    DesignDocumentDoesNotExistException
    
    Changes
    ------
    Fix api documentation which was not correctly updated to mention
    DesignDocumentDoesNotExistException added by JCBC-974 in the design
    document management api
    (getDesignDocument, removeDesignDocument, publishDesignDocument).
    
    Change-Id: Ied20aff750055ca2b8b9d38bceddfd077eaaa644
    Reviewed-on: http://review.couchbase.org/76074
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Mar 30, 2017
Commits on Mar 28, 2017
  1. Fix cleanup on integration tests

    If the tests are ignored based on cluster version number, the cleanup
    ends up throwing NRE on some tests, so check if ctx is not null before calling
    disconnect.
    
    Change-Id: I9389db46305b162108b319958c0a4a2c50b3a9a2
    Reviewed-on: http://review.couchbase.org/75839
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Mar 28, 2017
  2. JCBC-1063: Never compress JSON in LegacyDocument.

    Motivation
    ----------
    In spymemcached, the code checks if the string is JSON
    and if it is it skips compression so the server can
    understand it properly.
    
    Modifications
    -------------
    Up until now the LegacyTranscoder didn't check for this
    fact and as a result did compress larger JSON docs which
    would then not be readable by the server properly.
    
    This changeset ports the (not bulletproof) JSON check from
    spymemcached and adds a test case to make sure that JSON is
    indeed not compressed even if larger than the compression
    threshold.
    
    Result
    ------
    better compatibility with spymemcache and making sure that
    larger JSON docs are not compressed.
    
    Change-Id: I00307701caf577d91cb7d351207c6c26897ee284
    Reviewed-on: http://review.couchbase.org/75779
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Mar 27, 2017
  3. JCBC-1062: Optimize LegacyTranscoder encoding for strings

    Motivation
    ----------
    The LegacyTranscoder still uses the slower JVM-based encoding for
    strings and it rather should use the same optimized encoding
    path which we use for RawJsonDocument and others.
    
    Modifications
    -------------
    This code adds a "fastpath" for the string encoding and moves
    all the other options into a nested else block so that the buffer
    is only allocated if needed (and not twice w/ overridden by the
    optimized method).
    
    Result
    ------
    Faster encoding for the string path.
    
    Change-Id: Id67e7f7b905491b3bb5be5f1bf0552a3fd264b79
    Reviewed-on: http://review.couchbase.org/75774
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Mar 27, 2017
Commits on Mar 27, 2017
  1. JCBC-1060 Add support for username/password auth in support of RBAC

    Motivation
    ----------
    Allow username/password to open bucket with PasswordAuthentictor
    
    Changes
    -------
    1) Overloads openBucket with just bucket name
    2) Adds Password authenticator to Cluster
    3) Adapts to core changes by passing username in openbucket, query, search,
    analytics, cluster management, bucket management requests
    4) Consumes username from connection string
    
    Results
    -------
    Allow username/password authentication. Verified using integration
    tests.
    
    Change-Id: Ifaab236537c3629b3c6d82d5ce13501e0cbdeb04
    Reviewed-on: http://review.couchbase.org/75263
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    subalakr committed Mar 16, 2017
  2. JCBC-1058 Add support for rbac user management

    Motivation
    ----------
    Add support for user management apis
    
    Changes
    -------
    Added upsertUser, getUsers and removeUser apis in both sync and async
    cluster manager.
    
    Results
    -------
    User management support for test scaffolding.
    
    Change-Id: I7cc1f34c3e1cec71eba20dd81b449ef77ca30338
    Reviewed-on: http://review.couchbase.org/75266
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Mar 16, 2017
Commits on Mar 15, 2017
  1. Start 2.4.4 development

    Change-Id: I90978ef11adae6101afa7552b29e948af9fcff59
    Reviewed-on: http://review.couchbase.org/75074
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    subalakr committed Mar 13, 2017
Commits on Mar 7, 2017
  1. Prepare 2.4.3 release

    Change-Id: I04966004483905d8e64d523b995d7ec78f46aba2
    Reviewed-on: http://review.couchbase.org/74778
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    subalakr committed Mar 7, 2017
Commits on Mar 3, 2017
  1. JCBC-1045: Pre-check connection string to avoid IOOB exception

    Motivation
    ----------
    A community member reported an IndexOutOfBounds when working with
    the cluster manager. Looking at the code it looks like the connection
    string did not contain a single host.
    
    Modifications
    -------------
    The code now checks if there is at least a hostname loadable from
    the parsed connection string and if not fails with a helpful
    message instead of IOOB.
    
    Result
    ------
    Better error diagnostics when the connection string is not correct.
    
    Change-Id: I40fd2ab89eec30cfe4cc3ac5292daf1e4cc46af3
    Reviewed-on: http://review.couchbase.org/74518
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    daschl committed with subalakr Mar 2, 2017
  2. JCBC-1043: Add toString for N1QL Rows and Sync Result

    Motivation
    ----------
    If SELECT RAW was used to print out a row, the code
    would fail since it would not be parsable into a
    JsonObject.
    
    Modifications
    -------------
    The code has been fixed to just turn it into a string
    and dump it that way, enabling all kinds of output
    instead of just a JsonObject.
    
    This change also adds a toString to the sync N1qlResult
    since it makes sense to add it for utility purposes.
    
    Result
    ------
    Propery printing for Rows with Select RAW as well as
    sync results.
    
    Change-Id: Ib4103a42fb93fce9b83b82184dee6cacab4c3e82
    Reviewed-on: http://review.couchbase.org/74519
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Mar 2, 2017
Commits on Mar 2, 2017
  1. JCBC-1030: Add support for Couchbase Analytics

    Motivation
    ----------
    This changeset adds initial support for Couchbase Analytics. It
    is mainly a copy of the N1QL codebase, removing all of the yet
    unsupported features as well as renaming those parts that make
    sense.
    
    Modifications
    -------------
    Classes have been copied and renamed, the bucket API has been
    expanded accordingly.
    
    Yet unsupported:
    	- Paremeterized Queries
    	- Prepared Queries
    	- Cluster Level Querying
    	- If enabled, needs to work on all nodes
    	- setting server side timeout
    
    Result
    ------
    Experimental / Uncommitted support for Analytics.
    
    Change-Id: I26c90531e8a60a0c467d559e17c5fac40f984f80
    Reviewed-on: http://review.couchbase.org/73513
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Feb 10, 2017
Commits on Feb 9, 2017
  1. Prepare 2.4.2 Release

    Change-Id: Ib92efee8031ec82ffb9988c115276d7bf55ca548
    Reviewed-on: http://review.couchbase.org/73426
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Feb 9, 2017
Commits on Feb 7, 2017
  1. JCBC-1028 Add XATTR support

    Motivation
    ----------
    Allow extened attribute access in subdocument api
    
    Changes
    -------
    Builder for sub-document options. Moved createParents, added extended
    attribute flag in the options builder. Deprecated the overloads with
    createParents and added overloads with builder. Verified using
    SubdocumentExtendedAttributesTest, on a separate class from Subdocument tests
    as they are enabled on different server versions
    
    Results
    -------
    Extended attributes can be accessed by setting attributeAccess in
    options.
    
    Change-Id: I260107b822795cd2a4360dc3b617bd6cce9a1fa1
    Reviewed-on: http://review.couchbase.org/72437
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Jan 25, 2017
Commits on Feb 6, 2017
  1. Override core-io CoreEnvironment builder APIs.

    Change-Id: Ie6e7dd984f75e5eb96d17472a4a7c4a4a4a13ca8
    Reviewed-on: http://review.couchbase.org/73194
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    daschl committed Feb 6, 2017
Commits on Jan 18, 2017
  1. Prepare 2.4.1 Release

    Change-Id: I634b72a08d243eab3c09135222403224e9813d5b
    Reviewed-on: http://review.couchbase.org/72179
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Jan 18, 2017
Commits on Jan 12, 2017
  1. JCBC-999: Redispatch config messages if failed.

    Motivation
    ----------
    If messages going down the config service in core-io, because the
    sockets are opened dynamically and other components depend on this
    fail fast mode (while not ideal), such messages need to be retried
    aggressively to overcome issues where a node is down for example.
    
    Modifications
    -------------
    Simple retry logic has been added to the config service messages,
    retrying after 100ms and as a result providing a better experience,
    even if a node is down or not reachable.
    
    In the future, if needed, we can make this configurable but for
    now lets just stick with sane defaults.
    
    Result
    ------
    Bucket and Cluster-level config messages have a much higher chance
    of succeeding, even under individual node failures.
    
    Change-Id: If27355d444fc411dd933a65e74c07816cb5dd376
    Reviewed-on: http://review.couchbase.org/71897
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Jan 12, 2017
  2. JCBC-1037: Fail FTS Query with IndexDoesNotExistException

    Motivation
    ----------
    Right now if an index does not exist we don't fail with the right
    error message for FTS.
    
    Modifications
    -------------
    This changeset makes the response explicitly check if the index
    does not exist and if so raises an IndexDoesNotExistException
    as part of the error chain with a FTS response.
    
    By the way, this also fixes the longer standing issue that the
    FTS queries should be skipped if the index is not found, leading
    to failing tests.
    
    Result
    ------
    Proper awareness if an FTS index doesn't exist, and also fixing
    failing tests and instead ignoring them.
    
    Change-Id: I721677bfbb489ebd92ee9b91ab7325fc2f71cf59
    Reviewed-on: http://review.couchbase.org/71856
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    daschl committed Jan 11, 2017
Commits on Jan 5, 2017
  1. JCBC-1035 Fix flaky N1QL cluster level query integration tests

    Motivation
    ----------
    N1QL cluster level query tests were quite flaky because the buckets shared the
    same cluster object which uses one of the open buckets in bucket cache to
    execute the query. As the bucket cache is a concurrent hash map, there are
    no order guarantees.
    
    Changes
    -------
    Dont share cluster between the buckets. Also used request_plus scan
    consistency as the read pretty soon after write.
    
    Results
    -------
    Tests consistently pass
    
    Change-Id: Iaf06b9c82dac8757fceb1575c23e84a583396206
    Reviewed-on: http://review.couchbase.org/71562
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed Jan 4, 2017
  2. Start 2.4.1 Development

    Change-Id: I3b57ec404f02fbaafe9fc3e3db71b51d87a613b2
    Reviewed-on: http://review.couchbase.org/71598
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Jan 5, 2017
  3. Prepare 2.4.0 Release

    Change-Id: If48c7fad09c8043af6b5eb8077234a13f0344d17
    Reviewed-on: http://review.couchbase.org/71590
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Jan 5, 2017
Commits on Jan 3, 2017
  1. Fix failing N1QL units tests by changing response parse status

    Motivation
    ----------
    Retry for failed N1ql prepared query now expects that the http response
    status is a failure due to the fix for JCBC-1029
    
    Changes
    -------
    Previously the stubbed response had success status as true indicating the
    status code as success eventhough the query was not successful. Modified
    it as false.
    
    Results
    -------
    N1ql prepared unit tests pass
    
    Change-Id: Ia95ed19d11e9ae29f776f87a545d30c82b7304d3
    Reviewed-on: http://review.couchbase.org/71474
    Tested-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    subalakr committed with daschl Jan 3, 2017
  2. Ignore Guava collection tests by default.

    When they are enabled by default and used with the maven command
    line runner it seems like the test suite never ends. We need to
    look into this separately but for now we can unblock the testing.
    
    Change-Id: I257e3dc6181e0e1f472f91c5b12eaff99c04a79f
    Reviewed-on: http://review.couchbase.org/71470
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Jan 2, 2017
Commits on Jan 2, 2017
  1. Prevent NPE on toString()

    Change-Id: If9c048963233597f4f184d2ae01317dcd207eb2c
    Reviewed-on: http://review.couchbase.org/71468
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
    daschl committed Jan 2, 2017