Exemplo n.º 1
0
 public BucketFactory(
     ClusterContext clusterContext,
     IScopeFactory scopeFactory,
     IRetryOrchestrator retryOrchestrator,
     IVBucketKeyMapperFactory vBucketKeyMapperFactory,
     IKetamaKeyMapperFactory ketamaKeyMapperFactory,
     ILogger <CouchbaseBucket> couchbaseLogger,
     ILogger <MemcachedBucket> memcachedLogger,
     IRedactor redactor,
     IBootstrapperFactory bootstrapperFactory,
     IRequestTracer tracer,
     IOperationConfigurator operationConfigurator,
     IRetryStrategy retryStrategy
     )
 {
     _clusterContext          = clusterContext ?? throw new ArgumentNullException(nameof(clusterContext));
     _scopeFactory            = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory));
     _retryOrchestrator       = retryOrchestrator ?? throw new ArgumentNullException(nameof(retryOrchestrator));
     _vBucketKeyMapperFactory = vBucketKeyMapperFactory ?? throw new ArgumentNullException(nameof(vBucketKeyMapperFactory));
     _ketamaKeyMapperFactory  = ketamaKeyMapperFactory ?? throw new ArgumentNullException(nameof(ketamaKeyMapperFactory));
     _couchbaseLogger         = couchbaseLogger ?? throw new ArgumentNullException(nameof(couchbaseLogger));
     _memcachedLogger         = memcachedLogger ?? throw new ArgumentNullException(nameof(memcachedLogger));
     _redactor            = redactor ?? throw new ArgumentNullException(nameof(IRedactor));
     _bootstrapperFactory = bootstrapperFactory ?? throw new ArgumentNullException(nameof(bootstrapperFactory));
     _tracer = tracer ?? throw new ArgumentNullException(nameof(tracer));
     _operationConfigurator = operationConfigurator ?? throw new ArgumentNullException(nameof(operationConfigurator));
     _retryStrategy         = retryStrategy ?? throw new ArgumentNullException(nameof(retryStrategy));
 }
Exemplo n.º 2
0
        internal Cluster(ClusterOptions clusterOptions)
        {
            if (clusterOptions == null)
            {
                throw new InvalidConfigurationException("ClusterOptions is null.");
            }
            if (string.IsNullOrWhiteSpace(clusterOptions.Password) || string.IsNullOrWhiteSpace(clusterOptions.UserName))
            {
                throw new InvalidConfigurationException("Username and password are required.");
            }

            var configTokenSource = new CancellationTokenSource();

            _context = new ClusterContext(this, configTokenSource, clusterOptions);
            _context.StartConfigListening();

            LazyQueryClient           = new Lazy <IQueryClient>(() => _context.ServiceProvider.GetRequiredService <IQueryClient>());
            LazyAnalyticsClient       = new Lazy <IAnalyticsClient>(() => _context.ServiceProvider.GetRequiredService <IAnalyticsClient>());
            LazySearchClient          = new Lazy <ISearchClient>(() => _context.ServiceProvider.GetRequiredService <ISearchClient>());
            LazyQueryManager          = new Lazy <IQueryIndexManager>(() => _context.ServiceProvider.GetRequiredService <IQueryIndexManager>());
            LazyBucketManager         = new Lazy <IBucketManager>(() => _context.ServiceProvider.GetRequiredService <IBucketManager>());
            LazyUserManager           = new Lazy <IUserManager>(() => _context.ServiceProvider.GetRequiredService <IUserManager>());
            LazySearchManager         = new Lazy <ISearchIndexManager>(() => _context.ServiceProvider.GetRequiredService <ISearchIndexManager>());
            LazyAnalyticsIndexManager = new Lazy <IAnalyticsIndexManager>(() => _context.ServiceProvider.GetRequiredService <IAnalyticsIndexManager>());

            _logger            = _context.ServiceProvider.GetRequiredService <ILogger <Cluster> >();
            _retryOrchestrator = _context.ServiceProvider.GetRequiredService <IRetryOrchestrator>();
            _redactor          = _context.ServiceProvider.GetRequiredService <IRedactor>();

            var bootstrapperFactory = _context.ServiceProvider.GetRequiredService <IBootstrapperFactory>();

            _bootstrapper = bootstrapperFactory.Create(clusterOptions.BootstrapPollInterval);
        }
