Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-2330

Make transaction/serializer/mapper configurable via DI

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0
    • library
    • None
    • 1

    Description

      Step in the overall path to injecting ILogger down the dependency tree from Cluster. By placing ITypeTranscoder, ITypeSerializer, and IDataMapper in DI we make it easy to inject into types requiring them.

      Also, K/V operations currently don't support any configured custom ITypeTranscoder or ITypeSerializer. We should also wire that in from ClusterOptions.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          btburnett3 Brant Burnett added a comment - - edited

          I'm unsure if this is related, but ViewClient uses a CouchbaseHttpClient (which it shares with CollectionManager and ViewIndexManager). On the other hand, AnalyticsClient, SearchClient, and QueryClient each use a dedicated HttpClient with an AuthenticatingHttpClientHandler. However, there is very little difference under the hood in CouchbaseHttpClient. It sets ExpectContinue (false by default in ClusterOptions), the User-Agent, some SSL settings, and MaxConnectionsPerServer (left unset if default ClusterOptions).

          btburnett3 Brant Burnett added a comment - - edited I'm unsure if this is related, but ViewClient uses a CouchbaseHttpClient (which it shares with CollectionManager and ViewIndexManager). On the other hand, AnalyticsClient, SearchClient, and QueryClient each use a dedicated HttpClient with an AuthenticatingHttpClientHandler. However, there is very little difference under the hood in CouchbaseHttpClient. It sets ExpectContinue (false by default in ClusterOptions), the User-Agent, some SSL settings, and MaxConnectionsPerServer (left unset if default ClusterOptions).
          jmorris Jeff Morris added a comment -

          I noticed that as well, I can only speculate, but assumed it was a porting change/omission to not use CouchbaseHttpClient. If there is duplicate or reusable logic in CouchbaseHttpClient I would assume we would default to it.

          jmorris Jeff Morris added a comment - I noticed that as well, I can only speculate, but assumed it was a porting change/omission to not use CouchbaseHttpClient. If there is duplicate or reusable logic in CouchbaseHttpClient I would assume we would default to it.

          Jeff Morris Since the most recent changes, they are all using a CouchbaseHttpClient, dedicated one per service type. We should observe if the problem is continuing.

          btburnett3 Brant Burnett added a comment - Jeff Morris Since the most recent changes, they are all using a CouchbaseHttpClient, dedicated one per service type. We should observe if the problem is continuing.

          People

            btburnett3 Brant Burnett
            btburnett3 Brant Burnett
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty