public static void SetShutdownTimeout(this ServiceBusConfigurator configurator, TimeSpan timeout)
        {
            var controlBusConfigurator =
                new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; });

            configurator.AddBusConfigurator(controlBusConfigurator);
        }
		public static void SetConcurrentConsumerLimit(this ServiceBusConfigurator configurator, int concurrentConsumerLimit)
		{
			var controlBusConfigurator =
				new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; });

			configurator.AddBusConfigurator(controlBusConfigurator);
		}
Beispiel #3
0
        /// <summary>
        /// Sets the number of concurrent receive threads that can execute simultaneously. In many cases, such as when
        /// using non-transactional transports, this can lead to very-bad-things(TM)
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="concurrentReceiverLimit"></param>
        public static void SetConcurrentReceiverLimit(this ServiceBusConfigurator configurator, int concurrentReceiverLimit)
        {
            var controlBusConfigurator =
                new PostCreateBusBuilderConfigurator(bus => { bus.ConcurrentReceiveThreads = concurrentReceiverLimit; });

            configurator.AddBusConfigurator(controlBusConfigurator);
        }
        /// <summary>
        /// Sets the receive timeout on the service bus endpoint receiver. Settings this to a lower value has limited
        /// benefit other than in unit testing to reduce bus disposal time
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="receiveTimeout"></param>
        public static IServiceBusConfigurator SetReceiveTimeout(this IServiceBusConfigurator configurator, TimeSpan receiveTimeout)
        {
            var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ReceiveTimeout = receiveTimeout; });

            configurator.AddBusConfigurator(controlBusConfigurator);
            return(configurator);
        }
Beispiel #5
0
        public static void SetShutdownTimeout(this ServiceBusConfigurator configurator, TimeSpan timeout)
        {
            var controlBusConfigurator =
                new PostCreateBusBuilderConfigurator(bus => { bus.ShutdownTimeout = timeout; });

            configurator.AddBusConfigurator(controlBusConfigurator);
        }
Beispiel #6
0
        public static IServiceBusConfigurator SetConcurrentConsumerLimit(this IServiceBusConfigurator configurator, int concurrentConsumerLimit)
        {
            var controlBusConfigurator =
                new PostCreateBusBuilderConfigurator(bus => { bus.MaximumConsumerThreads = concurrentConsumerLimit; });

            configurator.AddBusConfigurator(controlBusConfigurator);
            return(configurator);
        }
Beispiel #7
0
        public static void EnableMessageTracing(this ServiceBusConfigurator configurator)
        {
            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var service = new MessageTraceBusService(bus.EventChannel);

                bus.AddService(BusServiceLayer.Network, service);
            });

            configurator.AddBusConfigurator(busConfigurator);
        }
        public static void EnableMessageTracing(this ServiceBusConfigurator configurator)
        {
            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
                {
                    var service = new MessageTraceBusService(bus.EventChannel);

                    bus.AddService(BusServiceLayer.Network, service);
                });

            configurator.AddBusConfigurator(busConfigurator);
        }
Beispiel #9
0
        public static void AddOutboundInterceptor(this ServiceBusConfigurator configurator, IOutboundMessageInterceptor interceptor)
        {
            var builderConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                interceptorConfigurator.Create(interceptor);
            });

            configurator.AddBusConfigurator(builderConfigurator);
        }
        /// <summary>
        /// Adds an inbound message interceptor to the bus configuration
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="interceptor"></param>
        public static IServiceBusConfigurator AddInboundInterceptor(this IServiceBusConfigurator configurator, IInboundMessageInterceptor interceptor)
        {
            var builderConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new InboundMessageInterceptorConfigurator(bus.InboundPipeline);

                interceptorConfigurator.Create(interceptor);
            });

            configurator.AddBusConfigurator(builderConfigurator);
            return(configurator);
        }
