History log of /Couchbase_NET_Client_v3.0/ (Results 1 - 25 of 1639)
Revision (<<< Hide revision tags) (Show revision tags >>>)Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
9a5064fd09-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2362: Avoid thread blocking in ConfigHandler

Motivation
----------
The current approach to monitoring for configuration changes appears to
permanently use a thread from the

NCBC-2362: Avoid thread blocking in ConfigHandler

Motivation
----------
The current approach to monitoring for configuration changes appears to
permanently use a thread from the thread pool, including blocking while
waiting on other thread pool tasks. This could cause thread pool
depletion problems.

Modifications
-------------
Run the ConfigHandler.Process method in a dedicated thread instead of a
thread from the thread pool.

Change from synchronous event handlers on BucketBase to an asynchronous
event sink. Fire these in parallel for all buckets.

Apply nullable ref types to ConfigHandler, and clean up the interface to
have fewer unnecessary methods.

Rewrite stop semantics to be based on disposing rather than a Stop
method, and drop the unit test for starting, stopping, and restarting
since this behavior is never actually used by the SDK.

Results
-------
No thread on the thread pool is blocked while awaiting outside signals.
There is a lower risk of NREs within the SDK, and the method of stopping
the ConfigHandler is now more idiomatic.

Each config update will be applied to all the buckets subscribing to
events in parallel, rather than in series as before. However, all
buckets must complete their updates before the next configuration update
event is sent, which is consistent with previous behavior.

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

show more ...

62d34e8208-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 ...

166d0d2a07-Feb-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2220: Ensure that ClusterOption properties are integrated into the SDK

Motivation
----------
Wire up ClusterOptions properties so that the are the default for the
various op

NCBC-2220: Ensure that ClusterOption properties are integrated into the SDK

Motivation
----------
Wire up ClusterOptions properties so that the are the default for the
various operation refactoring and improving the structure at the same
time to reduce duplication and number of parameters.

Modifications
-------------
- Wireup ClusterOption properties and update unit tests.
- Remove CollectionExtensions and move methods into ClusterNode
- Consolidate Timeout resolution if null to default in ClusterNode
- IdleHttpConnectionTimeout throws a NotSupporteException as their is
no mapping directly to the HttpHandlers at this time.

Results
-------
Nearly all ClusterOptions properties are correctly wired up with
defaults and can be overridden by the operations specific options. The
few that could not be at this time will be done in subsequent commits
when functionality exists.

Change-Id: I245e8380f81b8280fcad1caac00251ee3f2c197e
Reviewed-on: http://review.couchbase.org/121838
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...

7e9af55708-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2363: Use DNS resolver for VBucketServerMap IPEndPoints

Motivation
----------
Provide a more consistent and injectable behavior for DNS resolution,
and avoid the need for st

NCBC-2363: Use DNS resolver for VBucketServerMap IPEndPoints

Motivation
----------
Provide a more consistent and injectable behavior for DNS resolution,
and avoid the need for static options or passing options to lots of
methods.

Modifications
-------------
Change existing VBucketServerMap on BucketConfig object to
VBucketServerMapDto, removing IPEndPoints and the custom deserialization
logic. Drop unused BucketConfigExtensions.GetBucketServerMap.

Add VBucketServerMapFactory to create the more complete VBucketServerMap
from a VBucketServerMapDto, resolving the IPEndPoints during creation.
Move some of the functionality from IPEndPointExtensions to this
factory and drop the unused IPEndPointExtensions class.

Update VBucketKeyMapperFactory and VBucketKeyMapper to handle the
complete VBucketServerMap object, including changing Create to
CreateAsync.

Removed the now unused static ClusterOptions.UseInterNetworkV6Addresses
and UriExtensions.GetIPAddress.

Results
-------
All DNS resolution now passes through the DNS resolver and is
asynchronous.

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

show more ...

8637f39307-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 ...

58b3b1d407-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2359: Centralized DNS resolution

Motivation
----------
The current approach for resolving IPs from DNS is hacky, synchronous,
not configurable, and has difficulties getting

NCBC-2359: Centralized DNS resolution

