Ejemplo n.º 1
0
        protected ReceiveSpecification(IEndpointConfiguration configuration)
        {
            Configuration = configuration;

            Specifications          = new List <IReceiveEndpointSpecification>();
            ReceivePipeConfigurator = new PipeConfigurator <ReceiveContext>();
        }
Ejemplo n.º 2
0
        public ClientRequestHandle(ClientFactoryContext context, IRequestSendEndpoint requestSendEndpoint, TRequest message,
                                   CancellationToken cancellationToken = default, RequestTimeout timeout = default, Guid?requestId = default, TaskScheduler taskScheduler = default)
        {
            _context             = context;
            _message             = message;
            _requestSendEndpoint = requestSendEndpoint;
            _cancellationToken   = cancellationToken;

            var requestTimeout = timeout.HasValue ? timeout : _context.DefaultTimeout.HasValue ? _context.DefaultTimeout.Value : RequestTimeout.Default;

            _timeToLive = requestTimeout;

            _requestId = requestId ?? NewId.NextGuid();

            _taskScheduler = taskScheduler ??
                             (SynchronizationContext.Current == null
                    ? TaskScheduler.Default
                    : TaskScheduler.FromCurrentSynchronizationContext());

            _pipeConfigurator = new PipeConfigurator <SendContext <TRequest> >();
            _sendContext      = new TaskCompletionSource <SendContext <TRequest> >();
            _readyToSend      = new TaskCompletionSource <bool>();
            _responseHandlers = new Dictionary <Type, HandlerConnectHandle>();

            _timeoutTimer = new Timer(TimeoutExpired, this, (long)requestTimeout.Value.TotalMilliseconds, -1L);

            if (cancellationToken != default && cancellationToken.CanBeCanceled)
            {
                _registration = cancellationToken.Register(Cancel);
            }

            _send = SendRequest();

            HandleFault();
        }
Ejemplo n.º 3
0
        public ConnectHandle ConnectRequestHandler(IRequestPipeConnector consumePipe, Guid requestId, MessageHandler <TMessage> handler,
                                                   IBuildPipeConfigurator <ConsumeContext <TMessage> > configurator)
        {
            configurator.AddPipeSpecification(new HandlerPipeSpecification <TMessage>(handler));

            return(consumePipe.ConnectRequestPipe(requestId, configurator.Build()));
        }
Ejemplo n.º 4
0
        public RescuePipeSpecification(RescueContextFactory <TContext, TRescue> rescueContextFactory)
        {
            _rescueContextFactory = rescueContextFactory;

            _pipeConfigurator        = new PipeConfigurator <TRescue>();
            _contextPipeConfigurator = new ContextPipeConfigurator(_pipeConfigurator);
        }
Ejemplo n.º 5
0
        public ConnectHandle ConnectHandler(IConsumePipeConnector consumePipe, MessageHandler <TMessage> handler,
                                            IBuildPipeConfigurator <ConsumeContext <TMessage> > configurator)
        {
            configurator ??= new PipeConfigurator <ConsumeContext <TMessage> >();
            configurator.AddPipeSpecification(new HandlerPipeSpecification <TMessage>(handler));

            return(consumePipe.ConnectConsumePipe(configurator.Build()));
        }
        protected ReceiveEndpointConfigurator(IConsumePipe consumePipe)
        {
            _consumePipe = consumePipe;

            _specifications           = new List <IReceiveEndpointSpecification>();
            _consumePipeSpecification = new ConsumePipeSpecificationList();
            _receiveConfigurator      = new PipeConfigurator <ReceiveContext>();
        }
Ejemplo n.º 7
0
        public BatchConsumerMessageSpecification()
        {
            _batchConfigurator            = new PipeConfigurator <ConsumerConsumeContext <TConsumer, Batch <TMessage> > >();
            _batchMessagePipeConfigurator = new PipeConfigurator <ConsumeContext <Batch <TMessage> > >();

            _consumerSpecification = new ConsumerMessageSpecification <TConsumer, TMessage>();
            _observers             = new ConsumerConfigurationObservable();
        }
