Beispiel #1
0
        public DoWork(IObjectBuilder objectBuilder)
        {
            ObjectBuilder = objectBuilder;

            var endpointFactory = EndpointFactoryConfigurator.New(x =>
            {
                x.RegisterTransport <MsmqEndpoint>();
                x.SetObjectBuilder(objectBuilder);
                x.SetDefaultSerializer <XmlMessageSerializer>();
            });

            ControlBus = ControlBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);

                x.ReceiveFrom(new Uri(ConfigurationManager.AppSettings["SourceQueue"]).AppendToPath("_control"));

                x.PurgeBeforeStarting();
            });

            DataBus = ServiceBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);
                x.ConfigureService <SubscriptionClientConfigurator>(y =>
                {
                    y.SetSubscriptionServiceEndpoint(ConfigurationManager.AppSettings["SubscriptionQueue"]);
                });
                x.ReceiveFrom(ConfigurationManager.AppSettings["SourceQueue"]);
                x.UseControlBus(ControlBus);
                x.SetConcurrentConsumerLimit(4);
                x.ImplementDistributorWorker <DoSimpleWorkItem>(ConsumeMessage);
            });
        }
Beispiel #2
0
        public void Start()
        {
            ControlBus = ControlBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);

                x.ReceiveFrom(ConfigurationManager.AppSettings["SourceQueue"] + "_control");

                x.PurgeBeforeStarting();
            });

            DataBus = ServiceBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);
                x.ConfigureService <SubscriptionClientConfigurator>(y =>
                {
                    y.SetSubscriptionServiceEndpoint(ConfigurationManager.AppSettings["SubscriptionQueue"]);
                });
                x.ReceiveFrom(ConfigurationManager.AppSettings["SourceQueue"]);
                x.UseControlBus(ControlBus);
                x.SetConcurrentConsumerLimit(4);

                x.ConfigureService <GridConfigurator>(grid =>
                {
                    if (ConfigurationManager.AppSettings["IsProposer"].Equals("true"))
                    {
                        grid.SetProposer();
                    }
                    grid.For <DoSimpleWorkItem>().Use <DoWork>();
                });
            });
        }
Beispiel #3
0
        public ServiceInstance(string name, IEndpointFactory endpointFactory, string subscriptionServiceEndpointAddress, Action <IObjectBuilder> configureBuilder, Action <IServiceBusConfigurator> configurator)
        {
            ObjectBuilder = MockRepository.GenerateMock <IObjectBuilder>();
            ObjectBuilder.Stub(x => x.GetInstance <IEndpointFactory>()).Return(endpointFactory);

            configureBuilder(ObjectBuilder);

            ControlBus = ControlBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);
                x.ReceiveFrom(name + "_control");

                x.PurgeBeforeStarting();
            });

            DataBus = ServiceBusConfigurator.New(x =>
            {
                x.SetObjectBuilder(ObjectBuilder);
                x.ConfigureService <SubscriptionClientConfigurator>(y =>
                {
                    // setup endpoint
                    y.SetSubscriptionServiceEndpoint(subscriptionServiceEndpointAddress);
                });
                x.ReceiveFrom(name);
                x.UseControlBus(ControlBus);
                x.SetConcurrentConsumerLimit(5);

                configurator(x);
            });
        }
        /// <summary>
        /// Create a control bus, associate it with the ServiceBus being configured, and allow for customization using
        /// the specified method.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="configure"></param>
        public static IServiceBusConfigurator UseControlBus(this IServiceBusConfigurator configurator, Action <IControlBusConfigurator> configure)
        {
            var controlBusConfigurator = new ControlBusConfigurator();

            configure(controlBusConfigurator);

            configurator.AddBusConfigurator(controlBusConfigurator);
            return(configurator);
        }
        protected void RegisterControlBus(Uri endpointUri, Action <IServiceBusConfigurator> configAction)
        {
            Bind <IControlBus>()
            .ToMethod(context =>
            {
                return(ControlBusConfigurator.New(x =>
                {
                    x.SetObjectBuilder(context.Kernel.Get <IObjectBuilder>());
                    x.ReceiveFrom(endpointUri);
                    x.SetConcurrentConsumerLimit(1);

                    configAction(x);
                }));
            }).InSingletonScope();
        }