Motivation
----------
The current approach for resolving IPs from DNS is hacky, synchronous,
not configurable, and has difficulties getting configuration from
ClusterOptions.

Modifications
-------------
Add GetIPAddressAsync to IDnsResolver, and a default implemenation
using DnsClient. Add IpAddressMode and EnableDnsSrvResolution properties
to the default implemenation, and load from ClusterOptions during DI.

Remove StringExtensions.GetIpEndpoint, and replace with
IIpEndPointService which is available via DI.

Move IsValidDnsSrv from ClusterOptions to ConnectionString. Always call
IDnsResolver.GetDnsSrvEntriesAsync for valid DNS SRV connection strings.

Remove EnableIPV6Addressing from ClusterOptions.

Results
-------
Consumers can now customize DNS resolution of IP addresses, not just
DNS SRV records. This is applied to most usages in the SDK.

IPv6 is enabled by default and preferred, but ForceIPv4 will switch to
pure IPv4. DnsClientDnsResolver supports more complex options in case
they are offered in the future.

It is no longer as necessary to pass lots of IPv6 configuration around
between methods, the DNS resolver handles this cleanly via DI config.

Note: There are still some usages in KetamaKeyMapper, NodeAdapter, and
VBucketServerMap which need updating in a subsequent changeset.

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

show more ...

3726c52b06-Feb-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2183: Exists must use GET_META (0xa0) instead of Observe

Motivation
----------
Replace implementation of Exists with GET_META (0xa0) and remove
Observe.

Modificatio

NCBC-2183: Exists must use GET_META (0xa0) instead of Observe

Motivation
----------
Replace implementation of Exists with GET_META (0xa0) and remove
Observe.

Modifications
-------------
- Add GetMeta operation
- Add MetaData class

Result
------
Exists implementation now uses GET_META (0xa0)

Change-Id: Id675b1107434f4acdcecbd0a0ca4c90ffd94593e
Reviewed-on: http://review.couchbase.org/121780
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...

e22490f106-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2357: Nullable ref types on XxxOptions

Motivation
----------
Make the SDK easier to consume for C# 8 uses with nullable ref types
enabled, and reduce the risk of NREs within

NCBC-2357: Nullable ref types on XxxOptions

Motivation
----------
Make the SDK easier to consume for C# 8 uses with nullable ref types
enabled, and reduce the risk of NREs within the SDK.

Modifications
-------------
Add #nullable enable to all XxxOptions types, and tweak members where
appropriate to allow nullability or do additional null checks.

Change QueryOptions to use a custom serializer instead of a custom data
mapper, and properly wire into QueryClient.

Remove UseStreaming from ViewQuery, and add Serializer to pass through
the serializer from ViewOptions. Update ViewClient to use the
serializer.

Drop unused SearchIndexOptions class.

Results
-------
All XxxOptions classes inform C# 8 consumers about nullability of their
types.

N1QL and view queries can now use a custom per-query serializer.

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

show more ...


