private static void Main(string[] args) { _log.Info("InternalInventoryService Loading..."); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("InternalInventoryService"); c.SetDisplayName("Internal Inventory Service"); c.SetDescription("Handles inventory for internal systems"); c.RunAsLocalSystem(); c.DependencyOnMsmq(); c.BeforeStartingServices(a => { var container = new DefaultMassTransitContainer("InternalInventoryService.Castle.xml"); container.AddComponent<InventoryLevelService>(); container.AddComponent<InternalInventoryServiceLifeCycle>(typeof (InternalInventoryServiceLifeCycle).Name); var wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => wob); }); c.ConfigureService<InternalInventoryServiceLifeCycle>(typeof(InternalInventoryServiceLifeCycle).Name, s => { s.WhenStarted(o => o.Start()); s.WhenStopped(o => o.Stop()); }); }); Runner.Host(cfg, args); }
private static IWindsorContainer BootstrapContainer() { IWindsorContainer container = new DefaultMassTransitContainer("Starbucks.Customer.Castle.xml"); container.AddComponent<CustomerService>(typeof (CustomerService).Name); container.AddComponent<OrderDrinkForm>(); return container; }
static void Main(string[] args) { XmlConfigurator.Configure(new FileInfo("testsubscriber.log4net.xml")); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("Test Subscriber"); c.SetDisplayName("Test Subscriber"); c.SetDescription("a Mass Transit test service for handling new customer orders."); c.RunAsLocalSystem(); c.DependencyOnMsmq(); c.BeforeStart(a => { }); c.ConfigureService<TestSubscriberService>(s=> { s.CreateServiceLocator(() => { IWindsorContainer container = new DefaultMassTransitContainer("TestSubscriber.Castle.xml"); container.AddComponent<TestSubscriberService>(); container.AddComponent<Subscriber>(); return ServiceLocator.Current; }); s.WhenStarted(o => o.Start()); s.WhenStopped(o=>o.Stop()); }); }); Runner.Host(cfg, args); }
private void StartService() { StopService(); try { _container = new DefaultMassTransitContainer("Server.Castle.xml"); _bus = _container.Resolve<IServiceBus>("server"); //_controlBus = _container.Resolve<IServiceBus>("control"); _container.AddComponent<UserAgentSession>(); _container.AddComponent<TheAnswerMan>(); _bus.Subscribe<UserAgentSession>(); _bus.Subscribe<TheAnswerMan>(); messageTimer.Start(); } catch (Exception ex) { _log.Error(ex); MessageBox.Show("The server failed to start:\n\n" + ex.Message); } }
private static void Main(string[] args) { XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.xml")); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("PostalService"); c.SetDisplayName("Sample Email Service"); c.SetDescription("we goin' postal"); c.RunAsLocalSystem(); c.DependencyOnMsmq(); c.BeforeStartingServices(a => { var container = new DefaultMassTransitContainer("postal-castle.xml"); container.AddComponent<SendEmailConsumer>("sec"); container.AddComponent<PostalService>(); }); c.ConfigureService<PostalService>(typeof(PostalService).Name, a => { a.WhenStarted(o => o.Start()); a.WhenStopped(o => o.Stop()); }); }); Runner.Host(cfg, args); }
private static IWindsorContainer BootstrapContainer() { IWindsorContainer container = new DefaultMassTransitContainer("Starbucks.Barista.Castle.xml"); container.AddComponent("sagaRepository", typeof (ISagaRepository<>), typeof (InMemorySagaRepository<>)); container.AddComponent<DrinkPreparationSaga>(); container.AddComponent<BaristaService>(typeof (BaristaService).Name); return container; }
static void Main(string[] args) { XmlConfigurator.Configure(new FileInfo("MockShipMessagePublisher.log4net.xml")); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("Mock Shipping Msg Service"); c.SetDisplayName("Mock Shipping Msg Service"); c.SetDescription("a service for faking shipping messages and Publishing the corresponding events on the Bus."); c.DependencyOnMsmq(); c.RunAsFromInteractive(); //Is this right? c.BeforeStart(a => { }); c.ConfigureService<ShippingMessageService>(s => { s.CreateServiceLocator(() => { IWindsorContainer container = new DefaultMassTransitContainer("MockShipMessagePublisher.Castle.xml"); Container.InitializeWith(container); Environment.Setup(); container.AddComponent<ShippingMessageService>(); return ServiceLocator.Current; }); s.WhenStarted(o => o.Start()); s.WhenStopped(o => o.Stop()); }); }); Runner.Host(cfg, args); }
private static void ConfigureHealthService(IServiceConfigurator<HealthService> configurator) { configurator.CreateServiceLocator(() => { var container = new DefaultMassTransitContainer(); container.AddComponent<HealthService>(typeof (HealthService).Name); container.AddComponent("sagaRepository", typeof (ISagaRepository<>), typeof (InMemorySagaRepository<>)); var endpointFactory = EndpointFactoryConfigurator.New(x => { // the default x.SetObjectBuilder(container.Resolve<IObjectBuilder>()); x.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory); var bus = ServiceBusConfigurator.New(x => { x.SetObjectBuilder(container.Resolve<IObjectBuilder>()); x.ReceiveFrom("msmq://localhost/mt_health"); x.ConfigureService<SubscriptionClientConfigurator>(client => { // need to add the ability to read from configuratino settings somehow client.SetSubscriptionServiceEndpoint("msmq://localhost/mt_subscriptions"); }); }); container.Kernel.AddComponentInstance("bus", typeof (IServiceBus), bus); return container.Resolve<IObjectBuilder>(); }); configurator.WhenStarted(service => { service.Start(); }); configurator.WhenStopped(service => { service.Stop(); service.Dispose(); }); }
private static void ConfigureSubscriptionService(IServiceConfigurator<SubscriptionService> configurator) { configurator.CreateServiceLocator(() => { var container = new DefaultMassTransitContainer(); container.AddComponent("sagaRepository", typeof (ISagaRepository<>), typeof (InMemorySagaRepository<>)); container.AddComponent<ISubscriptionRepository, InMemorySubscriptionRepository>(); container.AddComponent<SubscriptionService, SubscriptionService>(typeof (SubscriptionService).Name); var endpointFactory = EndpointFactoryConfigurator.New(x => { // the default x.SetObjectBuilder(container.Resolve<IObjectBuilder>()); x.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory); var bus = ServiceBusConfigurator.New(servicesBus => { servicesBus.SetObjectBuilder(container.Resolve<IObjectBuilder>()); servicesBus.ReceiveFrom("msmq://localhost/mt_subscriptions"); servicesBus.SetConcurrentConsumerLimit(1); }); container.Kernel.AddComponentInstance("bus", typeof (IServiceBus), bus); return container.ObjectBuilder; }); configurator.WhenStarted(service => service.Start()); configurator.WhenStopped(service => { service.Stop(); service.Dispose(); }); }
private static void Main(string[] args) { XmlConfigurator.Configure(new FileInfo("MockOrder.log4net.xml")); var cfg = RunnerConfigurator.New(c => { c.SetServiceName("MockOrderSubscriber"); c.SetDisplayName("MockOrderSubscriber"); c.SetDescription("a service for mocking up order processing."); c.DependencyOnMsmq(); c.RunAsLocalSystem(); c.BeforeStart(a => { }); c.ConfigureService<MockOrderService>(s => { s.CreateServiceLocator(() => { IWindsorContainer container = new DefaultMassTransitContainer("MockOrder.Castle.xml"); Container.InitializeWith(container); Environment.Setup(); container.AddComponent<MockOrderService>(); container.AddComponent<Subscriber<CreateOrderMessage>>(); //var builder = new WindsorObjectBuilder(container.Kernel); //ServiceLocator.SetLocatorProvider(() => builder); return ServiceLocator.Current; }); s.WhenStarted(o => o.Start()); s.WhenStopped(o => o.Stop()); }); }); Runner.Host(cfg, args); }
private static void Main(string[] args) { XmlConfigurator.ConfigureAndWatch(new FileInfo("server.log4net.xml")); _log.Info("Server Loading"); IRunConfiguration cfg = RunnerConfigurator.New(c => { c.SetServiceName("SampleService"); c.SetServiceName("Sample Service"); c.SetServiceName("Something"); c.DependencyOnMsmq(); c.RunAsLocalSystem(); c.ConfigureService<PasswordUpdateService>(typeof(PasswordUpdateService).Name, s => { s.WhenStarted(o => { IServiceBus bus = ServiceBusConfigurator.New(x => { x.ReceiveFrom("msmq://localhost/mt_server"); x.ConfigureService<SubscriptionClientConfigurator>(b => { b.SetSubscriptionServiceEndpoint("msmq://localhost/mt_subscriptions"); }); }); o.Start(bus); }); s.WhenStopped(o => o.Stop()); s.CreateServiceLocator(() => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator .New(x => { x.SetObjectBuilder(ServiceLocator.Current.GetInstance<IObjectBuilder>()); x.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory); container.AddComponent<PasswordUpdateService>(typeof(PasswordUpdateService).Name); return ServiceLocator.Current; //set in DefaultMTContainer }); }); }); Runner.Host(cfg, args); }
private static void Main(string[] args) { _log.Info("SubscriptionManagerGUI Loading..."); var cfg = RunnerConfigurator.New(x => { x.SetServiceName("SubscriptionManagerGUI"); x.SetDisplayName("Sample GUI Subscription Service"); x.SetDescription("Coordinates subscriptions between multiple systems"); x.DependencyOnMsmq(); x.RunAsLocalSystem(); x.UseWinFormHost<SubscriptionManagerForm>(); x.BeforeStartingServices(s => { var container = new DefaultMassTransitContainer(); IEndpointFactory endpointFactory = EndpointFactoryConfigurator.New(e => { e.SetObjectBuilder(container.Resolve<IObjectBuilder>()); e.RegisterTransport<MsmqEndpoint>(); }); container.Kernel.AddComponentInstance("endpointFactory", typeof (IEndpointFactory), endpointFactory); container.AddComponent<SubscriptionManagerForm>(); var wob = new WindsorObjectBuilder(container.Kernel); ServiceLocator.SetLocatorProvider(() => wob); }); x.ConfigureService<SubscriptionService>(typeof(SubscriptionService).Name, ConfigureSubscriptionService); x.ConfigureService<TimeoutService>(typeof(TimeoutService).Name, ConfigureTimeoutService); x.ConfigureService<HealthService>(typeof(HealthService).Name, ConfigureHealthService); }); Runner.Host(cfg, args); }
private void StartClient() { StopClient(); try { _container = new DefaultMassTransitContainer("Client.Castle.xml"); _bus = _container.Resolve<IServiceBus>("client"); _container.AddComponent<TimeoutWatcher>(); _bus.Subscribe<TimeoutWatcher>(); } catch (Exception ex) { _log.Error(ex); MessageBox.Show("The client failed to start:\n\n" + ex.Message); } }