Пример #1
0
		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);
		}
Пример #2
0
		private static IWindsorContainer BootstrapContainer()
		{
			IWindsorContainer container = new DefaultMassTransitContainer("Starbucks.Customer.Castle.xml");
			container.AddComponent<CustomerService>(typeof (CustomerService).Name);
			container.AddComponent<OrderDrinkForm>();
		    return container;
		}
Пример #3
0
        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);
        }
Пример #4
0
		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);
			}
		}
Пример #5
0
		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);
		}
Пример #6
0
		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;
		}
Пример #7
0
        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);
        }
Пример #8
0
        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();
                });
        }
Пример #9
0
        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();
                });
        }
Пример #10
0
        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);
        }
Пример #11
0
		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);
		}
Пример #12
0
		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);
		}
Пример #13
0
        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);
            }
        }