src/Couchbase/Analytics/AnalyticsOptions.cs
src/Couchbase/Analytics/IngestOptions.cs
src/Couchbase/CouchbaseBucket.cs
src/Couchbase/Diagnostics/DiagnosticsOptions.cs
src/Couchbase/KeyValue/Options.cs
src/Couchbase/Management/Buckets/CreateBucketOptions.cs
src/Couchbase/Management/Buckets/DropBucketOptions.cs
src/Couchbase/Management/Buckets/DropCollectionOptions.cs
src/Couchbase/Management/Buckets/GetAllBucketsOptions.cs
src/Couchbase/Management/Buckets/GetBucketOptions.cs
src/Couchbase/Management/Buckets/UpdateBucketOptions.cs
src/Couchbase/Management/Collections/CollectionExistsOptions.cs
src/Couchbase/Management/Collections/CreateCollectionOptions.cs
src/Couchbase/Management/Collections/CreateScopeOptions.cs
src/Couchbase/Management/Collections/DropScopeOptions.cs
src/Couchbase/Management/Collections/GetAllScopesOptions.cs
src/Couchbase/Management/Collections/GetScopeOptions.cs
src/Couchbase/Management/Collections/ScopeExistsOptions.cs
src/Couchbase/Management/Query/BuildDeferredQueryIndexOptions.cs
src/Couchbase/Management/Query/CreatePrimaryQueryIndexOptions.cs
src/Couchbase/Management/Query/CreateQueryIndexOptions.cs
src/Couchbase/Management/Query/DropPrimaryQueryIndexOptions.cs
src/Couchbase/Management/Query/DropQueryIndexOptions.cs
src/Couchbase/Management/Query/GetAllQueryIndexOptions.cs
src/Couchbase/Management/Query/WatchQueryIndexOptions.cs
src/Couchbase/Management/Search/AllowQueryingSearchIndexOptions.cs
src/Couchbase/Management/Search/DisallowQueryingSearchIndexOptions.cs
src/Couchbase/Management/Search/DropSearchIndexOptions.cs
src/Couchbase/Management/Search/FreezePlanSearchIndexOptions.cs
src/Couchbase/Management/Search/GetAllSearchIndexesOptions.cs
src/Couchbase/Management/Search/GetSearchIndexDocumentCountOptions.cs
src/Couchbase/Management/Search/GetSearchIndexOptions.cs
src/Couchbase/Management/Search/PauseIngestSearchIndexOptions.cs
src/Couchbase/Management/Search/ResumeIngestSearchIndexOptions.cs
src/Couchbase/Management/Search/SearchIndexOptions.cs
src/Couchbase/Management/Search/UnfreezePlanSearchIndexOptions.cs
src/Couchbase/Management/Search/UpsertSearchIndexOptions.cs
src/Couchbase/Management/Users/AvailableRolesOptions.cs
src/Couchbase/Management/Users/DropGroupOptions.cs
src/Couchbase/Management/Users/DropUserOptions.cs
src/Couchbase/Management/Users/GetAllGroupsOptions.cs
src/Couchbase/Management/Users/GetAllUsersOptions.cs
src/Couchbase/Management/Users/GetGroupOptions.cs
src/Couchbase/Management/Users/GetUserOptions.cs
src/Couchbase/Management/Users/UpsertGroupOptions.cs
src/Couchbase/Management/Users/UpsertUserOptions.cs
src/Couchbase/Management/Views/DropDesignDocumentOptions.cs
src/Couchbase/Management/Views/GetAllDesignDocumentsOptions.cs
src/Couchbase/Management/Views/GetDesignDocumentOptions.cs
src/Couchbase/Management/Views/PublishDesignDocumentOptions.cs
src/Couchbase/Management/Views/UpsertDesignDocumentOptions.cs
src/Couchbase/Query/BlockQueryResult.cs
src/Couchbase/Query/QueryClient.cs
src/Couchbase/Query/QueryOptions.cs
src/Couchbase/Search/SearchOptions.cs
src/Couchbase/Views/BlockViewResult.cs
src/Couchbase/Views/IViewQuery.cs
src/Couchbase/Views/IViewQueryable.cs
src/Couchbase/Views/ViewClient.cs
src/Couchbase/Views/ViewOptions.cs
src/Couchbase/Views/ViewQuery.cs
tests/Couchbase.UnitTests/Query/QueryClientTests.cs
tests/Couchbase.UnitTests/Views/ViewClientTests.cs
9260824b04-Feb-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2325: Add SCRAM-SHA Sasl Authentication

Motivation
----------
Add SCRAM-SHA1 authentication for non-tls connections; tls connections
default to SASL-PLAIN.

Modifica

NCBC-2325: Add SCRAM-SHA Sasl Authentication

Motivation
----------
Add SCRAM-SHA1 authentication for non-tls connections; tls connections
default to SASL-PLAIN.

Modifications
-------------
- Port and refactor ScramShaMechanism from SDK2
- Add base SaslMechanismClass and move duplicate login into it
- Refactor MechanismType into an enum
- Add ISaslMechanismFactory and SaslMechanismFactory and integrate
into DI
- Remove Authenticate from ConnectionExtensions
- Make ClusterNode use SaslMechanismFactory to Authenticate
- Add SaslTests to integrationtests and ScramShaAuthenticationTests to unit tests
- Add SaslMechanismFactoryTests to unit tests

