Example #1
0
 private IPipeFitter GetExitPipeFitter(IDiContainerAdapter serviceProvider) =>
 serviceProvider.GetService <IPipeFitter>(
     Configuration.ExitPipeFitterType,
     exception => new PoezdConfigurationException(
         $"Can not get instance of the message broker egress exit pipe fitter of type '{Configuration.ExitPipeFitterType.FullName}'. " +
         "You should register this type in DI-container.",
         exception));
Example #2
0
 private IIngressApiMessageTypesRegistry GetMessageTypesRegistry(IDiContainerAdapter serviceProvider) =>
 serviceProvider.GetService <IIngressApiMessageTypesRegistry>(
     Configuration.MessageTypesRegistryType,
     exception => new PoezdConfigurationException(
         $"Can not get an instance of message types registry of type '{Configuration.MessageTypesRegistryType}'. " +
         "You should register this type in DI-container.",
         exception));
Example #3
0
 private IHandlerRegistry GetHandlerRegistry(IDiContainerAdapter serviceProvider) =>
 serviceProvider.GetService <IHandlerRegistry>(
     Configuration.HandlerRegistryType,
     exception => new PoezdConfigurationException(
         $"Can not get an instance of handler registry of type '{Configuration.HandlerRegistryType}'. " +
         "You should register this type in DI-container.",
         exception));
Example #4
0
 public void Initialize(
     IBrokerIngress brokerIngress,
     IEnumerable <IIngressApi> apis,
     IDiContainerAdapter serviceProvider)
 {
     _state.InitializedCount++;
 }
Example #5
0
 private IPipeFitter GetIngressPipeFitter(IDiContainerAdapter serviceProvider) =>
 serviceProvider.GetService <IPipeFitter>(
     Configuration.PipeFitterType,
     exception => new PoezdConfigurationException(
         $"Can not get an instance of ingress API pipe fitter of type '{Configuration.PipeFitterType.FullName}'." +
         "You should register this type in DI-container.",
         exception));
Example #6
0
 private IQueueNamePatternsProvider GetQueueNamePatternsProvider(IDiContainerAdapter serviceProvider) =>
 serviceProvider.GetService <IQueueNamePatternsProvider>(
     Configuration.QueueNamePatternsProviderType,
     exception => new PoezdConfigurationException(
         $"Can not get an instance of queue name patterns provider of type '{Configuration.QueueNamePatternsProviderType}'. " +
         "You should register this type in DI-container.",
         exception));
Example #7
0
 /// <summary>
 /// Constructs a new instance of message router.
 /// </summary>
 /// <param name="configuration">
 /// The message router configuration.
 /// </param>
 /// <param name="diContainerAdapter">
 /// DI-container adapter.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// One of arguments is not specified.
 /// </exception>
 internal MessageRouter(
     [NotNull] MessageRouterConfiguration configuration,
     [NotNull] IDiContainerAdapter diContainerAdapter)
 {
     _configuration      = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _diContainerAdapter = diContainerAdapter ?? throw new ArgumentNullException(nameof(diContainerAdapter));
     _currentState       = new NotStartedState(this);
 }
Example #8
0
 /// <summary>
 /// Constructs a new instance of message broker egress.
 /// </summary>
 /// <param name="configuration">
 /// The message broker egress configuration.
 /// </param>
 /// <param name="serviceProvider">
 /// Service provider.
 /// </param>
 public BrokerEgress(
     [NotNull] BrokerEgressConfiguration configuration,
     [NotNull] IDiContainerAdapter serviceProvider)
 {
     Configuration    = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     Driver           = configuration.Driver ?? throw new ArgumentNullException($"{nameof(configuration)}.{nameof(configuration.Driver)}");
     Apis             = configuration.Apis.Select(api => new EgressApi(api, serviceProvider)).Cast <IEgressApi>().ToList().AsReadOnly();
     EnterPipeFitter  = GetEnterPipeFitter(serviceProvider);
     ExitPipeFitter   = GetExitPipeFitter(serviceProvider);
 }
Example #9
0
        /// <summary>
        /// Constructs a new instance of egress API.
        /// </summary>
        /// <param name="configuration">
        /// The egress API configuration.
        /// </param>
        /// <param name="serviceProvider">
        /// Service provider.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// On of arguments is not specified.
        /// </exception>
        public EgressApi(EgressApiConfiguration configuration, IDiContainerAdapter serviceProvider)
        {
            Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            MessageTypesRegistry = GetMessageTypesRegistry(serviceProvider);
            PipeFitter           = GetPipeFitter(serviceProvider);
        }
