protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _timeoutSagaRepository = SetupSagaRepository<TimeoutSaga>(); configurator.Subscribe(s => { s.Saga(_timeoutSagaRepository); }); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _sagaRepository = new NHibernateSagaRepository<ConcurrentSaga>(SessionFactory); configurator.Subscribe(x => x.Saga(_sagaRepository)); }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _received = new Future<A>(); configurator.Subscribe(x => { x.Handler<A>(msg => _received.Complete(msg)); }); }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { _received = new Future<A>(); configurator.Subscribe(s => s.Handler<A>(message => _received.Complete(message))); configurator.UseControlBus(); configurator.UseStomp(); }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _receivedB = new Future<B>(); configurator.Subscribe(s => s.Handler<B>(message => _receivedB.Complete(message))); }
public void Config(IComponentContext container, ServiceBusConfigurator busConfig) { busConfig.UseMsmq(); busConfig.UseMulticastSubscriptionClient(); busConfig.VerifyMsmqConfiguration(); busConfig.VerifyMsDtcConfiguration(); busConfig.ReceiveFrom(receiveFromEndPoint); }
public static void SetSubscriptionObserver(this ServiceBusConfigurator configurator, Func <IServiceBus, SubscriptionRouter, SubscriptionObserver> observerFactory) { var coordinatorConfigurator = new SubscriptionRouterBuilderConfiguratorImpl(x => { x.SetObserverFactory(observerFactory); }); configurator.AddSubscriptionRouterConfigurator(coordinatorConfigurator); }
private static void SetupAzureServiceBus(ServiceBusConfigurator sbc, string azureNameSpace) { sbc.UseAzureServiceBus(a => a.ConfigureNamespace(azureNameSpace, h => { h.SetKeyName(GetConfigValue("azure-keyname", "RootManageSharedAccessKey")); h.SetKey(GetConfigValue("azure-key", "")); })); sbc.UseAzureServiceBusRouting(); }
public static void UseSagaDistributorFor <T>(this ServiceBusConfigurator configurator) where T : SagaStateMachine <T>, ISaga { T saga = FastActivator <T> .Create(NewId.NextGuid()); var serviceConfigurator = new SagaDistributorConfigurator(configurator); saga.EnumerateDataEvents(serviceConfigurator.AddService); }
/// <summary> /// Implements a distributor-to-worker pattern for the given message type. /// </summary> /// <typeparam name="TMessage">The type of to use the distributor</typeparam> /// <param name="configurator">Service bus to implement the distributor</param> /// <param name="workerSelectionStrategy">The <code>IWorkerSelectionStrategy</code> /// used to pick which worker node to send a message</param> public static void UseDistributorFor <TMessage>(this ServiceBusConfigurator configurator, IWorkerSelectionStrategy <TMessage> workerSelectionStrategy) where TMessage : class { configurator.AddService(BusServiceLayer.Presentation, () => new Distributor <TMessage>(workerSelectionStrategy)); configurator.SetReceiveTimeout(50.Milliseconds()); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); _received = new Future<A>(); configurator.Subscribe(s => s.Handler<A>(message => _received.Complete(message))); }
protected virtual void ConfigureRemoteBus(ServiceBusConfigurator configurator) { configurator.ReceiveFrom("loopback://localhost/mt_server"); configurator.AddSubscriptionObserver((bus, coordinator) => { _remoteLoopback = new SubscriptionLoopback(bus, coordinator); return(_remoteLoopback); }); }
/// <summary> /// Specify subscription storage for the bus instance using NHibernate /// </summary> /// <param name="sessionFactory">The session factory for the storage</param> public static void UseNHibernateSubscriptionStorage(this ServiceBusConfigurator configurator, ISessionFactory sessionFactory) { Func <SubscriptionStorage> factoryMethod = () => new NHibernateSubscriptionStorage(sessionFactory); var builderConfigurator = new SubscriptionRouterBuilderConfiguratorImpl( x => x.UseSubscriptionStorage(factoryMethod)); configurator.AddSubscriptionRouterConfigurator(builderConfigurator); }
public static ServiceBusConfigurator UseStomp(this ServiceBusConfigurator configurator) { var busConfigurator = new PostCreateBusBuilderConfiguratorImpl( bus => bus.AddService(BusServiceLayer.Network, new StompSubscriptionService())); configurator.AddBusConfigurator(busConfigurator); configurator.UseJsonSerializer(); return(configurator.AddTransportFactory <StompTransportFactory>()); }
protected virtual void ConfigureLocalBus(ServiceBusConfigurator configurator) { LocalUri = new Uri("loopback://localhost/mt_client"); configurator.ReceiveFrom(LocalUri); configurator.AddSubscriptionObserver((bus, coordinator) => { _localLoopback = new SubscriptionLoopback(bus, coordinator); return(_localLoopback); }); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(cf => { cf.Handler <MyMessage>(message => receivedMessages.Add(1)); cf.Handler <MyMessage>(message => receivedMessages.Add(2)); }); }
public static void SetDefaultBusSettings(ServiceBusConfigurator sbc) { sbc.UseMsmq(); sbc.VerifyMsmqConfiguration(); sbc.SetCreateTransactionalQueues(true); sbc.UseSubscriptionService(Constants.QueueSubscriptions); sbc.UseControlBus(); sbc.SetDefaultTransactionTimeout(TimeSpan.FromSeconds(20)); sbc.SetConcurrentConsumerLimit(1); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(cf => { cf.Handler<MyMessage>(message => receivedMessages.Add(1)); cf.Handler<MyMessage>(message => receivedMessages.Add(2)); }); }
/// <summary> /// Specifies that the service bus will be using health monitoring. This means that /// the bus will publish heart beats and respond to ping messages. For more information, /// see http://readthedocs.org/docs/masstransit/en/latest/overview/standardservices.html /// </summary> /// <param name="configurator">Configurator that the extension method is invoked upon.</param> /// <param name="heartbeatInterval">The heartbeat interval in seconds (one heartbeat evey n seconds)</param> public static void UseHealthMonitoring(this ServiceBusConfigurator configurator, int heartbeatInterval) { var serviceConfigurator = new HealthClientConfigurator(); serviceConfigurator.SetHeartbeatInterval(heartbeatInterval); var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator); configurator.AddBusConfigurator(busConfigurator); }
public static void VerifyMsmqConfiguration(this ServiceBusConfigurator configurator) { var management = new MsmqManagement(); if (!management.IsInstalled()) { management.Install(); } management.Start(); }
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); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { configurator.Subscribe(x => x.Handler <Message <int> >((context, message) => { _called.Set(message); context.Respond(new Message <string> { Body = message.Body.ToString() }); })); }
public static void UseSubscriptionService(this ServiceBusConfigurator configurator, Action <SubscriptionClientConfigurator> configureCallback) { var clientConfigurator = new SubscriptionClientConfiguratorImpl(); configureCallback(clientConfigurator); configurator.AddSubscriptionCoordinatorConfigurator(new SubscriptionRouterBuilderConfiguratorImpl(x => x.SetNetwork(null))); configurator.AddSubscriptionObserver(clientConfigurator.Create); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); configurator.Subscribe(sc => { sc.Handler <FirstLevelInterface>(msg => ReceiveAndCaptureException(_first, msg)); sc.Handler <SecondLevelInterface>(msg => ReceiveAndCaptureException(_second, msg)); sc.Handler <ThirdLevelInterface>(msg => ReceiveAndCaptureException(_third, msg)); }); }
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); }
public LoopbackLocalRemoteBusScenarioBuilder() { _settings = new ServiceBusDefaultSettings(); _settings.ConcurrentConsumerLimit = 4; _settings.ReceiveTimeout = 50.Milliseconds(); _localConfigurator = new ServiceBusConfigurator(_settings); _localConfigurator.ReceiveFrom(DefaultLocalUri); _remoteConfigurator = new ServiceBusConfigurator(_settings); _remoteConfigurator.ReceiveFrom(DefaultRemoteUri); }
public static void ImplementDistributorWorker <TMessage>(this ServiceBusConfigurator configurator, Func <TMessage, Action <TMessage> > getConsumer, int inProgressLimit, int pendingLimit) where TMessage : class { var settings = new WorkerSettings { InProgressLimit = inProgressLimit, PendingLimit = pendingLimit }; configurator.AddService(BusServiceLayer.Presentation, () => new Worker <TMessage>(getConsumer, settings)); }
/// <summary> /// Use MSMQ, and allow the configuration of additional options, such as Multicast or SubscriptionService usage /// </summary> /// <typeparam name="T"></typeparam> /// <param name="configurator"></param> /// <param name="callback"></param> /// <returns></returns> public static ServiceBusConfigurator UseMsmq(this ServiceBusConfigurator configurator, Action <MsmqConfigurator> callback) { configurator.AddTransportFactory <MsmqTransportFactory>() .AddTransportFactory <MulticastMsmqTransportFactory>(); var msmqConfigurator = new MsmqConfiguratorImpl(configurator); callback(msmqConfigurator); return(configurator); }
public static void ConfigureService <TServiceConfigurator>(this ServiceBusConfigurator configurator, BusServiceLayer layer, Action <TServiceConfigurator> configure) where TServiceConfigurator : BusServiceConfigurator, new() { var serviceConfigurator = new TServiceConfigurator(); configure(serviceConfigurator); var busConfigurator = new CustomBusServiceConfigurator(serviceConfigurator); configurator.AddBusConfigurator(busConfigurator); }
public static ServiceBusConfigurator AddTransportFactory <TTransportFactory>( this ServiceBusConfigurator configurator, Action <TTransportFactory> configureFactory) where TTransportFactory : ITransportFactory, new() { return(AddTransportFactory(configurator, () => { var transportFactory = new TTransportFactory(); configureFactory(transportFactory); return transportFactory; })); }
/// <summary> /// Uses stomp as a transport channel. /// </summary> /// <param name="configurator"> The servicebus configurator. </param> /// <param name="configure"> Stomp transport configuration callback. </param> /// <returns> </returns> public static ServiceBusConfigurator UseStomp(this ServiceBusConfigurator configurator, Action <ConnectionFactoryConfigurator> configure) { var factoryConfigurator = new ConnectionFactoryConfiguratorImpl(new ConnectionFactoryDefaultSettings()); configure(factoryConfigurator); var connectionFactory = factoryConfigurator.CreateStompClientFactory(); configurator.AddTransportFactory <StompTransportFactory>(configureFactory => { configureFactory.SetConnectionFactory(connectionFactory); }); configurator.UseJsonSerializer(); return(configurator); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); _baseMessage = new Future <BaseMessage>(); _message = new Future <Message>(); configurator.Subscribe(cf => { cf.Handler <BaseMessage>(message => _baseMessage.Complete(message)); cf.Handler <Message>(message => _message.Complete(message)); }); }
protected virtual IServiceBus SetupServiceBus(Uri uri, Action <IServiceBusConfigurator> configure) { IServiceBus bus = ServiceBusConfigurator.New(x => { x.ReceiveFrom(uri); configure(x); }); Buses.Add(bus); return(bus); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); _baseMessage = new Future<BaseMessage>(); _message = new Future<Message>(); configurator.Subscribe(cf => { cf.Handler<BaseMessage>(message => _baseMessage.Complete(message)); cf.Handler<Message>(message => _message.Complete(message)); }); }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); _received = new Future <A>(); _receivedB = new Future <B>(); configurator.Subscribe(s => { s.Handler <A>(message => _received.Complete(message)); s.Handler <B>(message => _receivedB.Complete(message)); }); }
protected void RegisterServiceBus(Uri endpointUri, Action <IServiceBusConfigurator> configAction) { Kernel.Register( Component.For <IServiceBus>().UsingFactoryMethod((kernel, context) => { return(ServiceBusConfigurator.New(x => { x.SetObjectBuilder(kernel.Resolve <IObjectBuilder>()); x.ReceiveFrom(endpointUri); configAction(x); })); }).LifeStyle.Singleton); }
public static void Environments(this ServiceBusConfigurator configurator, Action <EnvironmentsConfigurator> configureCallback) { var environmentsConfigurator = new EnvironmentsConfiguratorImpl(); configureCallback(environmentsConfigurator); IServiceBusEnvironment environment = environmentsConfigurator.GetCurrentEnvironment(); if (environment != null) { environment.Configure(configurator); } }
/// <summary> /// Configure the control bus, giving the caller the option of adding additional subscriptions to the control bus /// </summary> /// <param name="configurator"></param> /// <param name="subscribeCallback"></param> /// <returns></returns> public ServiceBusConfigurator ConfigureControlBus(ServiceBusConfigurator configurator, Action<SubscriptionBusServiceConfigurator> subscribeCallback) { // we need a nice, ordered arrival of messages here configurator.SetConcurrentConsumerLimit(1); configurator.Subscribe(x => { // this is registered as transient because the control bus should not get messages // when it isn't running (and should be a temporary queue as well) x.Consumer(() => new ServiceNodeConsumer(_nodeState.CurrentBehavior)) .Transient(); }); return configurator; }
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> /// Configure the control bus, giving the caller the option of adding additional subscriptions to the control bus /// </summary> /// <param name="configurator"></param> /// <param name="subscribeCallback"></param> /// <returns></returns> public ServiceBusConfigurator ConfigureControlBus(ServiceBusConfigurator configurator, Action <SubscriptionBusServiceConfigurator> subscribeCallback) { // we need a nice, ordered arrival of messages here configurator.SetConcurrentConsumerLimit(1); configurator.Subscribe(x => { // this is registered as transient because the control bus should not get messages // when it isn't running (and should be a temporary queue as well) x.Consumer(() => new ServiceNodeConsumer(_nodeState.CurrentBehavior)) .Transient(); }); return(configurator); }
protected void RegisterServiceBus(Uri endpointUri, Action <IServiceBusConfigurator, IContext> configAction) { For <IServiceBus>() .Singleton() .Use(context => { return(ServiceBusConfigurator.New(x => { x.SetObjectBuilder(context.GetInstance <IObjectBuilder>()); x.ReceiveFrom(endpointUri); configAction(x, context); })); }); }
void ITransportConfigurator.Configure(ServiceBusConfigurator configurator, string queueName, int? consumerLimit) { Uri receiveFrom = _settings.GetQueueAddress(queueName, consumerLimit); configurator.UseRabbitMq(x => { x.ConfigureHost(receiveFrom, h => { h.SetUsername(_settings.Username); h.SetPassword(_settings.Password); h.SetRequestedHeartbeat(_settings.Heartbeat); }); }); configurator.ReceiveFrom(receiveFrom); if (consumerLimit.HasValue) configurator.SetConcurrentConsumerLimit(consumerLimit.Value); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); // this is our dependency, but could be dynamically resolved from a container in method // below is so desired. var dependency = new Dependency(); // create the actual saga repository ISagaRepository<InjectingSampleSaga> sagaRepository = SetupSagaRepository<InjectingSampleSaga>(); // decorate the saga repository with the injecting repository, specifying the property and a // lambda method to return the property value given the saga instance that was loaded // allows properties of the saga to be used in the resolution of the dependency ISagaRepository<InjectingSampleSaga> injectingRepository = InjectingSagaRepository<InjectingSampleSaga>.Create(sagaRepository, x => x.Dependency, saga => dependency); // subscribe the decorated saga repository to the bus during configuration configurator.Subscribe(x => x.Saga(injectingRepository)); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.UseNHibernateSubscriptionStorage(_sessionFactory); configurator.Subscribe(x => { x.Handler<Hello>(message => { }); }); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.UseNHibernateSubscriptionStorage(_sessionFactory); base.ConfigureLocalBus(configurator); }
public void Config(IComponentContext container, ServiceBusConfigurator busConfig) { busConfig.UseRabbitMq(); busConfig.ReceiveFrom(receiveFromEndPoint); }
public void ApplyGlobalConfig(ServiceBusConfigurator sbc) { serviceBusConfigurations(sbc); }
public ClusterConfigurator(ServiceBusConfigurator configurator) { BusConfigurator = configurator; }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(x => x.Handler<Request>((context, message) => context.Respond(new Response()))); }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { base.ConfigureServiceBus(uri, configurator); configurator.UseControlBus(); _received = new Future<A>(); }
protected override void ConfigureLocalBus(ServiceBusConfigurator configurator) { base.ConfigureLocalBus(configurator); configurator.Subscribe(s => { s.Handler<BadMessage>(x => { }); }); }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(x => { x.Handler<PingMessage>((context, message) => { _pingReceived.Set(message); context.Respond(new PongMessage {TransactionId = message.TransactionId}); }); }); }
protected virtual void ConfigureLocalBus(ServiceBusConfigurator configurator) { configurator.ReceiveFrom(_localUri); }
protected virtual void ConfigureLocalBus(ServiceBusConfigurator configurator) { }
protected override void ConfigureServiceBus(Uri uri, ServiceBusConfigurator configurator) { configurator.UseStomp(configuration => configuration.UseBuildMethod(address => new StompClient(new InMemoryTransport(_inMemoryListener)))); }
protected virtual void ConfigureRemoteBus(ServiceBusConfigurator configurator) { }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.Subscribe(x => x.Consumer<TestReplyService<PingMessage, Guid, PongMessage>>()); }
/// <summary> /// Used to configure information about the service bus for processing /// </summary> /// <param name="configurator"></param> /// <returns></returns> public ServiceBusConfigurator ConfigureServiceBus(ServiceBusConfigurator configurator) { return configurator; }
protected override void ConfigureRemoteBus(ServiceBusConfigurator configurator) { base.ConfigureRemoteBus(configurator); configurator.SetNetwork("ONE"); }