Result
------
The SDK now uses SCRAM-SHA1 for non-tls and SASL-PLAIN for tls
connections. Note that SCRAM-SHA256 and SCRAM-SHA512 are not supported
due to performance implications of generating the hash; this may change
in the future.

Change-Id: If08f9bf4c835256e17d71a6317bfce86ec257c58
Reviewed-on: http://review.couchbase.org/121607
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...

3a1149f806-Feb-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2356: move contents of Services directory to root in UnitTests

Motivation
----------
Clean up and restructuring to match Couchbase project structure.

Modifications

NCBC-2356: move contents of Services directory to root in UnitTests

Motivation
----------
Clean up and restructuring to match Couchbase project structure.

Modifications
-------------
- Move Search, Views, Query, and Analytics folders to root.
- Rename namespaces

Result
------
A cleaner structure that follows Couchbase.csproj

Change-Id: I22a8d629b316fb84ff2bc1a9baf036d65ba53162
Reviewed-on: http://review.couchbase.org/121770
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...


tests/Couchbase.UnitTests/Analytics/AnalyticsClientTests.cs
tests/Couchbase.UnitTests/Analytics/AnalyticsRequestTests.cs
tests/Couchbase.UnitTests/Analytics/BlockAnalyticsResultTests.cs
tests/Couchbase.UnitTests/Analytics/StreamingAnalyticsResultTests.cs
tests/Couchbase.UnitTests/Couchbase.UnitTests.csproj
tests/Couchbase.UnitTests/Query/BlockQueryResultTests.cs
tests/Couchbase.UnitTests/Query/QueryClientTests.cs
tests/Couchbase.UnitTests/Query/QueryOptionsTests.cs
tests/Couchbase.UnitTests/Query/StreamingQueryResultTests.cs
tests/Couchbase.UnitTests/Search/BooleanFieldQueryTests.cs
tests/Couchbase.UnitTests/Search/BooleanQueryTests.cs
tests/Couchbase.UnitTests/Search/ConjunctionQueryTests.cs
tests/Couchbase.UnitTests/Search/DateRangeQueryTests.cs
tests/Couchbase.UnitTests/Search/DisjunctionQueryTests.cs
tests/Couchbase.UnitTests/Search/DocIdQueryTests.cs
tests/Couchbase.UnitTests/Search/FieldSearchSortTests.cs
tests/Couchbase.UnitTests/Search/GeoBoundingBoxQueryTests.cs
tests/Couchbase.UnitTests/Search/GeoDistanceQueryTests.cs
tests/Couchbase.UnitTests/Search/GeoDistanceSearchSortTests.cs
tests/Couchbase.UnitTests/Search/IdSearchSortTests.cs
tests/Couchbase.UnitTests/Search/MatchAllQueryTests.cs
tests/Couchbase.UnitTests/Search/MatchNoneQueryTests.cs
tests/Couchbase.UnitTests/Search/MatchPhraseQueryTests.cs
tests/Couchbase.UnitTests/Search/MatchQueryTests.cs
tests/Couchbase.UnitTests/Search/NumericRangeQueryTests.cs
tests/Couchbase.UnitTests/Search/PhraseQueryTests.cs
tests/Couchbase.UnitTests/Search/PrefixQueryTests.cs
tests/Couchbase.UnitTests/Search/QueryStringQueryTests.cs
tests/Couchbase.UnitTests/Search/RegexpQueryTests.cs
tests/Couchbase.UnitTests/Search/ScoreSearchSortTests.cs
tests/Couchbase.UnitTests/Search/SearchClientTests.cs
tests/Couchbase.UnitTests/Search/SearchDataMapperTests.cs
tests/Couchbase.UnitTests/Search/SearchFacetTests.cs
tests/Couchbase.UnitTests/Search/SearchOptionsTests.cs
tests/Couchbase.UnitTests/Search/SearchQueryResultTests.cs
tests/Couchbase.UnitTests/Search/TermQueryTests.cs
tests/Couchbase.UnitTests/Search/TermRangeQueryTests.cs
tests/Couchbase.UnitTests/Search/WildcardQueryTests.cs
tests/Couchbase.UnitTests/Search/error-with-errors.js
tests/Couchbase.UnitTests/Search/search-response-success.js
tests/Couchbase.UnitTests/Search/search-response-with-facets.js
tests/Couchbase.UnitTests/Views/BlockViewResultTests.cs
tests/Couchbase.UnitTests/Views/StreamingViewResultTests.cs
tests/Couchbase.UnitTests/Views/ViewClientTests.cs
tests/Couchbase.UnitTests/Views/ViewQueryTests.cs
f1afaa9005-Feb-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2288: MutateIn ContentAs() functionality missing