Exemplo n.º 3
0
        internal Cluster(string connectionString, ClusterOptions?clusterOptions = null)
        {
            clusterOptions ??= new ClusterOptions();
            if (string.IsNullOrWhiteSpace(connectionString))
            {
                throw new InvalidConfigurationException("The connectionString cannot be null, empty or only be whitespace.");
            }
            if (clusterOptions == null)
            {
                throw new InvalidConfigurationException("ClusterOptions is null.");
            }
            if (string.IsNullOrWhiteSpace(clusterOptions.Password) || string.IsNullOrWhiteSpace(clusterOptions.UserName))
            {
                throw new InvalidConfigurationException("Username and password are required.");
            }

            clusterOptions.ConnectionString(connectionString);

            var configTokenSource = new CancellationTokenSource();

            _context = new ClusterContext(configTokenSource, clusterOptions);
            _context.StartConfigListening();

            LazyQueryClient     = new Lazy <IQueryClient>(() => _context.ServiceProvider.GetRequiredService <IQueryClient>());
            LazyAnalyticsClient = new Lazy <IAnalyticsClient>(() => _context.ServiceProvider.GetRequiredService <IAnalyticsClient>());
            LazySearchClient    = new Lazy <ISearchClient>(() => _context.ServiceProvider.GetRequiredService <ISearchClient>());
            LazyQueryManager    = new Lazy <IQueryIndexManager>(() => _context.ServiceProvider.GetRequiredService <IQueryIndexManager>());
            LazyBucketManager   = new Lazy <IBucketManager>(() => _context.ServiceProvider.GetRequiredService <IBucketManager>());
            LazyUserManager     = new Lazy <IUserManager>(() => _context.ServiceProvider.GetRequiredService <IUserManager>());
            LazySearchManager   = new Lazy <ISearchIndexManager>(() => _context.ServiceProvider.GetRequiredService <ISearchIndexManager>());

            _logger            = _context.ServiceProvider.GetRequiredService <ILogger <Cluster> >();
            _retryOrchestrator = _context.ServiceProvider.GetRequiredService <IRetryOrchestrator>();
        }
Exemplo n.º 4
0
 public BucketFactory(
     ClusterContext clusterContext,
     IScopeFactory scopeFactory,
     IRetryOrchestrator retryOrchestrator,
     ILogger <CouchbaseBucket> couchbaseLogger,
     ILogger <MemcachedBucket> memcachedLogger)
 {
     _clusterContext    = clusterContext ?? throw new ArgumentNullException(nameof(clusterContext));
     _scopeFactory      = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory));
     _retryOrchestrator = retryOrchestrator ?? throw new ArgumentNullException(nameof(retryOrchestrator));
     _couchbaseLogger   = couchbaseLogger ?? throw new ArgumentNullException(nameof(couchbaseLogger));
     _memcachedLogger   = memcachedLogger ?? throw new ArgumentNullException(nameof(memcachedLogger));
 }
Exemplo n.º 5
0
        internal Cluster(ClusterOptions clusterOptions)
        {
            if (clusterOptions == null)
            {
                throw new InvalidConfigurationException("ClusterOptions is null.");
            }
            if (string.IsNullOrWhiteSpace(clusterOptions.Password) || string.IsNullOrWhiteSpace(clusterOptions.UserName))
            {
                throw new InvalidConfigurationException("Username and password are required.");
            }

            var configTokenSource = new CancellationTokenSource();

            _context = new ClusterContext(this, configTokenSource, clusterOptions);
            _context.Start();

            LazyQueryClient             = new Lazy <IQueryClient>(() => _context.ServiceProvider.GetRequiredService <IQueryClient>());
            LazyAnalyticsClient         = new Lazy <IAnalyticsClient>(() => _context.ServiceProvider.GetRequiredService <IAnalyticsClient>());
            LazySearchClient            = new Lazy <ISearchClient>(() => _context.ServiceProvider.GetRequiredService <ISearchClient>());
            LazyQueryManager            = new Lazy <IQueryIndexManager>(() => _context.ServiceProvider.GetRequiredService <IQueryIndexManager>());
            LazyBucketManager           = new Lazy <IBucketManager>(() => _context.ServiceProvider.GetRequiredService <IBucketManager>());
            LazyUserManager             = new Lazy <IUserManager>(() => _context.ServiceProvider.GetRequiredService <IUserManager>());
            LazySearchManager           = new Lazy <ISearchIndexManager>(() => _context.ServiceProvider.GetRequiredService <ISearchIndexManager>());
            LazyAnalyticsIndexManager   = new Lazy <IAnalyticsIndexManager>(() => _context.ServiceProvider.GetRequiredService <IAnalyticsIndexManager>());
            LazyEventingFunctionManager = new Lazy <IEventingFunctionManager>(() => _context.ServiceProvider.GetRequiredService <IEventingFunctionManager>());

            _logger            = _context.ServiceProvider.GetRequiredService <ILogger <Cluster> >();
            _retryOrchestrator = _context.ServiceProvider.GetRequiredService <IRetryOrchestrator>();
            _redactor          = _context.ServiceProvider.GetRequiredService <IRedactor>();
            _tracer            = _context.ServiceProvider.GetRequiredService <IRequestTracer>();
            _retryStrategy     = _context.ServiceProvider.GetRequiredService <IRetryStrategy>();

            var meter = _context.ServiceProvider.GetRequiredService <IMeter>();

            if (meter is not NoopMeter)
            {
                // Don't instantiate the meter forwarder if we're using the NoopMeter, since the meter forwarder
                // will create subscriptions to the .NET metrics and start collecting/forwarding data. We can avoid
                // this performance penalty when we know we're doing nothing with the data.
                _meterForwarder = new MeterForwarder(meter);
            }

            var bootstrapperFactory = _context.ServiceProvider.GetRequiredService <IBootstrapperFactory>();

            _bootstrapper = bootstrapperFactory.Create(clusterOptions.BootstrapPollInterval);
        }
