private static void SetUpBus(ContainerBuilder builder) { //TODO: Set up your own connection string in app.config var connectionString = ConfigurationManager.AppSettings["AzureConnectionString"]; // You'll want a logger. There's a ConsoleLogger and a NullLogger if you really don't care. You can roll your // own by implementing the ILogger interface if you want to hook it to an existing logging implementation. builder.RegisterType<SerilogStaticLogger>() .AsImplementedInterfaces() .SingleInstance(); // This is how you tell Cumulus where to find all your message types and handlers. var typeProvider = new AssemblyScanningTypeProvider(Assembly.GetExecutingAssembly(), typeof (OrderPizzaCommand).Assembly, typeof (NewOrderRecieved).Assembly); builder.RegisterCumulus(typeProvider); builder.Register(componentContext => new BusBuilder() .Configure() .WithConnectionString(connectionString) .WithNames("Maker", Environment.MachineName) .WithTypesFrom(typeProvider) .WithAutofacDefaults(componentContext) .WithQueueAndTopicCreation(false) .Build()) .As<IBus>() .AutoActivate() .OnActivated(async c => await c.Instance.Start()) .SingleInstance(); }
public void TheyShouldBeResolvable() { var interceptorTypes = new[] {typeof (DummyInterceptor)}; var builder = new ContainerBuilder(); var typeProvider = Substitute.For<ITypeProvider>(); typeProvider.InterceptorTypes.Returns(interceptorTypes); builder.RegisterCumulus(typeProvider); using (var container = builder.Build()) using (var dependencyResolver = container.Resolve<IDependencyResolver>()) using (var scope = dependencyResolver.CreateChildScope()) { var interceptorSetting = new GlobalOutboundInterceptorTypesSetting { Value = interceptorTypes }; var outboundInterceptorFactory = new OutboundInterceptorFactory(interceptorSetting, new PropertyInjector(Substitute.For<IClock>(), Substitute.For<IDispatchContextManager>(), Substitute.For<ILargeMessageBodyStore>())); var dummyBrokeredMessage = new BrokeredMessage(); var interceptors = outboundInterceptorFactory.CreateInterceptors(scope, dummyBrokeredMessage); interceptors.Count().ShouldBe(1); } }
private static IContainer CreateContainer() { var builder = new ContainerBuilder(); builder.RegisterType<DeepThought>(); builder.RegisterType<SerilogStaticLogger>() .As<ILogger>() .SingleInstance(); //TODO: Set up your own connection string in app.config var connectionString = ConfigurationManager.AppSettings["AzureConnectionString"]; var handlerTypesProvider = new AssemblyScanningTypeProvider(Assembly.GetExecutingAssembly()); builder.RegisterCumulus(handlerTypesProvider); builder.Register(componentContext => new BusBuilder() .Configure() .WithConnectionString(connectionString) .WithNames("MyApp", Environment.MachineName) .WithTypesFrom(handlerTypesProvider) .WithAutofacDefaults(componentContext) .Build()) .As<IBus>() .AutoActivate() .OnActivated(c => c.Instance.Start()) .SingleInstance(); var container = builder.Build(); return container; }
protected override void Load(ContainerBuilder builder) { base.Load(builder); var connectionString = ConfigurationManager.AppSettings["AzureConnectionString"]; // You'll want a logger. There's a ConsoleLogger and a NullLogger if you really don't care. You can roll your // own by implementing the ILogger interface if you want to hook it to an existing logging implementation. builder.RegisterType<ConsoleLogger>() .AsImplementedInterfaces() .SingleInstance(); // This is how you tell Cumulus where to find all your message types and handlers. var pizzaOrderingMessagesAssembly = typeof (HowLongDoPizzasTakeRequest).Assembly; var pizzaMakerMessagesAssembly = typeof (PizzaIsReady).Assembly; var CumulusAssembly = typeof (Bus).Assembly; // for stock interceptors var handlerTypesProvider = new AssemblyScanningTypeProvider(ThisAssembly, pizzaOrderingMessagesAssembly, pizzaMakerMessagesAssembly, CumulusAssembly); builder.RegisterCumulus(handlerTypesProvider); builder.Register(componentContext => new BusBuilder() .Configure() .WithConnectionString(connectionString) .WithNames("MyApp", Environment.MachineName).WithTypesFrom(handlerTypesProvider) .WithAutofacDefaults(componentContext) .Build()) .As<IBus>() .AutoActivate() .OnActivated(async c => await c.Instance.Start()) .SingleInstance(); }
public async Task NothingShouldGoBang() { var typeProvider = new AssemblyScanningTypeProvider(GetType().Assembly); var builder = new ContainerBuilder(); builder.RegisterCumulus(typeProvider); using (builder.Build()) { } }
public void NothingShouldGoBang() { var builder = new ContainerBuilder(); var typeProvider = new AssemblyScanningTypeProvider(); builder.RegisterType<ConsoleLogger>() .As<ILogger>() .SingleInstance(); builder.RegisterCumulus(typeProvider); var largeMessageBodyTempPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Guid.NewGuid().ToString()); builder.Register(c => new FileSystemStorageBuilder().Configure() .WithStorageDirectory(largeMessageBodyTempPath) .WithLogger(c.Resolve<ILogger>()) .Build()) .As<ILargeMessageBodyStore>() .SingleInstance(); builder.Register(c => new BusBuilder().Configure() .WithNames("IntegrationTestHarness", Environment.MachineName) .WithConnectionString( @"Endpoint=sb://shouldnotexist.example.com/;SharedAccessKeyName=IntegrationTestHarness;SharedAccessKey=borkborkbork=") .WithLargeMessageStorage(sc => sc.WithLargeMessageBodyStore(c.Resolve<ILargeMessageBodyStore>()) .WithMaxSmallMessageSize(50*1024) .WithMaxLargeMessageSize(1024*1024)) .WithTypesFrom(typeProvider) .WithDefaultTimeout(TimeSpan.FromSeconds(10)) .WithLogger(c.Resolve<ILogger>()) .Build()) .As<IBus>() .SingleInstance(); using (var container = builder.Build()) { container.Resolve<IBus>(); } }
public IDependencyResolver Create(ITypeProvider typeProvider) { var builder = new ContainerBuilder(); builder.RegisterCumulus(typeProvider); return builder.Build().Resolve<IDependencyResolver>(); }