Motivation
----------
Adds ContentAs behaviour so that if an op (incr/decr) returns a value it can be
retrieved.

Mo

NCBC-2288: MutateIn ContentAs() functionality missing

Motivation
----------
Adds ContentAs behaviour so that if an op (incr/decr) returns a value it can be
retrieved.

Modifications
-------------
- Pass operation specs to MutateInResult
- Add functionality to fetch result in ContentAs
- Create MutateInResultTests and validate
- Create KeyValue directory and move related tests into it
- Rename mispelled MutateInOptions property

Result
------
If a MutateIn command returns a value it can be fethed via ContentAs

Change-Id: I4aa7499f520b51c0f9a2dd2f2576231b8643b9cb
Reviewed-on: http://review.couchbase.org/121748
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...

3ecd7d3303-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2353: Cleanup warnings

Motivation
----------
Ensure clean code and make build logs more legible.

Modifications
-------------
Remove unused fields and exception

NCBC-2353: Cleanup warnings

Motivation
----------
Ensure clean code and make build logs more legible.

Modifications
-------------
Remove unused fields and exception variables.

Add some null forgiving operations where we know fields are not null,
and make some fields nullable in BlockQueryResult.

Refactor assertions to use NotEmpty instead of a boolean check on Any.

Make BucketBase.RetryAsync virtual to allow overriding in mocks, and
then finish CouchbaseCollectionTests.Get_Fails_Throw_KeyValueException.

Cleanup empty folders and unnecessary removes in Couchbase.csproj, and
remove the unnecessary reference to System from Couchbase.UnitTests.

Treat warnings as errors in Couchbase.csproj.

Results
-------
Cleaner compilation, and we're more likely to detect problems in the
future since warnings will prevent merges.

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

show more ...

c6314aec04-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2354: Fix bootstrap endpoint parsing for "localhost"

Motivation
----------
With the new bootstrap process introduced with JsonTranscoder, if your
bootstrap node is "localhos

NCBC-2354: Fix bootstrap endpoint parsing for "localhost"

Motivation
----------
With the new bootstrap process introduced with JsonTranscoder, if your
bootstrap node is "localhost" it doesn't correctly convert to an
IPEndPoint on port 11210 for indexing the node in ClusterContext.

Modifications
-------------
Rewrite GetEndPoint to properly handle IPv6 IP addresses, rather than
assuming "localhost:11210" needed to be parsed as IPv6.

Add some supporting tests.

Results
-------
Most integration tests are now passing in my environment, they were all
failing before.

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

show more ...

7801b16104-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2351: Remove unused view timeout field

Motivation
----------
The _timeout field on ViewQuery is unused, there is a Timeout property
instead.

Modifications
-----

NCBC-2351: Remove unused view timeout field

Motivation
----------
The _timeout field on ViewQuery is unused, there is a Timeout property
instead.

Modifications
-------------
Drop the _timeout field, and remove the unused code that places
"connection_timeout" on the view query string.

Results
-------
View query behavior is unchanged relative to previous .NET SDK 3.0 beta
releases. However, the ability to apply "connection_timeout" to view
query parameters is gone compared to .NET SDK 2.x. This appears to be
consistent, as the Java SDK 3 doesn't offer this query parameter and it
is very poorly documented.

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

