BuiltinContainerAdapter GetBus(string inputQueueName, bool encryption, bool compression) { var adapter = new BuiltinContainerAdapter(); MsmqUtil.PurgeQueue(inputQueueName); Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Warn)) .Transport(t => t.UseMsmq(inputQueueName, ErrorQueueName)) .MessageOwnership(o => o.Use(this)) .Decorators(d => { // make this the first decoration step and thus the innermost decorator d.AddDecoration(b => b.SendMessages = new TellTaleSender(b.SendMessages)); if (encryption) { d.EncryptMessageBodies("NLEJVjDYnKfxEUAl2gxflFJfixHwh94iWDltaoayjTM="); } if (compression) { d.CompressMessageBodies(0); } }) .CreateBus() .Start(); stuffToDispose.Add(adapter); return(adapter); }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Register(() => new ChargeTheCustomer(adapter.Bus)); Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Error)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .Sagas(s => s.StoreInMongoDb("mongodb://localhost/billing") .SetCollectionName <BillingSagaData>("billingSagas")) .Timeouts(t => t.StoreInMongoDb("mongodb://localhost/billing", "timeouts")) .CreateBus() .Start(); Console.WriteLine("----Billing----"); adapter.Bus.Subscribe <NewTradeRecorded>(); adapter.Bus.Subscribe <TradeConfirmed>(); adapter.Bus.Subscribe <TradeRejected>(); Console.WriteLine("Press ENTER to quit"); Console.ReadLine(); } }
public void ItHasBeenFixed() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Handle<string>(s => { throw new ApplicationException("Will trigger that the message gets moved to the error queue"); }); Configure.With(adapter) .Transport(t => t.UseRabbitMq(ConnectionString, "test.input", "test.error") .UseExchange("AlternativeExchange")) .CreateBus() .Start(); adapter.Bus.SendLocal("hello there!!!"); // wait until we're sure Thread.Sleep(2.Seconds()); using (var errorQueue = new RabbitMqMessageQueue(ConnectionString, "test.error")) { var serializer = new JsonMessageSerializer(); var receivedTransportMessage = errorQueue.ReceiveMessage(new NoTransaction()); receivedTransportMessage.ShouldNotBe(null); var errorMessage = serializer.Deserialize(receivedTransportMessage); errorMessage.Messages.Length.ShouldBe(1); errorMessage.Messages[0].ShouldBeTypeOf<string>(); ((string)errorMessage.Messages[0]).ShouldBe("hello there!!!"); } } }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Register(() => new ChargeTheCustomer(adapter.Bus)); Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Error)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .Sagas(s => s.StoreInMongoDb("mongodb://localhost/billing") .SetCollectionName<BillingSagaData>("billingSagas")) .Timeouts(t => t.StoreInMongoDb("mongodb://localhost/billing", "timeouts")) .CreateBus() .Start(); Console.WriteLine("----Billing----"); adapter.Bus.Subscribe<NewTradeRecorded>(); adapter.Bus.Subscribe<TradeConfirmed>(); adapter.Bus.Subscribe<TradeRejected>(); Console.WriteLine("Press ENTER to quit"); Console.ReadLine(); } }
public void ItWorks() { using (AppConfig.Change(AppConfigPath)) using (var adapter = new BuiltinContainerAdapter()) { var messageHandled = new ManualResetEvent(false); adapter.Handle <string>(s => messageHandled.Set()); var bus = Configure.With(adapter) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .CreateBus() .Start(); bus.SendLocal("hello there!"); messageHandled.WaitUntilSetOrDie(5.Seconds()); } var auditedMessages = MsmqTestHelper .GetMessagesFrom(AuditQueue) .ToList(); Assert.That(auditedMessages.Count, Is.EqualTo(1), "Expected to find exactly one copy of the sent message in the audit queue"); Assert.That(auditedMessages.Single().Messages[0], Is.EqualTo("hello there!")); }
public void RunTest(bool useLowLatencyBackoffStrategy, int iterations) { var adapter = new BuiltinContainerAdapter(); var messageHasBeenReceived = new ManualResetEvent(false); adapter.Handle<string>(s => messageHasBeenReceived.Set()); ConfigureBus(adapter, useLowLatencyBackoffStrategy); var bus = adapter.Bus; var recordedLatencies = new List<TimeSpan>(); iterations.Times(() => { // let things calm down Console.Write("Calming down.... "); Thread.Sleep(30.Seconds()); Console.Write("Sending! "); var sendTime = DateTime.UtcNow; bus.SendLocal("w0000tamafooook!!1"); Console.Write("waiting... "); messageHasBeenReceived.WaitUntilSetOrDie(20.Seconds()); var elapsedUntilNow = sendTime.ElapsedUntilNow(); Console.WriteLine("got the message - recorded latency of {0}", elapsedUntilNow); recordedLatencies.Add(elapsedUntilNow); messageHasBeenReceived.Reset(); }); Console.WriteLine("AVERAGE RECORDED LATENCY: {0:0.00} s", recordedLatencies.Average(t => t.TotalSeconds)); }
public void ExchangeCreatedIfPusblishWithExchangePerType() { var exchangeName = typeof(TransportMessageToSend).FullName; using (var adapter = new BuiltinContainerAdapter()) { DeleteQueue("test.input"); DeleteQueue("test.error"); DeleteExchange(exchangeName); var msg = new TransportMessageToSend { Body = Encoding.GetBytes("this is a message!") }; var bus = Configure.With(adapter) .Transport(t => t.UseRabbitMq(ConnectionString, "test.input", "test.error") .ManageSubscriptions() .UseOneExchangePerMessageTypeRouting()) .CreateBus() .Start(); bus.Publish(msg); Assert.True(ExchangeExists(exchangeName)); } }
public void RunTest(bool useLowLatencyBackoffStrategy, int iterations) { var adapter = new BuiltinContainerAdapter(); var messageHasBeenReceived = new ManualResetEvent(false); adapter.Handle <string>(s => messageHasBeenReceived.Set()); ConfigureBus(adapter, useLowLatencyBackoffStrategy); var bus = adapter.Bus; var recordedLatencies = new List <TimeSpan>(); iterations.Times(() => { // let things calm down Console.Write("Calming down.... "); Thread.Sleep(30.Seconds()); Console.Write("Sending! "); var sendTime = DateTime.UtcNow; bus.SendLocal("w0000tamafooook!!1"); Console.Write("waiting... "); messageHasBeenReceived.WaitUntilSetOrDie(20.Seconds()); var elapsedUntilNow = sendTime.ElapsedUntilNow(); Console.WriteLine("got the message - recorded latency of {0}", elapsedUntilNow); recordedLatencies.Add(elapsedUntilNow); messageHasBeenReceived.Reset(); }); Console.WriteLine("AVERAGE RECORDED LATENCY: {0:0.00} s", recordedLatencies.Average(t => t.TotalSeconds)); }
static void Main() { XmlConfigurator.Configure(); using (var adapter = new BuiltinContainerAdapter()) { adapter.Register(typeof (RandomReplyHandler)); Configure.With(adapter) .Logging(l => l.Log4Net()) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus() .Start(); var bus = adapter.Bus; while (true) { Console.WriteLine("Press (a) to send a request and (q) to quit"); var c = Console.ReadKey(true).KeyChar; if (c == 'q') break; var request = new SomeRandomRequest(); bus.Send(request); } } }
IContainerAdapter CreateAdapter() { var adapter = new BuiltinContainerAdapter(); TrackDisposable(adapter); return(adapter); }
protected override void DoSetUp() { events = new ConcurrentQueue<string>(); builtinContainerAdapter = new BuiltinContainerAdapter(); TrackDisposable(builtinContainerAdapter); using (var q = new AzureServiceBusMessageQueue(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName)) { q.Purge(); } Configure.With(builtinContainerAdapter) .Logging(l => l.Console(minLevel: LogLevel.Info)) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName, "error")) .Events(e => { e.MessageContextEstablished += (bus, context) => { WriteEvent("msg context established"); context.Disposed += () => { WriteEvent("msg context disposed"); }; }; e.AddUnitOfWorkManager(new EventOutputtingUnitOfWorkManager(text => WriteEvent(text))); }) .CreateBus().Start(1); }
protected override void DoSetUp() { events = new ConcurrentQueue <string>(); builtinContainerAdapter = new BuiltinContainerAdapter(); TrackDisposable(builtinContainerAdapter); using (var q = new AzureServiceBusMessageQueue(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName)) { q.Purge(); } Configure.With(builtinContainerAdapter) .Logging(l => l.Console(minLevel: LogLevel.Info)) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName, "error")) .Events(e => { e.MessageContextEstablished += (bus, context) => { WriteEvent("msg context established"); context.Disposed += () => { WriteEvent("msg context disposed"); }; }; e.AddUnitOfWorkManager(new EventOutputtingUnitOfWorkManager(text => WriteEvent(text))); }) .CreateBus().Start(1); }
protected override void DoSetUp() { SqlServerFixtureBase.DropTable(SagaIndex); SqlServerFixtureBase.DropTable(SagaTable); var busConnection = AzureServiceBusMessageQueueFactory.ConnectionString; var sqlConnection = SqlServerFixtureBase.ConnectionString; using (var azureQueue = new AzureServiceBusMessageQueue(busConnection, InputQueueName)) { azureQueue.Purge(); } allRepliesReceived = new ManualResetEvent(false); adapter = new BuiltinContainerAdapter(); adapter.Register(() => new RequestHandler(adapter.Bus)); sagaPersister = new SqlServerSagaPersister(sqlConnection, SagaIndex, SagaTable).EnsureTablesAreCreated(); Configure.With(TrackDisposable(adapter)) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseAzureServiceBus(busConnection, InputQueueName, "error")) .Sagas(s => s.Use(sagaPersister)) .CreateBus() .Start(3); }
static void Main() { XmlConfigurator.Configure(); using (var adapter = new BuiltinContainerAdapter()) { adapter.Register(typeof(RandomReplyHandler)); Configure.With(adapter) .Logging(l => l.Log4Net()) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus() .Start(); var bus = adapter.Bus; while (true) { Console.WriteLine("Press (a) to send a request and (q) to quit"); var c = Console.ReadKey(true).KeyChar; if (c == 'q') { break; } var request = new SomeRandomRequest(); bus.Send(request); } } }
protected override void DoSetUp() { resetEvent = new ManualResetEvent(false); adapter = TrackDisposable(new BuiltinContainerAdapter()); logStatements = new List <string>(); unifOfWorkManager = new CustomizableThrowingUnifOfWorkManager(); }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Handle<string>(reply => Console.WriteLine("Got reply: {0}" + Environment.NewLine, reply)); Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus() .Start(); var bus = adapter.Bus; Console.WriteLine("Type a greeting + ENTER to send to server" + Environment.NewLine); while (true) { var text = Console.ReadLine(); if (string.IsNullOrWhiteSpace(text)) break; var greeting = new SensitiveMessage(text); bus.Send(greeting); } } }
public void ItHasBeenFixed() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Handle <string>(s => { throw new ApplicationException("Will trigger that the message gets moved to the error queue"); }); Configure.With(adapter) .Transport(t => t.UseRabbitMq(ConnectionString, "test.input", "test.error") .UseExchange("AlternativeExchange")) .CreateBus() .Start(); adapter.Bus.SendLocal("hello there!!!"); // wait until we're sure Thread.Sleep(2.Seconds()); using (var errorQueue = new RabbitMqMessageQueue(ConnectionString, "test.error")) { var serializer = new JsonMessageSerializer(); var receivedTransportMessage = errorQueue.ReceiveMessage(new NoTransaction()); receivedTransportMessage.ShouldNotBe(null); var errorMessage = serializer.Deserialize(receivedTransportMessage); errorMessage.Messages.Length.ShouldBe(1); errorMessage.Messages[0].ShouldBeOfType <string>(); ((string)errorMessage.Messages[0]).ShouldBe("hello there!!!"); } } }
public void DoesNotUseTransactionScopeByDefault() { using (var adapter = new BuiltinContainerAdapter()) { var resetEvent = new ManualResetEvent(false); var transactionScopeDetected = false; adapter.Handle<string>(str => { transactionScopeDetected = Transaction.Current != null; resetEvent.Set(); }); Configure.With(adapter) .Transport(t => t.UseMsmq(InputQueueName, ErrorQueueName)) .CreateBus() .Start(); adapter.Bus.SendLocal("bla bla whatever"); if (!resetEvent.WaitOne(2.Seconds())) { Assert.Fail("Did not receive the message withing 2 second timeout!!"); } transactionScopeDetected.ShouldBe(false); } }
public void ItWorks() { using (AppConfig.Change(AppConfigPath)) using (var adapter = new BuiltinContainerAdapter()) { var messageHandled = new ManualResetEvent(false); adapter.Handle<string>(s => messageHandled.Set()); var bus = Configure.With(adapter) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .CreateBus() .Start(); bus.SendLocal("hello there!"); messageHandled.WaitUntilSetOrDie(5.Seconds()); } var auditedMessages = MsmqTestHelper .GetMessagesFrom(AuditQueue) .ToList(); Assert.That(auditedMessages.Count, Is.EqualTo(1), "Expected to find exactly one copy of the sent message in the audit queue"); Assert.That(auditedMessages.Single().Messages[0], Is.EqualTo("hello there!")); }
protected override void DoSetUp() { resetEvent = new ManualResetEvent(false); adapter = TrackDisposable(new BuiltinContainerAdapter()); logStatements = new List<string>(); unifOfWorkManager = new CustomizableThrowingUnifOfWorkManager(); }
protected override void DoSetUp() { RebusLoggerFactory.Current = new ConsoleLoggerFactory(false) { MinLevel = LogLevel.Warn }; PurgeQueue(QueueName1); PurgeQueue(QueueName2); adapter1 = TrackDisposable(new BuiltinContainerAdapter()); Configure.With(adapter1) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName1, "error")) .CreateBus() .Start(); adapter2 = TrackDisposable(new BuiltinContainerAdapter()); var receiverBus = (RebusBus)Configure .With(adapter2) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName2, "error")) .CreateBus(); receiverBus.Start(10); RebusLoggerFactory.Current = new ConsoleLoggerFactory(false) {MinLevel = LogLevel.Warn}; }
protected override void DoSetUp() { RebusLoggerFactory.Current = new ConsoleLoggerFactory(false) { MinLevel = LogLevel.Warn }; PurgeQueue(QueueName1); PurgeQueue(QueueName2); adapter1 = TrackDisposable(new BuiltinContainerAdapter()); Configure.With(adapter1) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName1, "error")) .CreateBus() .Start(); adapter2 = TrackDisposable(new BuiltinContainerAdapter()); var receiverBus = (RebusBus)Configure .With(adapter2) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName2, "error")) .CreateBus(); receiverBus.Start(10); RebusLoggerFactory.Current = new ConsoleLoggerFactory(false) { MinLevel = LogLevel.Warn }; }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Handle <string>(reply => Console.WriteLine("Got reply: {0}" + Environment.NewLine, reply)); Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus() .Start(); var bus = adapter.Bus; Console.WriteLine("Type a greeting + ENTER to send to server" + Environment.NewLine); while (true) { var text = Console.ReadLine(); if (string.IsNullOrWhiteSpace(text)) { break; } var greeting = new GreetingMessage(text); bus.Send(greeting); } } }
public void CanBeConfiguredToHandleMessagesInsideTransactionScope() { using (var adapter = new BuiltinContainerAdapter()) { var resetEvent = new ManualResetEvent(false); var transactionScopeDetected = false; adapter.Handle <string>(str => { transactionScopeDetected = Transaction.Current != null; resetEvent.Set(); }); Configure.With(adapter) .Transport(t => t.UseMsmq(InputQueueName, ErrorQueueName)) .Behavior(b => b.HandleMessagesInsideTransactionScope()) .CreateBus() .Start(); adapter.Bus.SendLocal("bla bla whatever"); if (!resetEvent.WaitOne(2.Seconds())) { Assert.Fail("Did not receive the message withing 2 second timeout!!"); } transactionScopeDetected.ShouldBe(true); } }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Error)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .Subscriptions(s => s.StoreInMongoDb("mongodb://localhost/warmcroc", "tradingSubs")) .CreateBus() .Start(); Console.WriteLine("----Trading----"); while (true) { var counterpart = Input <string>("counterpart"); var amount = Input <decimal>("amount"); var price = Input <decimal>("price"); adapter.Bus.Publish(new NewTradeRecorded { TradeId = Guid.NewGuid(), Amount = amount, Counterpart = counterpart, Price = price }); } } }
IBus PullOneOutOfTheHat(string inputQueueName, Action <int> handler = null, bool oneExchangePerType = false, string inputExchange = null) { var adapter = new BuiltinContainerAdapter(); if (handler != null) { adapter.Handle <SomeEvent>(e => handler(e.Number)); } Configure.With(adapter) .Transport(t => { var obj = t.UseRabbitMq(ConnectionString, inputQueueName, "error").ManageSubscriptions(); if (oneExchangePerType) { obj.UseOneExchangePerMessageTypeRouting(); } if (inputExchange != null) { obj.UseExchangeAsInputAddress(inputExchange); } }) .CreateBus().Start(); TrackDisposable(adapter); return(adapter.Bus); }
IContainerAdapter CreateAdapter() { var adapter = new BuiltinContainerAdapter(); disposables.Add(adapter); return(adapter); }
protected override void DoSetUp() { DropMessageTable(); adapter1 = TrackDisposable(new BuiltinContainerAdapter()); adapter2 = TrackDisposable(new BuiltinContainerAdapter()); Configure .With(adapter1) .Logging(l => l.ColoredConsole(MinLogLevel)) .Transport(t => t.UseSqlServer(ConnectionString, InputQueueName1, "error") .EnsureTableIsCreated() .PurgeInputQueue()) .MessageOwnership(o => o.Use(this)) .Behavior(b => b.SetMaxRetriesFor <Exception>(0)) .CreateBus() .Start(NumberOfWorkers); Configure .With(adapter2) .Logging(l => l.ColoredConsole(MinLogLevel)) .Transport(t => t.UseSqlServer(ConnectionString, InputQueueName2, "error") .EnsureTableIsCreated() .PurgeInputQueue()) .MessageOwnership(o => o.Use(this)) .Behavior(b => b.SetMaxRetriesFor <Exception>(0)) .CreateBus() .Start(NumberOfWorkers); }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Handle<Reply>(reply => Console.WriteLine("Got reply '{0}' (from OS process {1})", reply.KeyChar, reply.OsProcessId)); Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseSqlServer("server=.; database=rebus; trusted_connection=true", "producer.input", "error").EnsureTableIsCreated()) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus() .Start(); Console.WriteLine("Press Q to quit or any other key to produce a job"); while (true) { var keyChar = char.ToLower(Console.ReadKey(true).KeyChar); switch (keyChar) { case 'q': goto quit; default: adapter.Bus.Send(new Job(keyChar)); break; } } quit: Console.WriteLine("Quitting..."); } }
public MathRequestClient(string server) { MQAdapter = new BuiltinContainerAdapter(); Configure.With(MQAdapter) .Transport(t => t.UseRabbitMqInOneWayMode("amqp://" + server)) // we need send only .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus().Start(); }
public void CanConfigureNumberOfRetriesForExceptionTypes() { using (var adapter = new BuiltinContainerAdapter()) using (var errorQueue = GetMessageQueue(ErrorQueueName)) { errorQueue.Purge(); using (var inputQueue = GetMessageQueue(TestCustomRetryCountInput)) { inputQueue.Purge(); } var bimCount = 0; var bomCount = 0; var bommelomCount = 0; adapter.Handle <string>(str => { if (str == "bim") { bimCount++; throw new InvalidOperationException("bim!"); } if (str == "bom") { bomCount++; throw new ArgumentException("bom!"); } bommelomCount++; throw new ExpectationViolationException("bommelom!"); }); var bus = (RebusBus) Configure.With(adapter) .Logging(l => l.None()) .Transport(t => t.UseMsmq(TestCustomRetryCountInput, ErrorQueueName)) .Behavior(b => b.SetMaxRetriesFor <InvalidOperationException>(9) .SetMaxRetriesFor <ArgumentException>(7)) .CreateBus(); bus.Start(1); adapter.Bus.SendLocal("bim"); adapter.Bus.SendLocal("bom"); adapter.Bus.SendLocal("bommelom"); // dequeue three messages var first = errorQueue.Receive(TimeSpan.FromSeconds(10)); var second = errorQueue.Receive(TimeSpan.FromSeconds(1)); var third = errorQueue.Receive(TimeSpan.FromSeconds(1)); bimCount.ShouldBe(9); bomCount.ShouldBe(7); bommelomCount.ShouldBe(5); //< default } }
public void CanConfigureNumberOfRetriesForExceptionTypes() { using (var adapter = new BuiltinContainerAdapter()) using (var errorQueue = GetMessageQueue(ErrorQueueName)) { errorQueue.Purge(); using (var inputQueue = GetMessageQueue(TestCustomRetryCountInput)) { inputQueue.Purge(); } var bimCount = 0; var bomCount = 0; var bommelomCount = 0; adapter.Handle<string>(str => { if (str == "bim") { bimCount++; throw new InvalidOperationException("bim!"); } if (str == "bom") { bomCount++; throw new ArgumentException("bom!"); } bommelomCount++; throw new ExpectationViolationException("bommelom!"); }); var bus = (RebusBus) Configure.With(adapter) .Logging(l => l.None()) .Transport(t => t.UseMsmq(TestCustomRetryCountInput, ErrorQueueName)) .Behavior(b => b.SetMaxRetriesFor<InvalidOperationException>(9) .SetMaxRetriesFor<ArgumentException>(7)) .CreateBus(); bus.Start(1); adapter.Bus.SendLocal("bim"); adapter.Bus.SendLocal("bom"); adapter.Bus.SendLocal("bommelom"); // dequeue three messages var first = errorQueue.Receive(TimeSpan.FromSeconds(10)); var second = errorQueue.Receive(TimeSpan.FromSeconds(1)); var third = errorQueue.Receive(TimeSpan.FromSeconds(1)); bimCount.ShouldBe(9); bomCount.ShouldBe(7); bommelomCount.ShouldBe(5); //< default } }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Transport(t => t.UseMsmq(QueueName, "error")) .CreateBus() .Start(); bus = adapter.Bus; }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); stuffToDispose.Add(adapter); startableBus = Configure.With(adapter) .Transport(t => t.UseRabbitMq(ConnectionString, "test-autodelete.input", "error") .ManageSubscriptions() .AutoDeleteInputQueue()) .CreateBus(); }
public void VerifyItIsNotSo() { using (AppConfig.Change("Bugs\\Cfg\\empty-app.config")) using (var adapter = new BuiltinContainerAdapter()) { Configure.With(adapter) .Transport(t => t.UseMsmq(InputQueueName, "error")) .CreateBus() .Start(); } }
protected override void DoSetUp() { stuffToDispose = new List <IDisposable>(); resetEvent = new ManualResetEvent(false); adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Transport(t => t.UseAzureServiceBus(ConnectionString, InputQueueName, ErrorQueueName)) .Events(e => e.PoisonMessage += (b, m, i) => resetEvent.Set()) .CreateBus() .Start(); }
protected override void DoSetUp() { resetEvent = new ManualResetEvent(false); adapter = TrackDisposable(new BuiltinContainerAdapter()); Configure.With(adapter) .Transport(t => t.UseAzureServiceBus(ConnectionString, InputQueueName, ErrorQueueName)) .Events(e => e.PoisonMessage += (b, m, i) => resetEvent.Set()) .CreateBus() .Start(); }
static BuiltinContainerAdapter StartResponseServer(string server) { // client Rebus configuration var adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Transport(t => t.UseRabbitMq("amqp://" + server, "MathResponses", "MathResponseErrors")) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus().Start(); // register all relevant message handlers adapter.Register(typeof(MathResponseCallHandler)); return adapter; }
protected override void DoSetUp() { emittedLogStatements = new List<string>(); adapter = TrackDisposable(new BuiltinContainerAdapter()); resetEvent = new ManualResetEvent(false); Configure.With(adapter) .Logging(l => l.Use(new ListLoggerFactory(emittedLogStatements))) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Events(e => e.AddUnitOfWorkManager(this)) .Events(e => e.PoisonMessage += delegate { resetEvent.Set(); }) .CreateBus() .Start(); }
protected override void DoSetUp() { emittedLogStatements = new List <string>(); adapter = TrackDisposable(new BuiltinContainerAdapter()); resetEvent = new ManualResetEvent(false); Configure.With(adapter) .Logging(l => l.Use(new ListLoggerFactory(emittedLogStatements))) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Events(e => e.AddUnitOfWorkManager(this)) .Events(e => e.PoisonMessage += delegate { resetEvent.Set(); }) .CreateBus() .Start(); }
static BuiltinContainerAdapter StartResponseServer(string server) { // client Rebus configuration var adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Transport(t => t.UseRabbitMq("amqp://" + server, "MathResponses", "MathResponseErrors")) .MessageOwnership(o => o.FromRebusConfigurationSection()) .CreateBus().Start(); // register all relevant message handlers adapter.Register(typeof(MathResponseCallHandler)); return(adapter); }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); MsmqUtil.PurgeQueue(InputQueueName); Configure.With(adapter) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Behavior(b => b.SetCurrentPrincipalWhenUserNameHeaderIsPresent()) .CreateBus() .Start(); bus = adapter.Bus; }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .Subscriptions(s => s.StoreInXmlFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "rebus_subscriptions.xml"))) .CreateBus() .Start(); var startupTime = DateTime.Now; while (true) { Console.WriteLine(@"a) Publish string b) Publish DateTime c) Publish TimeSpan q) Quit"); var keyChar = char.ToLower(Console.ReadKey(true).KeyChar); switch (keyChar) { case 'a': adapter.Bus.Publish("Hello there, I'm a publisher!"); break; case 'b': adapter.Bus.Publish(DateTime.Now); break; case 'c': adapter.Bus.Publish(DateTime.Now - startupTime); break; case 'q': goto consideredHarmful; default: Console.WriteLine("There's no option ({0})", keyChar); break; } } consideredHarmful :; Console.WriteLine("Quitting!"); } }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .Subscriptions(s => s.StoreInXmlFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "rebus_subscriptions.xml"))) .CreateBus() .Start(); var startupTime = DateTime.Now; while (true) { Console.WriteLine(@"a) Publish string b) Publish DateTime c) Publish TimeSpan q) Quit"); var keyChar = char.ToLower(Console.ReadKey(true).KeyChar); switch (keyChar) { case 'a': adapter.Bus.Publish("Hello there, I'm a publisher!"); break; case 'b': adapter.Bus.Publish(DateTime.Now); break; case 'c': adapter.Bus.Publish(DateTime.Now - startupTime); break; case 'q': goto consideredHarmful; default: Console.WriteLine("There's no option ({0})", keyChar); break; } } consideredHarmful: ; Console.WriteLine("Quitting!"); } }
protected override void DoSetUp() { DeleteQueueIfExists(); adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Transport(t => t.UseMsmq(QueueName, "error")) .MessageOwnership(o => o.Use(this)) .EnableInlineReplyHandlers() .CreateBus() .Start(); bus = adapter.Bus; }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Warn)) .Transport(t => t.UseRabbitMq(RabbitMqFixtureBase.ConnectionString, InputQueueName, "error") .ManageSubscriptions() .PurgeInputQueue()) .CreateBus() .Start(); bus = adapter.Bus; bus.Subscribe <byte[]>(); }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Warn)) .Transport(t => t.UseRabbitMq(RabbitMqFixtureBase.ConnectionString, InputQueueName, "error") .ManageSubscriptions() .PurgeInputQueue()) .CreateBus() .Start(); bus = adapter.Bus; bus.Subscribe<byte[]>(); }
protected override void DoSetUp() { adapter = TrackDisposable(new BuiltinContainerAdapter()); MsmqUtil.EnsureMessageQueueExists(MsmqUtil.GetPath(AuditQueueName)); MsmqUtil.PurgeQueue(AuditQueueName); MsmqUtil.PurgeQueue(InputQueueName); Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel:LogLevel.Warn)) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Behavior(b => b.EnableMessageAudit(AuditQueueName)) .CreateBus() .Start(1); }
static void Main() { using (var adapter = new BuiltinContainerAdapter()) { adapter.Register(() => new GreetingHandler(adapter.Bus)); Configure.With(adapter) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig()) .CreateBus() .Start(); Console.WriteLine("Press ENTER to quit"); Console.ReadLine(); } }
protected override void DoSetUp() { recipientAdapter = TrackDisposable(new BuiltinContainerAdapter()); senderAdapter = TrackDisposable(new BuiltinContainerAdapter()); Configure.With(recipientAdapter) .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, RecipientInputQueueName, "error")) .CreateBus() .Start(); Configure.With(senderAdapter) .Transport(t => t.UseAzureServiceBusInOneWayClientMode(AzureServiceBusMessageQueueFactory.ConnectionString)) .CreateBus() .Start(); }
protected override void DoSetUp() { adapter = TrackDisposable(new BuiltinContainerAdapter()); Configure.With(adapter) .Transport(t => t.UseRabbitMq(RabbitMqFixtureBase.ConnectionString, InputQueueName, "error")) .Behavior(b => b.EnableMessageAudit(AuditQueueName)) .CreateBus() .Start(1); RabbitMqFixtureBase.DeleteQueue(AuditQueueName); // make sure the receiver is in place at this point, ensuring that bindings'n'all are in place... auditQueueReceiver = TrackDisposable(new RabbitMqMessageQueue(RabbitMqFixtureBase.ConnectionString, AuditQueueName)); auditQueueReceiver.Initialize(); }
protected override void DoSetUp() { logStatements = new List<string>(); resetEvent = new ManualResetEvent(false); specialUnitOfWorkManager = new WillAlwaysThrowWhenCommitting(); adapter = new BuiltinContainerAdapter(); stuffToDispose = new List<IDisposable> {adapter}; Configure.With(adapter) .Logging(l => l.Use(new ListLoggerFactory(logStatements))) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Events(e => e.AddUnitOfWorkManager(specialUnitOfWorkManager)) .Events(e => e.PoisonMessage += (bus, msg, info) => resetEvent.Set()) .CreateBus() .Start(1); }
public void CanSkipCreatingTheErrorQueue() { using (var adapter = new BuiltinContainerAdapter()) { const string errorTopic = "this_is_just_a_topic_now_not_a_queue"; DeleteQueue(errorTopic); Configure.With(adapter) .Transport(t => t.UseRabbitMq(ConnectionString, "test.input", errorTopic) .DoNotCreateErrorQueue()) .CreateBus() .Start(); Assert.That(QueueExists(errorTopic), Is.False, "Did not expect a queue to exist with the name '{0}'", errorTopic); } }
protected override void DoSetUp() { adapter = new BuiltinContainerAdapter(); bus = Configure.With(adapter) .Logging(l => l.ColoredConsole(LogLevel.Warn)) .Behavior(b => b.SetMaxRetriesFor<ApplicationException>(0)) .Transport(t => t.UseMsmq(InputQueueName, "error")) .Subscriptions(s => s.Use(this)) .MessageOwnership(m => m.Use(this)) .CreateBus() .Start(); resetEvent = new ManualResetEvent(false); userName = "******"; }
protected override void DoSetUp() { senderAdapter = new BuiltinContainerAdapter(); Configure.With(senderAdapter) .Transport(t => t.UseMsmq(SenderInputQueueName, "error")) .Events(e => { e.MessageMutators.Add(new EvilMutator("first")); e.MessageMutators.Add(new EvilMutator("second")); e.MessageMutators.Add(new EvilMutator("third")); }) .CreateBus().Start(); receiverAdapter = new BuiltinContainerAdapter(); Configure.With(receiverAdapter) .Transport(t => t.UseMsmq(ReceiverInputQueueName, "error")) .CreateBus().Start(); }
protected override void DoSetUp() { bus1 = new BuiltinContainerAdapter(); Configure.With(TrackDisposable(bus1)) .Logging(l => l.ColoredConsole(minLevel:LogLevel.Warn)) .Transport(t => t.UseTheFileSystem(playDir, InputQueueName, "error")) .CreateBus() .Start(10); bus2 = new BuiltinContainerAdapter(); Configure.With(TrackDisposable(bus2)) .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn)) .Transport(t => t.UseTheFileSystemInOneWayClientMode(playDir)) .CreateBus() .Start(); }