Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
        public void SagasWorksAsUsual()
        {
            // Arrange
            var resetEvent = new ManualResetEvent(false);

            DeclareQueue(QueueName);
            MySaga.MyHandle = resetEvent;
            adapter.Register(typeof(MySaga));

            // Act
            adapter.Bus.Send(new DummyMessage
            {
                Message = "hello there!"
            });

            // Assert
            if (!resetEvent.WaitOne(3.Seconds()))
            {
                Assert.Fail("Did not receive message within 3 seconds of waiting!");
            }
        }
        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;
        }
Exemplo n.º 8
0
        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 = TrackDisposable(new BuiltinContainerAdapter());

            DropTables();

            adapter.Register(typeof(MySaga));

            Configure.With(adapter)
            .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn))
            .Transport(t => t.UseMsmq(InputQueueName, ErrorQueueName))
            .Sagas(s => s.StoreInSqlServer(ConnectionString, "sagas", "saga_index")
                   .EnsureTablesAreCreated())
            .CreateBus()
            .Start();
        }
Exemplo n.º 10
0
        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();
            }
        }
Exemplo n.º 11
0
        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();
            }
        }
Exemplo n.º 12
0
        static void Main()
        {
            XmlConfigurator.Configure();

            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(() => new RandomRequestHandler(adapter.Bus));

                Configure.With(adapter)
                         .Logging(l => l.Log4Net())
                         .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                         .CreateBus()
                         .Start();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 13
0
        static void Main()
        {
            XmlConfigurator.Configure();

            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(() => new RandomRequestHandler(adapter.Bus));

                Configure.With(adapter)
                .Logging(l => l.Log4Net())
                .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                .CreateBus()
                .Start();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 14
0
        static void Main()
        {
            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(typeof(Handler));

                Configure.With(adapter)
                .Logging(l => l.ColoredConsole(minLevel: LogLevel.Warn))
                .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                .MessageOwnership(o => o.FromRebusConfigurationSection())
                .CreateBus()
                .Start();

                adapter.Bus.Subscribe <string>();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 15
0
        public void CanHandleSagaMessageWithinTransactionScope()
        {
            using (var adapter = new BuiltinContainerAdapter())
            {
                //Arrange
                adapter.Register(typeof(TestSaga));

                var bus = CreateBus(adapter, InputQueueName);
                bus.Start(1).Subscribe <TestSagaMessage>();
                Thread.Sleep(1000); //Wait for subscription message to be processed

                // Act
                adapter.Bus.Publish(new TestSagaMessage());
                Thread.Sleep(1000); //Wait for message to be processed

                // Assert
                Assert.That(() => ExecuteScalar(string.Format("select count(*) from {0}", SagaTableName)),
                            Is.EqualTo(1).After(12000, 500));
            }
        }
Exemplo n.º 16
0
        static void Main()
        {
            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(typeof(ChargeTheCustomer));

                Configure.With(adapter)
                .Logging(l => l.None())
                .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                .MessageOwnership(o => o.FromRebusConfigurationSection())
                .CreateBus()
                .Start();

                Console.WriteLine("----Billing----");

                adapter.Bus.Subscribe <NewTradeRecorded>();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 17
0
        static void Main()
        {
            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(() => new CheckCreditStatus(adapter.Bus));

                Configure.With(adapter)
                         .Logging(l => l.ColoredConsole(LogLevel.Error))
                         .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                         .MessageOwnership(o => o.FromRebusConfigurationSection())
                         .CreateBus()
                         .Start();

                Console.WriteLine("----Confirmations----");

                adapter.Bus.Subscribe<NewTradeRecorded>();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 18
0
        static void Main()
        {
            using (var adapter = new BuiltinContainerAdapter())
            {
                adapter.Register(() => new CheckCreditStatus(adapter.Bus));

                Configure.With(adapter)
                .Logging(l => l.ColoredConsole(LogLevel.Error))
                .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                .MessageOwnership(o => o.FromRebusConfigurationSection())
                .CreateBus()
                .Start();

                Console.WriteLine("----Confirmations----");

                adapter.Bus.Subscribe <NewTradeRecorded>();

                Console.WriteLine("Press ENTER to quit");
                Console.ReadLine();
            }
        }
Exemplo n.º 19
0
        static void Main(string[] args)
        {
            // we have the container in a variable, but you would probably stash it in a static field somewhere
            using (var adapter = new BuiltinContainerAdapter())
            {
                Configure.With(adapter)
                .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                .MessageOwnership(d => d.FromRebusConfigurationSection())
                .CreateBus().Start();

                adapter.Register(typeof(Handlers.PrintDateTime));

                var timer = new System.Timers.Timer();
                timer.Elapsed += delegate { adapter.Bus.SendLocal(DateTime.Now); };
                timer.Interval = 1000;
                timer.Start();

                Console.WriteLine("Press enter to quit");
                Console.ReadLine();
            } //< always dispose bus when your app quits - here done via the container adapter
        }
Exemplo n.º 20
0
        static void Main()
        {
            using (var adapter = new BuiltinContainerAdapter())
                using (var timer = new Timer())
                {
                    adapter.Register(() => new PrintDateTime());

                    var bus = Configure.With(adapter)
                              .Logging(l => l.None())
                              .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
                              .MessageOwnership(d => d.FromRebusConfigurationSection())
                              .CreateBus()
                              .Start();

                    timer.Elapsed += delegate { bus.Send(DateTime.Now); };
                    timer.Interval = 1000;
                    timer.Start();

                    Console.WriteLine("Press enter to quit");
                    Console.ReadLine();
                }
        }
Exemplo n.º 21
0
 public void Register <TService, TImplementation>() where TService : class where TImplementation : TService
 {
     builtinContainerAdapter.Register(typeof(TImplementation));
 }