show more ...

888e156004-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2350: Support raw parameters on search queries

Motivation
----------
Adding raw parameters to search queries currently results in an NRE.

Modifications
------------

NCBC-2350: Support raw parameters on search queries

Motivation
----------
Adding raw parameters to search queries currently results in an NRE.

Modifications
-------------
Properly initialize the field on SearchOptions, and if values are added
include them on the query as additional JSON properties.

Add a test to confirm the behavior.

Results
-------
Adding raw parameters to search queries works.

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

show more ...

76a6b3c904-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2352: Cleanup legacy service exceptions

Motivation
----------
Remove unused service exceptions from the public API surface.

Modifications
-------------
Drop the

NCBC-2352: Cleanup legacy service exceptions

Motivation
----------
Remove unused service exceptions from the public API surface.

Modifications
-------------
Drop the unused exceptions and their extensions.

Remove the one reference to AnalyticsException in AnalyticsIngester,
its unnecessary.

Results
-------
Cleaner API surface, fewer compiler warnings.

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

show more ...

671728c303-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2324: Remove LogManager

Motivation
----------
LogManager is now deprecated in favor of loggers injected using DI.

Modifications
-------------
Remove LogManager.

NCBC-2324: Remove LogManager

Motivation
----------
LogManager is now deprecated in favor of loggers injected using DI.

Modifications
-------------
Remove LogManager.

Update ClusterOptions to only register loggers with DI.

Remove one final spot in SocketExtensions referencing LogManager.

Update tests.

Results
-------
Logging is now only performed using injected loggers.

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

show more ...

d5c8695e02-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2347: Use DI for logging in query URI testers

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modificatio

NCBC-2347: Use DI for logging in query URI testers

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Switch to injecting the logger in the constructor of QueryUriTester and
SearchUriTester.

Enable null reference types and do a bit of log cleanup.

Results
-------
Logging for configuration is now injected rather than using statics.
No affect on the SDK for now as the types are not currently in use.

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

show more ...

d64b316603-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2348: Use DI for VBucket and ErrorMap logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modificatio

NCBC-2348: Use DI for VBucket and ErrorMap logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Inject logger into VBucket, and create VBucketFactory to assist in
creating VBuckets.

Inject VBucketFactory into VBucketKeyMapper, and create
VBucketKeyMapperFactory to assist in creating VBucketKeyMappers.

Inject VBucketKeyMapperFactory into CouchbaseBucket via BucketFactory.

Move logging of missing code in ErrorMap to ClusterNode, where we
already have a logger.

Results
-------
Logging is now injected rather than static. Dependencies are now more
independent, which may make future unit tests easier.

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

show more ...

1021cc5803-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2349: Enable nullable ref types for ClusterOptions

Motivation
----------
Enabling nullable ref types across all public APIs before release will
help improve compatibility fo

NCBC-2349: Enable nullable ref types for ClusterOptions

Motivation
----------
Enabling nullable ref types across all public APIs before release will
help improve compatibility for C# 8 users with nullable ref types
enabled in their projects.

Modifications
-------------
Enable nullable for ClusterOptions and ConnectionString.

Do some general cleanup and add some null checks.

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

show more ...

6e829a0a27-Jan-2020 Jeff Morris <jeffry.morris@couchbase.com>

NCBC-2209: Add LegacyConverter and JsonConverter

Motivation
----------
Add the JsonConverter which is the default for the SDK and
LegacyConverter for backwards compatibility with

NCBC-2209: Add LegacyConverter and JsonConverter

Motivation
----------
Add the JsonConverter which is the default for the SDK and
LegacyConverter for backwards compatibility with SDK2. Note that
RawJsonConverterm RawStringConverter and RawBinaryConverter are added,
but not provide an implementation at this time.

Modifications
-------------
- Add JsonTranscoder and rename DefaultTranscoder to LegacyTranscoder
- Add RawJsonTranscoder, RawStringTranscoder and RawBinaryTranscoder
which do not provide an implementation
- Update the SDK to use the JsonConverter as the default converter
- Add unit tests for JsonTranscoder ad LegacyTranscoder.
- Update code to use JsonTranscder by registering it as a service.
- Create a ICircuitBreaker interface for easier testing/di
- Register CircuitBreaker as a required service.

