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); }); }
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>(); }); }); }
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(); }
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); }
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); }); }
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); }); }
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); }); }