Exemplo n.º 6
0
        protected BucketBase(string name,
                             ClusterContext context,
                             IScopeFactory scopeFactory,
                             IRetryOrchestrator retryOrchestrator,
                             ILogger logger,
                             IRedactor redactor,
                             IBootstrapperFactory bootstrapperFactory,
                             IRequestTracer tracer)
        {
            Name              = name ?? throw new ArgumentNullException(nameof(name));
            Context           = context ?? throw new ArgumentNullException(nameof(context));
            _scopeFactory     = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory));
            RetryOrchestrator = retryOrchestrator ?? throw new ArgumentNullException(nameof(retryOrchestrator));
            Logger            = logger ?? throw new ArgumentNullException(nameof(logger));
            Redactor          = redactor ?? throw new ArgumentNullException(nameof(redactor));
            Tracer            = tracer;

            BootstrapperFactory = bootstrapperFactory ?? throw new ArgumentNullException(nameof(bootstrapperFactory));
            Bootstrapper        = bootstrapperFactory.Create(Context.ClusterOptions.BootstrapPollInterval);
        }
        internal CouchbaseBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator,
                                 IVBucketKeyMapperFactory vBucketKeyMapperFactory, ILogger <CouchbaseBucket> logger, IRedactor redactor, IBootstrapperFactory bootstrapperFactory)
            : base(name, context, scopeFactory, retryOrchestrator, logger, redactor, bootstrapperFactory)
        {
            _vBucketKeyMapperFactory = vBucketKeyMapperFactory ?? throw new ArgumentNullException(nameof(vBucketKeyMapperFactory));

            _viewClientLazy = new Lazy <IViewClient>(() =>
                                                     context.ServiceProvider.GetRequiredService <IViewClient>()
                                                     );
            _viewManagerLazy = new Lazy <IViewIndexManager>(() =>
                                                            new ViewIndexManager(name,
                                                                                 context.ServiceProvider.GetRequiredService <IServiceUriProvider>(),
                                                                                 context.ServiceProvider.GetRequiredService <CouchbaseHttpClient>(),
                                                                                 context.ServiceProvider.GetRequiredService <ILogger <ViewIndexManager> >(),
                                                                                 redactor));

            _collectionManagerLazy = new Lazy <ICouchbaseCollectionManager>(() =>
                                                                            new CollectionManager(name,
                                                                                                  context.ServiceProvider.GetRequiredService <IServiceUriProvider>(),
                                                                                                  context.ServiceProvider.GetRequiredService <CouchbaseHttpClient>(),
                                                                                                  context.ServiceProvider.GetRequiredService <ILogger <CollectionManager> >(),
                                                                                                  redactor)
                                                                            );
        }
Exemplo n.º 8
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, IKetamaKeyMapperFactory ketamaKeyMapperFactory,
                          ILogger <MemcachedBucket> logger, HttpClusterMapBase httpClusterMap, IRedactor redactor, IBootstrapperFactory bootstrapperFactory, IRequestTracer tracer)
     : base(name, context, scopeFactory, retryOrchestrator, logger, redactor, bootstrapperFactory, tracer)
 {
     BucketType = BucketType.Memcached;
     Name       = name;
     _ketamaKeyMapperFactory = ketamaKeyMapperFactory ?? throw new ArgumentNullException(nameof(ketamaKeyMapperFactory));
     _httpClusterMap         = httpClusterMap;
 }
