Revision Date Author Comments
# 62d34e82 08-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2364: Enable nullable ref types for K/V specs and results

Motivation
----------
Improve usability for C# 8 consumers with null reference types enabled,
and reduce the risk o

NCBC-2364: Enable nullable ref types for K/V specs and results

Motivation
----------
Improve usability for C# 8 consumers with null reference types enabled,
and reduce the risk of unexpected NREs in the SDK.

Modifications
-------------
Add "#nullable enable" to all Spec and Result types for Key/Value
operations.

For mutation operations, default mutation token to MutationToken.Empty
if not provided.

Change OperationSpec.Path to not be nullable, default to empty string.

Add missing custom type serializer to LookupInResult.

Results
-------
Public types for key/value requests and results now have nullable ref
types enabled for C# 8 consumers.

Integration tests around MutateIn operations no longer throw
ArgumentNullExceptions regarding the mutation token.

LookupIn can now use a custom type serializer for projections.

Change-Id: I5e1fb4a448b254ab4f711844a7d31d7f55b3c2af
Reviewed-on: http://review.couchbase.org/121921
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 8637f393 07-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2360: Use DNS resolver for KetamaKeyMapper and ClusterContext

Motivation
----------
Continued cleanup of DNS resolution approach.

Modifications
-------------
Cr

NCBC-2360: Use DNS resolver for KetamaKeyMapper and ClusterContext

Motivation
----------
Continued cleanup of DNS resolution approach.

Modifications
-------------
Create KetamaKeyMapperFactory to create KetemaKeyMapper asynchornously,
and inject into MemcachedBucket. Change KetemaKeyMapper to accept the
list of IPEndPoints in the constructor rather than building from config
in the constructor.

Add overload to IpEndPointService to resolve IPEndPoints for NodeAdapter
nstances, with caching for performance. Update ClusterContext to use
IIpEndPointService in remaining locations that use NodeAdapter instead
of NodesExt. Remove the IPEndPoint and IPAddress related methdds from
NodeAdapter.

Remove a now unused Uri extension method, and change several others to
extend NodeAdapter instead of Uri (the Uri was an unused parameter).

Results
-------
Code for handling IPEndPoints and DNS resolution is cleaner, and more
places use the injectable IDnsResolver for DNS resolution.

Change-Id: Ifeb5715dac27fa7be297907cf750481549e0a067
Reviewed-on: http://review.couchbase.org/121900
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...


# f1b2306a 21-Jan-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2290: Add Timeout to all options classes in BucketManager

Motivation
----------
Adds a timeout with the default 75s to each options class and
refactors/cleans up the BucketM

NCBC-2290: Add Timeout to all options classes in BucketManager

Motivation
----------
Adds a timeout with the default 75s to each options class and
refactors/cleans up the BucketManager.

Change-Id: If8848d897482bc5f23a2c486d4aedf681f907207
Reviewed-on: http://review.couchbase.org/120926
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...


# 03ddb3a3 27-Jan-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2323: Enable C# 8 nullable ref types for buckets/scopes/collections

Motivation
----------
It will assist C# 8 SDK consumers if there are clear indications about
what can and

NCBC-2323: Enable C# 8 nullable ref types for buckets/scopes/collections

Motivation
----------
It will assist C# 8 SDK consumers if there are clear indications about
what can and cannot be null on the public API.

Modifications
-------------
Enable nullable checks on all files related to the bucket, collection,
and scope APIs.

Move initialization of some fields to the BucketBase constructor to
ensure they're set to non-null values.

Add some additional null checks recommended by the compiler.

Results
-------
C# 8 SDK consumers with nullable reference types enabled will now get
clear indications regarding nullability on this API surface.

Change-Id: Ic52d0d0148489fde23901b6cd9aa1858b5450c35
Reviewed-on: http://review.couchbase.org/121200
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# cb9894ef 27-Jan-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2320: Cleanup K/V classes/interfaces in root namespace

Motivation
----------
There are some classes and interfaces in the root namespace which should
have been moved to the

NCBC-2320: Cleanup K/V classes/interfaces in root namespace

Motivation
----------
There are some classes and interfaces in the root namespace which should
have been moved to the KeyValue namespace.

Modifications
-------------
Move the GetReplicaResult and IGetReplicaResult to the KeyValue
namespace. While we're changing them, enable nullable ref types.

Results
-------
A cleaner API surface.

Change-Id: If1f143692899d23162a0698b7413132818843a1d
Reviewed-on: http://review.couchbase.org/121183
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...


# ec09af40 24-Jan-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-1799: Analytics result streaming

Motivation
----------
Allow analytics query results to be streaming asynchronously for
improved performance in web server scenarios.

NCBC-1799: Analytics result streaming

Motivation
----------
Allow analytics query results to be streaming asynchronously for
improved performance in web server scenarios.

Modifications
-------------
Add IDisposable to IAnalyticsResult, and also enable covariance.

Move several common pieces from AnalyticsResult to the new, abstract
AnalyicsResultBase class.

Rename AnalyticsResult to StreamingAnalyticsResult and rewrite to use a
streaming implementation.

Update AnalyticsClient to use StreamingAnalyticsResult, and update
supporting extension methods to use AnalyticsResultBase.

Refactor unit tests, and cleanup RetryOrchestratorTests a bit.

Results
-------
Analytics results are now streaming asynchronously from the server.
Custom deserializers which offer IJsonStreamDeserializer will be
supported, otherwise it will fallback to Newtonsoft.Json.

Change-Id: I6205d073270b2ea1a2f16737e1251288e102ac47
Reviewed-on: http://review.couchbase.org/121174
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...