Example #10
0
        /// <summary>
        /// Constructs a new instance of ingress API.
        /// </summary>
        /// <param name="configuration">
        /// The ingress API configuration.
        /// </param>
        /// <param name="serviceProvider">
        /// Service provider.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// One of arguments is not specified.
        /// </exception>
        public IngressApi([NotNull] IngressApiConfiguration configuration, [NotNull] IDiContainerAdapter serviceProvider)
        {
            Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            _queueNamePatternsProvider = GetQueueNamePatternsProvider(serviceProvider);
            MessageTypesRegistry       = GetMessageTypesRegistry(serviceProvider);
            HandlerRegistry            = GetHandlerRegistry(serviceProvider);
            PipeFitter = GetIngressPipeFitter(serviceProvider);
        }
Example #11
0
 /// <summary>
 /// Construct a new instance of message broker.
 /// </summary>
 /// <param name="messageBroker">
 /// The message broker this ingress belongs to.
 /// </param>
 /// <param name="configuration">
 /// The message broker configuration.
 /// </param>
 /// <param name="serviceProvider">
 /// Service provider.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// One of arguments is not specified.
 /// </exception>
 /// <exception cref="PoezdConfigurationException">
 /// Can not get a required service from <paramref name="serviceProvider" />.
 /// </exception>
 public BrokerIngress(
     [NotNull] IMessageBroker messageBroker,
     [NotNull] BrokerIngressConfiguration configuration,
     [NotNull] IDiContainerAdapter serviceProvider)
 {
     _messageBroker    = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));
     Configuration     = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _serviceProvider  = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     Driver            = configuration.Driver ?? throw new ArgumentNullException($"{nameof(configuration)}.{nameof(configuration.Driver)}");
     Apis              = configuration.Apis.Select(api => new IngressApi(api, serviceProvider)).ToList().AsReadOnly();
     _queueNameMatcher = (IQueueNameMatcher)serviceProvider.GetService(configuration.QueueNameMatcherType);
     EnterPipeFitter   = GetEnterPipeFitter();
     ExitPipeFitter    = GetExitPipeFitter();
 }
Example #12
0
        /// <inheritdoc />
        public void Initialize(IEnumerable <IEgressApi> apis, IDiContainerAdapter serviceProvider)
        {
            if (_isInitialized)
            {
                throw new PoezdOperationException(
                          $"Kafka driver for broker with bootstrap servers{_driverConfiguration.ProducerConfig.BootstrapServers} is already initialized.");
            }
            _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
            _apis            = apis ?? throw new ArgumentNullException(nameof(apis));

            GetRequiredServices();
            CreateAndRegisterProducerPerApi();

            _isInitialized = true;
        }
        /// <inheritdoc />
        public void Initialize(
            IBrokerIngress brokerIngress,
            IEnumerable <IIngressApi> apis,
            IDiContainerAdapter serviceProvider)
        {
            if (_isInitialized)
            {
                throw new PoezdOperationException("Kafka ingress driver is already initialized.");
            }

            _brokerIngress   = brokerIngress ?? throw new ArgumentNullException(nameof(brokerIngress));
            _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
            _apis            = apis ?? throw new ArgumentNullException(nameof(apis));

            GetRequiredServices();
            CreateAndRegisterConsumerPerApi();

            _isInitialized = true;
        }
 public CdcNotificationsPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
Example #15
0
 public TestBrokerEgressExitPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
 /// <summary>
 /// Creates a message router with configuration and DI-container adapter specified.
 /// </summary>
 /// <param name="configuration">
 /// Message router configuration.
 /// </param>
 /// <param name="diContainerAdapter">
 /// DI-container adapter.
 /// </param>
 /// <returns>
 /// Configured message router.
 /// </returns>
 /// <exception cref="System.ArgumentNullException">
 /// DI-container adapter is not specified.
 /// </exception>
 public static IMessageRouter CreateMessageRouter(
     this MessageRouterConfiguration configuration,
     IDiContainerAdapter diContainerAdapter) =>
 new MessageRouter(configuration, diContainerAdapter);
 public static TResult GetService <TResult>(this IDiContainerAdapter serviceProvider, [NotNull] Type serviceType) =>
 (TResult)serviceProvider.GetService(serviceType ?? throw new ArgumentNullException(nameof(serviceProvider)));
Example #18
0
 public FinishTestPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
Example #19
0
 public Service2PipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
Example #20
0
 public WithThrowingHandlerPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
 public FindMessageHandlersStep([NotNull] IDiContainerAdapter serviceProvider)
 {
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
 public VentureIngressPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
Example #23
0
 public SampleBrokerPipeFitter([NotNull] IDiContainerAdapter serviceProvider) : base(serviceProvider)
 {
 }
Example #24
0
 /// <summary>
 /// Constructs an instance of pipe fitter.
 /// </summary>
 /// <param name="serviceProvider">
 /// Service provider used for constructing steps instances.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// Service provider is not specified.
 /// </exception>
 protected TypeBasedPipeFitter([NotNull] IDiContainerAdapter serviceProvider)
 {
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }