public void TestFixtureSetUp() { _container = new WindsorContainer(); _container.Kernel.ComponentRegistered += Kernel_ComponentRegistered; String connectionString = ConfigurationManager.ConnectionStrings["log"].ConnectionString; var rebusUrl = new MongoUrl(connectionString); var rebusClient = rebusUrl.CreateClient(false); var rebusDb = rebusClient.GetDatabase(rebusUrl.DatabaseName); _messages = rebusDb.GetCollection <TrackedMessageModel>("messages"); MongoDbMessagesTracker tracker = new MongoDbMessagesTracker(rebusDb); JarvisRebusConfiguration configuration = new JarvisRebusConfiguration(connectionString, "test") { ErrorQueue = "jarvistest-errors", InputQueue = "jarvistest-input", MaxRetry = 3, NumOfWorkers = 1, EndpointsMap = new System.Collections.Generic.Dictionary <string, string>() { { "Jarvis.Framework.Tests", "jarvistest-input" } } }; configuration.AssembliesWithMessages = new List <System.Reflection.Assembly>() { typeof(SampleMessage).Assembly, }; JarvisTestBusBootstrapper bb = new JarvisTestBusBootstrapper( _container, configuration, tracker); TestHelper.RegisterSerializerForFlatId <SampleAggregateId>(); bb.Start(); var rebusConfigurer = _container.Resolve <RebusConfigurer>(); rebusConfigurer.Start(); _bus = _container.Resolve <IBus>(); _handler = new SampleCommandHandler(); _commandExecutionExceptionHelper = new JarvisDefaultCommandExecutionExceptionHelper(NullLogger.Instance, 20, 10); var handlerAdapter = new MessageHandlerToCommandHandlerAdapter <SampleTestCommand>(_handler, _commandExecutionExceptionHelper, tracker, _bus); _container.Register( Component .For <IHandleMessages <SampleTestCommand> >() .Instance(handlerAdapter) ); var handlerAggregateAdapter = new MessageHandlerToCommandHandlerAdapter <SampleAggregateTestCommand>(_handler, _commandExecutionExceptionHelper, tracker, _bus); _container.Register( Component .For <IHandleMessages <SampleAggregateTestCommand> >() .Instance(handlerAggregateAdapter) ); }
public void TestFixtureSetUp() { _container = new WindsorContainer(); String connectionString = ConfigurationManager.ConnectionStrings["log"].ConnectionString; var logUrl = new MongoUrl(connectionString); var logClient = logUrl.CreateClient(false); var logDb = logClient.GetDatabase(logUrl.DatabaseName); logDb.Drop(); _messages = logDb.GetCollection <TrackedMessageModel>("messages"); JarvisRebusConfiguration configuration = new JarvisRebusConfiguration(connectionString, "test") { ErrorQueue = "jarvistest-errors", InputQueue = "jarvistest-input", MaxRetry = RebusMaxRetry, NumOfWorkers = 1, EndpointsMap = new System.Collections.Generic.Dictionary <string, string>() { ["Jarvis.Framework.Tests"] = "jarvistest-input" } }; configuration.AssembliesWithMessages = new List <System.Reflection.Assembly>() { typeof(SampleMessage).Assembly, }; MongoDbMessagesTracker tracker = new MongoDbMessagesTracker(logDb); BusBootstrapper bb = CreateBusBootstrapper(tracker, configuration); bb.Start(); var rebusConfigurer = _container.Resolve <RebusConfigurer>(); rebusConfigurer.Start(); _bus = _container.Resolve <IBus>(); var handler = new AnotherSampleCommandHandler(); var commandExecutionExceptionHelper = new JarvisDefaultCommandExecutionExceptionHelper(NullLogger.Instance, 20, 10); var handlerAdapter = new MessageHandlerToCommandHandlerAdapter <AnotherSampleTestCommand>( handler, commandExecutionExceptionHelper, tracker, _bus); _container.Register( Component .For <IHandleMessages <AnotherSampleTestCommand> >() .Instance(handlerAdapter) ); }
public void TestFixtureSetup() { var map = new Dictionary <string, string>() { { "Jarvis.Framework.Tests.BusTests.MessageFolder.SampleMessage, Jarvis.Framework.Tests", "test.queueA" }, { "Jarvis.Framework.Tests.BusTests.MessageFolder", "test.queueB" }, }; _sut = new JarvisRebusConfiguration("", ""); _sut.EndpointsMap = map; _sut.AssembliesWithMessages = new List <Assembly>() { typeof(SampleMessage).Assembly }; }
public void TestFixtureSetUp() { _container = new WindsorContainer(); String connectionString = ConfigurationManager.ConnectionStrings["log"].ConnectionString; var rebusUrl = new MongoUrl(connectionString); var rebusClient = new MongoClient(rebusUrl); var rebusDb = rebusClient.GetDatabase(rebusUrl.DatabaseName); _messages = rebusDb.GetCollection<TrackedMessageModel>("messages"); MongoDbMessagesTracker tracker = new MongoDbMessagesTracker(rebusDb); BusBootstrapper bb = new BusBootstrapper( _container, connectionString, "test", tracker); JarvisRebusConfiguration configuration = new JarvisRebusConfiguration() { ErrorQueue = "jarvistest-errors", InputQueue = "jarvistest-input", MaxRetry = 3, NumOfWorkers = 1, EndpointsMap = new System.Collections.Generic.Dictionary<string, string>() { { "Jarvis.Framework.Tests" , "jarvistest-input"} } }; bb.Configuration = configuration; bb.Start(); var startableBus = _container.Resolve<IStartableBus>(); startableBus.Start(); _bus = _container.Resolve<IBus>(); _handler = new SampleCommandHandler(); _handlerAdapter = new MessageHandlerToCommandHandlerAdapter<SampleTestCommand>( _handler, tracker, _bus); _container.Register( Component .For<IHandleMessages<SampleTestCommand>>() .Instance(_handlerAdapter) ); }
private BusBootstrapper CreateBusBootstrapper(MongoDbMessagesTracker tracker, JarvisRebusConfiguration configuration) { if (_transportType == "msmq") { return(new MsmqTransportJarvisTestBusBootstrapper( _container, configuration, tracker)); } else { return(new MongoDbTransportJarvisTestBusBootstrapper( _container, configuration, tracker)); } }
public MsmqTransportJarvisTestBusBootstrapper(Castle.Windsor.IWindsorContainer container, JarvisRebusConfiguration configuration, IMessagesTracker messagesTracker) : base(container, configuration, messagesTracker) { }
public TestProcess(Boolean useJarvisConfiguration, String connectionString, String inputQueue, Dictionary <String, String> mapping) { _container = new WindsorContainer(); NullMessageTracker tracker = new NullMessageTracker(); MongoUrlBuilder mb = new MongoUrlBuilder(connectionString); mb.DatabaseName = inputQueue; JarvisRebusConfiguration configuration = new JarvisRebusConfiguration(mb.ToString(), "test") { ErrorQueue = "jarvistest-errors", InputQueue = inputQueue, //we listen on input1 MaxRetry = 3, NumOfWorkers = 1, EndpointsMap = mapping, }; configuration.CentralizedConfiguration = true; configuration.AssembliesWithMessages = new List <System.Reflection.Assembly>() { typeof(SampleMessage).Assembly, }; if (useJarvisConfiguration) { _busBootstrapper = new JarvisTestBusBootstrapper( _container, configuration, tracker); _busBootstrapper.Start(); var rebusConfigurer = _container.Resolve <RebusConfigurer>(); rebusConfigurer.Start(); _bus = _container.Resolve <IBus>(); } else { var mongoUrl = new MongoUrl(connectionString); var mongoClient = new MongoClient(mongoUrl); var _mongoDatabase = mongoClient.GetDatabase(mongoUrl.DatabaseName); var busConfiguration = global::Rebus.Config.Configure.With(new CastleWindsorContainerAdapter(_container)) .Logging(l => l.ColoredConsole()) .Serialization(c => c.UseNewtonsoftJson(BusBootstrapper.JsonSerializerSettingsForRebus)) .Timeouts(t => t.StoreInMongoDb(_mongoDatabase, configuration.Prefix + "-timeouts")) .Subscriptions(s => s.StoreInMongoDb(_mongoDatabase, configuration.Prefix + "-subscriptions", isCentralized: true)) .Events(e => e.BeforeMessageSent += BeforeMessageSent); busConfiguration = busConfiguration .Transport(t => t.UseMsmq(configuration.InputQueue)) .Options(o => o.SimpleRetryStrategy( errorQueueAddress: configuration.ErrorQueue, maxDeliveryAttempts: configuration.MaxRetry )).Options(o => o.SetNumberOfWorkers(configuration.NumOfWorkers)) .Routing(r => r.TypeBased().MapAssemblyOf <AnotherSampleMessage>(mapping.First().Value)) ; _bus = busConfiguration.Start(); } }