Results
-------
The SDK now uses the JsonConverter as the default converter. If you wish
to continue using the same converter as SDK2, then update the
configuration to use the LegacyConverter.

Change-Id: I4e82fb776bc49e1a0cb851349808f9947bebaa71
Reviewed-on: http://review.couchbase.org/121184
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Brant Burnett <bburnett@centeredgesoftware.com>
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

show more ...


src/Couchbase/Core/BucketBase.cs
src/Couchbase/Core/CircuitBreakers/CircuitBreaker.cs
src/Couchbase/Core/CircuitBreakers/ICircuitBreaker.cs
src/Couchbase/Core/ClusterContext.cs
src/Couchbase/Core/ClusterNode.cs
src/Couchbase/Core/DI/ClusterNodeFactory.cs
src/Couchbase/Core/DI/DefaultServices.cs
src/Couchbase/Core/Exceptions/UnsupportedException.cs
src/Couchbase/Core/IO/Authentication/PlainSaslMechanism.cs
src/Couchbase/Core/IO/Operations/Config.cs
src/Couchbase/Core/IO/Operations/OperationBase.cs
src/Couchbase/Core/IO/Transcoders/JsonTranscoder.cs
src/Couchbase/Core/IO/Transcoders/LegacyTranscoder.cs
src/Couchbase/Core/IO/Transcoders/RawBinaryTranscoder.cs
src/Couchbase/Core/IO/Transcoders/RawJsonTranscoder.cs
src/Couchbase/Core/IO/Transcoders/RawStringTranscoder.cs
src/Couchbase/Core/IO/Transcoders/TranscoderBase.cs
src/Couchbase/Core/IO/Transcoders/TypeTranscoderExtensions.cs
src/Couchbase/Diagnostics/DiagnosticsReportProvider.cs
src/Couchbase/KeyValue/CouchbaseCollection.cs
src/Couchbase/Utils/ConnectionExtensions.cs
tests/Couchbase.IntegrationTests/AppendTests.cs
tests/Couchbase.IntegrationTests/DecrementTests.cs
tests/Couchbase.IntegrationTests/PrependTests.cs
tests/Couchbase.LoadTests/Core/IO/Operations/OperationReadTests.cs
tests/Couchbase.UnitTests/Core/Configuration/Server/BucketConfigTests.cs
tests/Couchbase.UnitTests/Core/IO/Errors/ErrorMapTests.cs
tests/Couchbase.UnitTests/Core/IO/Transcoders/JsonTranscoderTests.cs
tests/Couchbase.UnitTests/Core/IO/Transcoders/LegacyTranscoderTests.cs
tests/Couchbase.UnitTests/CouchbaseBucketTests.cs
tests/Couchbase.UnitTests/CouchbaseCollectionTests.cs
tests/Couchbase.UnitTests/GetResultTests.cs
tests/Couchbase.UnitTests/Utils/ArrayExtensionTests.cs
5018de5502-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2346: Use DI for logging in GetResult

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-

NCBC-2346: Use DI for logging in GetResult

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Update GetResult and GetReplicaResult to accept a logger on the
constructor.

Update CouchbaseCollection and CouchbaseCollectionFactory to supply the
logger.

Results
-------
Logs are now injected into these types via DI instead of using statics.
By supplying the logger only when CouchbaseCollection is constructed
instead of requesting from DI on each Get operation we keep performance
high.
getting

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

show more ...

130ffd6401-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2339: Use DI for manager logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
------

NCBC-2339: Use DI for manager logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Update all managers to accept loggers on the constructor, and to use
nullable reference types.

Added GetRandomViewsUri(bucketName) and GetRandomManagmentUri to
IServiceUriProvider.

Updated several managers to use IServiceUriProvider instead of
ClusterContext.

Move initialization of missing ClusterContextId on QueryOptions from
Cluster to QueryClient.

Provide cluster-level managers via DI.

Add integration tests for some of the managers since they had none.