Beispiel #6
0
        protected void RegisterControlBus(Uri endpointUri, Action <IServiceBusConfigurator> configAction)
        {
            For <IControlBus>()
            .Singleton()
            .Use(context =>
            {
                return(ControlBusConfigurator.New(x =>
                {
                    x.SetObjectBuilder(context.GetInstance <IObjectBuilder>());
                    x.ReceiveFrom(endpointUri);
                    x.SetConcurrentConsumerLimit(1);

                    configAction(x);
                }));
            });
        }
        protected void RegisterControlBus(Uri endpointUri, Action <IServiceBusConfigurator> configAction)
        {
            Kernel.Register(
                Component.For <IControlBus>().UsingFactoryMethod((kernel, context) =>
            {
                return(ControlBusConfigurator.New(x =>
                {
                    x.SetObjectBuilder(kernel.Resolve <IObjectBuilder>());
                    x.ReceiveFrom(endpointUri);
                    x.SetConcurrentConsumerLimit(1);

                    configAction(x);
                }));
            }).LifeStyle.Singleton
                );
        }
        protected override void ConfigureServiceBus(Uri uri, IServiceBusConfigurator configurator)
        {
            base.ConfigureServiceBus(uri, configurator);

            IControlBus controlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom(GetControlBusUri(uri));

                x.PurgeBeforeStarting();
            });

            configurator.ConfigureService <SubscriptionClientConfigurator>(y =>
            {
                // Subscription Endpoint
                y.SetSubscriptionServiceEndpoint(SubscriptionUri);
            });

            configurator.UseControlBus(controlBus);
        }
Beispiel #9
0
        protected void SetupRemoteBus()
        {
            RemoteControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom(ServerControlUri);

                x.PurgeBeforeStarting();
            });

            RemoteBus = ServiceBusConfigurator.New(x =>
            {
                x.ConfigureService <SubscriptionClientConfigurator>(y =>
                {
                    // setup endpoint
                    y.SetSubscriptionServiceEndpoint(SubscriptionServiceUri);
                });
                x.ReceiveFrom(ServerUri);
                x.UseControlBus(RemoteControlBus);
            });
        }
Beispiel #10
0
        protected void SetupLocalBus()
        {
            LocalControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom(ClientControlUri);

                x.PurgeBeforeStarting();
            });

            LocalBus = ServiceBusConfigurator.New(x =>
            {
                x.ConfigureService <SubscriptionClientConfigurator>(y =>
                {
                    // setup endpoint
                    y.SetSubscriptionServiceEndpoint(SubscriptionServiceUri);
                });
                x.ReceiveFrom(ClientUri);
                x.SetConcurrentConsumerLimit(4);
                x.UseControlBus(LocalControlBus);

                ConfigureLocalBus(x);
            });
        }
Beispiel #11
0
        protected override void EstablishContext()
        {
            base.EstablishContext();

            SetupSubscriptionService();

            LocalControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom("loopback://localhost/mt_client_control");

                x.PurgeBeforeStarting();
            });

            RemoteControlBus = ControlBusConfigurator.New(x =>
            {
                x.ReceiveFrom("loopback://localhost/mt_server_control");

                x.PurgeBeforeStarting();
            });

            LocalBus = ServiceBusConfigurator.New(x =>
            {
                x.AddService <SubscriptionPublisher>();
                x.AddService <SubscriptionConsumer>();
                x.ReceiveFrom("loopback://localhost/mt_client");
                x.UseControlBus(LocalControlBus);
            });

            RemoteBus = ServiceBusConfigurator.New(x =>
            {
                x.AddService <SubscriptionPublisher>();
                x.AddService <SubscriptionConsumer>();
                x.ReceiveFrom("loopback://localhost/mt_server");
                x.UseControlBus(RemoteControlBus);
            });
        }