Ejemplo n.º 8
0
        public HandlerConfigurator(MessageHandler <TMessage> handler, IHandlerConfigurationObserver observer)
        {
            _pipeConfigurator    = new PipeConfigurator <ConsumeContext <TMessage> >();
            _handlerConfigurator = new HandlerPipeSpecification <TMessage>(handler);
            _observers           = new HandlerConfigurationObservable();

            _observers.Connect(observer);
        }
        public ResponseHandlerConfigurator(TaskScheduler taskScheduler, MessageHandler <TResponse> handler, Task requestTask)
        {
            _taskScheduler = taskScheduler;
            _handler       = handler;
            _requestTask   = requestTask;

            _pipeConfigurator = new PipeConfigurator <ConsumeContext <TResponse> >();
            _completed        = Util.TaskUtil.GetTask <ConsumeContext <TResponse> >();
        }
Ejemplo n.º 10
0
        protected ServiceBusEntityReceiveEndpointConfiguration(IServiceBusHostConfiguration hostConfiguration, BaseClientSettings settings,
                                                               IServiceBusEndpointConfiguration endpointConfiguration)
            : base(hostConfiguration, endpointConfiguration)
        {
            _hostConfiguration = hostConfiguration;
            _settings          = settings;
            _configurator      = settings.Configurator;

            ClientPipeConfigurator = new PipeConfigurator <ClientContext>();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Validate the pipe configuration, throwing an exception if any failures are encountered.
        /// </summary>
        /// <param name="configurator"></param>
        /// <typeparam name="T"></typeparam>
        /// <exception cref="PipeConfigurationException"></exception>
        public static void ValidatePipeConfiguration <T>(this IBuildPipeConfigurator <T> configurator)
            where T : class, PipeContext
        {
            IPipeConfigurationResult result = new PipeConfigurationResult(configurator.Validate());

            if (result.ContainsFailure)
            {
                throw new PipeConfigurationException(result.GetMessage("The pipe configuration was invalid"));
            }
        }
        public CompensateActivityHostSpecification(ICompensateActivityFactory <TActivity, TLog> activityFactory, IActivityConfigurationObserver observer)
        {
            _activityFactory = activityFactory;

            _activityPipeConfigurator   = new PipeConfigurator <CompensateActivityContext <TActivity, TLog> >();
            _compensatePipeConfigurator = new PipeConfigurator <CompensateContext <TLog> >();
            _routingSlipConfigurator    = new RoutingSlipConfigurator();
            _observers = new ActivityConfigurationObservable();

            _observers.Connect(observer);
        }
        public ExecuteActivityHostSpecification(IExecuteActivityFactory <TActivity, TArguments> activityFactory, IActivityConfigurationObserver observer)
        {
            _activityFactory = activityFactory;

            _activityPipeConfigurator = new PipeConfigurator <ExecuteActivityContext <TActivity, TArguments> >();
            _executePipeConfigurator  = new PipeConfigurator <ExecuteContext <TArguments> >();
            _routingSlipConfigurator  = new RoutingSlipConfigurator();
            _observers = new ActivityConfigurationObservable();

            _observers.Connect(observer);
        }
Ejemplo n.º 14
0
        public HttpReceiveEndpointConfiguration(IHttpHostConfiguration hostConfiguration, string pathMatch, IHttpEndpointConfiguration endpointConfiguration)
            : base(hostConfiguration, endpointConfiguration)
        {
            _hostConfiguration     = hostConfiguration;
            _pathMatch             = pathMatch;
            _endpointConfiguration = endpointConfiguration;

            HostAddress  = hostConfiguration.HostAddress;
            InputAddress = new Uri(hostConfiguration.HostAddress, $"{pathMatch}");

            _httpHostPipeConfigurator = new PipeConfigurator <HttpHostContext>();
        }
Ejemplo n.º 15
0
        protected ServiceBusEntityReceiveEndpointConfiguration(IServiceBusHostConfiguration hostConfiguration, IServiceBusEndpointConfiguration configuration,
                                                               BaseClientSettings settings)
            : base(hostConfiguration, configuration)
        {
            _hostConfiguration = hostConfiguration;
            _settings          = settings;
            _configurator      = settings.Configurator;

            ClientPipeConfigurator           = new PipeConfigurator <ClientContext>();
            NamespacePipeConfigurator        = new PipeConfigurator <NamespaceContext>();
            MessagingFactoryPipeConfigurator = new PipeConfigurator <MessagingFactoryContext>();
        }
        protected ReceiveEndpointSpecification(IEndpointConfiguration configuration)
        {
            _configuration = configuration;

            _specifications        = new List <IReceiveEndpointSpecification>();
            _receiveConfigurator   = new PipeConfigurator <ReceiveContext>();
            _lateConfigurationKeys = new List <string>();

            _inputAddress      = new Lazy <Uri>(GetInputAddress);
            _errorAddress      = new Lazy <Uri>(GetErrorAddress);
            _deadLetterAddress = new Lazy <Uri>(GetDeadLetterAddress);
        }
        AmazonSqsReceiveEndpointConfiguration(IAmazonSqsHostConfiguration hostConfiguration, IAmazonSqsEndpointConfiguration endpointConfiguration)
            : base(hostConfiguration, endpointConfiguration)
        {
            _hostConfiguration     = hostConfiguration;
            _endpointConfiguration = endpointConfiguration;

            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _clientConfigurator     = new PipeConfigurator <ClientContext>();

            HostAddress = hostConfiguration.Host.Address;

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
        ActiveMqReceiveEndpointConfiguration(IActiveMqHostConfiguration hostConfiguration, IActiveMqEndpointConfiguration endpointConfiguration)
            : base(endpointConfiguration)
        {
            _hostConfiguration     = hostConfiguration;
            _endpointConfiguration = endpointConfiguration;

            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _sessionConfigurator    = new PipeConfigurator <SessionContext>();

            HostAddress = hostConfiguration.Host.Address;

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
Ejemplo n.º 19
0
        RabbitMqReceiveEndpointConfiguration(IRabbitMqHostConfiguration hostConfiguration, IRabbitMqEndpointConfiguration endpointConfiguration)
            : base(endpointConfiguration)
        {
            _hostConfiguration     = hostConfiguration;
            _endpointConfiguration = endpointConfiguration;

            _managementPipe         = new ManagementPipe();
            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _modelConfigurator      = new PipeConfigurator <ModelContext>();

            HostAddress = hostConfiguration.Host.Address;

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
Ejemplo n.º 20
0
        public ConsumePipeSpecification()
        {
            _specifications          = new List <IPipeSpecification <ConsumeContext> >();
            _consumePipeConfigurator = new PipeConfigurator <ConsumeContext>();
            _messageSpecifications   = new ConcurrentDictionary <Type, IMessageConsumePipeSpecification>();
            _observers = new ConsumePipeSpecificationObservable();

            _consumerObservers = new ConsumerConfigurationObservable();
            _sagaObservers     = new SagaConfigurationObservable();
            _handlerObservers  = new HandlerConfigurationObservable();
            _activityObservers = new ActivityConfigurationObservable();

            AutoStart = true;
        }
Ejemplo n.º 21
0
        public ActiveMqReceiveEndpointConfiguration(IActiveMqHostConfiguration hostConfiguration, QueueReceiveSettings settings,
                                                    IActiveMqEndpointConfiguration endpointConfiguration)
            : base(hostConfiguration, endpointConfiguration)
        {
            _settings = settings;

            _hostConfiguration     = hostConfiguration;
            _endpointConfiguration = endpointConfiguration;

            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _sessionConfigurator    = new PipeConfigurator <SessionContext>();

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
Ejemplo n.º 22
0
        protected ReceiveEndpointConfigurator(IConsumePipe consumePipe)
        {
            _consumePipe = consumePipe;

            _specifications          = new List <IReceiveEndpointSpecification>();
            _consumePipeConfigurator = new ConsumePipeConfigurator();
            _sendPipeConfigurator    = new SendPipeConfigurator();
            _publishPipeConfigurator = new PublishPipeConfigurator();
            _receiveConfigurator     = new PipeConfigurator <ReceiveContext>();
            _lateConfigurationKeys   = new List <string>();

            _inputAddress      = new Lazy <Uri>(GetInputAddress);
            _errorAddress      = new Lazy <Uri>(GetErrorAddress);
            _deadLetterAddress = new Lazy <Uri>(GetDeadLetterAddress);
        }
        public AmazonSqsReceiveEndpointConfiguration(IAmazonSqsHostConfiguration hostConfiguration, QueueReceiveSettings settings,
                                                     IAmazonSqsEndpointConfiguration endpointConfiguration)
            : base(endpointConfiguration)
        {
            _settings = settings;

            SubscribeMessageTopics = true;

            _hostConfiguration     = hostConfiguration;
            _endpointConfiguration = endpointConfiguration;

            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _clientConfigurator     = new PipeConfigurator <ClientContext>();

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
        public RabbitMqReceiveEndpointConfiguration(IRabbitMqHostConfiguration hostConfiguration, RabbitMqReceiveSettings settings,
                                                    IRabbitMqEndpointConfiguration endpointConfiguration)
            : base(endpointConfiguration)
        {
            _hostConfiguration = hostConfiguration;
            _settings          = settings;

            _endpointConfiguration = endpointConfiguration;

            BindMessageExchanges = true;

            _managementPipe         = new ManagementPipe();
            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _modelConfigurator      = new PipeConfigurator <ModelContext>();

            _inputAddress = new Lazy <Uri>(FormatInputAddress);
        }
Ejemplo n.º 25
0
        public ClientRequestHandle(ClientFactoryContext context, SendRequestCallback sendRequestCallback, CancellationToken cancellationToken = default,
                                   RequestTimeout timeout = default, Guid?requestId = default, TaskScheduler taskScheduler = default)
        {
            _context             = context;
            _sendRequestCallback = sendRequestCallback;
            _cancellationToken   = cancellationToken;

            var requestTimeout = timeout.HasValue ? timeout : _context.DefaultTimeout.HasValue ? _context.DefaultTimeout.Value : RequestTimeout.Default;

            _timeToLive = requestTimeout;

            _requestId = requestId ?? NewId.NextGuid();

            _taskScheduler = taskScheduler ??
                             (SynchronizationContext.Current == null
                    ? TaskScheduler.Default
                    : TaskScheduler.FromCurrentSynchronizationContext());

            _message                 = new TaskCompletionSource <TRequest>();
            _pipeConfigurator        = new PipeConfigurator <SendContext <TRequest> >();
            _sendContext             = TaskUtil.GetTask <SendContext <TRequest> >();
            _readyToSend             = TaskUtil.GetTask <bool>();
            _cancellationTokenSource = new CancellationTokenSource();
            _responseHandlers        = new Dictionary <Type, HandlerConnectHandle>();
            _accept = new List <string>();

            if (cancellationToken != default && cancellationToken.CanBeCanceled)
            {
                _registration = cancellationToken.Register(Cancel);
            }

            _timeoutTimer = new Timer(TimeoutExpired, this, (long)_timeToLive.Value.TotalMilliseconds, -1L);

            _send = SendRequest();

        #pragma warning disable 4014
            HandleFault();
        #pragma warning restore 4014
        }
        public RabbitMqReceiveEndpointConfiguration(IRabbitMqHostConfiguration hostConfiguration, RabbitMqReceiveSettings settings,
                                                    IRabbitMqEndpointConfiguration endpointConfiguration)
            : base(hostConfiguration, endpointConfiguration)
        {
            _hostConfiguration = hostConfiguration;
            _settings          = settings;

            _endpointConfiguration = endpointConfiguration;

            _managementPipe         = new ManagementPipe();
            _connectionConfigurator = new PipeConfigurator <ConnectionContext>();
            _modelConfigurator      = new PipeConfigurator <ModelContext>();

            _inputAddress = new Lazy <Uri>(FormatInputAddress);

            if (settings.QueueName == RabbitMqExchangeNames.ReplyTo)
            {
                settings.ExchangeName = null;
                settings.BindQueue    = true;
                settings.NoAck        = true;
            }
        }
Ejemplo n.º 27
0
 public ConsumerMessageConfigurator(IBuildPipeConfigurator <ConsumeContext <Batch <TMessage> > > batchConfigurator)
 {
     _batchConfigurator = batchConfigurator;
 }
Ejemplo n.º 28
0
 public HandlerConfigurator(MessageHandler <TMessage> handler)
 {
     _pipeConfigurator    = new PipeConfigurator <ConsumeContext <TMessage> >();
     _handlerConfigurator = new HandlerPipeSpecification <TMessage>(handler);
 }
Ejemplo n.º 29
0
 public SagaMessageSpecification()
 {
     _configurator = new PipeConfigurator <SagaConsumeContext <TSaga, TMessage> >();
     _observers    = new SagaConfigurationObservable();
 }
 public ConfiguratorPipeConnectorSpecification()
 {
     _configurator = new PipeConfigurator <TContext>();
 }