Results
-------
Logs are now injected into these types via DI instead of using statics.

QueryIndexManager doesn't throw exceptions due to missing
client context ID.

ViewIndexManager doesn't throw exceptions about not finding the kv
service.

Slightly better test coverage for some of the managers, though there's
still a lot of area to fill in.

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

show more ...


src/Couchbase/Cluster.cs
src/Couchbase/Core/DI/DefaultServices.cs
src/Couchbase/Core/IServiceUriProvider.cs
src/Couchbase/Core/ServiceUriProvider.cs
src/Couchbase/CouchbaseBucket.cs
src/Couchbase/Management/Analytics/IAnalyticsIndexManager.cs
src/Couchbase/Management/Buckets/BucketManager.cs
src/Couchbase/Management/Buckets/BucketManagerExtensions.cs
src/Couchbase/Management/Buckets/IBucketManager.cs
src/Couchbase/Management/Collections/CollectionManager.cs
src/Couchbase/Management/Collections/CollectionManagerExtensions.cs
src/Couchbase/Management/Collections/ICollectionManager.cs
src/Couchbase/Management/Query/IQueryIndexManger.cs
src/Couchbase/Management/Query/QueryIndexManagerExtensions.cs
src/Couchbase/Management/Query/QueryIndexManger.cs
src/Couchbase/Management/Search/ISearchIndexManager.cs
src/Couchbase/Management/Search/SearchIndexManager.cs
src/Couchbase/Management/Search/SearchIndexManagerExtensions.cs
src/Couchbase/Management/Users/IUserManager.cs
src/Couchbase/Management/Users/UserManager.cs
src/Couchbase/Management/Users/UserManagerExtensions.cs
src/Couchbase/Management/Views/IViewIndexManager.cs
src/Couchbase/Management/Views/ViewIndexManager.cs
src/Couchbase/Management/Views/ViewIndexManagerExtensions.cs
src/Couchbase/Query/QueryClient.cs
tests/Couchbase.IntegrationTests/Management/BucketManagerTests.cs
tests/Couchbase.IntegrationTests/Management/QueryIndexManagerTests.cs
tests/Couchbase.IntegrationTests/Management/UserManagerTests.cs
tests/Couchbase.IntegrationTests/Management/ViewIndexManagerTests.cs
3db9c22002-Feb-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2345: Use DI for DNS resolver logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-

NCBC-2345: Use DI for DNS resolver logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Rename LambdaServiceFactory to TransientServiceFactory, a more accurate
description of what it does. Add support for transient services with
automatic constructor selection.

Refactor DnsClientDnsResolver to be requested via IServiceProvider and
to accept a logger in its constructor.

Add CancellationToken to IDnsResolver for future-proofing, and enable
nullable reference types.

Change ClusterOptions to use DI infrastructure for setting a custom
DNS resolver, much like transcoders and serializers.

Results
-------
DNS resolver uses an injected logger instead of a static, and is
managed cleanly by the DI infrastructure. It is treated as a transient
instead of a singleton because it is only used briefly during bootstrap,
so there's no point in keeping it on the heap indefinitely.

When a custom DNS resolver is provided, this is treated a singleton
because a pre-existing object instance is passed to ClusterOptions.

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

show more ...

4ff4600131-Jan-2020 Brant Burnett <bburnett@centeredgesoftware.com>

NCBC-2341: Use DI for OrphanedResponseLogger logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modificat

NCBC-2341: Use DI for OrphanedResponseLogger logging

Motivation
----------
Step in the overall path to injecting ILogger down the dependency tree
from Cluster.

Modifications
-------------
Drop the static OrphanedResponseLoggerFactory and
NullOrphanedResponseLogger.Instance in favor of the DI system.

Change OrphanedResponseLogger to use an injected logger.

Change ClusterOptions to swap the IOrphanedResponseLogger in DI based
on the setting.

Results
-------
OrphanedResponseLogger nows uses an injected logger instead of statics.

Note: There is currently no consumer of IOrphanedResponseLogger, so it
is non-functional.

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

show more ...

12345678910>>...66