public OutboxProduceStrategyImplementation( TransactionalOutboxBroker outboundQueueBroker, IOutboundLogger <OutboxProduceStrategy> logger) { _outboundQueueBroker = outboundQueueBroker; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="Producer{TBroker,TEndpoint}" /> class. /// </summary> /// <param name="broker"> /// The <see cref="IBroker" /> that instantiated this producer. /// </param> /// <param name="endpoint"> /// The endpoint to produce to. /// </param> /// <param name="behaviorsProvider"> /// The <see cref="IBrokerBehaviorsProvider{TBehavior}" />. /// </param> /// <param name="serviceProvider"> /// The <see cref="IServiceProvider" /> to be used to resolve the needed services. /// </param> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> protected Producer( TBroker broker, TEndpoint endpoint, IBrokerBehaviorsProvider <IProducerBehavior> behaviorsProvider, IServiceProvider serviceProvider, IOutboundLogger <Producer> logger) : base(broker, endpoint, behaviorsProvider, serviceProvider, logger) { }
/// <summary> /// Initializes a new instance of the <see cref="OutboundQueueProducer" /> class. /// </summary> /// <param name="queueWriter"> /// The <see cref="IOutboxWriter" /> to be used to write to the queue. /// </param> /// <param name="broker"> /// The <see cref="IBroker" /> that instantiated this producer. /// </param> /// <param name="endpoint"> /// The endpoint to produce to. /// </param> /// <param name="behaviorsProvider"> /// The <see cref="IBrokerBehaviorsProvider{TBehavior}" />. /// </param> /// <param name="serviceProvider"> /// The <see cref="IServiceProvider" /> to be used to resolve the needed services. /// </param> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> public OutboundQueueProducer( IOutboxWriter queueWriter, TransactionalOutboxBroker broker, IProducerEndpoint endpoint, IBrokerBehaviorsProvider <IProducerBehavior> behaviorsProvider, IServiceProvider serviceProvider, IOutboundLogger <Producer> logger) : base(broker, endpoint, behaviorsProvider, serviceProvider, logger) { _queueWriter = queueWriter; }
/// <summary> /// Initializes a new instance of the <see cref="OutboxWorker" /> class. /// </summary> /// <param name="serviceScopeFactory"> /// The <see cref="IServiceScopeFactory" /> used to resolve the scoped types. /// </param> /// <param name="brokerCollection"> /// The collection containing the available brokers. /// </param> /// <param name="routingConfiguration"> /// The configured outbound routes. /// </param> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> /// <param name="enforceMessageOrder"> /// Specifies whether the messages must be produced in the same order as they were added to the queue. /// If set to <c>true</c> the message order will be ensured, retrying the same message until it can be /// successfully /// produced. /// </param> /// <param name="batchSize"> /// The number of messages to be loaded and processed at once. /// </param> public OutboxWorker( IServiceScopeFactory serviceScopeFactory, IBrokerCollection brokerCollection, IOutboundRoutingConfiguration routingConfiguration, IOutboundLogger <OutboxWorker> logger, bool enforceMessageOrder, int batchSize) { _serviceScopeFactory = serviceScopeFactory; _brokerCollection = brokerCollection; _logger = logger; _enforceMessageOrder = enforceMessageOrder; _batchSize = batchSize; _routingConfiguration = routingConfiguration; }
public OutboundLoggerTests() { var serviceProvider = ServiceProviderHelper.GetServiceProvider( services => services .AddLoggerSubstitute(LogLevel.Trace) .AddSilverback() .WithConnectionToMessageBroker(options => options.AddKafka())); _loggerSubstitute = (LoggerSubstitute <OutboundLoggerTests>)serviceProvider .GetRequiredService <ILogger <OutboundLoggerTests> >(); _outboundLogger = serviceProvider .GetRequiredService <IOutboundLogger <OutboundLoggerTests> >(); }
/// <summary> /// Initializes a new instance of the <see cref="Producer" /> class. /// </summary> /// <param name="broker"> /// The <see cref="IBroker" /> that instantiated this producer. /// </param> /// <param name="endpoint"> /// The endpoint to produce to. /// </param> /// <param name="behaviorsProvider"> /// The <see cref="IBrokerBehaviorsProvider{TBehavior}" />. /// </param> /// <param name="serviceProvider"> /// The <see cref="IServiceProvider" /> to be used to resolve the needed services. /// </param> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> protected Producer( IBroker broker, IProducerEndpoint endpoint, IBrokerBehaviorsProvider<IProducerBehavior> behaviorsProvider, IServiceProvider serviceProvider, IOutboundLogger<Producer> logger) { Broker = Check.NotNull(broker, nameof(broker)); Endpoint = Check.NotNull(endpoint, nameof(endpoint)); _behaviors = Check.NotNull(behaviorsProvider, nameof(behaviorsProvider)).GetBehaviorsList(); _serviceProvider = Check.NotNull(serviceProvider, nameof(serviceProvider)); _logger = Check.NotNull(logger, nameof(logger)); Endpoint.Validate(); }
/// <summary> /// Initializes a new instance of the <see cref="KafkaProducer" /> class. /// </summary> /// <param name="broker"> /// The <see cref="IBroker" /> that instantiated this producer. /// </param> /// <param name="endpoint"> /// The endpoint to produce to. /// </param> /// <param name="behaviorsProvider"> /// The <see cref="IBrokerBehaviorsProvider{TBehavior}" />. /// </param> /// <param name="producersCache"> /// The <see cref="IConfluentProducersCache" />. /// </param> /// <param name="serviceProvider"> /// The <see cref="IServiceProvider" /> to be used to resolve the required services. /// </param> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> public KafkaProducer( KafkaBroker broker, KafkaProducerEndpoint endpoint, IBrokerBehaviorsProvider <IProducerBehavior> behaviorsProvider, IConfluentProducersCache producersCache, IServiceProvider serviceProvider, IOutboundLogger <KafkaProducer> logger) : base(broker, endpoint, behaviorsProvider, serviceProvider, logger) { Check.NotNull(endpoint, nameof(endpoint)); Check.NotNull(serviceProvider, nameof(serviceProvider)); _confluentClientsCache = Check.NotNull(producersCache, nameof(producersCache)); _logger = Check.NotNull(logger, nameof(logger)); }
public ValidatorProducerBehaviorTests() { var serviceProvider = ServiceProviderHelper.GetServiceProvider( services => services .AddLoggerSubstitute(LogLevel.Trace) .AddSilverback() .WithConnectionToMessageBroker( options => options .AddBroker <TestBroker>())); _loggerSubstitute = (LoggerSubstitute <ValidatorProducerBehavior>)serviceProvider .GetRequiredService <ILogger <ValidatorProducerBehavior> >(); _outboundLogger = serviceProvider .GetRequiredService <IOutboundLogger <ValidatorProducerBehavior> >(); }
public IntegrationLoggingBenchmark() { var serviceProvider = ServiceProviderHelper.GetServiceProvider( services => services .AddFakeLogger() .AddSilverback() .WithConnectionToMessageBroker(broker => broker.AddKafka())); _inboundLogger = serviceProvider.GetRequiredService <IInboundLogger <IntegrationLoggingBenchmark> >(); _outboundLogger = serviceProvider.GetRequiredService <IOutboundLogger <IntegrationLoggingBenchmark> >(); _inboundEnvelope = new RawInboundEnvelope( Array.Empty <byte>(), new MessageHeaderCollection { new("Test", "Test"), new(DefaultMessageHeaders.FailedAttempts, "1"), new(DefaultMessageHeaders.MessageType, "Something.Xy"), new(DefaultMessageHeaders.MessageId, "1234"), new(KafkaMessageHeaders.KafkaMessageKey, "key1234") },
/// <summary> /// Initializes a new instance of the <see cref="ValidatorProducerBehavior" /> class. /// </summary> /// <param name="logger"> /// The <see cref="IOutboundLogger{TCategoryName}" />. /// </param> public ValidatorProducerBehavior(IOutboundLogger <ValidatorProducerBehavior> logger) { _logger = Check.NotNull(logger, nameof(logger)); }