Exemplo n.º 9
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, IKetamaKeyMapperFactory ketamaKeyMapperFactory,
                          ILogger <MemcachedBucket> logger, IRedactor redactor, IBootstrapperFactory bootstrapperFactory, IRequestTracer tracer) :
     this(name, context, scopeFactory, retryOrchestrator, ketamaKeyMapperFactory, logger,
          new HttpClusterMap(context.ServiceProvider.GetRequiredService <CouchbaseHttpClient>(), context), redactor, bootstrapperFactory, tracer)
 {
 }
Exemplo n.º 10
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, ILogger <MemcachedBucket> logger,
                          HttpClusterMapBase httpClusterMap)
     : base(name, context, scopeFactory, retryOrchestrator, logger)
 {
     Name            = name;
     _httpClusterMap = httpClusterMap;
 }
Exemplo n.º 11
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, ILogger <MemcachedBucket> logger) :
     this(name, context, scopeFactory, retryOrchestrator, logger,
          new HttpClusterMap(context.ServiceProvider.GetRequiredService <CouchbaseHttpClient>(), context))
 {
 }
Exemplo n.º 12
0
        internal CouchbaseBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, ILogger <CouchbaseBucket> logger)
            : base(name, context, scopeFactory, retryOrchestrator, logger)
        {
            var httpClient = context.ServiceProvider.GetRequiredService <CouchbaseHttpClient>();

            _viewClientLazy = new Lazy <IViewClient>(() =>
                                                     new ViewClient(context)
                                                     );
            _viewManagerLazy = new Lazy <IViewIndexManager>(() =>
                                                            new ViewIndexManager(name, httpClient, context));
            _collectionManagerLazy = new Lazy <ICollectionManager>(() =>
                                                                   new CollectionManager(name, context, httpClient)
                                                                   );
        }
Exemplo n.º 13
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, IKetamaKeyMapperFactory ketamaKeyMapperFactory,
                          ILogger <MemcachedBucket> logger, IHttpClusterMapFactory httpClusterMapFactory, TypedRedactor redactor, IBootstrapperFactory bootstrapperFactory, IRequestTracer tracer, IOperationConfigurator operationConfigurator, IRetryStrategy retryStrategy, BucketConfig config)
     : base(name, context, scopeFactory, retryOrchestrator, logger, redactor, bootstrapperFactory, tracer, operationConfigurator, retryStrategy, config)
 {
     BucketType = BucketType.Memcached;
     Name       = name;
     _ketamaKeyMapperFactory = ketamaKeyMapperFactory ?? throw new ArgumentNullException(nameof(ketamaKeyMapperFactory));
     _httpClusterMapFactory  = httpClusterMapFactory ?? throw new ArgumentNullException(nameof(httpClusterMapFactory));
     _httpClusterMap         = _httpClusterMapFactory.Create(Context);
 }
Exemplo n.º 14
0
 internal MemcachedBucket(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, IKetamaKeyMapperFactory ketamaKeyMapperFactory,
                          ILogger <MemcachedBucket> logger, TypedRedactor redactor, IBootstrapperFactory bootstrapperFactory, IRequestTracer tracer, IOperationConfigurator operationConfigurator, IRetryStrategy retryStrategy, IHttpClusterMapFactory httpClusterMapFactory, BucketConfig config) :
     this(name, context, scopeFactory, retryOrchestrator, ketamaKeyMapperFactory, logger,
          httpClusterMapFactory, redactor, bootstrapperFactory, tracer, operationConfigurator, retryStrategy, config)
 {
 }
Exemplo n.º 15
0
 protected BucketBase(string name, ClusterContext context, IScopeFactory scopeFactory, IRetryOrchestrator retryOrchestrator, ILogger logger)
 {
     Name              = name ?? throw new ArgumentNullException(nameof(name));
     Context           = context ?? throw new ArgumentNullException(nameof(context));
     _scopeFactory     = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory));
     RetryOrchestrator = retryOrchestrator ?? throw new ArgumentNullException(nameof(retryOrchestrator));
     Logger            = logger ?? throw new ArgumentNullException(nameof(logger));
 }