Beispiel #11
0
        public static IServiceBusConfigurator EnableMessageTracing(this IServiceBusConfigurator configurator)
        {
            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var service = new MessageTraceBusService(bus.EventChannel);

                bus.AddService(IBusServiceLayer.Presentation, service);
            });

            configurator.AddBusConfigurator(busConfigurator);
            return(configurator);
        }
        /// <summary>
        /// Adds an inbound message interceptor to the bus configuration
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="interceptor"></param>
        public static void AddInboundInterceptor(this ServiceBusConfigurator configurator,
            IInboundMessageInterceptor interceptor)
        {
            var builderConfigurator = new PostCreateBusBuilderConfigurator(bus =>
                {
                    var interceptorConfigurator = new InboundMessageInterceptorConfigurator(bus.InboundPipeline);

                    interceptorConfigurator.Create(interceptor);
                });

            configurator.AddBusConfigurator(builderConfigurator);
        }
Beispiel #13
0
        public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            configurator.UseRabbitMq();
        }
		public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
		{
			configurator.SetSubscriptionObserver((bus,coordinator) => new RabbitMqSubscriptionBinder(bus));

			var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
				{
					var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

					interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
				});

			configurator.AddBusConfigurator(busConfigurator);

			configurator.UseRabbitMq();
		}
        /// <summary>
        /// Specifies that RabbitMQ should be added as a transport for the service bus.
        /// </summary>
        /// <param name="configurator"></param>
        /// <returns></returns>
        public static ServiceBusConfigurator UseRabbitMq(this ServiceBusConfigurator configurator)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                // make sure we publish correctly through this interceptor; works on the outgoing pipeline
                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            return(UseRabbitMq <ServiceBusConfigurator>(configurator));
        }
        /// <summary>
        /// Specifies that RabbitMQ should be added as a transport for the service bus. Includes a callback
        /// that can configure additional settings on the transport, such as SSL.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="configureFactory"></param>
        /// <returns></returns>
        public static void UseRabbitMq(this ServiceBusConfigurator configurator,
                                       Action <RabbitMqTransportFactoryConfigurator> configureFactory)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                // make sure we publish correctly through this interceptor; works on the outgoing pipeline
                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            UseRabbitMq((EndpointFactoryConfigurator)configurator, configureFactory);
        }
Beispiel #17
0
        /// <summary>
        /// Configure the service bus to use the queues and topics routing semantics with
        /// Azure ServiceBus.
        /// </summary>
        public static void UseAzureServiceBusRouting <T>(this T configurator)
            where T : ServiceBusConfigurator
        {
            configurator.SetSubscriptionObserver((sb, router) =>
            {
                var inboundTransport = sb.Endpoint.InboundTransport.CastAs <InboundTransportImpl>();
                return(new TopicSubscriptionObserver(inboundTransport.MessageNameFormatter, inboundTransport));
            });

            var busConf = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConf = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                interceptorConf.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConf);

            // configurator.UseAzureServiceBus();
        }
Beispiel #18
0
        /// <summary>
        /// Configure the service bus to use the queues and topics routing semantics with
        /// Azure ServiceBus.
        /// </summary>
        public static void UseAzureServiceBusRouting <T>(this T configurator)
            where T : ServiceBusConfigurator
        {
            configurator.SetSubscriptionObserver((sb, router) =>
            {
                var inboundTransport = sb.Endpoint.InboundTransport as InboundAzureServiceBusTransport;
                if (inboundTransport == null)
                {
                    throw new ConfigurationException("The inbound transport is not an Azure Service Bus transport");
                }

                return(new TopicSubscriptionObserver(inboundTransport, inboundTransport.MessageNameFormatter));
            });

            var busConf = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConf = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                interceptorConf.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConf);
        }
		/// <summary>
		/// Sets the receive timeout on the service bus endpoint receiver. Settings this to a lower value has limited
		/// benefit other than in unit testing to reduce bus disposal time
		/// </summary>
		/// <param name="configurator"></param>
		/// <param name="receiveTimeout"></param>
		public static void SetReceiveTimeout(this ServiceBusConfigurator configurator, TimeSpan receiveTimeout)
		{
			var controlBusConfigurator = new PostCreateBusBuilderConfigurator(bus => { bus.ReceiveTimeout = receiveTimeout; });

			configurator.AddBusConfigurator(controlBusConfigurator);
		}